WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
TwoAxisPointingGuidance.h
Go to the documentation of this file.
1/******************************************************************************
2* Copyright (c) ATTX LLC 2024. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX, LLC. The Software is
6* furnished under a license agreement between ATTX and the user organization
7* and may be used or copied only in accordance with the terms of the agreement.
8* Refer to 'license/attx_license.adoc' for standard license terms.
9*
10* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
11* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
12* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
13* transmitted in any form or by any means, for any purpose, without the express
14* written permission of ATTX, LLC.
15******************************************************************************/
16/*
17Triad method guidance task header file
18
19Author: Alex Jackson
20*/
21
22#ifndef APPS_TWO_AXIS_POINTING_GUIDANCE_H
23#define APPS_TWO_AXIS_POINTING_GUIDANCE_H
24
25#include "flight/App.h"
27
29#include "dynamics/Quaternion.h"
30#include "core/mathmacros.h"
31
33
34namespace warpos {
35
47 public:
48 // Model inputs
49 // NAME TYPE DEFAULT VALUE
60
61 // Model outputs
62 // NAME TYPE DEFAULT VALUE
67
69
71
74 int16 activate() override;
75
78 int16 deactivate() override;
79
85 int16 command(uint16 apid, uint8* buffer, uint16 size) override;
86
87 protected:
88 int16 start() override;
89 int16 execute() override;
90
91 // Local vectors to establish DCM -- here for speed
98
102
103 // Internal variables for DCMs defined by pointing targets
106
107 // Telemetry packet for packing
109 };
110
111}
112
113#endif
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition appmacros.h:27
#define END_OUTPUTS
Definition appmacros.h:33
#define START_OUTPUTS
Definition appmacros.h:28
#define END_INPUTS
Definition appmacros.h:40
#define START_INPUTS
Definition appmacros.h:35
Class defining a direction cosine matrix inherited from Matrix.
Definition DCM.h:69
Quaternion class for attitude representation.
Definition Quaternion.h:68
App(FlightExecutive &executive, const char *name, uint16 apid, uint8 instance=0)
Executive-based constructor for the task.
Definition App.cpp:21
uint16 apid()
Get the apid for this app.
Definition App.h:105
Executive derivation specifically to run flight systems.
Definition FlightExecutive.h:46
int16 command(uint16 apid, uint8 *buffer, uint16 size) override
Process commands issued to the app.
Definition TwoAxisPointingGuidance.cpp:119
clockwerk::Quaternion _quat_body_ref
Definition TwoAxisPointingGuidance.h:101
clockwerk::CartesianVector< 3 > _ref_triadx
Definition TwoAxisPointingGuidance.h:95
clockwerk::CartesianVector< 3 > _body_triadx
Definition TwoAxisPointingGuidance.h:92
clockwerk::CartesianVector< 3 > _body_triadz
Definition TwoAxisPointingGuidance.h:94
virtual ~TwoAxisPointingGuidance()
Definition TwoAxisPointingGuidance.h:70
int16 start() override
Definition TwoAxisPointingGuidance.cpp:28
clockwerk::DCM _dcm_body_ref
Local variables for DCM body/ref to Quaternion conversion.
Definition TwoAxisPointingGuidance.h:100
clockwerk::DCM _body_triad
Definition TwoAxisPointingGuidance.h:104
TwoAxisPointingGuidance(FlightExecutive &executive)
Definition TwoAxisPointingGuidance.cpp:21
tlm_gnc_two_axis_pnt_data _tlm_pkt
Definition TwoAxisPointingGuidance.h:108
clockwerk::CartesianVector< 3 > _body_triady
Definition TwoAxisPointingGuidance.h:93
clockwerk::DCM _ref_triad
Definition TwoAxisPointingGuidance.h:105
int16 deactivate() override
Deactivate the app. The app will not step when deactivated.
Definition TwoAxisPointingGuidance.cpp:107
int16 execute() override
Definition TwoAxisPointingGuidance.cpp:32
clockwerk::CartesianVector< 3 > _ref_triady
Definition TwoAxisPointingGuidance.h:96
clockwerk::CartesianVector< 3 > _ref_triadz
Definition TwoAxisPointingGuidance.h:97
int16 activate() override
Activate the app. The app will step when active.
Definition TwoAxisPointingGuidance.cpp:101
#define CartesianVector3
Definition mathmacros.h:43
Definition DeadReckon.cpp:20
Two axis pointing guidance telemetry packet definition.
Definition tlm_TwoAxisPointingGuidance.h:44
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > current_secondary_body
Definition TwoAxisPointingGuidance.h:56
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > desired_primary
Definition TwoAxisPointingGuidance.h:54
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > desired_secondary
Definition TwoAxisPointingGuidance.h:58
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > current_primary_body
Definition TwoAxisPointingGuidance.h:52
clockwerk::DataIO< clockwerk::Quaternion > quat_body_ref
Definition TwoAxisPointingGuidance.h:65