m2-ctrl_asm 0.1.0

Giant Magellan Telescope secondary mirror control system (ASM)
Documentation
use simulink_binder::import;

import! {M2_POS_Control,
r##"	 
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
/*
 * File: M2_POS_Control.h
 *
 * Code generated for Simulink model 'M2_POS_Control'.
 *
 * Model version                  : 5.76
 * Simulink Coder version         : 9.4 (R2020b) 29-Jul-2020
 * C/C++ source code generated on : Fri Sep  2 12:29:45 2022
 *
 * Target selection: ert.tlc
 * Embedded hardware selection: Intel->x86-64 (Linux 64)
 * Code generation objectives: Unspecified
 * Validation result: Not run
 */

#ifndef RTW_HEADER_M2_POS_Control_h_
#define RTW_HEADER_M2_POS_Control_h_
#include <string.h>
#include <stddef.h>
#ifndef M2_POS_Control_COMMON_INCLUDES_
#define M2_POS_Control_COMMON_INCLUDES_
#include "rtwtypes.h"
#endif                                 /* M2_POS_Control_COMMON_INCLUDES_ */

#include "M2_POS_Control_types.h"

/* Macros for accessing real-time model data structure */
#ifndef rtmGetErrorStatus
#define rtmGetErrorStatus(rtm)         ((rtm)->errorStatus)
#endif

#ifndef rtmSetErrorStatus
#define rtmSetErrorStatus(rtm, val)    ((rtm)->errorStatus = (val))
#endif

/* Block states (default storage) for system '<Root>' */
typedef struct {
  real_T FBcontroller_states[126];     /* '<S1>/FB controller' */
} DW_M2_POS_Control_T;

/* Constant parameters (default storage) */
typedef struct {
  /* Expression: kron(eye(42),[1;-1])
   * Referenced by: '<S1>/kron(eye(42),[1;-1])'
   */
  real_T kroneye4211_Gain[3528];
} ConstP_M2_POS_Control_T;

/* External inputs (root inport signals with default storage) */
typedef struct {
  real_T M2_pos_cmd[42];               /* '<Root>/M2_pos_cmd' */
  real_T M2_pos_FB[84];                /* '<Root>/M2_pos_FB' */
} ExtU_M2_POS_Control_T;

/* External outputs (root outports fed by signals with default storage) */
typedef struct {
  real_T M2_pos_act_F[84];             /* '<Root>/M2_pos_act_F' */
} ExtY_M2_POS_Control_T;

/* Real-time Model Data Structure */
struct tag_RTM_M2_POS_Control_T {
  const char_T * volatile errorStatus;
};

/* Block states (default storage) */
extern DW_M2_POS_Control_T M2_POS_Control_DW;

/* External inputs (root inport signals with default storage) */
extern ExtU_M2_POS_Control_T M2_POS_Control_U;

/* External outputs (root outports fed by signals with default storage) */
extern ExtY_M2_POS_Control_T M2_POS_Control_Y;

/* Constant parameters (default storage) */
extern const ConstP_M2_POS_Control_T M2_POS_Control_ConstP;

/* Model entry point functions */
extern void M2_POS_Control_initialize(void);
extern void M2_POS_Control_step(void);
extern void M2_POS_Control_terminate(void);

/* Real-time Model object */
extern RT_MODEL_M2_POS_Control_T *const M2_POS_Control_M;

/*-
 * The generated code includes comments that allow you to trace directly
 * back to the appropriate location in the model.  The basic format
 * is <system>/block_name, where system is the system number (uniquely
 * assigned by Simulink) and block_name is the name of the block.
 *
 * Note that this particular code originates from a subsystem build,
 * and has its own system numbers different from the parent model.
 * Refer to the system hierarchy for this subsystem below, and use the
 * MATLAB hilite_system command to trace the generated code back
 * to the parent model.  For example,
 *
 * hilite_system('ims_Build5pt3b_PTTasm/M2_POS_Control')    - opens subsystem ims_Build5pt3b_PTTasm/M2_POS_Control
 * hilite_system('ims_Build5pt3b_PTTasm/M2_POS_Control/Kp') - opens and selects block Kp
 *
 * Here is the system hierarchy for this model
 *
 * '<Root>' : 'ims_Build5pt3b_PTTasm'
 * '<S1>'   : 'ims_Build5pt3b_PTTasm/M2_POS_Control'
 */
#endif                                 /* RTW_HEADER_M2_POS_Control_h_ */

/*
 * File trailer for generated code.
 *
 * [EOF]
 */
"##}