Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion HelloWorldDeployment/Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ int main(int argc, char* argv[]) {

// Setup, cycle, and teardown topology
HelloWorldDeployment::setupTopology(inputs);
HelloWorldDeployment::startSimulatedCycle(1000); // Program loop cycling rate groups at 1Hz
HelloWorldDeployment::startSimulatedCycle(Fw::TimeInterval(1, 0)); // Program loop cycling rate groups at 1Hz
HelloWorldDeployment::teardownTopology(inputs);
(void)printf("Exiting...\n");
return 0;
Expand Down
21 changes: 3 additions & 18 deletions HelloWorldDeployment/Top/HelloWorldDeploymentTopology.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ enum TopologyConstants {

// Ping entries are autocoded, however; this code is not properly exported. Thus, it is copied here.
Svc::Health::PingEntry pingEntries[] = {
{PingEntries::HelloWorldDeployment_blockDrv::WARN, PingEntries::HelloWorldDeployment_blockDrv::FATAL, "blockDrv"},
{PingEntries::HelloWorldDeployment_tlmSend::WARN, PingEntries::HelloWorldDeployment_tlmSend::FATAL, "chanTlm"},
{PingEntries::HelloWorldDeployment_cmdDisp::WARN, PingEntries::HelloWorldDeployment_cmdDisp::FATAL, "cmdDisp"},
{PingEntries::HelloWorldDeployment_cmdSeq::WARN, PingEntries::HelloWorldDeployment_cmdSeq::FATAL, "cmdSeq"},
Expand Down Expand Up @@ -163,26 +162,12 @@ void setupTopology(const TopologyState& state) {
Os::Mutex cycleLock;
volatile bool cycleFlag = true;

void startSimulatedCycle(U32 milliseconds) {
cycleLock.lock();
bool cycling = cycleFlag;
cycleLock.unLock();

// Main loop
while (cycling) {
HelloWorldDeployment::blockDrv.callIsr();
Os::Task::delay(Fw::TimeInterval(milliseconds/1000, milliseconds % 1000));

cycleLock.lock();
cycling = cycleFlag;
cycleLock.unLock();
}
void startSimulatedCycle(Fw::TimeInterval interval) {
linuxTimer.startTimer(interval.getSeconds()*1000+interval.getUSeconds()/1000);
}

void stopSimulatedCycle() {
cycleLock.lock();
cycleFlag = false;
cycleLock.unLock();
linuxTimer.quit();
}

void teardownTopology(const TopologyState& state) {
Expand Down
2 changes: 1 addition & 1 deletion HelloWorldDeployment/Top/HelloWorldDeploymentTopology.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ void teardownTopology(const TopologyState& state);
*
* \param milliseconds: milliseconds to delay for each cycle. Default: 1000 or 1Hz.
*/
void startSimulatedCycle(U32 milliseconds = 1000);
void startSimulatedCycle(Fw::TimeInterval interval);

/**
* \brief stop the simulated cycle started by startSimulatedCycle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
#ifndef HelloWorldDeployment_HelloWorldDeploymentTOPOLOGYDEFS_HPP
#define HelloWorldDeployment_HelloWorldDeploymentTOPOLOGYDEFS_HPP

#include "Drv/BlockDriver/BlockDriver.hpp"
#include "Fw/Types/MallocAllocator.hpp"
#include "HelloWorldDeployment/Top/FppConstantsAc.hpp"
#include "Svc/FramingProtocol/FprimeProtocol.hpp"
Expand Down
7 changes: 2 additions & 5 deletions HelloWorldDeployment/Top/instances.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ module HelloWorldDeployment {
# Active component instances
# ----------------------------------------------------------------------

instance blockDrv: Drv.BlockDriver base id 0x0100 \
queue size Default.QUEUE_SIZE \
stack size Default.STACK_SIZE \
priority 140

instance rateGroup1: Svc.ActiveRateGroup base id 0x0200 \
queue size Default.QUEUE_SIZE \
stack size Default.STACK_SIZE \
Expand Down Expand Up @@ -130,4 +125,6 @@ module HelloWorldDeployment {

instance comStub: Svc.ComStub base id 0x4D00

instance linuxTimer: Svc.LinuxTimer base id 0x4E00

}
10 changes: 5 additions & 5 deletions HelloWorldDeployment/Top/topology.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ module HelloWorldDeployment {
# ----------------------------------------------------------------------

instance $health
instance blockDrv
instance tlmSend
instance cmdDisp
instance cmdSeq
Expand Down Expand Up @@ -46,6 +45,8 @@ module HelloWorldDeployment {

instance helloWorld

instance linuxTimer

# ----------------------------------------------------------------------
# Pattern graph specifiers
# ----------------------------------------------------------------------
Expand Down Expand Up @@ -96,8 +97,8 @@ module HelloWorldDeployment {
}

connections RateGroups {
# Block driver
blockDrv.CycleOut -> rateGroupDriver.CycleIn
# Linux timer to drive rate group
linuxTimer.CycleOut -> rateGroupDriver.CycleIn

# Rate group 1
rateGroupDriver.CycleOut[Ports_RateGroups.rateGroup1] -> rateGroup1.CycleIn
Expand All @@ -112,8 +113,7 @@ module HelloWorldDeployment {
# Rate group 3
rateGroupDriver.CycleOut[Ports_RateGroups.rateGroup3] -> rateGroup3.CycleIn
rateGroup3.RateGroupMemberOut[0] -> $health.Run
rateGroup3.RateGroupMemberOut[1] -> blockDrv.Sched
rateGroup3.RateGroupMemberOut[2] -> bufferManager.schedIn
rateGroup3.RateGroupMemberOut[1] -> bufferManager.schedIn
}

connections Sequencer {
Expand Down