85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
/*
|
|
* RampGenerationProcess.cpp
|
|
*
|
|
* Created on: 31 ìàÿ 2020 ã.
|
|
* Author: LeonidTitov
|
|
*/
|
|
|
|
#include "RampGenerationProcess.hh"
|
|
|
|
vector::ITechValue & processing::acs::RampGeneration1stOrderProcess::getDerivativeLimit() {
|
|
|
|
return limit;
|
|
|
|
}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::set(
|
|
TypeInput phase_space ) {
|
|
|
|
setpoint = phase_space;
|
|
|
|
|
|
if( isConnected() ) proc_enable = true;
|
|
|
|
}
|
|
|
|
processing::acs::RampGeneration1stOrderProcess::TypeOutput processing::acs::RampGeneration1stOrderProcess::get() const {
|
|
|
|
return trajectory;
|
|
|
|
}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::set_output(
|
|
SetInterface * new_output ) {
|
|
|
|
if( not new_output ) proc_enable = false;
|
|
|
|
output = new_output;
|
|
|
|
}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::reset() {
|
|
|
|
generator.setCurrentPoint( value );
|
|
|
|
}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::setSampleTime(
|
|
float ts_in_second ) {
|
|
|
|
generator.setTime( ts_in_second );
|
|
|
|
}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::process() {
|
|
|
|
if( not proc_enable )
|
|
return;
|
|
|
|
setpoint.update();
|
|
|
|
trajectory = generator.update( setpoint.value );
|
|
trajectory.d_value += setpoint.d_value;
|
|
|
|
output->set( trajectory );
|
|
|
|
}
|
|
|
|
processing::acs::RampGeneration1stOrderProcess::RampGeneration1stOrderProcess(
|
|
Generator & generator, systemic::ISignal & value ) :
|
|
generator(generator), value(value), limit(generator),
|
|
output(nullptr), trajectory( 0.0f, 0.0f ), setpoint( TypeInput(0.0f, 0.0f) ), proc_enable(false) {}
|
|
|
|
void processing::acs::RampGeneration1stOrderProcess::DerivativeLimit::set(
|
|
float limit ) {
|
|
|
|
generator.setDerivativeLimit(limit);
|
|
|
|
}
|
|
|
|
float processing::acs::RampGeneration1stOrderProcess::DerivativeLimit::get() const {
|
|
|
|
return generator.getDerivativeLimit();
|
|
|
|
}
|