Update Ref to use FPP telemetry packets (#3440)

* Revise Ref app

Convert Ref packets to FPP

* Remove header include for XML packets

* Remove trailing spaces

* Delete RefPackets.xml

* Update Ref packets

* Update fpp version

* Update fpp version

---------

Co-authored-by: M Starch <LeStarch@googlemail.com>
This commit is contained in:
Rob Bocchino 2025-04-03 10:36:00 -07:00 committed by GitHub
parent 93510e1425
commit dcfc109b5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 288 additions and 279 deletions

View File

@ -9,7 +9,6 @@ add_compile_options(
)
set(SOURCE_FILES
"${CMAKE_CURRENT_LIST_DIR}/instances.fpp"
"${CMAKE_CURRENT_LIST_DIR}/RefPackets.xml"
"${CMAKE_CURRENT_LIST_DIR}/topology.fpp"
"${CMAKE_CURRENT_LIST_DIR}/RefTopology.cpp"
)

266
Ref/Top/RefPackets.fppi Normal file
View File

@ -0,0 +1,266 @@
telemetry packets RefPackets {
packet CDH id 1 group 1 {
Ref.cmdDisp.CommandsDispatched
Ref.rateGroup1Comp.RgMaxTime
Ref.rateGroup2Comp.RgMaxTime
Ref.rateGroup3Comp.RgMaxTime
Ref.cmdSeq.CS_LoadCommands
Ref.cmdSeq.CS_CancelCommands
Ref.cmdSeq.CS_CommandsExecuted
Ref.cmdSeq.CS_SequencesCompleted
Ref.fileUplink.FilesReceived
Ref.fileUplink.PacketsReceived
Ref.commsBufferManager.TotalBuffs
Ref.commsBufferManager.CurrBuffs
Ref.commsBufferManager.HiBuffs
Ref.fileDownlink.FilesSent
Ref.fileDownlink.PacketsSent
Ref.fileManager.CommandsExecuted
# Ref.tlmSend.SendLevel
}
packet CDHErrors id 2 group 1 {
Ref.rateGroup1Comp.RgCycleSlips
Ref.rateGroup2Comp.RgCycleSlips
Ref.rateGroup3Comp.RgCycleSlips
Ref.cmdSeq.CS_Errors
Ref.fileUplink.Warnings
Ref.fileDownlink.Warnings
Ref.$health.PingLateWarnings
Ref.fileManager.Errors
Ref.commsBufferManager.NoBuffs
Ref.commsBufferManager.EmptyBuffs
Ref.fileManager.Errors
}
packet DriveTlm id 3 group 1 {
Ref.pingRcvr.PR_NumPings
Ref.sendBuffComp.PacketsSent
Ref.sendBuffComp.NumErrorsInjected
Ref.sendBuffComp.Parameter3
Ref.sendBuffComp.Parameter4
Ref.sendBuffComp.SendState
Ref.recvBuffComp.PktState
Ref.recvBuffComp.Sensor1
Ref.recvBuffComp.Sensor2
Ref.recvBuffComp.Parameter1
Ref.recvBuffComp.Parameter2
Ref.blockDrv.BD_Cycles
}
packet SigGenSum id 4 group 1 {
Ref.SG1.Output
Ref.SG1.Type
Ref.SG2.Output
Ref.SG2.Type
Ref.SG3.Output
Ref.SG3.Type
Ref.SG4.Output
Ref.SG4.Type
Ref.SG5.Output
Ref.SG5.Type
}
packet SystemRes1 id 5 group 2 {
Ref.systemResources.MEMORY_TOTAL
Ref.systemResources.MEMORY_USED
Ref.systemResources.NON_VOLATILE_TOTAL
Ref.systemResources.NON_VOLATILE_FREE
}
packet SystemRes3 id 6 group 2 {
Ref.systemResources.CPU
Ref.systemResources.CPU_00
Ref.systemResources.CPU_01
Ref.systemResources.CPU_02
Ref.systemResources.CPU_03
Ref.systemResources.CPU_04
Ref.systemResources.CPU_05
Ref.systemResources.CPU_06
Ref.systemResources.CPU_07
Ref.systemResources.CPU_08
Ref.systemResources.CPU_09
Ref.systemResources.CPU_10
Ref.systemResources.CPU_11
Ref.systemResources.CPU_12
Ref.systemResources.CPU_13
Ref.systemResources.CPU_14
Ref.systemResources.CPU_15
}
packet SigGen1Info id 10 group 2 {
Ref.SG1.Info
}
packet SigGen2Info id 11 group 2 {
Ref.SG2.Info
}
packet SigGen3Info id 12 group 2 {
Ref.SG3.Info
}
packet SigGen4Info id 13 group 2 {
Ref.SG4.Info
}
packet SigGen5Info id 14 group 2 {
Ref.SG5.Info
}
packet SigGen1 id 15 group 3 {
Ref.SG1.PairOutput
Ref.SG1.History
Ref.SG1.PairHistory
Ref.SG1.DpBytes
Ref.SG1.DpRecords
}
packet SigGen2 id 16 group 3 {
Ref.SG2.PairOutput
Ref.SG2.History
Ref.SG2.PairHistory
Ref.SG2.DpBytes
Ref.SG2.DpRecords
}
packet SigGen3 id 17 group 3 {
Ref.SG3.PairOutput
Ref.SG3.History
Ref.SG3.PairHistory
Ref.SG3.DpBytes
Ref.SG3.DpRecords
}
packet SigGen4 id 18 group 3 {
Ref.SG4.PairOutput
Ref.SG4.History
Ref.SG4.PairHistory
Ref.SG4.DpBytes
Ref.SG4.DpRecords
}
packet SigGen5 id 19 group 3 {
Ref.SG5.PairOutput
Ref.SG5.History
Ref.SG5.PairHistory
Ref.SG5.DpBytes
Ref.SG5.DpRecords
}
packet TypeDemo id 20 group 3 {
Ref.typeDemo.ChoiceCh
Ref.typeDemo.ChoicesCh
Ref.typeDemo.ExtraChoicesCh
Ref.typeDemo.ChoicePairCh
Ref.typeDemo.ChoiceSlurryCh
Ref.typeDemo.Float1Ch
Ref.typeDemo.Float2Ch
Ref.typeDemo.Float3Ch
Ref.typeDemo.FloatSet
Ref.typeDemo.ScalarStructCh
Ref.typeDemo.ScalarU8Ch
Ref.typeDemo.ScalarU16Ch
Ref.typeDemo.ScalarU32Ch
Ref.typeDemo.ScalarU64Ch
Ref.typeDemo.ScalarI8Ch
Ref.typeDemo.ScalarI16Ch
Ref.typeDemo.ScalarI32Ch
Ref.typeDemo.ScalarI64Ch
Ref.typeDemo.ScalarF32Ch
Ref.typeDemo.ScalarF64Ch
}
packet DataProducts id 21 group 3 {
Ref.dpCat.CatalogDps
Ref.dpCat.DpsSent
Ref.dpMgr.NumSuccessfulAllocations
Ref.dpMgr.NumFailedAllocations
Ref.dpMgr.NumDataProducts
Ref.dpMgr.NumBytes
Ref.dpWriter.NumBuffersReceived
Ref.dpWriter.NumBytesWritten
Ref.dpWriter.NumSuccessfulWrites
Ref.dpWriter.NumFailedWrites
Ref.dpWriter.NumErrors
Ref.dpBufferManager.TotalBuffs
Ref.dpBufferManager.CurrBuffs
Ref.dpBufferManager.HiBuffs
Ref.dpBufferManager.NoBuffs
Ref.dpBufferManager.EmptyBuffs
}
packet Version1 id 22 group 2 {
Ref.version.FrameworkVersion
Ref.version.ProjectVersion
}
packet Version_Library1 id 23 group 2 {
Ref.version.LibraryVersion01
Ref.version.LibraryVersion02
}
packet Version_Library2 id 24 group 2 {
Ref.version.LibraryVersion03
Ref.version.LibraryVersion04
}
packet Version_Library3 id 25 group 2 {
Ref.version.LibraryVersion05
Ref.version.LibraryVersion06
}
packet Version_Library4 id 26 group 2 {
Ref.version.LibraryVersion07
Ref.version.LibraryVersion08
}
packet Version_Library5 id 27 group 2 {
Ref.version.LibraryVersion09
Ref.version.LibraryVersion10
}
packet Version_Custom1 id 28 group 2 {
Ref.version.CustomVersion01
}
packet Version_Custom2 id 29 group 2 {
Ref.version.CustomVersion02
}
packet Version_Custom3 id 30 group 2 {
Ref.version.CustomVersion03
}
packet Version_Custom4 id 31 group 2 {
Ref.version.CustomVersion04
}
packet Version_Custom5 id 32 group 2 {
Ref.version.CustomVersion05
}
packet Version_Custom6 id 33 group 2 {
Ref.version.CustomVersion06
}
packet Version_Custom7 id 34 group 2 {
Ref.version.CustomVersion07
}
packet Version_Custom8 id 35 group 2 {
Ref.version.CustomVersion08
}
packet Version_Custom9 id 36 group 2 {
Ref.version.CustomVersion09
}
packet Version_Custom10 id 37 group 2 {
Ref.version.CustomVersion10
}
} omit {
Ref.cmdDisp.CommandErrors
}

View File

@ -1,261 +0,0 @@
<packets name="RefPackets" namespace="Ref" size="191">
<import_topology>Ref/Top/RefTopologyAppAi.xml</import_topology>
<packet name="CDH" id="1" level="1">
<channel name="Ref.cmdDisp.CommandsDispatched"/>
<channel name="Ref.rateGroup1Comp.RgMaxTime"/>
<channel name="Ref.rateGroup2Comp.RgMaxTime"/>
<channel name="Ref.rateGroup3Comp.RgMaxTime"/>
<channel name="Ref.cmdSeq.CS_LoadCommands"/>
<channel name="Ref.cmdSeq.CS_CancelCommands"/>
<channel name="Ref.cmdSeq.CS_CommandsExecuted"/>
<channel name="Ref.cmdSeq.CS_SequencesCompleted"/>
<channel name="Ref.fileUplink.FilesReceived"/>
<channel name="Ref.fileUplink.PacketsReceived"/>
<channel name="Ref.commsBufferManager.TotalBuffs"/>
<channel name="Ref.commsBufferManager.CurrBuffs"/>
<channel name="Ref.commsBufferManager.HiBuffs"/>
<channel name="Ref.fileDownlink.FilesSent"/>
<channel name="Ref.fileDownlink.PacketsSent"/>
<channel name="Ref.fileManager.CommandsExecuted"/>
<!-- Uncomment to use Svc::TlmPacketizer -->
<!-- channel name="Ref.tlmSend.SendLevel"/-->
</packet>
<packet name="CDHErrors" id="2" level="1">
<channel name="Ref.rateGroup1Comp.RgCycleSlips"/>
<channel name="Ref.rateGroup2Comp.RgCycleSlips"/>
<channel name="Ref.rateGroup3Comp.RgCycleSlips"/>
<channel name="Ref.cmdSeq.CS_Errors"/>
<channel name="Ref.fileUplink.Warnings"/>
<channel name="Ref.fileDownlink.Warnings"/>
<channel name="Ref.health.PingLateWarnings"/>
<channel name="Ref.fileManager.Errors"/>
<channel name="Ref.commsBufferManager.NoBuffs"/>
<channel name="Ref.commsBufferManager.EmptyBuffs"/>
<channel name="Ref.fileManager.Errors"/>
</packet>
<packet name="DriveTlm" id="3" level="1">
<channel name="Ref.pingRcvr.PR_NumPings"/>
<channel name="Ref.sendBuffComp.PacketsSent"/>
<channel name="Ref.sendBuffComp.NumErrorsInjected"/>
<channel name="Ref.sendBuffComp.Parameter3"/>
<channel name="Ref.sendBuffComp.Parameter4"/>
<channel name="Ref.sendBuffComp.SendState"/>
<channel name="Ref.recvBuffComp.PktState"/>
<channel name="Ref.recvBuffComp.Sensor1"/>
<channel name="Ref.recvBuffComp.Sensor2"/>
<channel name="Ref.recvBuffComp.Parameter1"/>
<channel name="Ref.recvBuffComp.Parameter2"/>
<channel name="Ref.blockDrv.BD_Cycles"/>
</packet>
<packet name="SigGenSum" id="4" level="1">
<channel name="Ref.SG1.Output"/>
<channel name="Ref.SG1.Type"/>
<channel name="Ref.SG2.Output"/>
<channel name="Ref.SG2.Type"/>
<channel name="Ref.SG3.Output"/>
<channel name="Ref.SG3.Type"/>
<channel name="Ref.SG4.Output"/>
<channel name="Ref.SG4.Type"/>
<channel name="Ref.SG5.Output"/>
<channel name="Ref.SG5.Type"/>
</packet>
<packet name="SystemRes1" id="5" level="2">
<channel name="Ref.systemResources.MEMORY_TOTAL"/>
<channel name="Ref.systemResources.MEMORY_USED"/>
<channel name="Ref.systemResources.NON_VOLATILE_TOTAL"/>
<channel name="Ref.systemResources.NON_VOLATILE_FREE"/>
</packet>
<packet name="SystemRes3" id="6" level="2">
<channel name="Ref.systemResources.CPU"/>
<channel name="Ref.systemResources.CPU_00"/>
<channel name="Ref.systemResources.CPU_01"/>
<channel name="Ref.systemResources.CPU_02"/>
<channel name="Ref.systemResources.CPU_03"/>
<channel name="Ref.systemResources.CPU_04"/>
<channel name="Ref.systemResources.CPU_05"/>
<channel name="Ref.systemResources.CPU_06"/>
<channel name="Ref.systemResources.CPU_07"/>
<channel name="Ref.systemResources.CPU_08"/>
<channel name="Ref.systemResources.CPU_09"/>
<channel name="Ref.systemResources.CPU_10"/>
<channel name="Ref.systemResources.CPU_11"/>
<channel name="Ref.systemResources.CPU_12"/>
<channel name="Ref.systemResources.CPU_13"/>
<channel name="Ref.systemResources.CPU_14"/>
<channel name="Ref.systemResources.CPU_15"/>
</packet>
<packet name="SigGen1Info" id="10" level="2">
<channel name="Ref.SG1.Info"/>
</packet>
<packet name="SigGen2Info" id="11" level="2">
<channel name="Ref.SG2.Info"/>
</packet>
<packet name="SigGen3Info" id="12" level="2">
<channel name="Ref.SG3.Info"/>
</packet>
<packet name="SigGen4Info" id="13" level="2">
<channel name="Ref.SG4.Info"/>
</packet>
<packet name="SigGen5Info" id="14" level="2">
<channel name="Ref.SG5.Info"/>
</packet>
<packet name="SigGen1" id="15" level="3">
<channel name="Ref.SG1.PairOutput"/>
<channel name="Ref.SG1.History"/>
<channel name="Ref.SG1.PairHistory"/>
<channel name="Ref.SG1.DpBytes"/>
<channel name="Ref.SG1.DpRecords"/>
</packet>
<packet name="SigGen2" id="16" level="3">
<channel name="Ref.SG2.PairOutput"/>
<channel name="Ref.SG2.History"/>
<channel name="Ref.SG2.PairHistory"/>
<channel name="Ref.SG2.DpBytes"/>
<channel name="Ref.SG2.DpRecords"/>
</packet>
<packet name="SigGen3" id="17" level="3">
<channel name="Ref.SG3.PairOutput"/>
<channel name="Ref.SG3.History"/>
<channel name="Ref.SG3.PairHistory"/>
<channel name="Ref.SG3.DpBytes"/>
<channel name="Ref.SG3.DpRecords"/>
</packet>
<packet name="SigGen4" id="18" level="3">
<channel name="Ref.SG4.PairOutput"/>
<channel name="Ref.SG4.History"/>
<channel name="Ref.SG4.PairHistory"/>
<channel name="Ref.SG4.DpBytes"/>
<channel name="Ref.SG4.DpRecords"/>
</packet>
<packet name="SigGen5" id="19" level="3">
<channel name="Ref.SG5.PairOutput"/>
<channel name="Ref.SG5.History"/>
<channel name="Ref.SG5.PairHistory"/>
<channel name="Ref.SG5.DpBytes"/>
<channel name="Ref.SG5.DpRecords"/>
</packet>
<packet name="TypeDemo" id="20" level="3">
<channel name="Ref.typeDemo.ChoiceCh"/>
<channel name="Ref.typeDemo.ChoicesCh"/>
<channel name="Ref.typeDemo.ExtraChoicesCh"/>
<channel name="Ref.typeDemo.ChoicePairCh"/>
<channel name="Ref.typeDemo.ChoiceSlurryCh"/>
<channel name="Ref.typeDemo.Float1Ch"/>
<channel name="Ref.typeDemo.Float2Ch"/>
<channel name="Ref.typeDemo.Float3Ch"/>
<channel name="Ref.typeDemo.FloatSet"/>
<channel name="Ref.typeDemo.ScalarStructCh"/>
<channel name="Ref.typeDemo.ScalarU8Ch"/>
<channel name="Ref.typeDemo.ScalarU16Ch"/>
<channel name="Ref.typeDemo.ScalarU32Ch"/>
<channel name="Ref.typeDemo.ScalarU64Ch"/>
<channel name="Ref.typeDemo.ScalarI8Ch"/>
<channel name="Ref.typeDemo.ScalarI16Ch"/>
<channel name="Ref.typeDemo.ScalarI32Ch"/>
<channel name="Ref.typeDemo.ScalarI64Ch"/>
<channel name="Ref.typeDemo.ScalarF32Ch"/>
<channel name="Ref.typeDemo.ScalarF64Ch"/>
</packet>
<packet name="DataProducts" id="21" level="3">
<channel name="Ref.dpCat.CatalogDps"/>
<channel name="Ref.dpCat.DpsSent"/>
<channel name="Ref.dpMgr.NumSuccessfulAllocations"/>
<channel name="Ref.dpMgr.NumFailedAllocations"/>
<channel name="Ref.dpMgr.NumDataProducts"/>
<channel name="Ref.dpMgr.NumBytes"/>
<channel name="Ref.dpWriter.NumBuffersReceived"/>
<channel name="Ref.dpWriter.NumBytesWritten"/>
<channel name="Ref.dpWriter.NumSuccessfulWrites"/>
<channel name="Ref.dpWriter.NumFailedWrites"/>
<channel name="Ref.dpWriter.NumErrors"/>
<channel name="Ref.dpBufferManager.TotalBuffs"/>
<channel name="Ref.dpBufferManager.CurrBuffs"/>
<channel name="Ref.dpBufferManager.HiBuffs"/>
<channel name="Ref.dpBufferManager.NoBuffs"/>
<channel name="Ref.dpBufferManager.EmptyBuffs"/>
</packet>
<packet name="Version1" id="22" level="2">
<channel name="Ref.version.FrameworkVersion"/>
<channel name="Ref.version.ProjectVersion"/>
</packet>
<packet name="Version_Library1" id="23" level="2">
<channel name="Ref.version.LibraryVersion01"/>
<channel name="Ref.version.LibraryVersion02"/>
</packet>
<packet name="Version_Library2" id="24" level="2">
<channel name="Ref.version.LibraryVersion03"/>
<channel name="Ref.version.LibraryVersion04"/>
</packet>
<packet name="Version_Library3" id="25" level="2">
<channel name="Ref.version.LibraryVersion05"/>
<channel name="Ref.version.LibraryVersion06"/>
</packet>
<packet name="Version_Library4" id="26" level="2">
<channel name="Ref.version.LibraryVersion07"/>
<channel name="Ref.version.LibraryVersion08"/>
</packet>
<packet name="Version_Library5" id="27" level="2">
<channel name="Ref.version.LibraryVersion09"/>
<channel name="Ref.version.LibraryVersion10"/>
</packet>
<packet name="Version_Custom1" id="28" level="2">
<channel name="Ref.version.CustomVersion01"/>
</packet>
<packet name="Version_Custom2" id="29" level="2">
<channel name="Ref.version.CustomVersion02"/>
</packet>
<packet name="Version_Custom3" id="30" level="2">
<channel name="Ref.version.CustomVersion03"/>
</packet>
<packet name="Version_Custom4" id="31" level="2">
<channel name="Ref.version.CustomVersion04"/>
</packet>
<packet name="Version_Custom5" id="32" level="2">
<channel name="Ref.version.CustomVersion05"/>
</packet>
<packet name="Version_Custom6" id="33" level="2">
<channel name="Ref.version.CustomVersion06"/>
</packet>
<packet name="Version_Custom7" id="34" level="2">
<channel name="Ref.version.CustomVersion07"/>
</packet>
<packet name="Version_Custom8" id="35" level="2">
<channel name="Ref.version.CustomVersion08"/>
</packet>
<packet name="Version_Custom9" id="36" level="2">
<channel name="Ref.version.CustomVersion09"/>
</packet>
<packet name="Version_Custom10" id="37" level="2">
<channel name="Ref.version.CustomVersion10"/>
</packet>
<!-- Ignored packets -->
<ignore>
<channel name="Ref.cmdDisp.CommandErrors"/>
</ignore>
</packets>

View File

@ -9,7 +9,6 @@
// acknowledged.
// ======================================================================
// Provides access to autocoded functions
#include <Ref/Top/RefPacketsAc.hpp>
#include <Ref/Top/RefTopologyAc.hpp>
// Necessary project-specified types
@ -128,7 +127,7 @@ void configureTopology() {
dpWriter.configure(dpDir);
// Note: Uncomment when using Svc:TlmPacketizer
// tlmSend.setPacketList(RefPacketsPkts, RefPacketsIgnore, 1);
// tlmSend.setPacketList(Ref::Ref_RefPacketsTlmPackets::packetList, Ref::Ref_RefPacketsTlmPackets::omittedChannels, 1);
}
// Public functions for use in main program are namespaced with deployment name Ref

View File

@ -74,6 +74,12 @@ module Ref {
health connections instance $health
# ----------------------------------------------------------------------
# Telemetry packets
# ----------------------------------------------------------------------
include "RefPackets.fppi"
# ----------------------------------------------------------------------
# Direct graph specifiers
# ----------------------------------------------------------------------
@ -168,7 +174,7 @@ module Ref {
dpWriter.deallocBufferSendOut -> dpBufferManager.bufferSendIn
# Component DP connections
# Synchronous request. Will have both request kinds for demo purposes, not typical
SG1.productGetOut -> dpMgr.productGetIn[0]
# Asynchronous request
@ -176,7 +182,7 @@ module Ref {
dpMgr.productResponseOut[0] -> SG1.productRecvIn
# Send filled DP
SG1.productSendOut -> dpMgr.productSendIn[0]
}
}

View File

@ -20,19 +20,19 @@ fprime-fpl-convert-xml==1.0.3
fprime-fpl-extract-xml==1.0.3
fprime-fpl-layout==1.0.3
fprime-fpl-write-pic==1.0.3
fprime-fpp-check==3.0.0a5
fprime-fpp-depend==3.0.0a5
fprime-fpp-filenames==3.0.0a5
fprime-fpp-format==3.0.0a5
fprime-fpp-from-xml==3.0.0a5
fprime-fpp-locate-defs==3.0.0a5
fprime-fpp-locate-uses==3.0.0a5
fprime-fpp-syntax==3.0.0a5
fprime-fpp-to-cpp==3.0.0a5
fprime-fpp-to-dict==3.0.0a5
fprime-fpp-to-json==3.0.0a5
fprime-fpp-to-xml==3.0.0a5
fprime-fpp-to-layout==3.0.0a5
fprime-fpp-check==3.0.0a6
fprime-fpp-depend==3.0.0a6
fprime-fpp-filenames==3.0.0a6
fprime-fpp-format==3.0.0a6
fprime-fpp-from-xml==3.0.0a6
fprime-fpp-locate-defs==3.0.0a6
fprime-fpp-locate-uses==3.0.0a6
fprime-fpp-syntax==3.0.0a6
fprime-fpp-to-cpp==3.0.0a6
fprime-fpp-to-dict==3.0.0a6
fprime-fpp-to-json==3.0.0a6
fprime-fpp-to-xml==3.0.0a6
fprime-fpp-to-layout==3.0.0a6
fprime-gds==3.6.1
fprime-tools==3.6.1
fprime-visual==1.0.2