ifw-slm 0.1.2
 
Loading...
Searching...
No Matches
actionsLoopClose.hpp File Reference

Action classes for loop CloseLoop state with timer-based execution. More...

#include "baseLoopActions.hpp"
#include "dataContext.hpp"
#include "logger.hpp"
#include "cmdsImpl.hpp"
#include <rad/application.hpp>
#include <rad/smAdapter.hpp>
#include <rad/timer.hpp>
#include <rad/smEvent.hpp>
#include <boost/asio.hpp>
#include <string>
#include <memory>

Go to the source code of this file.

Classes

class  ifw::slm::ActionsLoopClose< LOOP_INDEX >
 

Namespaces

namespace  ifw
 
namespace  ifw::slm
 

Typedefs

using ifw::slm::ActionsLoop1CloseLoop = ActionsLoopClose<1>
 
using ifw::slm::ActionsLoop2CloseLoop = ActionsLoopClose<2>
 
using ifw::slm::ActionsLoop3CloseLoop = ActionsLoopClose<3>
 
using ifw::slm::ActionsLoop4CloseLoop = ActionsLoopClose<4>
 
using ifw::slm::ActionsLoop5CloseLoop = ActionsLoopClose<5>
 
using ifw::slm::ActionsLoop6CloseLoop = ActionsLoopClose<6>
 
using ifw::slm::ActionsLoop7CloseLoop = ActionsLoopClose<7>
 
using ifw::slm::ActionsLoop8CloseLoop = ActionsLoopClose<8>
 
using ifw::slm::ActionsLoop9CloseLoop = ActionsLoopClose<9>
 

Functions

template<int LOOP_INDEX>
void ifw::slm::CreateCloseLoopTimer (boost::asio::io_context &ios, rad::SMAdapter &sm, std::unique_ptr< rad::Timer > &timer, int period_sec)
 
rad::UniqueEvent ifw::slm::MakeTriggerEvent (int loop_index)
 

Detailed Description

Action classes for loop CloseLoop state with timer-based execution.

This file provides template-based implementations for ActionsLoopXCloseLoop (X=1-9) that use a timer to trigger TriggerX events after a configurable period.

When entering the CloseLoop state, the timer is installed with the configured period (sl/loop[N]/period_sec, default 60s). When the timer expires, the TriggerX event is posted to start the control cycle.

When Abort() is called (e.g., when exiting CloseLoop state), the timer is canceled to stop execution.