Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
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
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,17 @@ void HingedRigidBodyStateEffector::linkInStates(DynParamManager& statesIn)
return;
}

void HingedRigidBodyStateEffector::addDynamicEffector(DynamicEffector *newDynamicEffector, int segment)
{
if (segment != 1) {
bskLogger.bskLog(BSK_ERROR, "Specifying attachment to a non-existent hinged rigid body linkage because this is 1DOF.");
}

this->assignStateParamNames<DynamicEffector *>(newDynamicEffector);

this->dynEffectors.push_back(newDynamicEffector);
}

/*! This method allows the HRB state effector to register its states: theta and thetaDot with the dyn param manager */
void HingedRigidBodyStateEffector::registerStates(DynParamManager& states)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

#include <Eigen/Dense>
#include "simulation/dynamics/_GeneralModuleFiles/stateEffector.h"
#include "simulation/dynamics/_GeneralModuleFiles/dynamicEffector.h"
#include "simulation/dynamics/_GeneralModuleFiles/stateData.h"
#include "architecture/_GeneralModuleFiles/sys_model.h"
#include "architecture/utilities/avsEigenMRP.h"
Expand Down Expand Up @@ -55,6 +56,7 @@ class HingedRigidBodyStateEffector : public StateEffector, public SysModel {
Message<SCStatesMsgPayload> hingedRigidBodyConfigLogOutMsg; //!< panel state config log message name
HingedRigidBodyMsgPayload HRBoutputStates; //!< instance of messaging system message struct
BSKLogger bskLogger; //!< -- BSK Logging
std::vector<DynamicEffector*> dynEffectors; //!< Vector of dynamic effectors attached

private:
static uint64_t effectorID; //!< [] ID number of this panel
Expand Down Expand Up @@ -113,6 +115,7 @@ class HingedRigidBodyStateEffector : public StateEffector, public SysModel {
void UpdateState(uint64_t CurrentSimNanos) override;
void registerStates(DynParamManager& statesIn) override; //!< -- Method for registering the HRB states
void linkInStates(DynParamManager& states) override; //!< -- Method for getting access to other states
void addDynamicEffector(DynamicEffector *newDynamicEffector, int segment = 1) override; //!< -- Method for adding attached dynamic effector
void updateContributions(double integTime, BackSubMatrices & backSubContr, Eigen::Vector3d sigma_BN, Eigen::Vector3d omega_BN_B, Eigen::Vector3d g_N) override; //!< -- Method for back-sub contributions
void computeDerivatives(double integTime, Eigen::Vector3d rDDot_BN_N, Eigen::Vector3d omegaDot_BN_B, Eigen::Vector3d sigma_BN) override; //!< -- Method for HRB to compute its derivatives
void updateEffectorMassProps(double integTime) override; //!< -- Method for giving the s/c the HRB mass props and prop rates
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

%include "architecture/utilities/bskException.swg"
%default_bsk_exception();
%feature("python:kwargs") HingedRigidBodyStateEffector::addDynamicEffector;

%{
#include "hingedRigidBodyStateEffector.h"
Expand Down