Compare commits

...

6 Commits

Author SHA1 Message Date
Thefeli73
6f7ba57f82 comment ouy unused function 2021-04-17 12:53:46 +02:00
Thefeli73
6784a07372 add actual lqr (not compiling yet) 2021-04-16 15:38:21 +02:00
Thefeli73
0b15ba05cd .h files 2021-04-16 15:37:43 +02:00
Thefeli73
5515304b4f new lqr 2021-04-15 22:10:45 +02:00
Thefeli73
aefed82ba4 remove code from temp lqr, remove unused lines 2021-04-15 16:55:16 +02:00
Thefeli73
0de3be94eb simulink model export 2021-04-15 16:54:53 +02:00
82 changed files with 25656 additions and 23 deletions

228
EENX15_LQR/Arduino_skal.h Normal file
View File

@ -0,0 +1,228 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: Arduino_skal.h
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#ifndef RTW_HEADER_Arduino_skal_h_
#define RTW_HEADER_Arduino_skal_h_
//#include <cstring>
#include "rtwtypes.h"
//#include "rtw_continuous.h"
//#include "rtw_solver.h"
// Model Code Variants
// 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
#ifndef rtmGetStopRequested
#define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
#endif
#ifndef rtmSetStopRequested
#define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
#endif
#ifndef rtmGetStopRequestedPtr
#define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
#endif
#ifndef rtmGetT
#define rtmGetT(rtm) (rtmGetTPtr((rtm))[0])
#endif
#ifndef rtmGetTPtr
#define rtmGetTPtr(rtm) ((rtm)->Timing.t)
#endif
#ifndef ODE3_INTG
#define ODE3_INTG
// ODE3 Integration Data
struct ODE3_IntgData {
real_T *y; // output
real_T *f[3]; // derivatives
};
#endif
// Class declaration for model Arduino_skal
class Arduino_skalModelClass {
// public data and function members
public:
// Block signals and states (default storage) for system '<Root>'
struct DW {
real_T Sum4[4]; // '<Root>/Sum4'
};
// Continuous states (default storage)
struct X {
real_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// State derivatives (default storage)
struct XDot {
real_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// State disabled
struct XDis {
boolean_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// Constant parameters (default storage)
struct ConstP {
// Expression: [100;200]
// Referenced by: '<Root>/vartejag'
real_T vartejag_Value[2];
// Expression: A
// Referenced by: '<Root>/Gain4'
real_T Gain4_Gain[16];
// Expression: C
// Referenced by: '<Root>/Gain6'
real_T Gain6_Gain[8];
// Expression: L
// Referenced by: '<Root>/Gain2'
real_T Gain2_Gain[8];
// Expression: B
// Referenced by: '<Root>/Gain3'
real_T Gain3_Gain[4];
};
// Real-time Model Data Structure
struct RT_MODEL {
const char_T *errorStatus;
//RTWSolverInfo solverInfo;
X *contStates;
int_T *periodicContStateIndices;
real_T *periodicContStateRanges;
real_T *derivs;
boolean_T *contStateDisabled;
boolean_T zCCacheNeedsReset;
boolean_T derivCacheNeedsReset;
boolean_T CTOutputIncnstWithState;
real_T odeY[4];
real_T odeF[3][4];
ODE3_IntgData intgData;
//
// Sizes:
// The following substructure contains sizes information
// for many of the model attributes such as inputs, outputs,
// dwork, sample times, etc.
struct {
int_T numContStates;
int_T numPeriodicContStates;
int_T numSampTimes;
} Sizes;
//
// Timing:
// The following substructure contains information regarding
// the timing information for the model.
struct {
uint32_T clockTick0;
time_T stepSize0;
uint32_T clockTick1;
SimTimeStep simTimeStep;
boolean_T stopRequestedFlag;
time_T *t;
time_T tArray[2];
} Timing;
};
// model initialize function
void initialize();
// model step function
void step();
// Constructor
Arduino_skalModelClass();
// Destructor
~Arduino_skalModelClass();
// Real-Time Model get method
Arduino_skalModelClass::RT_MODEL * getRTM();
// private data and function members
private:
// Block signals and states
DW rtDW;
X rtX; // Block continuous states
// Real-Time Model
RT_MODEL rtM;
// Continuous states update member function
//void rt_ertODEUpdateContinuousStates(RTWSolverInfo *si );
// Derivatives member function
void Arduino_skal_derivatives();
};
// Constant parameters (default storage)
extern const Arduino_skalModelClass::ConstP rtConstP;
//-
// These blocks were eliminated from the model due to optimizations:
//
// Block '<Root>/Kr' : Eliminated nontunable gain of 1
//-
// 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.
//
// Use the MATLAB hilite_system command to trace the generated code back
// to the model. For example,
//
// hilite_system('<S3>') - opens system 3
// hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
//
// Here is the system hierarchy for this model
//
// '<Root>' : 'Arduino_skal'
#endif // RTW_HEADER_Arduino_skal_h_
//
// File trailer for generated code.
//
// [EOF]
//

View File

@ -143,14 +143,15 @@ void printInfo(){
Serial.print("Rads rotated: "); Serial.println(countA/8.91); //ca. 56 tick per rotation, 6.26 rads per rotation Serial.print("Rads rotated: "); Serial.println(countA/8.91); //ca. 56 tick per rotation, 6.26 rads per rotation
Serial.print("RPM: "); Serial.println(rpm); //ca. 56 tick per rotation Serial.print("RPM: "); Serial.println(rpm); //ca. 56 tick per rotation
Serial.print("Rads per second: "); Serial.println(rps); //ca. 56 tick per rotation, 6.26 rads per rotation Serial.print("Rads per second: "); Serial.println(rps); //ca. 56 tick per rotation, 6.26 rads per rotation
//Serial.print("A: "); Serial.println(countA);
//Serial.print("B: "); Serial.println(countB);
} }
void setSpeed(){ void setSpeed(){
if(abs(safe_angle)<50 ){ if(abs(safe_angle)<50 ){
speed = 8*safe_angle; //speed = 8*safe_angle;
float position_m = countA/174.76;
float angle_r = angle_pitch_output * 0.318;
speed = inputToControlSystem(position_m, angle_r);
speed *= 22;
if(speed<0){ if(speed<0){
digitalWrite(MotorPinB, CW); digitalWrite(MotorPinB, CW);
digitalWrite(MotorPinA, CCW); digitalWrite(MotorPinA, CCW);
@ -165,7 +166,7 @@ void setSpeed(){
speed = 0; speed = 0;
} }
speed = abs(speed); speed = abs(speed);
speed = constrain(speed, 0, 249); speed = constrain(speed, 0, 250);
analogWrite(MotorSpeedB, speed); //Wheel close to connections analogWrite(MotorSpeedB, speed); //Wheel close to connections
analogWrite(MotorSpeedA, speed); //First experiment wheel analogWrite(MotorSpeedA, speed); //First experiment wheel
} }

View File

@ -1,23 +1,125 @@
/** Control Law*/ //LQR-stuff
const float K[statesNumber] = {0.55192, 8.9867, 0.194, 0.39237}; #include "Arduino_skal.h"
//K from our calculation // | ///////////////////////////////////
//const float K[statesNumber] = {-31.6228, -21.2864, 80.7894, 13.4246}; // | //Row 24-52 in Arduino_skal_data.cpp
// v ///////////////////////////////////
const double Arduino_skalModelClass::ConstP rtConstP = {
// Expression: [100;200]
// Referenced by: '<Root>/vartejag'
/** Correction factor */ { 100.0, 200.0 },
const float scaleConst = 2.5;
/** // Expression: A
* LQR control law // Referenced by: '<Root>/Gain4'
*/
void lqr() { { 0.0, 0.0, 0.0, 0.0, 1.0, -0.20780947085442231, 0.0, -0.52810302415000854,
speed = 0; 0.0, 13.239785742831822, 0.0, 58.601480177829842, 0.0, 0.0, 1.0, 0.0 },
// Expression: C
// Referenced by: '<Root>/Gain6'
{ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
// Expression: L
// Referenced by: '<Root>/Gain2'
{ 116.63033952875418, 3387.8673967111704, -1.4473912197449676,
-115.34372132703447, -1.0534041975488044, -48.223441605702455,
117.16185100039935, 3490.0480780568214 },
// Expression: B
// Referenced by: '<Root>/Gain3'
{ 0.0, 2.078094708544223, 0.0, 5.2810302415000852 }
};
// | ///////////////////////////////////
// | //Row 261-264 in Arduino_skal.cpp
// v ///////////////////////////////////
rtX.Integrator1_CSTATE[0] = 0.0;
rtX.Integrator1_CSTATE[1] = 0.0;
rtX.Integrator1_CSTATE[2] = 0.0;
rtX.Integrator1_CSTATE[3] = 0.0;
// | ///////////////////////////////////
// | //Row 123-124 in Arduino_skal.cpp
// v ///////////////////////////////////
real_T tmp[2];
int rtb_Saturation;
// | ///////////////////////////////////
// | //Row 140-143 in Arduino_skal.cpp
// v ///////////////////////////////////
// Denna funktion bör anropas när styrka + riktning till motorer ska bestämmas.
int saturatedSignalToMotors(){
rtb_Saturation = ((-31.622776601683942 * rtX.Integrator1_CSTATE[0] +
-21.286439360075747 * rtX.Integrator1_CSTATE[1]) +
80.789376267003959 * rtX.Integrator1_CSTATE[2]) +
13.42463576551093 * rtX.Integrator1_CSTATE[3];
speed -= motorAngularPosition * K[0]; if (0.0 - rtb_Saturation > 11.5) {
speed -= correctedAngularPosition * K[1]; rtb_Saturation = 11.5;
speed -= motorAngularSpeed * K[2]; } else if (0.0 - rtb_Saturation < -11.5) {
speed -= angularSpeed * K[3]; rtb_Saturation = -11.5;
} else {
speed = speed*scaleConst; rtb_Saturation = 0.0 - rtb_Saturation;
}
return rtb_Saturation;
}
// | ///////////////////////////////////
// | //Row 165-188 in Arduino_skal.cpp
// v ///////////////////////////////////
int inputToControlSystem(float position_m, float angle_r){
float posAndAng[] = {position_m, angle_r};
for (i = 0; i < 2; i++) {
tmp[i] = rtConstP.posAndAng[i] - (((rtConstP.Gain6_Gain[i + 2] *
rtX.Integrator1_CSTATE[1] + rtConstP.Gain6_Gain[i] *
rtX.Integrator1_CSTATE[0]) + rtConstP.Gain6_Gain[i + 4] *
rtX.Integrator1_CSTATE[2]) + rtConstP.Gain6_Gain[i + 6] *
rtX.Integrator1_CSTATE[3]);
}
// End of Sum: '<Root>/Sum2'
for (i = 0; i < 4; i++) {
// Sum: '<Root>/Sum4' incorporates:
// Gain: '<Root>/Gain2'
// Gain: '<Root>/Gain3'
// Gain: '<Root>/Gain4'
// Integrator: '<Root>/Integrator1'
// Sum: '<Root>/Sum3'
rtDW.Sum4[i] = ((rtConstP.Gain2_Gain[i + 4] * tmp[1] + rtConstP.Gain2_Gain[i]
* tmp[0]) + rtConstP.Gain3_Gain[i] * rtb_Saturation) +
(rtConstP.Gain4_Gain[i + 12] * rtX.Integrator1_CSTATE[3] +
(rtConstP.Gain4_Gain[i + 8] * rtX.Integrator1_CSTATE[2] +
(rtConstP.Gain4_Gain[i + 4] * rtX.Integrator1_CSTATE[1] +
rtConstP.Gain4_Gain[i] * rtX.Integrator1_CSTATE[0])));
}
/*
Integrator1_CSTATE[0] = rtDW.Sum4[0];
Integrator1_CSTATE[1] = rtDW.Sum4[1];
Integrator1_CSTATE[2] = rtDW.Sum4[2];
Integrator1_CSTATE[3] = rtDW.Sum4[3];
*/
return saturatedSignalToMotors();
}
// | ///////////////////////////////////
// | //Row 215-225 in Arduino_skal.cpp
// v ///////////////////////////////////
void Arduino_skalModelClass::Arduino_skal_derivatives()
{
Arduino_skalModelClass::XDot *_rtXdot;
_rtXdot = ((XDot *) (&rtM)->derivs);
// Derivatives for Integrator: '<Root>/Integrator1'
_rtXdot->Integrator1_CSTATE[0] = rtDW.Sum4[0];
_rtXdot->Integrator1_CSTATE[1] = rtDW.Sum4[1];
_rtXdot->Integrator1_CSTATE[2] = rtDW.Sum4[2];
_rtXdot->Integrator1_CSTATE[3] = rtDW.Sum4[3];
} }

106
EENX15_LQR/rtwtypes.h Normal file
View File

@ -0,0 +1,106 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: rtwtypes.h
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#ifndef RTWTYPES_H
#define RTWTYPES_H
// Logical type definitions
#if (!defined(__cplusplus))
#ifndef false
#define false (0U)
#endif
#ifndef true
#define true (1U)
#endif
#endif
//=======================================================================*
// Target hardware information
// Device type: AMD->x86-64 (Windows64)
// Number of bits: char: 8 short: 16 int: 32
// long: 32 long long: 64
// native word size: 64
// Byte ordering: LittleEndian
// Signed integer division rounds to: Zero
// Shift right on a signed integer as arithmetic shift: on
// =======================================================================
//=======================================================================*
// Fixed width word size data types: *
// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
// real32_T, real64_T - 32 and 64 bit floating point numbers *
// =======================================================================
typedef signed char int8_T;
typedef unsigned char uint8_T;
typedef short int16_T;
typedef unsigned short uint16_T;
typedef int int32_T;
typedef unsigned int uint32_T;
typedef long long int64_T;
typedef unsigned long long uint64_T;
typedef float real32_T;
typedef double real64_T;
//===========================================================================*
// Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T, *
// real_T, time_T, ulong_T, ulonglong_T. *
// ===========================================================================
typedef double real_T;
typedef double time_T;
typedef unsigned char boolean_T;
typedef int int_T;
typedef unsigned int uint_T;
typedef unsigned long ulong_T;
typedef unsigned long long ulonglong_T;
typedef char char_T;
typedef unsigned char uchar_T;
typedef char_T byte_T;
//=======================================================================*
// Min and Max: *
// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
// =======================================================================
#define MAX_int8_T ((int8_T)(127))
#define MIN_int8_T ((int8_T)(-128))
#define MAX_uint8_T ((uint8_T)(255U))
#define MAX_int16_T ((int16_T)(32767))
#define MIN_int16_T ((int16_T)(-32768))
#define MAX_uint16_T ((uint16_T)(65535U))
#define MAX_int32_T ((int32_T)(2147483647))
#define MIN_int32_T ((int32_T)(-2147483647-1))
#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU))
#define MAX_int64_T ((int64_T)(9223372036854775807LL))
#define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
#define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
// Block D-Work pointer type
typedef void * pointer_T;
#endif // RTWTYPES_H
//
// File trailer for generated code.
//
// [EOF]
//

View File

@ -0,0 +1,605 @@
/*
* Arduino_skal.cpp
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#include "Arduino_skal.h"
#include "Arduino_skal_private.h"
/*
* This function updates continuous states using the ODE3 fixed-step
* solver algorithm
*/
void Arduino_skalModelClass::rt_ertODEUpdateContinuousStates(RTWSolverInfo *si )
{
/* Solver Matrices */
static const real_T rt_ODE3_A[3] = {
1.0/2.0, 3.0/4.0, 1.0
};
static const real_T rt_ODE3_B[3][3] = {
{ 1.0/2.0, 0.0, 0.0 },
{ 0.0, 3.0/4.0, 0.0 },
{ 2.0/9.0, 1.0/3.0, 4.0/9.0 }
};
time_T t = rtsiGetT(si);
time_T tnew = rtsiGetSolverStopTime(si);
time_T h = rtsiGetStepSize(si);
real_T *x = rtsiGetContStates(si);
ODE3_IntgData *id = static_cast<ODE3_IntgData *>(rtsiGetSolverData(si));
real_T *y = id->y;
real_T *f0 = id->f[0];
real_T *f1 = id->f[1];
real_T *f2 = id->f[2];
real_T hB[3];
int_T i;
int_T nXc = 4;
rtsiSetSimTimeStep(si,MINOR_TIME_STEP);
/* Save the state values at time t in y, we'll use x as ynew. */
(void) std::memcpy(y, x,
static_cast<uint_T>(nXc)*sizeof(real_T));
/* Assumes that rtsiSetT and ModelOutputs are up-to-date */
/* f0 = f(t,y) */
rtsiSetdX(si, f0);
Arduino_skal_derivatives();
/* f(:,2) = feval(odefile, t + hA(1), y + f*hB(:,1), args(:)(*)); */
hB[0] = h * rt_ODE3_B[0][0];
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0]);
}
rtsiSetT(si, t + h*rt_ODE3_A[0]);
rtsiSetdX(si, f1);
this->step();
Arduino_skal_derivatives();
/* f(:,3) = feval(odefile, t + hA(2), y + f*hB(:,2), args(:)(*)); */
for (i = 0; i <= 1; i++) {
hB[i] = h * rt_ODE3_B[1][i];
}
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1]);
}
rtsiSetT(si, t + h*rt_ODE3_A[1]);
rtsiSetdX(si, f2);
this->step();
Arduino_skal_derivatives();
/* tnew = t + hA(3);
ynew = y + f*hB(:,3); */
for (i = 0; i <= 2; i++) {
hB[i] = h * rt_ODE3_B[2][i];
}
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1] + f2[i]*hB[2]);
}
rtsiSetT(si, tnew);
rtsiSetSimTimeStep(si,MAJOR_TIME_STEP);
}
/* Model step function */
void Arduino_skalModelClass::step()
{
const real_T *tmp_3;
real_T currentTime;
real_T tmp;
real_T tmp_0;
real_T tmp_1;
real_T tmp_2;
real_T u0;
int32_T i;
int32_T i_0;
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* set solver stop time */
if (!((&Arduino_skal_M)->Timing.clockTick0+1)) {
rtsiSetSolverStopTime(&(&Arduino_skal_M)->solverInfo, (((&Arduino_skal_M
)->Timing.clockTickH0 + 1) * (&Arduino_skal_M)->Timing.stepSize0 *
4294967296.0));
} else {
rtsiSetSolverStopTime(&(&Arduino_skal_M)->solverInfo, (((&Arduino_skal_M
)->Timing.clockTick0 + 1) * (&Arduino_skal_M)->Timing.stepSize0 +
(&Arduino_skal_M)->Timing.clockTickH0 * (&Arduino_skal_M)
->Timing.stepSize0 * 4294967296.0));
}
} /* end MajorTimeStep */
/* Update absolute time of base rate at minor time step */
if (rtmIsMinorTimeStep((&Arduino_skal_M))) {
(&Arduino_skal_M)->Timing.t[0] = rtsiGetT(&(&Arduino_skal_M)->solverInfo);
}
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* Constant: '<S1>/X0' */
Arduino_skal_B.X0[0] = Arduino_skal_P.X0_Value[0];
Arduino_skal_B.X0[1] = Arduino_skal_P.X0_Value[1];
Arduino_skal_B.X0[2] = Arduino_skal_P.X0_Value[2];
Arduino_skal_B.X0[3] = Arduino_skal_P.X0_Value[3];
}
/* Integrator: '<S1>/MemoryX' */
if (Arduino_skal_DW.MemoryX_IWORK != 0) {
Arduino_skal_X.MemoryX_CSTATE[0] = Arduino_skal_B.X0[0];
Arduino_skal_X.MemoryX_CSTATE[1] = Arduino_skal_B.X0[1];
Arduino_skal_X.MemoryX_CSTATE[2] = Arduino_skal_B.X0[2];
Arduino_skal_X.MemoryX_CSTATE[3] = Arduino_skal_B.X0[3];
}
/* Integrator: '<S1>/MemoryX' */
Arduino_skal_B.MemoryX[0] = Arduino_skal_X.MemoryX_CSTATE[0];
/* Gain: '<Root>/Gain' */
u0 = Arduino_skal_P.K[0] * Arduino_skal_B.MemoryX[0];
/* Integrator: '<S1>/MemoryX' */
Arduino_skal_B.MemoryX[1] = Arduino_skal_X.MemoryX_CSTATE[1];
/* Gain: '<Root>/Gain' */
u0 += Arduino_skal_P.K[1] * Arduino_skal_B.MemoryX[1];
/* Integrator: '<S1>/MemoryX' */
Arduino_skal_B.MemoryX[2] = Arduino_skal_X.MemoryX_CSTATE[2];
/* Gain: '<Root>/Gain' */
u0 += Arduino_skal_P.K[2] * Arduino_skal_B.MemoryX[2];
/* Integrator: '<S1>/MemoryX' */
Arduino_skal_B.MemoryX[3] = Arduino_skal_X.MemoryX_CSTATE[3];
/* Gain: '<Root>/Gain' */
u0 += Arduino_skal_P.K[3] * Arduino_skal_B.MemoryX[3];
/* Gain: '<Root>/Gain' */
Arduino_skal_B.Gain = u0;
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* MATLAB Function: '<S51>/SqrtUsedFcn' incorporates:
* Constant: '<S2>/CovarianceZ'
* Constant: '<S51>/isSqrtUsed'
*/
/* : if isSqrtUsed */
if (Arduino_skal_P.isSqrtUsed_Value) {
/* : P = u*u.'; */
for (i = 0; i < 4; i++) {
for (i_0 = 0; i_0 < 4; i_0++) {
Arduino_skal_B.P[i_0 + (i << 2)] = 0.0;
Arduino_skal_B.P[i_0 + (i << 2)] +=
Arduino_skal_P.CovarianceZ_Value[i_0] *
Arduino_skal_P.CovarianceZ_Value[i];
Arduino_skal_B.P[i_0 + (i << 2)] +=
Arduino_skal_P.CovarianceZ_Value[i_0 + 4] *
Arduino_skal_P.CovarianceZ_Value[i + 4];
Arduino_skal_B.P[i_0 + (i << 2)] +=
Arduino_skal_P.CovarianceZ_Value[i_0 + 8] *
Arduino_skal_P.CovarianceZ_Value[i + 8];
Arduino_skal_B.P[i_0 + (i << 2)] +=
Arduino_skal_P.CovarianceZ_Value[i_0 + 12] *
Arduino_skal_P.CovarianceZ_Value[i + 12];
}
}
} else {
/* : else */
/* : P = u; */
std::memcpy(&Arduino_skal_B.P[0], &Arduino_skal_P.CovarianceZ_Value[0],
sizeof(real_T) << 4U);
}
/* End of MATLAB Function: '<S51>/SqrtUsedFcn' */
}
/* Product: '<S22>/A[k]*xhat[k|k-1]' incorporates:
* Constant: '<S1>/A'
*/
tmp_3 = &Arduino_skal_P.A_Value[0];
tmp = Arduino_skal_B.MemoryX[0];
tmp_0 = Arduino_skal_B.MemoryX[1];
tmp_1 = Arduino_skal_B.MemoryX[2];
tmp_2 = Arduino_skal_B.MemoryX[3];
for (i = 0; i < 4; i++) {
u0 = tmp_3[i] * tmp;
u0 += tmp_3[i + 4] * tmp_0;
u0 += tmp_3[i + 8] * tmp_1;
u0 += tmp_3[i + 12] * tmp_2;
/* Product: '<S22>/A[k]*xhat[k|k-1]' */
Arduino_skal_B.Akxhatkk1[i] = u0;
}
/* End of Product: '<S22>/A[k]*xhat[k|k-1]' */
/* Step: '<Root>/Step' */
currentTime = (&Arduino_skal_M)->Timing.t[0];
if (currentTime < Arduino_skal_P.Step_Time) {
/* Step: '<Root>/Step' */
Arduino_skal_B.Step = Arduino_skal_P.Step_Y0;
} else {
/* Step: '<Root>/Step' */
Arduino_skal_B.Step = Arduino_skal_P.Step_YFinal;
}
/* End of Step: '<Root>/Step' */
/* Gain: '<Root>/Kr' */
Arduino_skal_B.Kr = Arduino_skal_P.Kr * Arduino_skal_B.Step;
/* Sum: '<Root>/Sum5' */
Arduino_skal_B.Sum5 = Arduino_skal_B.Kr - Arduino_skal_B.Gain;
/* Saturate: '<Root>/Saturation' */
u0 = Arduino_skal_B.Sum5;
tmp = Arduino_skal_P.Saturation_LowerSat;
tmp_0 = Arduino_skal_P.Saturation_UpperSat;
if (u0 > tmp_0) {
/* Saturate: '<Root>/Saturation' */
Arduino_skal_B.Saturation = tmp_0;
} else if (u0 < tmp) {
/* Saturate: '<Root>/Saturation' */
Arduino_skal_B.Saturation = tmp;
} else {
/* Saturate: '<Root>/Saturation' */
Arduino_skal_B.Saturation = u0;
}
/* End of Saturate: '<Root>/Saturation' */
/* Product: '<S22>/B[k]*u[k]' incorporates:
* Constant: '<S1>/B'
*/
currentTime = Arduino_skal_B.Saturation;
u0 = Arduino_skal_P.B_Value[0];
/* Product: '<S22>/B[k]*u[k]' */
Arduino_skal_B.Bkuk[0] = u0 * currentTime;
/* Product: '<S22>/B[k]*u[k]' incorporates:
* Constant: '<S1>/B'
*/
u0 = Arduino_skal_P.B_Value[1];
/* Product: '<S22>/B[k]*u[k]' */
Arduino_skal_B.Bkuk[1] = u0 * currentTime;
/* Product: '<S22>/B[k]*u[k]' incorporates:
* Constant: '<S1>/B'
*/
u0 = Arduino_skal_P.B_Value[2];
/* Product: '<S22>/B[k]*u[k]' */
Arduino_skal_B.Bkuk[2] = u0 * currentTime;
/* Product: '<S22>/B[k]*u[k]' incorporates:
* Constant: '<S1>/B'
*/
u0 = Arduino_skal_P.B_Value[3];
/* Product: '<S22>/B[k]*u[k]' */
Arduino_skal_B.Bkuk[3] = u0 * currentTime;
/* Outputs for Enabled SubSystem: '<S22>/MeasurementUpdate' incorporates:
* EnablePort: '<S53>/Enable'
*/
if (rtmIsMajorTimeStep((&Arduino_skal_M)) && rtmIsMajorTimeStep
((&Arduino_skal_M))) {
/* Constant: '<S1>/Enable' */
if (Arduino_skal_P.Enable_Value) {
Arduino_skal_DW.MeasurementUpdate_MODE = true;
} else if (Arduino_skal_DW.MeasurementUpdate_MODE) {
/* Disable for Product: '<S53>/Product3' incorporates:
* Outport: '<S53>/L*(y[k]-yhat[k|k-1])'
*/
Arduino_skal_B.Product3[0] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[1] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[2] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[3] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_DW.MeasurementUpdate_MODE = false;
}
/* End of Constant: '<S1>/Enable' */
}
if (Arduino_skal_DW.MeasurementUpdate_MODE) {
/* Product: '<S53>/C[k]*xhat[k|k-1]' incorporates:
* Constant: '<S1>/C'
* Product: '<S53>/Product3'
*/
tmp_3 = &Arduino_skal_P.C_Value[0];
tmp = Arduino_skal_B.MemoryX[0];
tmp_0 = Arduino_skal_B.MemoryX[1];
tmp_1 = Arduino_skal_B.MemoryX[2];
tmp_2 = Arduino_skal_B.MemoryX[3];
/* Product: '<S53>/D[k]*u[k]' */
currentTime = Arduino_skal_B.Saturation;
for (i = 0; i < 2; i++) {
/* Product: '<S53>/C[k]*xhat[k|k-1]' */
u0 = tmp_3[i] * tmp;
u0 += tmp_3[i + 2] * tmp_0;
u0 += tmp_3[i + 4] * tmp_1;
u0 += tmp_3[i + 6] * tmp_2;
/* Product: '<S53>/C[k]*xhat[k|k-1]' */
Arduino_skal_B.Ckxhatkk1[i] = u0;
/* Product: '<S53>/D[k]*u[k]' incorporates:
* Constant: '<S1>/D'
*/
u0 = Arduino_skal_P.D_Value[i];
/* Product: '<S53>/D[k]*u[k]' */
Arduino_skal_B.Dkuk[i] = u0 * currentTime;
/* Sum: '<S53>/Add1' incorporates:
* Product: '<S53>/D[k]*u[k]'
*/
Arduino_skal_B.yhatkk1[i] = Arduino_skal_B.Ckxhatkk1[i] +
Arduino_skal_B.Dkuk[i];
/* Sum: '<S53>/Sum' incorporates:
* Constant: '<Root>/Constant'
* Sum: '<S53>/Add1'
*/
Arduino_skal_B.Sum[i] = Arduino_skal_P.Constant_Value[i] -
Arduino_skal_B.yhatkk1[i];
}
/* Product: '<S53>/Product3' incorporates:
* Constant: '<S2>/KalmanGainL'
* Product: '<S53>/C[k]*xhat[k|k-1]'
* Sum: '<S53>/Sum'
*/
tmp_3 = &Arduino_skal_P.KalmanGainL_Value[0];
tmp = Arduino_skal_B.Sum[0];
tmp_0 = Arduino_skal_B.Sum[1];
for (i = 0; i < 4; i++) {
/* Product: '<S53>/Product3' */
Arduino_skal_B.Product3[i] = 0.0;
Arduino_skal_B.Product3[i] += tmp_3[i] * tmp;
Arduino_skal_B.Product3[i] += tmp_3[i + 4] * tmp_0;
}
}
/* End of Outputs for SubSystem: '<S22>/MeasurementUpdate' */
/* Sum: '<S22>/Add' incorporates:
* Product: '<S22>/B[k]*u[k]'
* Product: '<S53>/Product3'
*/
Arduino_skal_B.Add[0] = (Arduino_skal_B.Bkuk[0] + Arduino_skal_B.Akxhatkk1[0])
+ Arduino_skal_B.Product3[0];
Arduino_skal_B.Add[1] = (Arduino_skal_B.Bkuk[1] + Arduino_skal_B.Akxhatkk1[1])
+ Arduino_skal_B.Product3[1];
Arduino_skal_B.Add[2] = (Arduino_skal_B.Bkuk[2] + Arduino_skal_B.Akxhatkk1[2])
+ Arduino_skal_B.Product3[2];
Arduino_skal_B.Add[3] = (Arduino_skal_B.Bkuk[3] + Arduino_skal_B.Akxhatkk1[3])
+ Arduino_skal_B.Product3[3];
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* Matfile logging */
rt_UpdateTXYLogVars((&Arduino_skal_M)->rtwLogInfo, ((&Arduino_skal_M)
->Timing.t));
} /* end MajorTimeStep */
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* Update for Integrator: '<S1>/MemoryX' */
Arduino_skal_DW.MemoryX_IWORK = 0;
} /* end MajorTimeStep */
if (rtmIsMajorTimeStep((&Arduino_skal_M))) {
/* signal main to stop simulation */
{ /* Sample time: [0.0s, 0.0s] */
if ((rtmGetTFinal((&Arduino_skal_M))!=-1) &&
!((rtmGetTFinal((&Arduino_skal_M))-((((&Arduino_skal_M)
->Timing.clockTick1+(&Arduino_skal_M)->Timing.clockTickH1*
4294967296.0)) * 0.2)) > ((((&Arduino_skal_M)->Timing.clockTick1+
(&Arduino_skal_M)->Timing.clockTickH1* 4294967296.0)) * 0.2) *
(DBL_EPSILON))) {
rtmSetErrorStatus((&Arduino_skal_M), "Simulation finished");
}
}
rt_ertODEUpdateContinuousStates(&(&Arduino_skal_M)->solverInfo);
/* Update absolute time for base rate */
/* The "clockTick0" counts the number of times the code of this task has
* been executed. The absolute time is the multiplication of "clockTick0"
* and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
* overflow during the application lifespan selected.
* Timer of this task consists of two 32 bit unsigned integers.
* The two integers represent the low bits Timing.clockTick0 and the high bits
* Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
*/
if (!(++(&Arduino_skal_M)->Timing.clockTick0)) {
++(&Arduino_skal_M)->Timing.clockTickH0;
}
(&Arduino_skal_M)->Timing.t[0] = rtsiGetSolverStopTime(&(&Arduino_skal_M)
->solverInfo);
{
/* Update absolute timer for sample time: [0.2s, 0.0s] */
/* The "clockTick1" counts the number of times the code of this task has
* been executed. The resolution of this integer timer is 0.2, which is the step size
* of the task. Size of "clockTick1" ensures timer will not overflow during the
* application lifespan selected.
* Timer of this task consists of two 32 bit unsigned integers.
* The two integers represent the low bits Timing.clockTick1 and the high bits
* Timing.clockTickH1. When the low bit overflows to 0, the high bits increment.
*/
(&Arduino_skal_M)->Timing.clockTick1++;
if (!(&Arduino_skal_M)->Timing.clockTick1) {
(&Arduino_skal_M)->Timing.clockTickH1++;
}
}
} /* end MajorTimeStep */
}
/* Derivatives for root system: '<Root>' */
void Arduino_skalModelClass::Arduino_skal_derivatives()
{
XDot_Arduino_skal_T *_rtXdot;
_rtXdot = ((XDot_Arduino_skal_T *) (&Arduino_skal_M)->derivs);
/* Derivatives for Integrator: '<S1>/MemoryX' */
_rtXdot->MemoryX_CSTATE[0] = Arduino_skal_B.Add[0];
_rtXdot->MemoryX_CSTATE[1] = Arduino_skal_B.Add[1];
_rtXdot->MemoryX_CSTATE[2] = Arduino_skal_B.Add[2];
_rtXdot->MemoryX_CSTATE[3] = Arduino_skal_B.Add[3];
}
/* Model initialize function */
void Arduino_skalModelClass::initialize()
{
/* Registration code */
/* initialize non-finites */
rt_InitInfAndNaN(sizeof(real_T));
{
/* Setup solver object */
rtsiSetSimTimeStepPtr(&(&Arduino_skal_M)->solverInfo, &(&Arduino_skal_M)
->Timing.simTimeStep);
rtsiSetTPtr(&(&Arduino_skal_M)->solverInfo, &rtmGetTPtr((&Arduino_skal_M)));
rtsiSetStepSizePtr(&(&Arduino_skal_M)->solverInfo, &(&Arduino_skal_M)
->Timing.stepSize0);
rtsiSetdXPtr(&(&Arduino_skal_M)->solverInfo, &(&Arduino_skal_M)->derivs);
rtsiSetContStatesPtr(&(&Arduino_skal_M)->solverInfo, (real_T **)
&(&Arduino_skal_M)->contStates);
rtsiSetNumContStatesPtr(&(&Arduino_skal_M)->solverInfo, &(&Arduino_skal_M)
->Sizes.numContStates);
rtsiSetNumPeriodicContStatesPtr(&(&Arduino_skal_M)->solverInfo,
&(&Arduino_skal_M)->Sizes.numPeriodicContStates);
rtsiSetPeriodicContStateIndicesPtr(&(&Arduino_skal_M)->solverInfo,
&(&Arduino_skal_M)->periodicContStateIndices);
rtsiSetPeriodicContStateRangesPtr(&(&Arduino_skal_M)->solverInfo,
&(&Arduino_skal_M)->periodicContStateRanges);
rtsiSetErrorStatusPtr(&(&Arduino_skal_M)->solverInfo, (&rtmGetErrorStatus
((&Arduino_skal_M))));
rtsiSetRTModelPtr(&(&Arduino_skal_M)->solverInfo, (&Arduino_skal_M));
}
rtsiSetSimTimeStep(&(&Arduino_skal_M)->solverInfo, MAJOR_TIME_STEP);
(&Arduino_skal_M)->intgData.y = (&Arduino_skal_M)->odeY;
(&Arduino_skal_M)->intgData.f[0] = (&Arduino_skal_M)->odeF[0];
(&Arduino_skal_M)->intgData.f[1] = (&Arduino_skal_M)->odeF[1];
(&Arduino_skal_M)->intgData.f[2] = (&Arduino_skal_M)->odeF[2];
(&Arduino_skal_M)->contStates = ((X_Arduino_skal_T *) &Arduino_skal_X);
rtsiSetSolverData(&(&Arduino_skal_M)->solverInfo, static_cast<void *>
(&(&Arduino_skal_M)->intgData));
rtsiSetSolverName(&(&Arduino_skal_M)->solverInfo,"ode3");
rtmSetTPtr((&Arduino_skal_M), &(&Arduino_skal_M)->Timing.tArray[0]);
rtmSetTFinal((&Arduino_skal_M), 10.0);
(&Arduino_skal_M)->Timing.stepSize0 = 0.2;
rtmSetFirstInitCond((&Arduino_skal_M), 1);
/* Setup for data logging */
{
static RTWLogInfo rt_DataLoggingInfo;
rt_DataLoggingInfo.loggingInterval = (NULL);
(&Arduino_skal_M)->rtwLogInfo = &rt_DataLoggingInfo;
}
/* Setup for data logging */
{
rtliSetLogXSignalInfo((&Arduino_skal_M)->rtwLogInfo, (NULL));
rtliSetLogXSignalPtrs((&Arduino_skal_M)->rtwLogInfo, (NULL));
rtliSetLogT((&Arduino_skal_M)->rtwLogInfo, "tout");
rtliSetLogX((&Arduino_skal_M)->rtwLogInfo, "");
rtliSetLogXFinal((&Arduino_skal_M)->rtwLogInfo, "");
rtliSetLogVarNameModifier((&Arduino_skal_M)->rtwLogInfo, "rt_");
rtliSetLogFormat((&Arduino_skal_M)->rtwLogInfo, 4);
rtliSetLogMaxRows((&Arduino_skal_M)->rtwLogInfo, 0);
rtliSetLogDecimation((&Arduino_skal_M)->rtwLogInfo, 1);
rtliSetLogY((&Arduino_skal_M)->rtwLogInfo, "");
rtliSetLogYSignalInfo((&Arduino_skal_M)->rtwLogInfo, (NULL));
rtliSetLogYSignalPtrs((&Arduino_skal_M)->rtwLogInfo, (NULL));
}
/* Matfile logging */
rt_StartDataLoggingWithStartTime((&Arduino_skal_M)->rtwLogInfo, 0.0,
rtmGetTFinal((&Arduino_skal_M)), (&Arduino_skal_M)->Timing.stepSize0,
(&rtmGetErrorStatus((&Arduino_skal_M))));
/* Start for Constant: '<S1>/X0' */
Arduino_skal_B.X0[0] = Arduino_skal_P.X0_Value[0];
Arduino_skal_B.X0[1] = Arduino_skal_P.X0_Value[1];
Arduino_skal_B.X0[2] = Arduino_skal_P.X0_Value[2];
Arduino_skal_B.X0[3] = Arduino_skal_P.X0_Value[3];
/* InitializeConditions for Integrator: '<S1>/MemoryX' */
if (rtmIsFirstInitCond((&Arduino_skal_M))) {
Arduino_skal_X.MemoryX_CSTATE[0] = 0.0;
Arduino_skal_X.MemoryX_CSTATE[1] = 0.0;
Arduino_skal_X.MemoryX_CSTATE[2] = 0.0;
Arduino_skal_X.MemoryX_CSTATE[3] = 0.0;
}
Arduino_skal_DW.MemoryX_IWORK = 1;
/* End of InitializeConditions for Integrator: '<S1>/MemoryX' */
/* SystemInitialize for Enabled SubSystem: '<S22>/MeasurementUpdate' */
/* SystemInitialize for Product: '<S53>/Product3' incorporates:
* Outport: '<S53>/L*(y[k]-yhat[k|k-1])'
*/
Arduino_skal_B.Product3[0] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[1] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[2] = Arduino_skal_P.Lykyhatkk1_Y0;
Arduino_skal_B.Product3[3] = Arduino_skal_P.Lykyhatkk1_Y0;
/* End of SystemInitialize for SubSystem: '<S22>/MeasurementUpdate' */
/* set "at time zero" to false */
if (rtmIsFirstInitCond((&Arduino_skal_M))) {
rtmSetFirstInitCond((&Arduino_skal_M), 0);
}
}
/* Model terminate function */
void Arduino_skalModelClass::terminate()
{
/* (no terminate code required) */
}
/* Constructor */
Arduino_skalModelClass::Arduino_skalModelClass() :
Arduino_skal_B(),
Arduino_skal_DW(),
Arduino_skal_X(),
Arduino_skal_M()
{
/* Currently there is no constructor body generated.*/
}
/* Destructor */
Arduino_skalModelClass::~Arduino_skalModelClass()
{
/* Currently there is no destructor body generated.*/
}
/* Real-Time Model get method */
RT_MODEL_Arduino_skal_T * Arduino_skalModelClass::getRTM()
{
return (&Arduino_skal_M);
}

View File

@ -0,0 +1,480 @@
/*
* Arduino_skal.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_Arduino_skal_h_
#define RTW_HEADER_Arduino_skal_h_
#include <cstring>
#include <cfloat>
#include <stddef.h>
#include "rtwtypes.h"
#include "rtw_continuous.h"
#include "rtw_solver.h"
#include "rt_logging.h"
#include "Arduino_skal_types.h"
/* Shared type includes */
#include "multiword_types.h"
#include "rt_nonfinite.h"
/* Macros for accessing real-time model data structure */
#ifndef rtmGetContStateDisabled
#define rtmGetContStateDisabled(rtm) ((rtm)->contStateDisabled)
#endif
#ifndef rtmSetContStateDisabled
#define rtmSetContStateDisabled(rtm, val) ((rtm)->contStateDisabled = (val))
#endif
#ifndef rtmGetContStates
#define rtmGetContStates(rtm) ((rtm)->contStates)
#endif
#ifndef rtmSetContStates
#define rtmSetContStates(rtm, val) ((rtm)->contStates = (val))
#endif
#ifndef rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag
#define rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm) ((rtm)->CTOutputIncnstWithState)
#endif
#ifndef rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag
#define rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm, val) ((rtm)->CTOutputIncnstWithState = (val))
#endif
#ifndef rtmGetDerivCacheNeedsReset
#define rtmGetDerivCacheNeedsReset(rtm) ((rtm)->derivCacheNeedsReset)
#endif
#ifndef rtmSetDerivCacheNeedsReset
#define rtmSetDerivCacheNeedsReset(rtm, val) ((rtm)->derivCacheNeedsReset = (val))
#endif
#ifndef rtmGetFinalTime
#define rtmGetFinalTime(rtm) ((rtm)->Timing.tFinal)
#endif
#ifndef rtmGetIntgData
#define rtmGetIntgData(rtm) ((rtm)->intgData)
#endif
#ifndef rtmSetIntgData
#define rtmSetIntgData(rtm, val) ((rtm)->intgData = (val))
#endif
#ifndef rtmGetOdeF
#define rtmGetOdeF(rtm) ((rtm)->odeF)
#endif
#ifndef rtmSetOdeF
#define rtmSetOdeF(rtm, val) ((rtm)->odeF = (val))
#endif
#ifndef rtmGetOdeY
#define rtmGetOdeY(rtm) ((rtm)->odeY)
#endif
#ifndef rtmSetOdeY
#define rtmSetOdeY(rtm, val) ((rtm)->odeY = (val))
#endif
#ifndef rtmGetPeriodicContStateIndices
#define rtmGetPeriodicContStateIndices(rtm) ((rtm)->periodicContStateIndices)
#endif
#ifndef rtmSetPeriodicContStateIndices
#define rtmSetPeriodicContStateIndices(rtm, val) ((rtm)->periodicContStateIndices = (val))
#endif
#ifndef rtmGetPeriodicContStateRanges
#define rtmGetPeriodicContStateRanges(rtm) ((rtm)->periodicContStateRanges)
#endif
#ifndef rtmSetPeriodicContStateRanges
#define rtmSetPeriodicContStateRanges(rtm, val) ((rtm)->periodicContStateRanges = (val))
#endif
#ifndef rtmGetRTWLogInfo
#define rtmGetRTWLogInfo(rtm) ((rtm)->rtwLogInfo)
#endif
#ifndef rtmGetZCCacheNeedsReset
#define rtmGetZCCacheNeedsReset(rtm) ((rtm)->zCCacheNeedsReset)
#endif
#ifndef rtmSetZCCacheNeedsReset
#define rtmSetZCCacheNeedsReset(rtm, val) ((rtm)->zCCacheNeedsReset = (val))
#endif
#ifndef rtmGetdX
#define rtmGetdX(rtm) ((rtm)->derivs)
#endif
#ifndef rtmSetdX
#define rtmSetdX(rtm, val) ((rtm)->derivs = (val))
#endif
#ifndef rtmGetErrorStatus
#define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
#endif
#ifndef rtmSetErrorStatus
#define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
#endif
#ifndef rtmGetStopRequested
#define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
#endif
#ifndef rtmSetStopRequested
#define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
#endif
#ifndef rtmGetStopRequestedPtr
#define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
#endif
#ifndef rtmGetT
#define rtmGetT(rtm) (rtmGetTPtr((rtm))[0])
#endif
#ifndef rtmGetTFinal
#define rtmGetTFinal(rtm) ((rtm)->Timing.tFinal)
#endif
#ifndef rtmGetTPtr
#define rtmGetTPtr(rtm) ((rtm)->Timing.t)
#endif
/* Block signals (default storage) */
struct B_Arduino_skal_T {
real_T X0[4]; /* '<S1>/X0' */
real_T MemoryX[4]; /* '<S1>/MemoryX' */
real_T Gain; /* '<Root>/Gain' */
real_T Akxhatkk1[4]; /* '<S22>/A[k]*xhat[k|k-1]' */
real_T Step; /* '<Root>/Step' */
real_T Kr; /* '<Root>/Kr' */
real_T Sum5; /* '<Root>/Sum5' */
real_T Saturation; /* '<Root>/Saturation' */
real_T Bkuk[4]; /* '<S22>/B[k]*u[k]' */
real_T Add[4]; /* '<S22>/Add' */
real_T Ckxhatkk1[2]; /* '<S53>/C[k]*xhat[k|k-1]' */
real_T Dkuk[2]; /* '<S53>/D[k]*u[k]' */
real_T yhatkk1[2]; /* '<S53>/Add1' */
real_T Sum[2]; /* '<S53>/Sum' */
real_T Product3[4]; /* '<S53>/Product3' */
real_T P[16]; /* '<S51>/SqrtUsedFcn' */
};
/* Block states (default storage) for system '<Root>' */
struct DW_Arduino_skal_T {
int_T MemoryX_IWORK; /* '<S1>/MemoryX' */
boolean_T MeasurementUpdate_MODE; /* '<S22>/MeasurementUpdate' */
};
/* Continuous states (default storage) */
struct X_Arduino_skal_T {
real_T MemoryX_CSTATE[4]; /* '<S1>/MemoryX' */
};
/* State derivatives (default storage) */
struct XDot_Arduino_skal_T {
real_T MemoryX_CSTATE[4]; /* '<S1>/MemoryX' */
};
/* State disabled */
struct XDis_Arduino_skal_T {
boolean_T MemoryX_CSTATE[4]; /* '<S1>/MemoryX' */
};
#ifndef ODE3_INTG
#define ODE3_INTG
/* ODE3 Integration Data */
struct ODE3_IntgData {
real_T *y; /* output */
real_T *f[3]; /* derivatives */
};
#endif
/* Parameters (default storage) */
struct P_Arduino_skal_T_ {
real_T K[4]; /* Variable: K
* Referenced by: '<Root>/Gain'
*/
real_T Kr; /* Variable: Kr
* Referenced by: '<Root>/Kr'
*/
real_T Lykyhatkk1_Y0; /* Expression: 0
* Referenced by: '<S53>/L*(y[k]-yhat[k|k-1])'
*/
real_T Constant_Value[2]; /* Expression: [1,1]
* Referenced by: '<Root>/Constant'
*/
real_T X0_Value[4]; /* Expression: pInitialization.X0
* Referenced by: '<S1>/X0'
*/
real_T A_Value[16]; /* Expression: pInitialization.A
* Referenced by: '<S1>/A'
*/
real_T B_Value[4]; /* Expression: pInitialization.B
* Referenced by: '<S1>/B'
*/
real_T C_Value[8]; /* Expression: pInitialization.C
* Referenced by: '<S1>/C'
*/
real_T CovarianceZ_Value[16]; /* Expression: pInitialization.Z
* Referenced by: '<S2>/CovarianceZ'
*/
real_T KalmanGainL_Value[8]; /* Expression: pInitialization.L
* Referenced by: '<S2>/KalmanGainL'
*/
real_T D_Value[2]; /* Expression: pInitialization.D
* Referenced by: '<S1>/D'
*/
real_T Step_Time; /* Expression: 0
* Referenced by: '<Root>/Step'
*/
real_T Step_Y0; /* Expression: 0
* Referenced by: '<Root>/Step'
*/
real_T Step_YFinal; /* Expression: 0
* Referenced by: '<Root>/Step'
*/
real_T Saturation_UpperSat; /* Expression: 11.5
* Referenced by: '<Root>/Saturation'
*/
real_T Saturation_LowerSat; /* Expression: -11.5
* Referenced by: '<Root>/Saturation'
*/
boolean_T isSqrtUsed_Value; /* Expression: pInitialization.isSqrtUsed
* Referenced by: '<S51>/isSqrtUsed'
*/
boolean_T Enable_Value; /* Expression: true()
* Referenced by: '<S1>/Enable'
*/
};
/* Real-time Model Data Structure */
struct tag_RTM_Arduino_skal_T {
const char_T *errorStatus;
RTWLogInfo *rtwLogInfo;
RTWSolverInfo solverInfo;
X_Arduino_skal_T *contStates;
int_T *periodicContStateIndices;
real_T *periodicContStateRanges;
real_T *derivs;
boolean_T *contStateDisabled;
boolean_T zCCacheNeedsReset;
boolean_T derivCacheNeedsReset;
boolean_T CTOutputIncnstWithState;
real_T odeY[4];
real_T odeF[3][4];
ODE3_IntgData intgData;
/*
* Sizes:
* The following substructure contains sizes information
* for many of the model attributes such as inputs, outputs,
* dwork, sample times, etc.
*/
struct {
int_T numContStates;
int_T numPeriodicContStates;
int_T numSampTimes;
} Sizes;
/*
* Timing:
* The following substructure contains information regarding
* the timing information for the model.
*/
struct {
uint32_T clockTick0;
uint32_T clockTickH0;
time_T stepSize0;
uint32_T clockTick1;
uint32_T clockTickH1;
boolean_T firstInitCondFlag;
time_T tFinal;
SimTimeStep simTimeStep;
boolean_T stopRequestedFlag;
time_T *t;
time_T tArray[2];
} Timing;
};
/* Class declaration for model Arduino_skal */
class Arduino_skalModelClass {
/* public data and function members */
public:
/* model initialize function */
void initialize();
/* model step function */
void step();
/* model terminate function */
void terminate();
/* Constructor */
Arduino_skalModelClass();
/* Destructor */
~Arduino_skalModelClass();
/* Real-Time Model get method */
RT_MODEL_Arduino_skal_T * getRTM();
/* private data and function members */
private:
/* Tunable parameters */
static P_Arduino_skal_T Arduino_skal_P;
/* Block signals */
B_Arduino_skal_T Arduino_skal_B;
/* Block states */
DW_Arduino_skal_T Arduino_skal_DW;
X_Arduino_skal_T Arduino_skal_X; /* Block continuous states */
/* Real-Time Model */
RT_MODEL_Arduino_skal_T Arduino_skal_M;
/* Continuous states update member function*/
void rt_ertODEUpdateContinuousStates(RTWSolverInfo *si );
/* Derivatives member function */
void Arduino_skal_derivatives();
};
/*-
* These blocks were eliminated from the model due to optimizations:
*
* Block '<S45>/Data Type Duplicate' : Unused code path elimination
* Block '<S46>/Conversion' : Unused code path elimination
* Block '<S46>/Data Type Duplicate' : Unused code path elimination
* Block '<S47>/Conversion' : Unused code path elimination
* Block '<S47>/Data Type Duplicate' : Unused code path elimination
* Block '<S48>/Data Type Duplicate' : Unused code path elimination
* Block '<S2>/KalmanGainM' : Unused code path elimination
* Block '<S5>/Data Type Duplicate' : Unused code path elimination
* Block '<S6>/Data Type Duplicate' : Unused code path elimination
* Block '<S7>/Data Type Duplicate' : Unused code path elimination
* Block '<S8>/Data Type Duplicate' : Unused code path elimination
* Block '<S10>/Data Type Duplicate' : Unused code path elimination
* Block '<S11>/Data Type Duplicate' : Unused code path elimination
* Block '<S12>/Data Type Duplicate' : Unused code path elimination
* Block '<S13>/Conversion' : Unused code path elimination
* Block '<S13>/Data Type Duplicate' : Unused code path elimination
* Block '<S14>/Data Type Duplicate' : Unused code path elimination
* Block '<S15>/Data Type Duplicate' : Unused code path elimination
* Block '<S16>/Data Type Duplicate' : Unused code path elimination
* Block '<S18>/Data Type Duplicate' : Unused code path elimination
* Block '<S19>/Data Type Duplicate' : Unused code path elimination
* Block '<S1>/G' : Unused code path elimination
* Block '<S1>/H' : Unused code path elimination
* Block '<S1>/N' : Unused code path elimination
* Block '<S1>/P0' : Unused code path elimination
* Block '<S1>/Q' : Unused code path elimination
* Block '<S1>/R' : Unused code path elimination
* Block '<S43>/CheckSignalProperties' : Unused code path elimination
* Block '<S44>/CheckSignalProperties' : Unused code path elimination
* Block '<S45>/Conversion' : Eliminate redundant data type conversion
* Block '<S48>/Conversion' : Eliminate redundant data type conversion
* Block '<S18>/Conversion' : Eliminate redundant data type conversion
* Block '<S22>/Reshape' : Reshape block reduction
* Block '<S1>/ReshapeX0' : Reshape block reduction
* Block '<S1>/Reshapeu' : Reshape block reduction
* Block '<S1>/Reshapexhat' : Reshape block reduction
* Block '<S1>/Reshapey' : Reshape block reduction
*/
/*-
* 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.
*
* Use the MATLAB hilite_system command to trace the generated code back
* to the model. For example,
*
* hilite_system('<S3>') - opens system 3
* hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
*
* Here is the system hierarchy for this model
*
* '<Root>' : 'Arduino_skal'
* '<S1>' : 'Arduino_skal/Kalman Filter'
* '<S2>' : 'Arduino_skal/Kalman Filter/CalculatePL'
* '<S3>' : 'Arduino_skal/Kalman Filter/CalculateYhat'
* '<S4>' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator'
* '<S5>' : 'Arduino_skal/Kalman Filter/DataTypeConversionA'
* '<S6>' : 'Arduino_skal/Kalman Filter/DataTypeConversionB'
* '<S7>' : 'Arduino_skal/Kalman Filter/DataTypeConversionC'
* '<S8>' : 'Arduino_skal/Kalman Filter/DataTypeConversionD'
* '<S9>' : 'Arduino_skal/Kalman Filter/DataTypeConversionEnable'
* '<S10>' : 'Arduino_skal/Kalman Filter/DataTypeConversionG'
* '<S11>' : 'Arduino_skal/Kalman Filter/DataTypeConversionH'
* '<S12>' : 'Arduino_skal/Kalman Filter/DataTypeConversionN'
* '<S13>' : 'Arduino_skal/Kalman Filter/DataTypeConversionP'
* '<S14>' : 'Arduino_skal/Kalman Filter/DataTypeConversionP0'
* '<S15>' : 'Arduino_skal/Kalman Filter/DataTypeConversionQ'
* '<S16>' : 'Arduino_skal/Kalman Filter/DataTypeConversionR'
* '<S17>' : 'Arduino_skal/Kalman Filter/DataTypeConversionReset'
* '<S18>' : 'Arduino_skal/Kalman Filter/DataTypeConversionX'
* '<S19>' : 'Arduino_skal/Kalman Filter/DataTypeConversionX0'
* '<S20>' : 'Arduino_skal/Kalman Filter/DataTypeConversionu'
* '<S21>' : 'Arduino_skal/Kalman Filter/MemoryP'
* '<S22>' : 'Arduino_skal/Kalman Filter/Observer'
* '<S23>' : 'Arduino_skal/Kalman Filter/ReducedQRN'
* '<S24>' : 'Arduino_skal/Kalman Filter/Reset'
* '<S25>' : 'Arduino_skal/Kalman Filter/Reshapeyhat'
* '<S26>' : 'Arduino_skal/Kalman Filter/ScalarExpansionP0'
* '<S27>' : 'Arduino_skal/Kalman Filter/ScalarExpansionQ'
* '<S28>' : 'Arduino_skal/Kalman Filter/ScalarExpansionR'
* '<S29>' : 'Arduino_skal/Kalman Filter/UseCurrentEstimator'
* '<S30>' : 'Arduino_skal/Kalman Filter/checkA'
* '<S31>' : 'Arduino_skal/Kalman Filter/checkB'
* '<S32>' : 'Arduino_skal/Kalman Filter/checkC'
* '<S33>' : 'Arduino_skal/Kalman Filter/checkD'
* '<S34>' : 'Arduino_skal/Kalman Filter/checkEnable'
* '<S35>' : 'Arduino_skal/Kalman Filter/checkG'
* '<S36>' : 'Arduino_skal/Kalman Filter/checkH'
* '<S37>' : 'Arduino_skal/Kalman Filter/checkN'
* '<S38>' : 'Arduino_skal/Kalman Filter/checkP0'
* '<S39>' : 'Arduino_skal/Kalman Filter/checkQ'
* '<S40>' : 'Arduino_skal/Kalman Filter/checkR'
* '<S41>' : 'Arduino_skal/Kalman Filter/checkReset'
* '<S42>' : 'Arduino_skal/Kalman Filter/checkX0'
* '<S43>' : 'Arduino_skal/Kalman Filter/checku'
* '<S44>' : 'Arduino_skal/Kalman Filter/checky'
* '<S45>' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionL'
* '<S46>' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionM'
* '<S47>' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionP'
* '<S48>' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionZ'
* '<S49>' : 'Arduino_skal/Kalman Filter/CalculatePL/Ground'
* '<S50>' : 'Arduino_skal/Kalman Filter/CalculateYhat/Ground'
* '<S51>' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator/decideOutput'
* '<S52>' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator/decideOutput/SqrtUsedFcn'
* '<S53>' : 'Arduino_skal/Kalman Filter/Observer/MeasurementUpdate'
* '<S54>' : 'Arduino_skal/Kalman Filter/ReducedQRN/Ground'
*/
#endif /* RTW_HEADER_Arduino_skal_h_ */

View File

@ -0,0 +1,120 @@
/*
* Arduino_skal_data.cpp
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#include "Arduino_skal.h"
#include "Arduino_skal_private.h"
/* Block parameters (default storage) */
P_Arduino_skal_T Arduino_skalModelClass::Arduino_skal_P = {
/* Variable: K
* Referenced by: '<Root>/Gain'
*/
{ -31.622776601683942, -21.286439360075747, 80.789376267003959,
13.42463576551093 },
/* Variable: Kr
* Referenced by: '<Root>/Kr'
*/
1.0,
/* Expression: 0
* Referenced by: '<S53>/L*(y[k]-yhat[k|k-1])'
*/
0.0,
/* Expression: [1,1]
* Referenced by: '<Root>/Constant'
*/
{ 1.0, 1.0 },
/* Expression: pInitialization.X0
* Referenced by: '<S1>/X0'
*/
{ 0.0, 0.0, 0.0, 0.0 },
/* Expression: pInitialization.A
* Referenced by: '<S1>/A'
*/
{ 0.0, 0.0, 0.0, 0.0, 1.0, -0.20780947085442231, 0.0, -0.52810302415000854,
0.0, 13.239785742831822, 0.0, 58.601480177829842, 0.0, 0.0, 1.0, 0.0 },
/* Expression: pInitialization.B
* Referenced by: '<S1>/B'
*/
{ 0.0, 2.078094708544223, 0.0, 5.2810302415000852 },
/* Expression: pInitialization.C
* Referenced by: '<S1>/C'
*/
{ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
/* Expression: pInitialization.Z
* Referenced by: '<S2>/CovarianceZ'
*/
{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0 },
/* Expression: pInitialization.L
* Referenced by: '<S2>/KalmanGainL'
*/
{ 2.829363352293504, 6.8371369304528766, 2.3809613355962305,
17.882971156218495, 2.3809613355962278, 24.153756408336502,
14.825995823889082, 112.73956452579047 },
/* Expression: pInitialization.D
* Referenced by: '<S1>/D'
*/
{ 0.0, 0.0 },
/* Expression: 0
* Referenced by: '<Root>/Step'
*/
0.0,
/* Expression: 0
* Referenced by: '<Root>/Step'
*/
0.0,
/* Expression: 0
* Referenced by: '<Root>/Step'
*/
0.0,
/* Expression: 11.5
* Referenced by: '<Root>/Saturation'
*/
11.5,
/* Expression: -11.5
* Referenced by: '<Root>/Saturation'
*/
-11.5,
/* Expression: pInitialization.isSqrtUsed
* Referenced by: '<S51>/isSqrtUsed'
*/
0,
/* Expression: true()
* Referenced by: '<S1>/Enable'
*/
1
};

View File

@ -0,0 +1,55 @@
/*
* Arduino_skal_private.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_Arduino_skal_private_h_
#define RTW_HEADER_Arduino_skal_private_h_
#include "rtwtypes.h"
#include "builtin_typeid_types.h"
#include "multiword_types.h"
/* Private macros used by the generated code to access rtModel */
#ifndef rtmSetFirstInitCond
#define rtmSetFirstInitCond(rtm, val) ((rtm)->Timing.firstInitCondFlag = (val))
#endif
#ifndef rtmIsFirstInitCond
#define rtmIsFirstInitCond(rtm) ((rtm)->Timing.firstInitCondFlag)
#endif
#ifndef rtmIsMajorTimeStep
#define rtmIsMajorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MAJOR_TIME_STEP)
#endif
#ifndef rtmIsMinorTimeStep
#define rtmIsMinorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MINOR_TIME_STEP)
#endif
#ifndef rtmSetTFinal
#define rtmSetTFinal(rtm, val) ((rtm)->Timing.tFinal = (val))
#endif
#ifndef rtmSetTPtr
#define rtmSetTPtr(rtm, val) ((rtm)->Timing.t = (val))
#endif
/* private model entry point functions */
extern void Arduino_skal_derivatives();
#endif /* RTW_HEADER_Arduino_skal_private_h_ */

View File

@ -0,0 +1,35 @@
/*
* Arduino_skal_types.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_Arduino_skal_types_h_
#define RTW_HEADER_Arduino_skal_types_h_
#include "rtwtypes.h"
#include "builtin_typeid_types.h"
#include "multiword_types.h"
/* Model Code Variants */
/* Parameters (default storage) */
typedef struct P_Arduino_skal_T_ P_Arduino_skal_T;
/* Forward declaration for rtModel */
typedef struct tag_RTM_Arduino_skal_T RT_MODEL_Arduino_skal_T;
#endif /* RTW_HEADER_Arduino_skal_types_h_ */

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,46 @@
/*
* builtin_typeid_types.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef BUILTIN_TYPEID_TYPES_H
#define BUILTIN_TYPEID_TYPES_H
#include "rtwtypes.h"
#ifndef BUILTIN_TYPEID_TYPES
#define BUILTIN_TYPEID_TYPES
/* Enumeration of built-in data types */
typedef enum {
SS_DOUBLE = 0, /* real_T */
SS_SINGLE = 1, /* real32_T */
SS_INT8 = 2, /* int8_T */
SS_UINT8 = 3, /* uint8_T */
SS_INT16 = 4, /* int16_T */
SS_UINT16 = 5, /* uint16_T */
SS_INT32 = 6, /* int32_T */
SS_UINT32 = 7, /* uint32_T */
SS_BOOLEAN = 8 /* boolean_T */
} BuiltInDTypeId;
#define SS_NUM_BUILT_IN_DTYPE ((int_T)SS_BOOLEAN+1)
/* Enumeration for MAT-file logging code */
typedef int_T DTypeId;
#endif /* BUILTIN_TYPEID_TYPES */
#endif /* BUILTIN_TYPEID_TYPES_H */

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
MODEL=Arduino_skal
NUMST=2
NCSTATES=4
HAVESTDIO
RT
USE_RTMODEL
CLASSIC_INTERFACE=0
ALLOCATIONFCN=0
TID01EQ=1
MAT_FILE=1
ONESTEPFCN=1
TERMFCN=1
MULTI_INSTANCE_CODE=1
INTEGER_CODE=0
MT=0

View File

@ -0,0 +1,33 @@
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" src="rtwhilite.js"></script><script language="JavaScript" type="text/javascript" src="rtwshrink.js"></script><script language="JavaScript" type="text/javascript">var reportModel = "Arduino_skal"; </script><script type="text/javascript">var TargetLang = "C++"; </script><script language="JavaScript" type="text/javascript" src="define.js"></script><script language="JavaScript" type="text/javascript" src="traceInfo_flag.js"></script><title>
Arduino_skal Code Generation Report
</title>
</head>
<frameset cols="25%,75%,0%" id="main" border="2">
<frame scrolling="auto" src="Arduino_skal_contents.html" name="rtwreport_contents_frame" id="rtwreport_contents_frame" onLoad="loadDocFrameSource('Arduino_skal')">
</frame>
<frameset rows="0%,100%,0%" id="rtw_midFrame">
<frame scrolling="no" src="navToolbar.html" name="rtwreport_navToolbar_frame" id="rtwreport_navToolbar_frame" noresize="noresize">
</frame>
<frame scrolling="auto" name="rtwreport_document_frame" id="rtwreport_document_frame" style="background-color: white;">
</frame>
<frame scrolling="no" src="inspect.html" name="rtwreport_inspect_frame" id="rtwreport_inspect_frame" noresize="noresize">
</frame>
</frameset>
<frame scrolling="no" src="nav.html" name="rtwreport_nav_frame" id="rtwreport_nav_frame" noresize="noresize">
</frame>
</frameset>
<body>
</body>
</html>

View File

@ -0,0 +1,382 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" defer="defer">
function rtwFileListShrink(o, category, categoryMsg, numFiles)
{
var indent = document.getElementById(category + "_indent");
var fileTable = document.getElementById(category + "_table");
var catName = document.getElementById(category + "_name");
if (fileTable.style.display == "none") {
fileTable.style.display = "";
indent.style.display = "";
o.innerHTML = '<span style="font-family:monospace" id = "' + category + '_button">[-]</span>';
catName.innerHTML = "<b>" + categoryMsg + "</b>";
} else {
fileTable.style.display = "none";
indent.style.display = "none";
o.innerHTML = '<span style="font-family:monospace" id = "' + category + '_button">[+]</span>';
catName.innerHTML = "<b>" + categoryMsg + " (" + numFiles + ")" + "</b>";
}
}
</script>
</head>
<body bgcolor="#eeeeee" link="#0033cc" vlink="#666666" rightmargin="0">
<table class="toc" border="1">
<tr>
<td align="left" valign="top">
<b>
Contents
</b>
</td>
</tr>
<tr>
<td align="left" valign="top">
<a href="Arduino_skal_survey.html" id="rtwIdSummaryPage" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
Summary
</a>
</td>
</tr>
<tr>
<td align="left" valign="top">
<a href="Arduino_skal_subsystems.html" id="rtwIdSubsystem" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
Subsystem Report
</a>
</td>
</tr>
<tr>
<td align="left" valign="top">
<a href="Arduino_skal_interface.html" id="rtwIdCodeInterface" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
Code Interface Report
</a>
</td>
</tr>
<tr>
<td align="left" valign="top">
<a href="Arduino_skal_reducedblocks.html" id="rtwIdReducedBlocks" target="rtwreport_document_frame" onclick="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, true);" name="TOC_List">
Eliminated Blocks
</a>
</td>
</tr>
</table>
<!--ADD_CODE_PROFILE_REPORT_LINK_HERE--><hr /><table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" border="0">
<tr>
<td align="left" valign="top">
<b>
Generated Code
</b>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Model" label="Model files" border="0">
<tr>
<td width="0%" align="left" valign="top">
<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Model','Model files','4')"><span style="font-family:monospace" id = "Model_button">[-]</span></span>
</td>
<td width="100%" align="left" valign="top">
<span id="Model_name"><b>Model files</b></span>
</td>
</tr>
<tr>
<td width="0%" align="left" valign="top">
<span id="Model_indent"></span>
</td>
<td width="100%" align="left" valign="top">
<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Model_table" border="0">
<tr>
<td align="left" valign="top">
<A HREF="Arduino_skal_cpp.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="Arduino_skal_cpp.html" NAME="rtwIdGenFileLinks">
Arduino_skal.cpp
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="Arduino_skal_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="Arduino_skal_h.html" NAME="rtwIdGenFileLinks">
Arduino_skal.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="Arduino_skal_private_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="Arduino_skal_private_h.html" NAME="rtwIdGenFileLinks">
Arduino_skal_private.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="Arduino_skal_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="Arduino_skal_types_h.html" NAME="rtwIdGenFileLinks">
Arduino_skal_types.h
</A>
<span> </span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Data" label="Data files" border="0">
<tr>
<td width="0%" align="left" valign="top">
<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Data','Data files','1')"><span style="font-family:monospace" id = "Data_button">[-]</span></span>
</td>
<td width="100%" align="left" valign="top">
<span id="Data_name"><b>Data files</b></span>
</td>
</tr>
<tr>
<td width="0%" align="left" valign="top">
<span id="Data_indent"></span>
</td>
<td width="100%" align="left" valign="top">
<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Data_table" border="0">
<tr>
<td align="left" valign="top">
<A HREF="Arduino_skal_data_cpp.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="Arduino_skal_data_cpp.html" NAME="rtwIdGenFileLinks">
Arduino_skal_data.cpp
</A>
<span> </span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Utility" label="Utility files" border="0">
<tr>
<td width="0%" align="left" valign="top">
<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Utility','Utility files','9')"><span style="font-family:monospace" id = "Utility_button">[+]</span></span>
</td>
<td width="100%" align="left" valign="top">
<span id="Utility_name"><b>Utility files (9)</b></span>
</td>
</tr>
<tr>
<td width="0%" align="left" valign="top">
<span id="Utility_indent"></span>
</td>
<td width="100%" align="left" valign="top">
<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Utility_table" style="display:none" border="0">
<tr>
<td align="left" valign="top">
<A HREF="builtin_typeid_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="builtin_typeid_types_h.html" NAME="rtwIdGenFileLinks">
builtin_typeid_types.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="multiword_types_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="multiword_types_h.html" NAME="rtwIdGenFileLinks">
multiword_types.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rtGetInf_cpp.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_cpp.html" NAME="rtwIdGenFileLinks">
rtGetInf.cpp
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rtGetInf_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetInf_h.html" NAME="rtwIdGenFileLinks">
rtGetInf.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rtGetNaN_cpp.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_cpp.html" NAME="rtwIdGenFileLinks">
rtGetNaN.cpp
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rtGetNaN_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtGetNaN_h.html" NAME="rtwIdGenFileLinks">
rtGetNaN.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rt_nonfinite_cpp.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_cpp.html" NAME="rtwIdGenFileLinks">
rt_nonfinite.cpp
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rt_nonfinite_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_nonfinite_h.html" NAME="rtwIdGenFileLinks">
rt_nonfinite.h
</A>
<span> </span>
</td>
</tr>
<tr>
<td align="left" valign="top">
<A HREF="rtwtypes_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtwtypes_h.html" NAME="rtwIdGenFileLinks">
rtwtypes.h
</A>
<span> </span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Interface" label="Interface files" border="0">
<tr>
<td width="0%" align="left" valign="top">
<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Interface','Interface files','1')"><span style="font-family:monospace" id = "Interface_button">[+]</span></span>
</td>
<td width="100%" align="left" valign="top">
<span id="Interface_name"><b>Interface files (1)</b></span>
</td>
</tr>
<tr>
<td width="0%" align="left" valign="top">
<span id="Interface_indent"></span>
</td>
<td width="100%" align="left" valign="top">
<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Interface_table" style="display:none" border="0">
<tr>
<td align="left" valign="top">
<A HREF="rtmodel_h.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rtmodel_h.html" NAME="rtwIdGenFileLinks">
rtmodel.h
</A>
<span> </span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff" id="Other" label="Other files" border="0">
<tr>
<td width="0%" align="left" valign="top">
<span style="background-color:#ffffff;width:100%;cursor:pointer;white-space:nowrap" title="Click to shrink or expand category" onclick="rtwFileListShrink(this,'Other','Other files','1')"><span style="font-family:monospace" id = "Other_button">[+]</span></span>
</td>
<td width="100%" align="left" valign="top">
<span id="Other_name"><b>Other files (1)</b></span>
</td>
</tr>
<tr>
<td width="0%" align="left" valign="top">
<span id="Other_indent"></span>
</td>
<td width="100%" align="left" valign="top">
<table cellspacing="0" cellpadding="4" width="100%" bgcolor="#ffffff" id="Other_table" style="display:none" border="0">
<tr>
<td align="left" valign="top">
<A HREF="rt_logging_c.html" TARGET="rtwreport_document_frame" ONCLICK="if (top) if (top.tocHiliteMe) top.tocHiliteMe(window, this, false);" ID="rt_logging_c.html" NAME="rtwIdGenFileLinks">
rt_logging.c
</A>
<span> </span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<hr />
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,258 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * Arduino_skal_data.cpp</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#include "Arduino_skal.h"</span></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#include "Arduino_skal_private.h"</span></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="ct">/* Block parameters (default storage) */</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><a id="25c1" class="tk">P_Arduino_skal_T</a> <a id="25c18" class="tk">Arduino_skalModelClass</a>::<a id="25c42" class="tk">Arduino_skal_P</a> = <span class="br">{</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td> <span class="ct">/* Variable: K</span></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Gain'</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="ct"> */</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td> <span class="br">{</span> <a id="29c5" class="tk">-</a>31.622776601683942, <a id="29c26" class="tk">-</a>21.286439360075747, 80.789376267003959,</td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td> 13.42463576551093 <span class="br">}</span>,</td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <span class="ct">/* Variable: Kr</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Kr'</span></td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="ct"> */</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> 1.0,</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <span class="ct">/* Expression: 0</span></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="ct"> * Referenced by: '&lt;S53&gt;/L*(y[k]-yhat[k|k-1])'</span></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="ct"> */</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td> 0.0,</td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td> <span class="ct">/* Expression: [1,1]</span></td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Constant'</span></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td><span class="ct"> */</span></td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <span class="br">{</span> 1.0, 1.0 <span class="br">}</span>,</td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> <span class="ct">/* Expression: pInitialization.X0</span></td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/X0'</span></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td><span class="ct"> */</span></td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td> <span class="br">{</span> 0.0, 0.0, 0.0, 0.0 <span class="br">}</span>,</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td></td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td> <span class="ct">/* Expression: pInitialization.A</span></td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/A'</span></td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td><span class="ct"> */</span></td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td> <span class="br">{</span> 0.0, 0.0, 0.0, 0.0, 1.0, <a id="55c30" class="tk">-</a>0.20780947085442231, 0.0, <a id="55c57" class="tk">-</a>0.52810302415000854,</td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> 0.0, 13.239785742831822, 0.0, 58.601480177829842, 0.0, 0.0, 1.0, 0.0 <span class="br">}</span>,</td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td> <span class="ct">/* Expression: pInitialization.B</span></td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/B'</span></td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td><span class="ct"> */</span></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td> <span class="br">{</span> 0.0, 2.078094708544223, 0.0, 5.2810302415000852 <span class="br">}</span>,</td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td></td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td> <span class="ct">/* Expression: pInitialization.C</span></td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/C'</span></td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td><span class="ct"> */</span></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td> <span class="br">{</span> 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 <span class="br">}</span>,</td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td></td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td> <span class="ct">/* Expression: pInitialization.Z</span></td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td><span class="ct"> * Referenced by: '&lt;S2&gt;/CovarianceZ'</span></td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td><span class="ct"> */</span></td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td> <span class="br">{</span> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,</td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td> 0.0 <span class="br">}</span>,</td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td></td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td> <span class="ct">/* Expression: pInitialization.L</span></td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td><span class="ct"> * Referenced by: '&lt;S2&gt;/KalmanGainL'</span></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td><span class="ct"> */</span></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td> <span class="br">{</span> 2.829363352293504, 6.8371369304528766, 2.3809613355962305,</td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td> 17.882971156218495, 2.3809613355962278, 24.153756408336502,</td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td> 14.825995823889082, 112.73956452579047 <span class="br">}</span>,</td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td></td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td> <span class="ct">/* Expression: pInitialization.D</span></td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/D'</span></td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td><span class="ct"> */</span></td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td> <span class="br">{</span> 0.0, 0.0 <span class="br">}</span>,</td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td></td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td> <span class="ct">/* Expression: 0</span></td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td><span class="ct"> */</span></td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td> 0.0,</td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td></td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td> <span class="ct">/* Expression: 0</span></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td><span class="ct"> */</span></td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td> 0.0,</td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td></td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td> <span class="ct">/* Expression: 0</span></td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td><span class="ct"> */</span></td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td> 0.0,</td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td></td></tr>
<tr name="101" id="101">
<td><a id="l101" class='ln'>101</a></td><td> <span class="ct">/* Expression: 11.5</span></td></tr>
<tr name="102" id="102">
<td><a id="l102" class='ln'>102</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Saturation'</span></td></tr>
<tr name="103" id="103">
<td><a id="l103" class='ln'>103</a></td><td><span class="ct"> */</span></td></tr>
<tr name="104" id="104">
<td><a id="l104" class='ln'>104</a></td><td> 11.5,</td></tr>
<tr name="105" id="105">
<td><a id="l105" class='ln'>105</a></td><td></td></tr>
<tr name="106" id="106">
<td><a id="l106" class='ln'>106</a></td><td> <span class="ct">/* Expression: -11.5</span></td></tr>
<tr name="107" id="107">
<td><a id="l107" class='ln'>107</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Saturation'</span></td></tr>
<tr name="108" id="108">
<td><a id="l108" class='ln'>108</a></td><td><span class="ct"> */</span></td></tr>
<tr name="109" id="109">
<td><a id="l109" class='ln'>109</a></td><td> <a id="109c3" class="tk">-</a>11.5,</td></tr>
<tr name="110" id="110">
<td><a id="l110" class='ln'>110</a></td><td></td></tr>
<tr name="111" id="111">
<td><a id="l111" class='ln'>111</a></td><td> <span class="ct">/* Expression: pInitialization.isSqrtUsed</span></td></tr>
<tr name="112" id="112">
<td><a id="l112" class='ln'>112</a></td><td><span class="ct"> * Referenced by: '&lt;S51&gt;/isSqrtUsed'</span></td></tr>
<tr name="113" id="113">
<td><a id="l113" class='ln'>113</a></td><td><span class="ct"> */</span></td></tr>
<tr name="114" id="114">
<td><a id="l114" class='ln'>114</a></td><td> 0,</td></tr>
<tr name="115" id="115">
<td><a id="l115" class='ln'>115</a></td><td></td></tr>
<tr name="116" id="116">
<td><a id="l116" class='ln'>116</a></td><td> <span class="ct">/* Expression: true()</span></td></tr>
<tr name="117" id="117">
<td><a id="l117" class='ln'>117</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/Enable'</span></td></tr>
<tr name="118" id="118">
<td><a id="l118" class='ln'>118</a></td><td><span class="ct"> */</span></td></tr>
<tr name="119" id="119">
<td><a id="l119" class='ln'>119</a></td><td> 1</td></tr>
<tr name="120" id="120">
<td><a id="l120" class='ln'>120</a></td><td><span class="br">}</span>;</td></tr>
<tr name="121" id="121">
<td><a id="l121" class='ln'>121</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,978 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * Arduino_skal.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_Arduino_skal_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_Arduino_skal_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;cstring&gt;</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include &lt;cfloat&gt;</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#include "rtw_continuous.h"</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#include "rtw_solver.h"</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#include "rt_logging.h"</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#include "Arduino_skal_types.h"</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="ct">/* Shared type includes */</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td><span class="ct">/* Macros for accessing real-time model data structure */</span></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#ifndef</span> <a id="37c9" class="tk">rtmGetContStateDisabled</a></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#define</span> <a id="38c9" class="tk">rtmGetContStateDisabled</a>(<a id="38c33" class="tk">rtm</a>) ((<a id="38c42" class="tk">rtm</a>)-&gt;<a id="38c48" class="tk">contStateDisabled</a>)</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#ifndef</span> <a id="41c9" class="tk">rtmSetContStateDisabled</a></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td><span class="pp">#define</span> <a id="42c9" class="tk">rtmSetContStateDisabled</a>(<a id="42c33" class="tk">rtm</a>, <a id="42c38" class="tk">val</a>) ((<a id="42c45" class="tk">rtm</a>)-&gt;<a id="42c51" class="tk">contStateDisabled</a> = (<a id="42c72" class="tk">val</a>))</td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td></td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#ifndef</span> <a id="45c9" class="tk">rtmGetContStates</a></td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#define</span> <a id="46c9" class="tk">rtmGetContStates</a>(<a id="46c26" class="tk">rtm</a>) ((<a id="46c42" class="tk">rtm</a>)-&gt;<a id="46c48" class="tk">contStates</a>)</td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td><span class="pp">#ifndef</span> <a id="49c9" class="tk">rtmSetContStates</a></td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#define</span> <a id="50c9" class="tk">rtmSetContStates</a>(<a id="50c26" class="tk">rtm</a>, <a id="50c31" class="tk">val</a>) ((<a id="50c42" class="tk">rtm</a>)-&gt;<a id="50c48" class="tk">contStates</a> = (<a id="50c62" class="tk">val</a>))</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td></td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td><span class="pp">#ifndef</span> <a id="53c9" class="tk">rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag</a></td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td><span class="pp">#define</span> <a id="54c9" class="tk">rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag</a>(<a id="54c66" class="tk">rtm</a>) ((<a id="54c73" class="tk">rtm</a>)-&gt;<a id="54c79" class="tk">CTOutputIncnstWithState</a>)</td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td></td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td><span class="pp">#ifndef</span> <a id="57c9" class="tk">rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag</a></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td><span class="pp">#define</span> <a id="58c9" class="tk">rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag</a>(<a id="58c66" class="tk">rtm</a>, <a id="58c71" class="tk">val</a>) ((<a id="58c78" class="tk">rtm</a>)-&gt;<a id="58c84" class="tk">CTOutputIncnstWithState</a> = (<a id="58c111" class="tk">val</a>))</td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td><span class="pp">#ifndef</span> <a id="61c9" class="tk">rtmGetDerivCacheNeedsReset</a></td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td><span class="pp">#define</span> <a id="62c9" class="tk">rtmGetDerivCacheNeedsReset</a>(<a id="62c36" class="tk">rtm</a>) ((<a id="62c43" class="tk">rtm</a>)-&gt;<a id="62c49" class="tk">derivCacheNeedsReset</a>)</td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td></td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td><span class="pp">#ifndef</span> <a id="65c9" class="tk">rtmSetDerivCacheNeedsReset</a></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td><span class="pp">#define</span> <a id="66c9" class="tk">rtmSetDerivCacheNeedsReset</a>(<a id="66c36" class="tk">rtm</a>, <a id="66c41" class="tk">val</a>) ((<a id="66c48" class="tk">rtm</a>)-&gt;<a id="66c54" class="tk">derivCacheNeedsReset</a> = (<a id="66c78" class="tk">val</a>))</td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td></td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td><span class="pp">#ifndef</span> <a id="69c9" class="tk">rtmGetFinalTime</a></td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#define</span> <a id="70c9" class="tk">rtmGetFinalTime</a>(<a id="70c25" class="tk">rtm</a>) ((<a id="70c42" class="tk">rtm</a>)-&gt;<a id="70c48" class="tk">Timing</a>.<a id="70c55" class="tk">tFinal</a>)</td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td></td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td><span class="pp">#ifndef</span> <a id="73c9" class="tk">rtmGetIntgData</a></td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td><span class="pp">#define</span> <a id="74c9" class="tk">rtmGetIntgData</a>(<a id="74c24" class="tk">rtm</a>) ((<a id="74c42" class="tk">rtm</a>)-&gt;<a id="74c48" class="tk">intgData</a>)</td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td><span class="pp">#ifndef</span> <a id="77c9" class="tk">rtmSetIntgData</a></td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td><span class="pp">#define</span> <a id="78c9" class="tk">rtmSetIntgData</a>(<a id="78c24" class="tk">rtm</a>, <a id="78c29" class="tk">val</a>) ((<a id="78c42" class="tk">rtm</a>)-&gt;<a id="78c48" class="tk">intgData</a> = (<a id="78c60" class="tk">val</a>))</td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td></td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td><span class="pp">#ifndef</span> <a id="81c9" class="tk">rtmGetOdeF</a></td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td><span class="pp">#define</span> <a id="82c9" class="tk">rtmGetOdeF</a>(<a id="82c20" class="tk">rtm</a>) ((<a id="82c42" class="tk">rtm</a>)-&gt;<a id="82c48" class="tk">odeF</a>)</td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td></td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td><span class="pp">#ifndef</span> <a id="85c9" class="tk">rtmSetOdeF</a></td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td><span class="pp">#define</span> <a id="86c9" class="tk">rtmSetOdeF</a>(<a id="86c20" class="tk">rtm</a>, <a id="86c25" class="tk">val</a>) ((<a id="86c42" class="tk">rtm</a>)-&gt;<a id="86c48" class="tk">odeF</a> = (<a id="86c56" class="tk">val</a>))</td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td></td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td><span class="pp">#ifndef</span> <a id="89c9" class="tk">rtmGetOdeY</a></td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td><span class="pp">#define</span> <a id="90c9" class="tk">rtmGetOdeY</a>(<a id="90c20" class="tk">rtm</a>) ((<a id="90c42" class="tk">rtm</a>)-&gt;<a id="90c48" class="tk">odeY</a>)</td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td></td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td><span class="pp">#ifndef</span> <a id="93c9" class="tk">rtmSetOdeY</a></td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td><span class="pp">#define</span> <a id="94c9" class="tk">rtmSetOdeY</a>(<a id="94c20" class="tk">rtm</a>, <a id="94c25" class="tk">val</a>) ((<a id="94c42" class="tk">rtm</a>)-&gt;<a id="94c48" class="tk">odeY</a> = (<a id="94c56" class="tk">val</a>))</td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td></td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td><span class="pp">#ifndef</span> <a id="97c9" class="tk">rtmGetPeriodicContStateIndices</a></td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td><span class="pp">#define</span> <a id="98c9" class="tk">rtmGetPeriodicContStateIndices</a>(<a id="98c40" class="tk">rtm</a>) ((<a id="98c47" class="tk">rtm</a>)-&gt;<a id="98c53" class="tk">periodicContStateIndices</a>)</td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td></td></tr>
<tr name="101" id="101">
<td><a id="l101" class='ln'>101</a></td><td><span class="pp">#ifndef</span> <a id="101c9" class="tk">rtmSetPeriodicContStateIndices</a></td></tr>
<tr name="102" id="102">
<td><a id="l102" class='ln'>102</a></td><td><span class="pp">#define</span> <a id="102c9" class="tk">rtmSetPeriodicContStateIndices</a>(<a id="102c40" class="tk">rtm</a>, <a id="102c45" class="tk">val</a>) ((<a id="102c52" class="tk">rtm</a>)-&gt;<a id="102c58" class="tk">periodicContStateIndices</a> = (<a id="102c86" class="tk">val</a>))</td></tr>
<tr name="103" id="103">
<td><a id="l103" class='ln'>103</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="104" id="104">
<td><a id="l104" class='ln'>104</a></td><td></td></tr>
<tr name="105" id="105">
<td><a id="l105" class='ln'>105</a></td><td><span class="pp">#ifndef</span> <a id="105c9" class="tk">rtmGetPeriodicContStateRanges</a></td></tr>
<tr name="106" id="106">
<td><a id="l106" class='ln'>106</a></td><td><span class="pp">#define</span> <a id="106c9" class="tk">rtmGetPeriodicContStateRanges</a>(<a id="106c39" class="tk">rtm</a>) ((<a id="106c46" class="tk">rtm</a>)-&gt;<a id="106c52" class="tk">periodicContStateRanges</a>)</td></tr>
<tr name="107" id="107">
<td><a id="l107" class='ln'>107</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="108" id="108">
<td><a id="l108" class='ln'>108</a></td><td></td></tr>
<tr name="109" id="109">
<td><a id="l109" class='ln'>109</a></td><td><span class="pp">#ifndef</span> <a id="109c9" class="tk">rtmSetPeriodicContStateRanges</a></td></tr>
<tr name="110" id="110">
<td><a id="l110" class='ln'>110</a></td><td><span class="pp">#define</span> <a id="110c9" class="tk">rtmSetPeriodicContStateRanges</a>(<a id="110c39" class="tk">rtm</a>, <a id="110c44" class="tk">val</a>) ((<a id="110c51" class="tk">rtm</a>)-&gt;<a id="110c57" class="tk">periodicContStateRanges</a> = (<a id="110c84" class="tk">val</a>))</td></tr>
<tr name="111" id="111">
<td><a id="l111" class='ln'>111</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="112" id="112">
<td><a id="l112" class='ln'>112</a></td><td></td></tr>
<tr name="113" id="113">
<td><a id="l113" class='ln'>113</a></td><td><span class="pp">#ifndef</span> <a id="113c9" class="tk">rtmGetRTWLogInfo</a></td></tr>
<tr name="114" id="114">
<td><a id="l114" class='ln'>114</a></td><td><span class="pp">#define</span> <a id="114c9" class="tk">rtmGetRTWLogInfo</a>(<a id="114c26" class="tk">rtm</a>) ((<a id="114c42" class="tk">rtm</a>)-&gt;<a id="114c48" class="tk">rtwLogInfo</a>)</td></tr>
<tr name="115" id="115">
<td><a id="l115" class='ln'>115</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="116" id="116">
<td><a id="l116" class='ln'>116</a></td><td></td></tr>
<tr name="117" id="117">
<td><a id="l117" class='ln'>117</a></td><td><span class="pp">#ifndef</span> <a id="117c9" class="tk">rtmGetZCCacheNeedsReset</a></td></tr>
<tr name="118" id="118">
<td><a id="l118" class='ln'>118</a></td><td><span class="pp">#define</span> <a id="118c9" class="tk">rtmGetZCCacheNeedsReset</a>(<a id="118c33" class="tk">rtm</a>) ((<a id="118c42" class="tk">rtm</a>)-&gt;<a id="118c48" class="tk">zCCacheNeedsReset</a>)</td></tr>
<tr name="119" id="119">
<td><a id="l119" class='ln'>119</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="120" id="120">
<td><a id="l120" class='ln'>120</a></td><td></td></tr>
<tr name="121" id="121">
<td><a id="l121" class='ln'>121</a></td><td><span class="pp">#ifndef</span> <a id="121c9" class="tk">rtmSetZCCacheNeedsReset</a></td></tr>
<tr name="122" id="122">
<td><a id="l122" class='ln'>122</a></td><td><span class="pp">#define</span> <a id="122c9" class="tk">rtmSetZCCacheNeedsReset</a>(<a id="122c33" class="tk">rtm</a>, <a id="122c38" class="tk">val</a>) ((<a id="122c45" class="tk">rtm</a>)-&gt;<a id="122c51" class="tk">zCCacheNeedsReset</a> = (<a id="122c72" class="tk">val</a>))</td></tr>
<tr name="123" id="123">
<td><a id="l123" class='ln'>123</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="124" id="124">
<td><a id="l124" class='ln'>124</a></td><td></td></tr>
<tr name="125" id="125">
<td><a id="l125" class='ln'>125</a></td><td><span class="pp">#ifndef</span> <a id="125c9" class="tk">rtmGetdX</a></td></tr>
<tr name="126" id="126">
<td><a id="l126" class='ln'>126</a></td><td><span class="pp">#define</span> <a id="126c9" class="tk">rtmGetdX</a>(<a id="126c18" class="tk">rtm</a>) ((<a id="126c42" class="tk">rtm</a>)-&gt;<a id="126c48" class="tk">derivs</a>)</td></tr>
<tr name="127" id="127">
<td><a id="l127" class='ln'>127</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="128" id="128">
<td><a id="l128" class='ln'>128</a></td><td></td></tr>
<tr name="129" id="129">
<td><a id="l129" class='ln'>129</a></td><td><span class="pp">#ifndef</span> <a id="129c9" class="tk">rtmSetdX</a></td></tr>
<tr name="130" id="130">
<td><a id="l130" class='ln'>130</a></td><td><span class="pp">#define</span> <a id="130c9" class="tk">rtmSetdX</a>(<a id="130c18" class="tk">rtm</a>, <a id="130c23" class="tk">val</a>) ((<a id="130c42" class="tk">rtm</a>)-&gt;<a id="130c48" class="tk">derivs</a> = (<a id="130c58" class="tk">val</a>))</td></tr>
<tr name="131" id="131">
<td><a id="l131" class='ln'>131</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="132" id="132">
<td><a id="l132" class='ln'>132</a></td><td></td></tr>
<tr name="133" id="133">
<td><a id="l133" class='ln'>133</a></td><td><span class="pp">#ifndef</span> <a id="133c9" class="tk">rtmGetErrorStatus</a></td></tr>
<tr name="134" id="134">
<td><a id="l134" class='ln'>134</a></td><td><span class="pp">#define</span> <a id="134c9" class="tk">rtmGetErrorStatus</a>(<a id="134c27" class="tk">rtm</a>) ((<a id="134c42" class="tk">rtm</a>)-&gt;<a id="134c48" class="tk">errorStatus</a>)</td></tr>
<tr name="135" id="135">
<td><a id="l135" class='ln'>135</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="136" id="136">
<td><a id="l136" class='ln'>136</a></td><td></td></tr>
<tr name="137" id="137">
<td><a id="l137" class='ln'>137</a></td><td><span class="pp">#ifndef</span> <a id="137c9" class="tk">rtmSetErrorStatus</a></td></tr>
<tr name="138" id="138">
<td><a id="l138" class='ln'>138</a></td><td><span class="pp">#define</span> <a id="138c9" class="tk">rtmSetErrorStatus</a>(<a id="138c27" class="tk">rtm</a>, <a id="138c32" class="tk">val</a>) ((<a id="138c42" class="tk">rtm</a>)-&gt;<a id="138c48" class="tk">errorStatus</a> = (<a id="138c63" class="tk">val</a>))</td></tr>
<tr name="139" id="139">
<td><a id="l139" class='ln'>139</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="140" id="140">
<td><a id="l140" class='ln'>140</a></td><td></td></tr>
<tr name="141" id="141">
<td><a id="l141" class='ln'>141</a></td><td><span class="pp">#ifndef</span> <a id="141c9" class="tk">rtmGetStopRequested</a></td></tr>
<tr name="142" id="142">
<td><a id="l142" class='ln'>142</a></td><td><span class="pp">#define</span> <a id="142c9" class="tk">rtmGetStopRequested</a>(<a id="142c29" class="tk">rtm</a>) ((<a id="142c42" class="tk">rtm</a>)-&gt;<a id="142c48" class="tk">Timing</a>.<a id="142c55" class="tk">stopRequestedFlag</a>)</td></tr>
<tr name="143" id="143">
<td><a id="l143" class='ln'>143</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="144" id="144">
<td><a id="l144" class='ln'>144</a></td><td></td></tr>
<tr name="145" id="145">
<td><a id="l145" class='ln'>145</a></td><td><span class="pp">#ifndef</span> <a id="145c9" class="tk">rtmSetStopRequested</a></td></tr>
<tr name="146" id="146">
<td><a id="l146" class='ln'>146</a></td><td><span class="pp">#define</span> <a id="146c9" class="tk">rtmSetStopRequested</a>(<a id="146c29" class="tk">rtm</a>, <a id="146c34" class="tk">val</a>) ((<a id="146c42" class="tk">rtm</a>)-&gt;<a id="146c48" class="tk">Timing</a>.<a id="146c55" class="tk">stopRequestedFlag</a> = (<a id="146c76" class="tk">val</a>))</td></tr>
<tr name="147" id="147">
<td><a id="l147" class='ln'>147</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="148" id="148">
<td><a id="l148" class='ln'>148</a></td><td></td></tr>
<tr name="149" id="149">
<td><a id="l149" class='ln'>149</a></td><td><span class="pp">#ifndef</span> <a id="149c9" class="tk">rtmGetStopRequestedPtr</a></td></tr>
<tr name="150" id="150">
<td><a id="l150" class='ln'>150</a></td><td><span class="pp">#define</span> <a id="150c9" class="tk">rtmGetStopRequestedPtr</a>(<a id="150c32" class="tk">rtm</a>) (<a id="150c41" class="tk">&amp;</a>((<a id="150c44" class="tk">rtm</a>)-&gt;<a id="150c50" class="tk">Timing</a>.<a id="150c57" class="tk">stopRequestedFlag</a>))</td></tr>
<tr name="151" id="151">
<td><a id="l151" class='ln'>151</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="152" id="152">
<td><a id="l152" class='ln'>152</a></td><td></td></tr>
<tr name="153" id="153">
<td><a id="l153" class='ln'>153</a></td><td><span class="pp">#ifndef</span> <a id="153c9" class="tk">rtmGetT</a></td></tr>
<tr name="154" id="154">
<td><a id="l154" class='ln'>154</a></td><td><span class="pp">#define</span> <a id="154c9" class="tk">rtmGetT</a>(<a id="154c17" class="tk">rtm</a>) (<a id="154c41" class="tk">rtmGetTPtr</a>((<a id="154c53" class="tk">rtm</a>))[0])</td></tr>
<tr name="155" id="155">
<td><a id="l155" class='ln'>155</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="156" id="156">
<td><a id="l156" class='ln'>156</a></td><td></td></tr>
<tr name="157" id="157">
<td><a id="l157" class='ln'>157</a></td><td><span class="pp">#ifndef</span> <a id="157c9" class="tk">rtmGetTFinal</a></td></tr>
<tr name="158" id="158">
<td><a id="l158" class='ln'>158</a></td><td><span class="pp">#define</span> <a id="158c9" class="tk">rtmGetTFinal</a>(<a id="158c22" class="tk">rtm</a>) ((<a id="158c42" class="tk">rtm</a>)-&gt;<a id="158c48" class="tk">Timing</a>.<a id="158c55" class="tk">tFinal</a>)</td></tr>
<tr name="159" id="159">
<td><a id="l159" class='ln'>159</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="160" id="160">
<td><a id="l160" class='ln'>160</a></td><td></td></tr>
<tr name="161" id="161">
<td><a id="l161" class='ln'>161</a></td><td><span class="pp">#ifndef</span> <a id="161c9" class="tk">rtmGetTPtr</a></td></tr>
<tr name="162" id="162">
<td><a id="l162" class='ln'>162</a></td><td><span class="pp">#define</span> <a id="162c9" class="tk">rtmGetTPtr</a>(<a id="162c20" class="tk">rtm</a>) ((<a id="162c42" class="tk">rtm</a>)-&gt;<a id="162c48" class="tk">Timing</a>.<a id="162c55" class="tk">t</a>)</td></tr>
<tr name="163" id="163">
<td><a id="l163" class='ln'>163</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="164" id="164">
<td><a id="l164" class='ln'>164</a></td><td></td></tr>
<tr name="165" id="165">
<td><a id="l165" class='ln'>165</a></td><td><span class="ct">/* Block signals (default storage) */</span></td></tr>
<tr name="166" id="166">
<td><a id="l166" class='ln'>166</a></td><td><span class="kw">struct</span> <a id="166c8" class="tk">B_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="167" id="167">
<td><a id="l167" class='ln'>167</a></td><td> <a id="167c3" class="tk">real_T</a> <a id="167c10" class="tk">X0</a>[4]; <span class="ct">/* '&lt;S1&gt;/X0' */</span></td></tr>
<tr name="168" id="168">
<td><a id="l168" class='ln'>168</a></td><td> <a id="168c3" class="tk">real_T</a> <a id="168c10" class="tk">MemoryX</a>[4]; <span class="ct">/* '&lt;S1&gt;/MemoryX' */</span></td></tr>
<tr name="169" id="169">
<td><a id="l169" class='ln'>169</a></td><td> <a id="169c3" class="tk">real_T</a> <a id="169c10" class="tk">Gain</a>; <span class="ct">/* '&lt;Root&gt;/Gain' */</span></td></tr>
<tr name="170" id="170">
<td><a id="l170" class='ln'>170</a></td><td> <a id="170c3" class="tk">real_T</a> <a id="170c10" class="tk">Akxhatkk1</a>[4]; <span class="ct">/* '&lt;S22&gt;/A[k]*xhat[k|k-1]' */</span></td></tr>
<tr name="171" id="171">
<td><a id="l171" class='ln'>171</a></td><td> <a id="171c3" class="tk">real_T</a> <a id="171c10" class="tk">Step</a>; <span class="ct">/* '&lt;Root&gt;/Step' */</span></td></tr>
<tr name="172" id="172">
<td><a id="l172" class='ln'>172</a></td><td> <a id="172c3" class="tk">real_T</a> <a id="172c10" class="tk">Kr</a>; <span class="ct">/* '&lt;Root&gt;/Kr' */</span></td></tr>
<tr name="173" id="173">
<td><a id="l173" class='ln'>173</a></td><td> <a id="173c3" class="tk">real_T</a> <a id="173c10" class="tk">Sum5</a>; <span class="ct">/* '&lt;Root&gt;/Sum5' */</span></td></tr>
<tr name="174" id="174">
<td><a id="l174" class='ln'>174</a></td><td> <a id="174c3" class="tk">real_T</a> <a id="174c10" class="tk">Saturation</a>; <span class="ct">/* '&lt;Root&gt;/Saturation' */</span></td></tr>
<tr name="175" id="175">
<td><a id="l175" class='ln'>175</a></td><td> <a id="175c3" class="tk">real_T</a> <a id="175c10" class="tk">Bkuk</a>[4]; <span class="ct">/* '&lt;S22&gt;/B[k]*u[k]' */</span></td></tr>
<tr name="176" id="176">
<td><a id="l176" class='ln'>176</a></td><td> <a id="176c3" class="tk">real_T</a> <a id="176c10" class="tk">Add</a>[4]; <span class="ct">/* '&lt;S22&gt;/Add' */</span></td></tr>
<tr name="177" id="177">
<td><a id="l177" class='ln'>177</a></td><td> <a id="177c3" class="tk">real_T</a> <a id="177c10" class="tk">Ckxhatkk1</a>[2]; <span class="ct">/* '&lt;S53&gt;/C[k]*xhat[k|k-1]' */</span></td></tr>
<tr name="178" id="178">
<td><a id="l178" class='ln'>178</a></td><td> <a id="178c3" class="tk">real_T</a> <a id="178c10" class="tk">Dkuk</a>[2]; <span class="ct">/* '&lt;S53&gt;/D[k]*u[k]' */</span></td></tr>
<tr name="179" id="179">
<td><a id="l179" class='ln'>179</a></td><td> <a id="179c3" class="tk">real_T</a> <a id="179c10" class="tk">yhatkk1</a>[2]; <span class="ct">/* '&lt;S53&gt;/Add1' */</span></td></tr>
<tr name="180" id="180">
<td><a id="l180" class='ln'>180</a></td><td> <a id="180c3" class="tk">real_T</a> <a id="180c10" class="tk">Sum</a>[2]; <span class="ct">/* '&lt;S53&gt;/Sum' */</span></td></tr>
<tr name="181" id="181">
<td><a id="l181" class='ln'>181</a></td><td> <a id="181c3" class="tk">real_T</a> <a id="181c10" class="tk">Product3</a>[4]; <span class="ct">/* '&lt;S53&gt;/Product3' */</span></td></tr>
<tr name="182" id="182">
<td><a id="l182" class='ln'>182</a></td><td> <a id="182c3" class="tk">real_T</a> <a id="182c10" class="tk">P</a>[16]; <span class="ct">/* '&lt;S51&gt;/SqrtUsedFcn' */</span></td></tr>
<tr name="183" id="183">
<td><a id="l183" class='ln'>183</a></td><td><span class="br">}</span>;</td></tr>
<tr name="184" id="184">
<td><a id="l184" class='ln'>184</a></td><td></td></tr>
<tr name="185" id="185">
<td><a id="l185" class='ln'>185</a></td><td><span class="ct">/* Block states (default storage) for system '&lt;Root&gt;' */</span></td></tr>
<tr name="186" id="186">
<td><a id="l186" class='ln'>186</a></td><td><span class="kw">struct</span> <a id="186c8" class="tk">DW_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="187" id="187">
<td><a id="l187" class='ln'>187</a></td><td> <a id="187c3" class="tk">int_T</a> <a id="187c9" class="tk">MemoryX_IWORK</a>; <span class="ct">/* '&lt;S1&gt;/MemoryX' */</span></td></tr>
<tr name="188" id="188">
<td><a id="l188" class='ln'>188</a></td><td> <a id="188c3" class="tk">boolean_T</a> <a id="188c13" class="tk">MeasurementUpdate_MODE</a>; <span class="ct">/* '&lt;S22&gt;/MeasurementUpdate' */</span></td></tr>
<tr name="189" id="189">
<td><a id="l189" class='ln'>189</a></td><td><span class="br">}</span>;</td></tr>
<tr name="190" id="190">
<td><a id="l190" class='ln'>190</a></td><td></td></tr>
<tr name="191" id="191">
<td><a id="l191" class='ln'>191</a></td><td><span class="ct">/* Continuous states (default storage) */</span></td></tr>
<tr name="192" id="192">
<td><a id="l192" class='ln'>192</a></td><td><span class="kw">struct</span> <a id="192c8" class="tk">X_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="193" id="193">
<td><a id="l193" class='ln'>193</a></td><td> <a id="193c3" class="tk">real_T</a> <a id="193c10" class="tk">MemoryX_CSTATE</a>[4]; <span class="ct">/* '&lt;S1&gt;/MemoryX' */</span></td></tr>
<tr name="194" id="194">
<td><a id="l194" class='ln'>194</a></td><td><span class="br">}</span>;</td></tr>
<tr name="195" id="195">
<td><a id="l195" class='ln'>195</a></td><td></td></tr>
<tr name="196" id="196">
<td><a id="l196" class='ln'>196</a></td><td><span class="ct">/* State derivatives (default storage) */</span></td></tr>
<tr name="197" id="197">
<td><a id="l197" class='ln'>197</a></td><td><span class="kw">struct</span> <a id="197c8" class="tk">XDot_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="198" id="198">
<td><a id="l198" class='ln'>198</a></td><td> <a id="198c3" class="tk">real_T</a> <a id="198c10" class="tk">MemoryX_CSTATE</a>[4]; <span class="ct">/* '&lt;S1&gt;/MemoryX' */</span></td></tr>
<tr name="199" id="199">
<td><a id="l199" class='ln'>199</a></td><td><span class="br">}</span>;</td></tr>
<tr name="200" id="200">
<td><a id="l200" class='ln'>200</a></td><td></td></tr>
<tr name="201" id="201">
<td><a id="l201" class='ln'>201</a></td><td><span class="ct">/* State disabled */</span></td></tr>
<tr name="202" id="202">
<td><a id="l202" class='ln'>202</a></td><td><span class="kw">struct</span> <a id="202c8" class="tk">XDis_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="203" id="203">
<td><a id="l203" class='ln'>203</a></td><td> <a id="203c3" class="tk">boolean_T</a> <a id="203c13" class="tk">MemoryX_CSTATE</a>[4]; <span class="ct">/* '&lt;S1&gt;/MemoryX' */</span></td></tr>
<tr name="204" id="204">
<td><a id="l204" class='ln'>204</a></td><td><span class="br">}</span>;</td></tr>
<tr name="205" id="205">
<td><a id="l205" class='ln'>205</a></td><td></td></tr>
<tr name="206" id="206">
<td><a id="l206" class='ln'>206</a></td><td><span class="pp">#ifndef</span> <a id="206c9" class="tk">ODE3_INTG</a></td></tr>
<tr name="207" id="207">
<td><a id="l207" class='ln'>207</a></td><td><span class="pp">#define</span> <a id="207c9" class="tk">ODE3_INTG</a></td></tr>
<tr name="208" id="208">
<td><a id="l208" class='ln'>208</a></td><td></td></tr>
<tr name="209" id="209">
<td><a id="l209" class='ln'>209</a></td><td><span class="ct">/* ODE3 Integration Data */</span></td></tr>
<tr name="210" id="210">
<td><a id="l210" class='ln'>210</a></td><td><span class="kw">struct</span> <a id="210c8" class="tk">ODE3_IntgData</a> <span class="br">{</span></td></tr>
<tr name="211" id="211">
<td><a id="l211" class='ln'>211</a></td><td> <a id="211c3" class="tk">real_T</a> <a id="211c10" class="tk">*</a><a id="211c11" class="tk">y</a>; <span class="ct">/* output */</span></td></tr>
<tr name="212" id="212">
<td><a id="l212" class='ln'>212</a></td><td> <a id="212c3" class="tk">real_T</a> <a id="212c10" class="tk">*</a><a id="212c11" class="tk">f</a>[3]; <span class="ct">/* derivatives */</span></td></tr>
<tr name="213" id="213">
<td><a id="l213" class='ln'>213</a></td><td><span class="br">}</span>;</td></tr>
<tr name="214" id="214">
<td><a id="l214" class='ln'>214</a></td><td></td></tr>
<tr name="215" id="215">
<td><a id="l215" class='ln'>215</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="216" id="216">
<td><a id="l216" class='ln'>216</a></td><td></td></tr>
<tr name="217" id="217">
<td><a id="l217" class='ln'>217</a></td><td><span class="ct">/* Parameters (default storage) */</span></td></tr>
<tr name="218" id="218">
<td><a id="l218" class='ln'>218</a></td><td><span class="kw">struct</span> <a id="218c8" class="tk">P_Arduino_skal_T_</a> <span class="br">{</span></td></tr>
<tr name="219" id="219">
<td><a id="l219" class='ln'>219</a></td><td> <a id="219c3" class="tk">real_T</a> <a id="219c10" class="tk">K</a>[4]; <span class="ct">/* Variable: K</span></td></tr>
<tr name="220" id="220">
<td><a id="l220" class='ln'>220</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Gain'</span></td></tr>
<tr name="221" id="221">
<td><a id="l221" class='ln'>221</a></td><td><span class="ct"> */</span></td></tr>
<tr name="222" id="222">
<td><a id="l222" class='ln'>222</a></td><td> <a id="222c3" class="tk">real_T</a> <a id="222c10" class="tk">Kr</a>; <span class="ct">/* Variable: Kr</span></td></tr>
<tr name="223" id="223">
<td><a id="l223" class='ln'>223</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Kr'</span></td></tr>
<tr name="224" id="224">
<td><a id="l224" class='ln'>224</a></td><td><span class="ct"> */</span></td></tr>
<tr name="225" id="225">
<td><a id="l225" class='ln'>225</a></td><td> <a id="225c3" class="tk">real_T</a> <a id="225c10" class="tk">Lykyhatkk1_Y0</a>; <span class="ct">/* Expression: 0</span></td></tr>
<tr name="226" id="226">
<td><a id="l226" class='ln'>226</a></td><td><span class="ct"> * Referenced by: '&lt;S53&gt;/L*(y[k]-yhat[k|k-1])'</span></td></tr>
<tr name="227" id="227">
<td><a id="l227" class='ln'>227</a></td><td><span class="ct"> */</span></td></tr>
<tr name="228" id="228">
<td><a id="l228" class='ln'>228</a></td><td> <a id="228c3" class="tk">real_T</a> <a id="228c10" class="tk">Constant_Value</a>[2]; <span class="ct">/* Expression: [1,1]</span></td></tr>
<tr name="229" id="229">
<td><a id="l229" class='ln'>229</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Constant'</span></td></tr>
<tr name="230" id="230">
<td><a id="l230" class='ln'>230</a></td><td><span class="ct"> */</span></td></tr>
<tr name="231" id="231">
<td><a id="l231" class='ln'>231</a></td><td> <a id="231c3" class="tk">real_T</a> <a id="231c10" class="tk">X0_Value</a>[4]; <span class="ct">/* Expression: pInitialization.X0</span></td></tr>
<tr name="232" id="232">
<td><a id="l232" class='ln'>232</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/X0'</span></td></tr>
<tr name="233" id="233">
<td><a id="l233" class='ln'>233</a></td><td><span class="ct"> */</span></td></tr>
<tr name="234" id="234">
<td><a id="l234" class='ln'>234</a></td><td> <a id="234c3" class="tk">real_T</a> <a id="234c10" class="tk">A_Value</a>[16]; <span class="ct">/* Expression: pInitialization.A</span></td></tr>
<tr name="235" id="235">
<td><a id="l235" class='ln'>235</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/A'</span></td></tr>
<tr name="236" id="236">
<td><a id="l236" class='ln'>236</a></td><td><span class="ct"> */</span></td></tr>
<tr name="237" id="237">
<td><a id="l237" class='ln'>237</a></td><td> <a id="237c3" class="tk">real_T</a> <a id="237c10" class="tk">B_Value</a>[4]; <span class="ct">/* Expression: pInitialization.B</span></td></tr>
<tr name="238" id="238">
<td><a id="l238" class='ln'>238</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/B'</span></td></tr>
<tr name="239" id="239">
<td><a id="l239" class='ln'>239</a></td><td><span class="ct"> */</span></td></tr>
<tr name="240" id="240">
<td><a id="l240" class='ln'>240</a></td><td> <a id="240c3" class="tk">real_T</a> <a id="240c10" class="tk">C_Value</a>[8]; <span class="ct">/* Expression: pInitialization.C</span></td></tr>
<tr name="241" id="241">
<td><a id="l241" class='ln'>241</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/C'</span></td></tr>
<tr name="242" id="242">
<td><a id="l242" class='ln'>242</a></td><td><span class="ct"> */</span></td></tr>
<tr name="243" id="243">
<td><a id="l243" class='ln'>243</a></td><td> <a id="243c3" class="tk">real_T</a> <a id="243c10" class="tk">CovarianceZ_Value</a>[16]; <span class="ct">/* Expression: pInitialization.Z</span></td></tr>
<tr name="244" id="244">
<td><a id="l244" class='ln'>244</a></td><td><span class="ct"> * Referenced by: '&lt;S2&gt;/CovarianceZ'</span></td></tr>
<tr name="245" id="245">
<td><a id="l245" class='ln'>245</a></td><td><span class="ct"> */</span></td></tr>
<tr name="246" id="246">
<td><a id="l246" class='ln'>246</a></td><td> <a id="246c3" class="tk">real_T</a> <a id="246c10" class="tk">KalmanGainL_Value</a>[8]; <span class="ct">/* Expression: pInitialization.L</span></td></tr>
<tr name="247" id="247">
<td><a id="l247" class='ln'>247</a></td><td><span class="ct"> * Referenced by: '&lt;S2&gt;/KalmanGainL'</span></td></tr>
<tr name="248" id="248">
<td><a id="l248" class='ln'>248</a></td><td><span class="ct"> */</span></td></tr>
<tr name="249" id="249">
<td><a id="l249" class='ln'>249</a></td><td> <a id="249c3" class="tk">real_T</a> <a id="249c10" class="tk">D_Value</a>[2]; <span class="ct">/* Expression: pInitialization.D</span></td></tr>
<tr name="250" id="250">
<td><a id="l250" class='ln'>250</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/D'</span></td></tr>
<tr name="251" id="251">
<td><a id="l251" class='ln'>251</a></td><td><span class="ct"> */</span></td></tr>
<tr name="252" id="252">
<td><a id="l252" class='ln'>252</a></td><td> <a id="252c3" class="tk">real_T</a> <a id="252c10" class="tk">Step_Time</a>; <span class="ct">/* Expression: 0</span></td></tr>
<tr name="253" id="253">
<td><a id="l253" class='ln'>253</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="254" id="254">
<td><a id="l254" class='ln'>254</a></td><td><span class="ct"> */</span></td></tr>
<tr name="255" id="255">
<td><a id="l255" class='ln'>255</a></td><td> <a id="255c3" class="tk">real_T</a> <a id="255c10" class="tk">Step_Y0</a>; <span class="ct">/* Expression: 0</span></td></tr>
<tr name="256" id="256">
<td><a id="l256" class='ln'>256</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="257" id="257">
<td><a id="l257" class='ln'>257</a></td><td><span class="ct"> */</span></td></tr>
<tr name="258" id="258">
<td><a id="l258" class='ln'>258</a></td><td> <a id="258c3" class="tk">real_T</a> <a id="258c10" class="tk">Step_YFinal</a>; <span class="ct">/* Expression: 0</span></td></tr>
<tr name="259" id="259">
<td><a id="l259" class='ln'>259</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Step'</span></td></tr>
<tr name="260" id="260">
<td><a id="l260" class='ln'>260</a></td><td><span class="ct"> */</span></td></tr>
<tr name="261" id="261">
<td><a id="l261" class='ln'>261</a></td><td> <a id="261c3" class="tk">real_T</a> <a id="261c10" class="tk">Saturation_UpperSat</a>; <span class="ct">/* Expression: 11.5</span></td></tr>
<tr name="262" id="262">
<td><a id="l262" class='ln'>262</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Saturation'</span></td></tr>
<tr name="263" id="263">
<td><a id="l263" class='ln'>263</a></td><td><span class="ct"> */</span></td></tr>
<tr name="264" id="264">
<td><a id="l264" class='ln'>264</a></td><td> <a id="264c3" class="tk">real_T</a> <a id="264c10" class="tk">Saturation_LowerSat</a>; <span class="ct">/* Expression: -11.5</span></td></tr>
<tr name="265" id="265">
<td><a id="l265" class='ln'>265</a></td><td><span class="ct"> * Referenced by: '&lt;Root&gt;/Saturation'</span></td></tr>
<tr name="266" id="266">
<td><a id="l266" class='ln'>266</a></td><td><span class="ct"> */</span></td></tr>
<tr name="267" id="267">
<td><a id="l267" class='ln'>267</a></td><td> <a id="267c3" class="tk">boolean_T</a> <a id="267c13" class="tk">isSqrtUsed_Value</a>; <span class="ct">/* Expression: pInitialization.isSqrtUsed</span></td></tr>
<tr name="268" id="268">
<td><a id="l268" class='ln'>268</a></td><td><span class="ct"> * Referenced by: '&lt;S51&gt;/isSqrtUsed'</span></td></tr>
<tr name="269" id="269">
<td><a id="l269" class='ln'>269</a></td><td><span class="ct"> */</span></td></tr>
<tr name="270" id="270">
<td><a id="l270" class='ln'>270</a></td><td> <a id="270c3" class="tk">boolean_T</a> <a id="270c13" class="tk">Enable_Value</a>; <span class="ct">/* Expression: true()</span></td></tr>
<tr name="271" id="271">
<td><a id="l271" class='ln'>271</a></td><td><span class="ct"> * Referenced by: '&lt;S1&gt;/Enable'</span></td></tr>
<tr name="272" id="272">
<td><a id="l272" class='ln'>272</a></td><td><span class="ct"> */</span></td></tr>
<tr name="273" id="273">
<td><a id="l273" class='ln'>273</a></td><td><span class="br">}</span>;</td></tr>
<tr name="274" id="274">
<td><a id="l274" class='ln'>274</a></td><td></td></tr>
<tr name="275" id="275">
<td><a id="l275" class='ln'>275</a></td><td><span class="ct">/* Real-time Model Data Structure */</span></td></tr>
<tr name="276" id="276">
<td><a id="l276" class='ln'>276</a></td><td><span class="kw">struct</span> <a id="276c8" class="tk">tag_RTM_Arduino_skal_T</a> <span class="br">{</span></td></tr>
<tr name="277" id="277">
<td><a id="l277" class='ln'>277</a></td><td> <span class="kw">const</span> <a id="277c9" class="tk">char_T</a> <a id="277c16" class="tk">*</a><a id="277c17" class="tk">errorStatus</a>;</td></tr>
<tr name="278" id="278">
<td><a id="l278" class='ln'>278</a></td><td> <a id="278c3" class="tk">RTWLogInfo</a> <a id="278c14" class="tk">*</a><a id="278c15" class="tk">rtwLogInfo</a>;</td></tr>
<tr name="279" id="279">
<td><a id="l279" class='ln'>279</a></td><td> <a id="279c3" class="tk">RTWSolverInfo</a> <a id="279c17" class="tk">solverInfo</a>;</td></tr>
<tr name="280" id="280">
<td><a id="l280" class='ln'>280</a></td><td> <a id="280c3" class="tk">X_Arduino_skal_T</a> <a id="280c20" class="tk">*</a><a id="280c21" class="tk">contStates</a>;</td></tr>
<tr name="281" id="281">
<td><a id="l281" class='ln'>281</a></td><td> <a id="281c3" class="tk">int_T</a> <a id="281c9" class="tk">*</a><a id="281c10" class="tk">periodicContStateIndices</a>;</td></tr>
<tr name="282" id="282">
<td><a id="l282" class='ln'>282</a></td><td> <a id="282c3" class="tk">real_T</a> <a id="282c10" class="tk">*</a><a id="282c11" class="tk">periodicContStateRanges</a>;</td></tr>
<tr name="283" id="283">
<td><a id="l283" class='ln'>283</a></td><td> <a id="283c3" class="tk">real_T</a> <a id="283c10" class="tk">*</a><a id="283c11" class="tk">derivs</a>;</td></tr>
<tr name="284" id="284">
<td><a id="l284" class='ln'>284</a></td><td> <a id="284c3" class="tk">boolean_T</a> <a id="284c13" class="tk">*</a><a id="284c14" class="tk">contStateDisabled</a>;</td></tr>
<tr name="285" id="285">
<td><a id="l285" class='ln'>285</a></td><td> <a id="285c3" class="tk">boolean_T</a> <a id="285c13" class="tk">zCCacheNeedsReset</a>;</td></tr>
<tr name="286" id="286">
<td><a id="l286" class='ln'>286</a></td><td> <a id="286c3" class="tk">boolean_T</a> <a id="286c13" class="tk">derivCacheNeedsReset</a>;</td></tr>
<tr name="287" id="287">
<td><a id="l287" class='ln'>287</a></td><td> <a id="287c3" class="tk">boolean_T</a> <a id="287c13" class="tk">CTOutputIncnstWithState</a>;</td></tr>
<tr name="288" id="288">
<td><a id="l288" class='ln'>288</a></td><td> <a id="288c3" class="tk">real_T</a> <a id="288c10" class="tk">odeY</a>[4];</td></tr>
<tr name="289" id="289">
<td><a id="l289" class='ln'>289</a></td><td> <a id="289c3" class="tk">real_T</a> <a id="289c10" class="tk">odeF</a>[3][4];</td></tr>
<tr name="290" id="290">
<td><a id="l290" class='ln'>290</a></td><td> <a id="290c3" class="tk">ODE3_IntgData</a> <a id="290c17" class="tk">intgData</a>;</td></tr>
<tr name="291" id="291">
<td><a id="l291" class='ln'>291</a></td><td></td></tr>
<tr name="292" id="292">
<td><a id="l292" class='ln'>292</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="293" id="293">
<td><a id="l293" class='ln'>293</a></td><td><span class="ct"> * Sizes:</span></td></tr>
<tr name="294" id="294">
<td><a id="l294" class='ln'>294</a></td><td><span class="ct"> * The following substructure contains sizes information</span></td></tr>
<tr name="295" id="295">
<td><a id="l295" class='ln'>295</a></td><td><span class="ct"> * for many of the model attributes such as inputs, outputs,</span></td></tr>
<tr name="296" id="296">
<td><a id="l296" class='ln'>296</a></td><td><span class="ct"> * dwork, sample times, etc.</span></td></tr>
<tr name="297" id="297">
<td><a id="l297" class='ln'>297</a></td><td><span class="ct"> */</span></td></tr>
<tr name="298" id="298">
<td><a id="l298" class='ln'>298</a></td><td> <span class="kw">struct</span> <span class="br">{</span></td></tr>
<tr name="299" id="299">
<td><a id="l299" class='ln'>299</a></td><td> <a id="299c5" class="tk">int_T</a> <a id="299c11" class="tk">numContStates</a>;</td></tr>
<tr name="300" id="300">
<td><a id="l300" class='ln'>300</a></td><td> <a id="300c5" class="tk">int_T</a> <a id="300c11" class="tk">numPeriodicContStates</a>;</td></tr>
<tr name="301" id="301">
<td><a id="l301" class='ln'>301</a></td><td> <a id="301c5" class="tk">int_T</a> <a id="301c11" class="tk">numSampTimes</a>;</td></tr>
<tr name="302" id="302">
<td><a id="l302" class='ln'>302</a></td><td> <span class="br">}</span> <a id="302c5" class="tk">Sizes</a>;</td></tr>
<tr name="303" id="303">
<td><a id="l303" class='ln'>303</a></td><td></td></tr>
<tr name="304" id="304">
<td><a id="l304" class='ln'>304</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="305" id="305">
<td><a id="l305" class='ln'>305</a></td><td><span class="ct"> * Timing:</span></td></tr>
<tr name="306" id="306">
<td><a id="l306" class='ln'>306</a></td><td><span class="ct"> * The following substructure contains information regarding</span></td></tr>
<tr name="307" id="307">
<td><a id="l307" class='ln'>307</a></td><td><span class="ct"> * the timing information for the model.</span></td></tr>
<tr name="308" id="308">
<td><a id="l308" class='ln'>308</a></td><td><span class="ct"> */</span></td></tr>
<tr name="309" id="309">
<td><a id="l309" class='ln'>309</a></td><td> <span class="kw">struct</span> <span class="br">{</span></td></tr>
<tr name="310" id="310">
<td><a id="l310" class='ln'>310</a></td><td> <a id="310c5" class="tk">uint32_T</a> <a id="310c14" class="tk">clockTick0</a>;</td></tr>
<tr name="311" id="311">
<td><a id="l311" class='ln'>311</a></td><td> <a id="311c5" class="tk">uint32_T</a> <a id="311c14" class="tk">clockTickH0</a>;</td></tr>
<tr name="312" id="312">
<td><a id="l312" class='ln'>312</a></td><td> <a id="312c5" class="tk">time_T</a> <a id="312c12" class="tk">stepSize0</a>;</td></tr>
<tr name="313" id="313">
<td><a id="l313" class='ln'>313</a></td><td> <a id="313c5" class="tk">uint32_T</a> <a id="313c14" class="tk">clockTick1</a>;</td></tr>
<tr name="314" id="314">
<td><a id="l314" class='ln'>314</a></td><td> <a id="314c5" class="tk">uint32_T</a> <a id="314c14" class="tk">clockTickH1</a>;</td></tr>
<tr name="315" id="315">
<td><a id="l315" class='ln'>315</a></td><td> <a id="315c5" class="tk">boolean_T</a> <a id="315c15" class="tk">firstInitCondFlag</a>;</td></tr>
<tr name="316" id="316">
<td><a id="l316" class='ln'>316</a></td><td> <a id="316c5" class="tk">time_T</a> <a id="316c12" class="tk">tFinal</a>;</td></tr>
<tr name="317" id="317">
<td><a id="l317" class='ln'>317</a></td><td> <a id="317c5" class="tk">SimTimeStep</a> <a id="317c17" class="tk">simTimeStep</a>;</td></tr>
<tr name="318" id="318">
<td><a id="l318" class='ln'>318</a></td><td> <a id="318c5" class="tk">boolean_T</a> <a id="318c15" class="tk">stopRequestedFlag</a>;</td></tr>
<tr name="319" id="319">
<td><a id="l319" class='ln'>319</a></td><td> <a id="319c5" class="tk">time_T</a> <a id="319c12" class="tk">*</a><a id="319c13" class="tk">t</a>;</td></tr>
<tr name="320" id="320">
<td><a id="l320" class='ln'>320</a></td><td> <a id="320c5" class="tk">time_T</a> <a id="320c12" class="tk">tArray</a>[2];</td></tr>
<tr name="321" id="321">
<td><a id="l321" class='ln'>321</a></td><td> <span class="br">}</span> <a id="321c5" class="tk">Timing</a>;</td></tr>
<tr name="322" id="322">
<td><a id="l322" class='ln'>322</a></td><td><span class="br">}</span>;</td></tr>
<tr name="323" id="323">
<td><a id="l323" class='ln'>323</a></td><td></td></tr>
<tr name="324" id="324">
<td><a id="l324" class='ln'>324</a></td><td><span class="ct">/* Class declaration for model Arduino_skal */</span></td></tr>
<tr name="325" id="325">
<td><a id="l325" class='ln'>325</a></td><td><span class="kw">class</span> <a id="325c7" class="tk">Arduino_skalModelClass</a> <span class="br">{</span></td></tr>
<tr name="326" id="326">
<td><a id="l326" class='ln'>326</a></td><td> <span class="ct">/* public data and function members */</span></td></tr>
<tr name="327" id="327">
<td><a id="l327" class='ln'>327</a></td><td> <span class="kw">public</span><a id="327c8" class="tk">:</a></td></tr>
<tr name="328" id="328">
<td><a id="l328" class='ln'>328</a></td><td> <span class="ct">/* model initialize function */</span></td></tr>
<tr name="329" id="329">
<td><a id="l329" class='ln'>329</a></td><td> <span class="kw">void</span> <a id="329c8" class="tk">initialize</a>();</td></tr>
<tr name="330" id="330">
<td><a id="l330" class='ln'>330</a></td><td></td></tr>
<tr name="331" id="331">
<td><a id="l331" class='ln'>331</a></td><td> <span class="ct">/* model step function */</span></td></tr>
<tr name="332" id="332">
<td><a id="l332" class='ln'>332</a></td><td> <span class="kw">void</span> <a id="332c8" class="tk">step</a>();</td></tr>
<tr name="333" id="333">
<td><a id="l333" class='ln'>333</a></td><td></td></tr>
<tr name="334" id="334">
<td><a id="l334" class='ln'>334</a></td><td> <span class="ct">/* model terminate function */</span></td></tr>
<tr name="335" id="335">
<td><a id="l335" class='ln'>335</a></td><td> <span class="kw">void</span> <a id="335c8" class="tk">terminate</a>();</td></tr>
<tr name="336" id="336">
<td><a id="l336" class='ln'>336</a></td><td></td></tr>
<tr name="337" id="337">
<td><a id="l337" class='ln'>337</a></td><td> <span class="ct">/* Constructor */</span></td></tr>
<tr name="338" id="338">
<td><a id="l338" class='ln'>338</a></td><td> <a id="338c3" class="tk">Arduino_skalModelClass</a>();</td></tr>
<tr name="339" id="339">
<td><a id="l339" class='ln'>339</a></td><td></td></tr>
<tr name="340" id="340">
<td><a id="l340" class='ln'>340</a></td><td> <span class="ct">/* Destructor */</span></td></tr>
<tr name="341" id="341">
<td><a id="l341" class='ln'>341</a></td><td> <a id="341c3" class="tk">~</a><a id="341c4" class="tk">Arduino_skalModelClass</a>();</td></tr>
<tr name="342" id="342">
<td><a id="l342" class='ln'>342</a></td><td></td></tr>
<tr name="343" id="343">
<td><a id="l343" class='ln'>343</a></td><td> <span class="ct">/* Real-Time Model get method */</span></td></tr>
<tr name="344" id="344">
<td><a id="l344" class='ln'>344</a></td><td> <a id="344c3" class="tk">RT_MODEL_Arduino_skal_T</a> <a id="344c27" class="tk">*</a> <a id="344c29" class="tk">getRTM</a>();</td></tr>
<tr name="345" id="345">
<td><a id="l345" class='ln'>345</a></td><td></td></tr>
<tr name="346" id="346">
<td><a id="l346" class='ln'>346</a></td><td> <span class="ct">/* private data and function members */</span></td></tr>
<tr name="347" id="347">
<td><a id="l347" class='ln'>347</a></td><td> <span class="kw">private</span><a id="347c9" class="tk">:</a></td></tr>
<tr name="348" id="348">
<td><a id="l348" class='ln'>348</a></td><td> <span class="ct">/* Tunable parameters */</span></td></tr>
<tr name="349" id="349">
<td><a id="l349" class='ln'>349</a></td><td> <span class="kw">static</span> <a id="349c10" class="tk">P_Arduino_skal_T</a> <a id="349c27" class="tk">Arduino_skal_P</a>;</td></tr>
<tr name="350" id="350">
<td><a id="l350" class='ln'>350</a></td><td></td></tr>
<tr name="351" id="351">
<td><a id="l351" class='ln'>351</a></td><td> <span class="ct">/* Block signals */</span></td></tr>
<tr name="352" id="352">
<td><a id="l352" class='ln'>352</a></td><td> <a id="352c3" class="tk">B_Arduino_skal_T</a> <a id="352c20" class="tk">Arduino_skal_B</a>;</td></tr>
<tr name="353" id="353">
<td><a id="l353" class='ln'>353</a></td><td></td></tr>
<tr name="354" id="354">
<td><a id="l354" class='ln'>354</a></td><td> <span class="ct">/* Block states */</span></td></tr>
<tr name="355" id="355">
<td><a id="l355" class='ln'>355</a></td><td> <a id="355c3" class="tk">DW_Arduino_skal_T</a> <a id="355c21" class="tk">Arduino_skal_DW</a>;</td></tr>
<tr name="356" id="356">
<td><a id="l356" class='ln'>356</a></td><td> <a id="356c3" class="tk">X_Arduino_skal_T</a> <a id="356c20" class="tk">Arduino_skal_X</a>; <span class="ct">/* Block continuous states */</span></td></tr>
<tr name="357" id="357">
<td><a id="l357" class='ln'>357</a></td><td></td></tr>
<tr name="358" id="358">
<td><a id="l358" class='ln'>358</a></td><td> <span class="ct">/* Real-Time Model */</span></td></tr>
<tr name="359" id="359">
<td><a id="l359" class='ln'>359</a></td><td> <a id="359c3" class="tk">RT_MODEL_Arduino_skal_T</a> <a id="359c27" class="tk">Arduino_skal_M</a>;</td></tr>
<tr name="360" id="360">
<td><a id="l360" class='ln'>360</a></td><td></td></tr>
<tr name="361" id="361">
<td><a id="l361" class='ln'>361</a></td><td> <span class="ct">/* Continuous states update member function*/</span></td></tr>
<tr name="362" id="362">
<td><a id="l362" class='ln'>362</a></td><td> <span class="kw">void</span> <a id="362c8" class="tk">rt_ertODEUpdateContinuousStates</a>(<a id="362c40" class="tk">RTWSolverInfo</a> <a id="362c54" class="tk">*</a><a id="362c55" class="tk">si</a> );</td></tr>
<tr name="363" id="363">
<td><a id="l363" class='ln'>363</a></td><td></td></tr>
<tr name="364" id="364">
<td><a id="l364" class='ln'>364</a></td><td> <span class="ct">/* Derivatives member function */</span></td></tr>
<tr name="365" id="365">
<td><a id="l365" class='ln'>365</a></td><td> <span class="kw">void</span> <a id="365c8" class="tk">Arduino_skal_derivatives</a>();</td></tr>
<tr name="366" id="366">
<td><a id="l366" class='ln'>366</a></td><td><span class="br">}</span>;</td></tr>
<tr name="367" id="367">
<td><a id="l367" class='ln'>367</a></td><td></td></tr>
<tr name="368" id="368">
<td><a id="l368" class='ln'>368</a></td><td><span class="ct">/*-</span></td></tr>
<tr name="369" id="369">
<td><a id="l369" class='ln'>369</a></td><td><span class="ct"> * These blocks were eliminated from the model due to optimizations:</span></td></tr>
<tr name="370" id="370">
<td><a id="l370" class='ln'>370</a></td><td><span class="ct"> *</span></td></tr>
<tr name="371" id="371">
<td><a id="l371" class='ln'>371</a></td><td><span class="ct"> * Block '&lt;S45&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="372" id="372">
<td><a id="l372" class='ln'>372</a></td><td><span class="ct"> * Block '&lt;S46&gt;/Conversion' : Unused code path elimination</span></td></tr>
<tr name="373" id="373">
<td><a id="l373" class='ln'>373</a></td><td><span class="ct"> * Block '&lt;S46&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="374" id="374">
<td><a id="l374" class='ln'>374</a></td><td><span class="ct"> * Block '&lt;S47&gt;/Conversion' : Unused code path elimination</span></td></tr>
<tr name="375" id="375">
<td><a id="l375" class='ln'>375</a></td><td><span class="ct"> * Block '&lt;S47&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="376" id="376">
<td><a id="l376" class='ln'>376</a></td><td><span class="ct"> * Block '&lt;S48&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="377" id="377">
<td><a id="l377" class='ln'>377</a></td><td><span class="ct"> * Block '&lt;S2&gt;/KalmanGainM' : Unused code path elimination</span></td></tr>
<tr name="378" id="378">
<td><a id="l378" class='ln'>378</a></td><td><span class="ct"> * Block '&lt;S5&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="379" id="379">
<td><a id="l379" class='ln'>379</a></td><td><span class="ct"> * Block '&lt;S6&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="380" id="380">
<td><a id="l380" class='ln'>380</a></td><td><span class="ct"> * Block '&lt;S7&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="381" id="381">
<td><a id="l381" class='ln'>381</a></td><td><span class="ct"> * Block '&lt;S8&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="382" id="382">
<td><a id="l382" class='ln'>382</a></td><td><span class="ct"> * Block '&lt;S10&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="383" id="383">
<td><a id="l383" class='ln'>383</a></td><td><span class="ct"> * Block '&lt;S11&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="384" id="384">
<td><a id="l384" class='ln'>384</a></td><td><span class="ct"> * Block '&lt;S12&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="385" id="385">
<td><a id="l385" class='ln'>385</a></td><td><span class="ct"> * Block '&lt;S13&gt;/Conversion' : Unused code path elimination</span></td></tr>
<tr name="386" id="386">
<td><a id="l386" class='ln'>386</a></td><td><span class="ct"> * Block '&lt;S13&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="387" id="387">
<td><a id="l387" class='ln'>387</a></td><td><span class="ct"> * Block '&lt;S14&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="388" id="388">
<td><a id="l388" class='ln'>388</a></td><td><span class="ct"> * Block '&lt;S15&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="389" id="389">
<td><a id="l389" class='ln'>389</a></td><td><span class="ct"> * Block '&lt;S16&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="390" id="390">
<td><a id="l390" class='ln'>390</a></td><td><span class="ct"> * Block '&lt;S18&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="391" id="391">
<td><a id="l391" class='ln'>391</a></td><td><span class="ct"> * Block '&lt;S19&gt;/Data Type Duplicate' : Unused code path elimination</span></td></tr>
<tr name="392" id="392">
<td><a id="l392" class='ln'>392</a></td><td><span class="ct"> * Block '&lt;S1&gt;/G' : Unused code path elimination</span></td></tr>
<tr name="393" id="393">
<td><a id="l393" class='ln'>393</a></td><td><span class="ct"> * Block '&lt;S1&gt;/H' : Unused code path elimination</span></td></tr>
<tr name="394" id="394">
<td><a id="l394" class='ln'>394</a></td><td><span class="ct"> * Block '&lt;S1&gt;/N' : Unused code path elimination</span></td></tr>
<tr name="395" id="395">
<td><a id="l395" class='ln'>395</a></td><td><span class="ct"> * Block '&lt;S1&gt;/P0' : Unused code path elimination</span></td></tr>
<tr name="396" id="396">
<td><a id="l396" class='ln'>396</a></td><td><span class="ct"> * Block '&lt;S1&gt;/Q' : Unused code path elimination</span></td></tr>
<tr name="397" id="397">
<td><a id="l397" class='ln'>397</a></td><td><span class="ct"> * Block '&lt;S1&gt;/R' : Unused code path elimination</span></td></tr>
<tr name="398" id="398">
<td><a id="l398" class='ln'>398</a></td><td><span class="ct"> * Block '&lt;S43&gt;/CheckSignalProperties' : Unused code path elimination</span></td></tr>
<tr name="399" id="399">
<td><a id="l399" class='ln'>399</a></td><td><span class="ct"> * Block '&lt;S44&gt;/CheckSignalProperties' : Unused code path elimination</span></td></tr>
<tr name="400" id="400">
<td><a id="l400" class='ln'>400</a></td><td><span class="ct"> * Block '&lt;S45&gt;/Conversion' : Eliminate redundant data type conversion</span></td></tr>
<tr name="401" id="401">
<td><a id="l401" class='ln'>401</a></td><td><span class="ct"> * Block '&lt;S48&gt;/Conversion' : Eliminate redundant data type conversion</span></td></tr>
<tr name="402" id="402">
<td><a id="l402" class='ln'>402</a></td><td><span class="ct"> * Block '&lt;S18&gt;/Conversion' : Eliminate redundant data type conversion</span></td></tr>
<tr name="403" id="403">
<td><a id="l403" class='ln'>403</a></td><td><span class="ct"> * Block '&lt;S22&gt;/Reshape' : Reshape block reduction</span></td></tr>
<tr name="404" id="404">
<td><a id="l404" class='ln'>404</a></td><td><span class="ct"> * Block '&lt;S1&gt;/ReshapeX0' : Reshape block reduction</span></td></tr>
<tr name="405" id="405">
<td><a id="l405" class='ln'>405</a></td><td><span class="ct"> * Block '&lt;S1&gt;/Reshapeu' : Reshape block reduction</span></td></tr>
<tr name="406" id="406">
<td><a id="l406" class='ln'>406</a></td><td><span class="ct"> * Block '&lt;S1&gt;/Reshapexhat' : Reshape block reduction</span></td></tr>
<tr name="407" id="407">
<td><a id="l407" class='ln'>407</a></td><td><span class="ct"> * Block '&lt;S1&gt;/Reshapey' : Reshape block reduction</span></td></tr>
<tr name="408" id="408">
<td><a id="l408" class='ln'>408</a></td><td><span class="ct"> */</span></td></tr>
<tr name="409" id="409">
<td><a id="l409" class='ln'>409</a></td><td></td></tr>
<tr name="410" id="410">
<td><a id="l410" class='ln'>410</a></td><td><span class="ct">/*-</span></td></tr>
<tr name="411" id="411">
<td><a id="l411" class='ln'>411</a></td><td><span class="ct"> * The generated code includes comments that allow you to trace directly</span></td></tr>
<tr name="412" id="412">
<td><a id="l412" class='ln'>412</a></td><td><span class="ct"> * back to the appropriate location in the model. The basic format</span></td></tr>
<tr name="413" id="413">
<td><a id="l413" class='ln'>413</a></td><td><span class="ct"> * is &lt;system&gt;/block_name, where system is the system number (uniquely</span></td></tr>
<tr name="414" id="414">
<td><a id="l414" class='ln'>414</a></td><td><span class="ct"> * assigned by Simulink) and block_name is the name of the block.</span></td></tr>
<tr name="415" id="415">
<td><a id="l415" class='ln'>415</a></td><td><span class="ct"> *</span></td></tr>
<tr name="416" id="416">
<td><a id="l416" class='ln'>416</a></td><td><span class="ct"> * Use the MATLAB hilite_system command to trace the generated code back</span></td></tr>
<tr name="417" id="417">
<td><a id="l417" class='ln'>417</a></td><td><span class="ct"> * to the model. For example,</span></td></tr>
<tr name="418" id="418">
<td><a id="l418" class='ln'>418</a></td><td><span class="ct"> *</span></td></tr>
<tr name="419" id="419">
<td><a id="l419" class='ln'>419</a></td><td><span class="ct"> * hilite_system('&lt;S3&gt;') - opens system 3</span></td></tr>
<tr name="420" id="420">
<td><a id="l420" class='ln'>420</a></td><td><span class="ct"> * hilite_system('&lt;S3&gt;/Kp') - opens and selects block Kp which resides in S3</span></td></tr>
<tr name="421" id="421">
<td><a id="l421" class='ln'>421</a></td><td><span class="ct"> *</span></td></tr>
<tr name="422" id="422">
<td><a id="l422" class='ln'>422</a></td><td><span class="ct"> * Here is the system hierarchy for this model</span></td></tr>
<tr name="423" id="423">
<td><a id="l423" class='ln'>423</a></td><td><span class="ct"> *</span></td></tr>
<tr name="424" id="424">
<td><a id="l424" class='ln'>424</a></td><td><span class="ct"> * '&lt;Root&gt;' : 'Arduino_skal'</span></td></tr>
<tr name="425" id="425">
<td><a id="l425" class='ln'>425</a></td><td><span class="ct"> * '&lt;S1&gt;' : 'Arduino_skal/Kalman Filter'</span></td></tr>
<tr name="426" id="426">
<td><a id="l426" class='ln'>426</a></td><td><span class="ct"> * '&lt;S2&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL'</span></td></tr>
<tr name="427" id="427">
<td><a id="l427" class='ln'>427</a></td><td><span class="ct"> * '&lt;S3&gt;' : 'Arduino_skal/Kalman Filter/CalculateYhat'</span></td></tr>
<tr name="428" id="428">
<td><a id="l428" class='ln'>428</a></td><td><span class="ct"> * '&lt;S4&gt;' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator'</span></td></tr>
<tr name="429" id="429">
<td><a id="l429" class='ln'>429</a></td><td><span class="ct"> * '&lt;S5&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionA'</span></td></tr>
<tr name="430" id="430">
<td><a id="l430" class='ln'>430</a></td><td><span class="ct"> * '&lt;S6&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionB'</span></td></tr>
<tr name="431" id="431">
<td><a id="l431" class='ln'>431</a></td><td><span class="ct"> * '&lt;S7&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionC'</span></td></tr>
<tr name="432" id="432">
<td><a id="l432" class='ln'>432</a></td><td><span class="ct"> * '&lt;S8&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionD'</span></td></tr>
<tr name="433" id="433">
<td><a id="l433" class='ln'>433</a></td><td><span class="ct"> * '&lt;S9&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionEnable'</span></td></tr>
<tr name="434" id="434">
<td><a id="l434" class='ln'>434</a></td><td><span class="ct"> * '&lt;S10&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionG'</span></td></tr>
<tr name="435" id="435">
<td><a id="l435" class='ln'>435</a></td><td><span class="ct"> * '&lt;S11&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionH'</span></td></tr>
<tr name="436" id="436">
<td><a id="l436" class='ln'>436</a></td><td><span class="ct"> * '&lt;S12&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionN'</span></td></tr>
<tr name="437" id="437">
<td><a id="l437" class='ln'>437</a></td><td><span class="ct"> * '&lt;S13&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionP'</span></td></tr>
<tr name="438" id="438">
<td><a id="l438" class='ln'>438</a></td><td><span class="ct"> * '&lt;S14&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionP0'</span></td></tr>
<tr name="439" id="439">
<td><a id="l439" class='ln'>439</a></td><td><span class="ct"> * '&lt;S15&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionQ'</span></td></tr>
<tr name="440" id="440">
<td><a id="l440" class='ln'>440</a></td><td><span class="ct"> * '&lt;S16&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionR'</span></td></tr>
<tr name="441" id="441">
<td><a id="l441" class='ln'>441</a></td><td><span class="ct"> * '&lt;S17&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionReset'</span></td></tr>
<tr name="442" id="442">
<td><a id="l442" class='ln'>442</a></td><td><span class="ct"> * '&lt;S18&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionX'</span></td></tr>
<tr name="443" id="443">
<td><a id="l443" class='ln'>443</a></td><td><span class="ct"> * '&lt;S19&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionX0'</span></td></tr>
<tr name="444" id="444">
<td><a id="l444" class='ln'>444</a></td><td><span class="ct"> * '&lt;S20&gt;' : 'Arduino_skal/Kalman Filter/DataTypeConversionu'</span></td></tr>
<tr name="445" id="445">
<td><a id="l445" class='ln'>445</a></td><td><span class="ct"> * '&lt;S21&gt;' : 'Arduino_skal/Kalman Filter/MemoryP'</span></td></tr>
<tr name="446" id="446">
<td><a id="l446" class='ln'>446</a></td><td><span class="ct"> * '&lt;S22&gt;' : 'Arduino_skal/Kalman Filter/Observer'</span></td></tr>
<tr name="447" id="447">
<td><a id="l447" class='ln'>447</a></td><td><span class="ct"> * '&lt;S23&gt;' : 'Arduino_skal/Kalman Filter/ReducedQRN'</span></td></tr>
<tr name="448" id="448">
<td><a id="l448" class='ln'>448</a></td><td><span class="ct"> * '&lt;S24&gt;' : 'Arduino_skal/Kalman Filter/Reset'</span></td></tr>
<tr name="449" id="449">
<td><a id="l449" class='ln'>449</a></td><td><span class="ct"> * '&lt;S25&gt;' : 'Arduino_skal/Kalman Filter/Reshapeyhat'</span></td></tr>
<tr name="450" id="450">
<td><a id="l450" class='ln'>450</a></td><td><span class="ct"> * '&lt;S26&gt;' : 'Arduino_skal/Kalman Filter/ScalarExpansionP0'</span></td></tr>
<tr name="451" id="451">
<td><a id="l451" class='ln'>451</a></td><td><span class="ct"> * '&lt;S27&gt;' : 'Arduino_skal/Kalman Filter/ScalarExpansionQ'</span></td></tr>
<tr name="452" id="452">
<td><a id="l452" class='ln'>452</a></td><td><span class="ct"> * '&lt;S28&gt;' : 'Arduino_skal/Kalman Filter/ScalarExpansionR'</span></td></tr>
<tr name="453" id="453">
<td><a id="l453" class='ln'>453</a></td><td><span class="ct"> * '&lt;S29&gt;' : 'Arduino_skal/Kalman Filter/UseCurrentEstimator'</span></td></tr>
<tr name="454" id="454">
<td><a id="l454" class='ln'>454</a></td><td><span class="ct"> * '&lt;S30&gt;' : 'Arduino_skal/Kalman Filter/checkA'</span></td></tr>
<tr name="455" id="455">
<td><a id="l455" class='ln'>455</a></td><td><span class="ct"> * '&lt;S31&gt;' : 'Arduino_skal/Kalman Filter/checkB'</span></td></tr>
<tr name="456" id="456">
<td><a id="l456" class='ln'>456</a></td><td><span class="ct"> * '&lt;S32&gt;' : 'Arduino_skal/Kalman Filter/checkC'</span></td></tr>
<tr name="457" id="457">
<td><a id="l457" class='ln'>457</a></td><td><span class="ct"> * '&lt;S33&gt;' : 'Arduino_skal/Kalman Filter/checkD'</span></td></tr>
<tr name="458" id="458">
<td><a id="l458" class='ln'>458</a></td><td><span class="ct"> * '&lt;S34&gt;' : 'Arduino_skal/Kalman Filter/checkEnable'</span></td></tr>
<tr name="459" id="459">
<td><a id="l459" class='ln'>459</a></td><td><span class="ct"> * '&lt;S35&gt;' : 'Arduino_skal/Kalman Filter/checkG'</span></td></tr>
<tr name="460" id="460">
<td><a id="l460" class='ln'>460</a></td><td><span class="ct"> * '&lt;S36&gt;' : 'Arduino_skal/Kalman Filter/checkH'</span></td></tr>
<tr name="461" id="461">
<td><a id="l461" class='ln'>461</a></td><td><span class="ct"> * '&lt;S37&gt;' : 'Arduino_skal/Kalman Filter/checkN'</span></td></tr>
<tr name="462" id="462">
<td><a id="l462" class='ln'>462</a></td><td><span class="ct"> * '&lt;S38&gt;' : 'Arduino_skal/Kalman Filter/checkP0'</span></td></tr>
<tr name="463" id="463">
<td><a id="l463" class='ln'>463</a></td><td><span class="ct"> * '&lt;S39&gt;' : 'Arduino_skal/Kalman Filter/checkQ'</span></td></tr>
<tr name="464" id="464">
<td><a id="l464" class='ln'>464</a></td><td><span class="ct"> * '&lt;S40&gt;' : 'Arduino_skal/Kalman Filter/checkR'</span></td></tr>
<tr name="465" id="465">
<td><a id="l465" class='ln'>465</a></td><td><span class="ct"> * '&lt;S41&gt;' : 'Arduino_skal/Kalman Filter/checkReset'</span></td></tr>
<tr name="466" id="466">
<td><a id="l466" class='ln'>466</a></td><td><span class="ct"> * '&lt;S42&gt;' : 'Arduino_skal/Kalman Filter/checkX0'</span></td></tr>
<tr name="467" id="467">
<td><a id="l467" class='ln'>467</a></td><td><span class="ct"> * '&lt;S43&gt;' : 'Arduino_skal/Kalman Filter/checku'</span></td></tr>
<tr name="468" id="468">
<td><a id="l468" class='ln'>468</a></td><td><span class="ct"> * '&lt;S44&gt;' : 'Arduino_skal/Kalman Filter/checky'</span></td></tr>
<tr name="469" id="469">
<td><a id="l469" class='ln'>469</a></td><td><span class="ct"> * '&lt;S45&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionL'</span></td></tr>
<tr name="470" id="470">
<td><a id="l470" class='ln'>470</a></td><td><span class="ct"> * '&lt;S46&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionM'</span></td></tr>
<tr name="471" id="471">
<td><a id="l471" class='ln'>471</a></td><td><span class="ct"> * '&lt;S47&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionP'</span></td></tr>
<tr name="472" id="472">
<td><a id="l472" class='ln'>472</a></td><td><span class="ct"> * '&lt;S48&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL/DataTypeConversionZ'</span></td></tr>
<tr name="473" id="473">
<td><a id="l473" class='ln'>473</a></td><td><span class="ct"> * '&lt;S49&gt;' : 'Arduino_skal/Kalman Filter/CalculatePL/Ground'</span></td></tr>
<tr name="474" id="474">
<td><a id="l474" class='ln'>474</a></td><td><span class="ct"> * '&lt;S50&gt;' : 'Arduino_skal/Kalman Filter/CalculateYhat/Ground'</span></td></tr>
<tr name="475" id="475">
<td><a id="l475" class='ln'>475</a></td><td><span class="ct"> * '&lt;S51&gt;' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator/decideOutput'</span></td></tr>
<tr name="476" id="476">
<td><a id="l476" class='ln'>476</a></td><td><span class="ct"> * '&lt;S52&gt;' : 'Arduino_skal/Kalman Filter/CovarianceOutputConfigurator/decideOutput/SqrtUsedFcn'</span></td></tr>
<tr name="477" id="477">
<td><a id="l477" class='ln'>477</a></td><td><span class="ct"> * '&lt;S53&gt;' : 'Arduino_skal/Kalman Filter/Observer/MeasurementUpdate'</span></td></tr>
<tr name="478" id="478">
<td><a id="l478" class='ln'>478</a></td><td><span class="ct"> * '&lt;S54&gt;' : 'Arduino_skal/Kalman Filter/ReducedQRN/Ground'</span></td></tr>
<tr name="479" id="479">
<td><a id="l479" class='ln'>479</a></td><td><span class="ct"> */</span></td></tr>
<tr name="480" id="480">
<td><a id="l480" class='ln'>480</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_Arduino_skal_h_ */</span></td></tr>
<tr name="481" id="481">
<td><a id="l481" class='ln'>481</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,633 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript">function rtwTableShrink(o) {var t = o.nextSibling;if (t.nodeType != 1) {t = t.nextSibling;}if (t.style.display == "none") {t.style.display = "";o.innerHTML = "[-]"} else {t.style.display = "none";o.innerHTML = "[+] ... "}}</script><script language="JavaScript" type="text/javascript" src="rtwreport_utils.js"></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>
Code Interface Report for Arduino_skal
</title>
</head>
<body ONLOAD="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdCodeInterface'); else local_onload();}} catch(err) {};">
<h1>
Code Interface Report for Arduino_skal
</h1>
<h3>
Table of Contents
</h3>
<ul>
<li>
<a href="#sec_Entry-Point_Functions">
Entry-Point Functions
</a>
</li>
<li>
<a href="#sec_Inports">
Inports
</a>
</li>
<li>
<a href="#sec_Outports">
Outports
</a>
</li>
<li>
<a href="#sec_Interface_Parameters">
Interface Parameters
</a>
</li>
<li>
<a href="#sec_Data_Stores">
Data Stores
</a>
</li>
</ul>
<h3>
<a name="sec_Entry-Point_Functions">
Entry-Point Functions
</a>
</h3>
<p>
Function: <a href="Arduino_skal_cpp.html#fcn_initialize">initialize</a>
</p>
<table width="100%" class="AltRow" cellspacing="0">
<tr class="even">
<td width="25%" align="left" valign="top">
Prototype
</td>
<td width="75%" align="left" valign="top">
<b>
void initialize(void)
</b>
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Description
</td>
<td width="75%" align="left" valign="top">
Initialization entry point of generated code
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Timing
</td>
<td width="75%" align="left" valign="top">
Must be called exactly once
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Arguments
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Return value
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Header file
</td>
<td width="75%" align="left" valign="top">
<a href="Arduino_skal_h.html">Arduino_skal.h</a>
</td>
</tr>
</table>
<p>
Function: <a href="Arduino_skal_cpp.html#fcn_step">step</a>
</p>
<table width="100%" class="AltRow" cellspacing="0">
<tr class="even">
<td width="25%" align="left" valign="top">
Prototype
</td>
<td width="75%" align="left" valign="top">
<b>
void step(void)
</b>
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Description
</td>
<td width="75%" align="left" valign="top">
Output entry point of generated code
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Timing
</td>
<td width="75%" align="left" valign="top">
Must be called periodically, every 0.2 seconds
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Arguments
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Return value
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Header file
</td>
<td width="75%" align="left" valign="top">
<a href="Arduino_skal_h.html">Arduino_skal.h</a>
</td>
</tr>
</table>
<p>
Function: <a href="Arduino_skal_cpp.html#fcn_terminate">terminate</a>
</p>
<table width="100%" class="AltRow" cellspacing="0">
<tr class="even">
<td width="25%" align="left" valign="top">
Prototype
</td>
<td width="75%" align="left" valign="top">
<b>
void terminate(void)
</b>
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Description
</td>
<td width="75%" align="left" valign="top">
Termination entry point of generated code
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Timing
</td>
<td width="75%" align="left" valign="top">
Must be called exactly once
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Arguments
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="even">
<td width="25%" align="left" valign="top">
Return value
</td>
<td width="75%" align="left" valign="top">
None
</td>
</tr>
<tr class="odd">
<td width="25%" align="left" valign="top">
Header file
</td>
<td width="75%" align="left" valign="top">
<a href="Arduino_skal_h.html">Arduino_skal.h</a>
</td>
</tr>
</table>
<h3>
<a name="sec_Inports">
Inports
</a>
</h3>
<p>
No Inports in model.
</p>
<h3>
<a name="sec_Outports">
Outports
</a>
</h3>
<p>
No Outports in model.
</p>
<h3>
<a name="sec_Interface_Parameters">
Interface Parameters
</a>
</h3>
<span title="Click to shrink or expand table" onclick="rtwTableShrink(this)">[-]</span><table width="100%" class="AltRow FirstColumn" cellspacing="0">
<tr class="heading">
<th width="42%" align="left" valign="top">
<b>
Parameter Source
</b>
</th>
<th width="26%" align="left" valign="top">
<b>
Code Identifier
</b>
</th>
<th width="21%" align="left" valign="top">
<b>
Data Type
</b>
</th>
<th width="10%" align="right" valign="top">
<b>
Dimension
</b>
</th>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
K
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[1 4]
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
Kr
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S53&gt;/L*(y[k]-yhat[k|k-1])
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Constant
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[1 2]
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/X0
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[4 1]
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/A
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[4 4]
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/B
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[4 1]
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/C
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[2 4]
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S2&gt;/CovarianceZ
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[4 4]
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;S2&gt;/KalmanGainL
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[4 2]
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/D
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
[2 1]
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Step
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Step
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Step
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Saturation
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;Root&gt;/Saturation
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
real_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="even">
<td width="42%" align="left" valign="top">
&lt;S51&gt;/isSqrtUsed
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
boolean_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
<tr class="odd">
<td width="42%" align="left" valign="top">
&lt;S1&gt;/Enable
</td>
<td width="26%" align="left" valign="top">
<i>
Defined externally
</i>
</td>
<td width="21%" align="left" valign="top">
boolean_T
</td>
<td width="10%" align="right" valign="top">
1
</td>
</tr>
</table>
<h3>
<a name="sec_Data_Stores">
Data Stores
</a>
</h3>
<p>
No data stores in the model; note that this report lists only data stores with non-auto storage class and global data stores
</p>
</body>
</html>

View File

@ -0,0 +1,128 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * Arduino_skal_private.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_Arduino_skal_private_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_Arduino_skal_private_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "builtin_typeid_types.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="ct">/* Private macros used by the generated code to access rtModel */</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#ifndef</span> <a id="28c9" class="tk">rtmSetFirstInitCond</a></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#define</span> <a id="29c9" class="tk">rtmSetFirstInitCond</a>(<a id="29c29" class="tk">rtm</a>, <a id="29c34" class="tk">val</a>) ((<a id="29c42" class="tk">rtm</a>)-&gt;<a id="29c48" class="tk">Timing</a>.<a id="29c55" class="tk">firstInitCondFlag</a> = (<a id="29c76" class="tk">val</a>))</td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#ifndef</span> <a id="32c9" class="tk">rtmIsFirstInitCond</a></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#define</span> <a id="33c9" class="tk">rtmIsFirstInitCond</a>(<a id="33c28" class="tk">rtm</a>) ((<a id="33c42" class="tk">rtm</a>)-&gt;<a id="33c48" class="tk">Timing</a>.<a id="33c55" class="tk">firstInitCondFlag</a>)</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#ifndef</span> <a id="36c9" class="tk">rtmIsMajorTimeStep</a></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#define</span> <a id="37c9" class="tk">rtmIsMajorTimeStep</a>(<a id="37c28" class="tk">rtm</a>) (((<a id="37c43" class="tk">rtm</a>)-&gt;<a id="37c49" class="tk">Timing</a>.<a id="37c56" class="tk">simTimeStep</a>) <a id="37c69" class="tk">==</a> <a id="37c72" class="tk">MAJOR_TIME_STEP</a>)</td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#ifndef</span> <a id="40c9" class="tk">rtmIsMinorTimeStep</a></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#define</span> <a id="41c9" class="tk">rtmIsMinorTimeStep</a>(<a id="41c28" class="tk">rtm</a>) (((<a id="41c43" class="tk">rtm</a>)-&gt;<a id="41c49" class="tk">Timing</a>.<a id="41c56" class="tk">simTimeStep</a>) <a id="41c69" class="tk">==</a> <a id="41c72" class="tk">MINOR_TIME_STEP</a>)</td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td><span class="pp">#ifndef</span> <a id="44c9" class="tk">rtmSetTFinal</a></td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#define</span> <a id="45c9" class="tk">rtmSetTFinal</a>(<a id="45c22" class="tk">rtm</a>, <a id="45c27" class="tk">val</a>) ((<a id="45c42" class="tk">rtm</a>)-&gt;<a id="45c48" class="tk">Timing</a>.<a id="45c55" class="tk">tFinal</a> = (<a id="45c65" class="tk">val</a>))</td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td></td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td><span class="pp">#ifndef</span> <a id="48c9" class="tk">rtmSetTPtr</a></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td><span class="pp">#define</span> <a id="49c9" class="tk">rtmSetTPtr</a>(<a id="49c20" class="tk">rtm</a>, <a id="49c25" class="tk">val</a>) ((<a id="49c42" class="tk">rtm</a>)-&gt;<a id="49c48" class="tk">Timing</a>.<a id="49c55" class="tk">t</a> = (<a id="49c60" class="tk">val</a>))</td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td></td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td><span class="ct">/* private model entry point functions */</span></td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td><span class="kw">extern</span> <span class="kw">void</span> <a id="53c13" class="tk">Arduino_skal_derivatives</a>();</td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td></td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_Arduino_skal_private_h_ */</span></td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,372 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
Eliminated blocks in Arduino_skal
</title>
</head>
<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdReducedBlocks'); else local_onload();}} catch(err) {};">
<h1>
Eliminated blocks in Arduino_skal
</h1>
<div>
</div>
<div>
</div>
List of blocks eliminated as a result of block reduction optimization.<table class="AltRow FirstColumn" cellspacing="0">
<tr class="heading">
<th align="left" valign="top">
<b>
Block
</b>
</th>
<th align="left" valign="top">
<b>
Description
</b>
</th>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S45&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S46&gt;/Conversion
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S46&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S47&gt;/Conversion
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S47&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S48&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S2&gt;/KalmanGainM
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S5&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S6&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S7&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S8&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S10&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S11&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S12&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S13&gt;/Conversion
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S13&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S14&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S15&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S16&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S18&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S19&gt;/Data Type Duplicate
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S1&gt;/G
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S1&gt;/H
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S1&gt;/N
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S1&gt;/P0
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S1&gt;/Q
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S1&gt;/R
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S43&gt;/CheckSignalProperties
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S44&gt;/CheckSignalProperties
</td>
<td align="left" valign="top">
Unused code path elimination
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S45&gt;/Conversion
</td>
<td align="left" valign="top">
Eliminate redundant data type conversion
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S48&gt;/Conversion
</td>
<td align="left" valign="top">
Eliminate redundant data type conversion
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S18&gt;/Conversion
</td>
<td align="left" valign="top">
Eliminate redundant data type conversion
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S22&gt;/Reshape
</td>
<td align="left" valign="top">
Reshape block reduction
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S1&gt;/ReshapeX0
</td>
<td align="left" valign="top">
Reshape block reduction
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S1&gt;/Reshapeu
</td>
<td align="left" valign="top">
Reshape block reduction
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S1&gt;/Reshapexhat
</td>
<td align="left" valign="top">
Reshape block reduction
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S1&gt;/Reshapey
</td>
<td align="left" valign="top">
Reshape block reduction
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,144 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><script language="JavaScript" type="text/javascript" src="rtwshrink.js"></script><title>
Non-virtual subsystems in Arduino_skal
</title>
</head>
<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSubsystem'); else local_onload();}} catch(err) {};">
<h1>
Non-virtual subsystems in Arduino_skal
</h1>
<div>
</div>
<div>
</div>
<h3 name="sec_Code_Mapping" id="sec_code_mapping">
1. Code Mapping <span title="Click to shrink or expand section" style="cursor:pointer;font-weight:normal;" id="rtwIdSubsystem_table_001_control" onclick ="if (rtwTableShrink) rtwTableShrink(window.document, this, 'rtwIdSubsystem_table_001', false)"><span class="shrink-button">[<u>hide</u>]</span></span>
</h3>
<table width="100%" name="rtwIdSubsystem_table_001" id="rtwIdSubsystem_table_001" border="0">
<tr>
<td align="left" valign="top">
<p>
The following table: <br /><ul>
<li>
provides a mapping from the non-virtual subsystems in the model to functions or reusable functions in the generated code and
</li>
<li>
notes exceptions that caused some non-virtual subsystems to not reuse code even though they were assigned a function packaging setting ('Function packaging' entry on the Subsystem Block Dialog) of 'Auto' or 'Reusable function'.
</li>
</ul>
</p>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table class="AltRow FirstColumn" cellspacing="0">
<tr class="heading">
<th align="left" valign="top">
<b>
Subsystem
</b>
</th>
<th align="left" valign="top">
<b>
Reuse Setting
</b>
</th>
<th align="left" valign="top">
<b>
Reuse Outcome
</b>
</th>
<th align="left" valign="top">
<b>
Outcome Diagnostic
</b>
</th>
</tr>
<tr class="even">
<td align="left" valign="top">
&lt;S52&gt;
</td>
<td align="left" valign="top">
Auto
</td>
<td align="left" valign="top">
Inline
</td>
<td align="left" valign="top">
<FONT COLOR="green">normal</FONT>
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
&lt;S53&gt;
</td>
<td align="left" valign="top">
Auto
</td>
<td align="left" valign="top">
Inline
</td>
<td align="left" valign="top">
<FONT COLOR="green">normal</FONT>
</td>
</tr>
</table>
</td>
</tr>
</table>
<h3 name="sec_Code_Reuse_Exceptions" id="sec_reuse_exception">
2. Code Reuse Exceptions <span title="Click to shrink or expand section" style="cursor:pointer;font-weight:normal;" id="rtwIdSubsystem_table_002_control" onclick ="if (rtwTableShrink) rtwTableShrink(window.document, this, 'rtwIdSubsystem_table_002', false)"><span class="shrink-button">[<u>hide</u>]</span></span>
</h3>
<table width="100%" name="rtwIdSubsystem_table_002" id="rtwIdSubsystem_table_002" border="0">
<tr>
<td align="left" valign="top">
<p>
The following section provides details on each exception that caused a non-virtual subsystem with a function packaging setting of<br /><ul>
<li>
'Auto' to become an inlined code segment,
</li>
<li>
'Auto' to become a non-reusable function without arguments, or
</li>
<li>
'Reusable function' to become a non-reusable function without arguments.
</li>
</ul>
<b>Note:</b>This section does not report graphically identical non-virtual subsystems marked as 'Auto' that were not reused due to differences in their functional properties (such as dimensions, datatypes, work vectors, parameters, etc.). You may identify reasons for non-reuse in such cases by inspecting the differences in the functional attributes of the subsystems in the model or in the inlined generated code.
</p>
</td>
</tr>
<tr>
<td align="left" valign="top">
<br /><b>No reuse exception in model</b>
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,186 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="rtwreport.css" /><title>
Code Generation Report for 'Arduino_skal'
</title>
</head>
<body onload="try {if (top) {if (top.rtwPageOnLoad) top.rtwPageOnLoad('rtwIdSummaryPage'); else local_onload();}} catch(err) {};">
<h1>
Code Generation Report for 'Arduino_skal'
</h1>
<div>
</div>
<div>
</div>
<h3 name="sec_Model_Information" id="sec_model_info">
Model Information
</h3>
<table width="100%" border="0">
<tr>
<td align="left" valign="top">
<p>
<table class="AltRow" cellspacing="0">
<tr class="even">
<td align="left" valign="top">
Author
</td>
<td align="left" valign="top">
Daniel
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
Last Modified By
</td>
<td align="left" valign="top">
Daniel
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
Model Version
</td>
<td align="left" valign="top">
1.1
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
Tasking Mode
</td>
<td align="left" valign="top">
SingleTasking
</td>
</tr>
</table>
<br /><a href="../../slprj/grt/Arduino_skal/tmwinternal/binfo.mat?Arduino_skal" id="linkToCS" style="display:none">
Configuration settings at time of code generation
</a>
<span style="" id="linkToCS_disabled" title="Link to configuration set is only available in MATLAB browser">
Configuration settings at time of code generation
</span>
</p>
</td>
</tr>
</table>
<h3 name="sec_Code_Information" id="sec_code_info">
Code Information
</h3>
<table width="100%" border="0">
<tr>
<td align="left" valign="top">
<p>
<table class="AltRow" cellspacing="0">
<tr class="even">
<td align="left" valign="top">
System Target File
</td>
<td align="left" valign="top">
grt.tlc
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
Hardware Device Type
</td>
<td align="left" valign="top">
Intel->x86-64 (Windows64)
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
Simulink Coder Version
</td>
<td align="left" valign="top">
9.5 (R2021a) 14-Nov-2020
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
Timestamp of Generated Source Code
</td>
<td align="left" valign="top">
Thu Apr 15 15:56:50 2021
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
<span id="sourceLocationTitle">Location of Generated Source Code</span>
</td>
<td align="left" valign="top">
<span id="sourceLocation" style="display:none"><script>document.write(top.getCodeLocation())</script></span>
</td>
</tr>
<tr class="odd">
<td align="left" valign="top">
Type of Build
</td>
<td align="left" valign="top">
Model
</td>
</tr>
<tr class="even">
<td align="left" valign="top">
Objectives Specified
</td>
<td align="left" valign="top">
<span style="color:black">Debugging</span>
</td>
</tr>
</table>
</p>
</td>
</tr>
</table>
<h3 name="sec_Additional_Information" id="sec_additional_info">
Additional Information
</h3>
<table width="100%" border="0">
<tr>
<td align="left" valign="top">
<table class="AltRow" cellspacing="0">
<tr class="even">
<td align="left" valign="top">
Code Generation Advisor
</td>
<td align="left" valign="top">
Not run
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * Arduino_skal_types.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_Arduino_skal_types_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_Arduino_skal_types_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "builtin_typeid_types.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "multiword_types.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="ct">/* Model Code Variants */</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="ct">/* Parameters (default storage) */</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <a id="30c16" class="tk">P_Arduino_skal_T_</a> <a id="30c34" class="tk">P_Arduino_skal_T</a>;</td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="ct">/* Forward declaration for rtModel */</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <a id="33c16" class="tk">tag_RTM_Arduino_skal_T</a> <a id="33c39" class="tk">RT_MODEL_Arduino_skal_T</a>;</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_Arduino_skal_types_h_ */</span></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * builtin_typeid_types.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">BUILTIN_TYPEID_TYPES_H</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">BUILTIN_TYPEID_TYPES_H</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#ifndef</span> <a id="24c9" class="tk">BUILTIN_TYPEID_TYPES</a></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#define</span> <a id="25c9" class="tk">BUILTIN_TYPEID_TYPES</a></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="ct">/* Enumeration of built-in data types */</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="kw">typedef</span> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td> <a id="29c3" class="tk">SS_DOUBLE</a> = 0, <span class="ct">/* real_T */</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td> <a id="30c3" class="tk">SS_SINGLE</a> = 1, <span class="ct">/* real32_T */</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td> <a id="31c3" class="tk">SS_INT8</a> = 2, <span class="ct">/* int8_T */</span></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <a id="32c3" class="tk">SS_UINT8</a> = 3, <span class="ct">/* uint8_T */</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <a id="33c3" class="tk">SS_INT16</a> = 4, <span class="ct">/* int16_T */</span></td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <a id="34c3" class="tk">SS_UINT16</a> = 5, <span class="ct">/* uint16_T */</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <a id="35c3" class="tk">SS_INT32</a> = 6, <span class="ct">/* int32_T */</span></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td> <a id="36c3" class="tk">SS_UINT32</a> = 7, <span class="ct">/* uint32_T */</span></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <a id="37c3" class="tk">SS_BOOLEAN</a> = 8 <span class="ct">/* boolean_T */</span></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="br">}</span> <a id="38c3" class="tk">BuiltInDTypeId</a>;</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#define</span> <a id="40c9" class="tk">SS_NUM_BUILT_IN_DTYPE</a> ((<a id="40c42" class="tk">int_T</a>)<a id="40c48" class="tk">SS_BOOLEAN</a><a id="40c58" class="tk">+</a>1)</td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td><span class="ct">/* Enumeration for MAT-file logging code */</span></td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td><span class="kw">typedef</span> <a id="43c9" class="tk">int_T</a> <a id="43c15" class="tk">DTypeId</a>;</td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td></td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td><span class="pp">#endif</span> <span class="ct">/* BUILTIN_TYPEID_TYPES */</span></td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td><span class="pp">#endif</span> <span class="ct">/* BUILTIN_TYPEID_TYPES_H */</span></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,184 @@
/* Copyright 2013-2018 The MathWorks, Inc. */
pre#code {
font-family: Consolas, Courier;
font-size: small;
}
.ct {
font-style: italic;
color: #117755
} /* comment */
.pp {
font-weight:bold;
color: #992211
} /* preprocessor */
.kw, .br {
font-weight:bold;
color: #112266
} /* keyword or brace */
.dt {
font-weight:bold;
color: #112266
} /* data type */
.tk {
font-style: normal;
color: #112266
} /* regular token */
pre#code a.req {
text-decoration: none;
color: #112266
}
pre#code a.req_active {
cursor: pointer;
text-decoration: underline;
}
pre#code a.req_active:hover {
cursor: pointer;
color: blue;
text-decoration: underline
}
pre#code a.blk {
text-decoration: none;
}
pre#code a.blk_active {
cursor: pointer;
text-decoration: underline;
}
pre#code a.blk_active:hover {
cursor: pointer;
color: blue;
text-decoration: underline
}
a.hilite {
font-style: normal;
color: black;
background-color: rgba(150, 12, 116, 0.1);
} /* highlight token */
tr.hilite {
font-style: normal;
color: black;
background-color: rgba(150, 12, 116, 0.1);
} /* highlight row */
a.hiliteToken, tr.hiliteToken, td.hiliteToken {
background-color: #ffff99;
}
.hiliteCurrentLine, tr.hiliteCurrentLine > td {
font-style: normal;
color: black;
background-color: rgba(150, 12, 116, 0.1);
box-shadow: inset 0 1px 0 0 rgba(150, 12, 116, 0.25), inset 0 -1px 0 0 rgba(150, 12, 116, 0.25);
}
span.hiliteTotalLine {
font-style: normal;
color: #aff;
}
a.tk {
text-decoration: none;
}
a.tk:hover {
text-decoration: none;
}
a.active {
text-decoration: underline;
}
a.active:hover {
cursor: pointer;
color: blue;
text-decoration: underline
} /* hyperlink */
table.code {
border: 0px
}
table.code td {
vertical-align: top;
}
table.code td.highlightedCurrent {
background-color: rgba(150, 12, 116, 0.1);
}
table.code > tr:first {
text-align: right;
} /* hyperlink */
ul.popup_attrib_list {
list-style-type:none;
display: block;
margin: 0;
padding: 0;
}
ul.popup_attrib_list li {
list-style-type:none;
display: inline;
margin: 0 18px 0 0;
padding: 0;
}
.highlighted {
background-color:yellow;
}
a:class1 {
color: -webkit-link;
text-decoration: underline;
cursor: hand;
}
.scroll
{
height:80px;
overflow:scroll;
overflow-x:hidden;
}
div#popup_window {
position: absolute;
background-color: rgb(203,203,255);
border: solid 3px #ECECEC;
border-radius: 5px;
/* shadow box around the window*/
-moz-box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;
-webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;
box-shadow: 0 3px 3px rgba(0,0,0,0.4), inset 0 1px #FFF;
padding: 2px;
}
div#popup_window a {
text-decoration: none;
color: green;
}
div#popup_window a:hover {
cursor: pointer;
text-decoration: underline;
color: blue;
}
div#popup_window tr.selected {
background-color: #ffff99;
}
div#token_usage_nav {
border-bottom: 1px solid gray;
}
table#token_usage_details {
cellpadding: 100px;
table-layout:fixed;
border: 0px;
}
.token_usage_details_tabrow {
width: 40px;
}
table#token_usage_details td {
padding-right: 5em;
padding-left: 1em;
}
.token_usage_details_tabrow:hover {
background-color: gray;
}
.nav_table td.hidden {
display: none;
}
table#codeTbl tr td {
color: #112266
}
table#codeTbl tr td {
padding-left: 10px;
}
table#codeTbl tr td:first-child {
font-style: italic;
color: #888888;
text-align: right;
padding-left:0px;
}

View File

@ -0,0 +1,389 @@
function CodeDefine() {
this.def = new Array();
this.def["rt_ertODEUpdateContinuousStates"] = {file: "Arduino_skal_cpp.html",line:28,type:"fcn"};
this.def["step"] = {file: "Arduino_skal_cpp.html",line:106,type:"fcn"};
this.def["Arduino_skal_derivatives"] = {file: "Arduino_skal_cpp.html",line:459,type:"fcn"};
this.def["initialize"] = {file: "Arduino_skal_cpp.html",line:472,type:"fcn"};
this.def["terminate"] = {file: "Arduino_skal_cpp.html",line:580,type:"fcn"};
this.def["getRTM"] = {file: "Arduino_skal_cpp.html",line:602,type:"fcn"};
this.def["initialize"] = {file: "Arduino_skal_h.html",line:329,type:"fcn"};
this.def["P_Arduino_skal_T"] = {file: "Arduino_skal_types_h.html",line:30,type:"type"};
this.def["RT_MODEL_Arduino_skal_T"] = {file: "Arduino_skal_types_h.html",line:33,type:"type"};
this.def["Arduino_skal_P"] = {file: "Arduino_skal_data_cpp.html",line:25,type:"var"};
this.def["BuiltInDTypeId"] = {file: "builtin_typeid_types_h.html",line:38,type:"type"};
this.def["DTypeId"] = {file: "builtin_typeid_types_h.html",line:43,type:"type"};
this.def["chunk_T"] = {file: "multiword_types_h.html",line:28,type:"type"};
this.def["uchunk_T"] = {file: "multiword_types_h.html",line:29,type:"type"};
this.def["long_T"] = {file: "multiword_types_h.html",line:34,type:"type"};
this.def["int64m_T"] = {file: "multiword_types_h.html",line:41,type:"type"};
this.def["cint64m_T"] = {file: "multiword_types_h.html",line:46,type:"type"};
this.def["uint64m_T"] = {file: "multiword_types_h.html",line:50,type:"type"};
this.def["cuint64m_T"] = {file: "multiword_types_h.html",line:55,type:"type"};
this.def["int96m_T"] = {file: "multiword_types_h.html",line:59,type:"type"};
this.def["cint96m_T"] = {file: "multiword_types_h.html",line:64,type:"type"};
this.def["uint96m_T"] = {file: "multiword_types_h.html",line:68,type:"type"};
this.def["cuint96m_T"] = {file: "multiword_types_h.html",line:73,type:"type"};
this.def["int128m_T"] = {file: "multiword_types_h.html",line:77,type:"type"};
this.def["cint128m_T"] = {file: "multiword_types_h.html",line:82,type:"type"};
this.def["uint128m_T"] = {file: "multiword_types_h.html",line:86,type:"type"};
this.def["cuint128m_T"] = {file: "multiword_types_h.html",line:91,type:"type"};
this.def["int160m_T"] = {file: "multiword_types_h.html",line:95,type:"type"};
this.def["cint160m_T"] = {file: "multiword_types_h.html",line:100,type:"type"};
this.def["uint160m_T"] = {file: "multiword_types_h.html",line:104,type:"type"};
this.def["cuint160m_T"] = {file: "multiword_types_h.html",line:109,type:"type"};
this.def["int192m_T"] = {file: "multiword_types_h.html",line:113,type:"type"};
this.def["cint192m_T"] = {file: "multiword_types_h.html",line:118,type:"type"};
this.def["uint192m_T"] = {file: "multiword_types_h.html",line:122,type:"type"};
this.def["cuint192m_T"] = {file: "multiword_types_h.html",line:127,type:"type"};
this.def["int224m_T"] = {file: "multiword_types_h.html",line:131,type:"type"};
this.def["cint224m_T"] = {file: "multiword_types_h.html",line:136,type:"type"};
this.def["uint224m_T"] = {file: "multiword_types_h.html",line:140,type:"type"};
this.def["cuint224m_T"] = {file: "multiword_types_h.html",line:145,type:"type"};
this.def["int256m_T"] = {file: "multiword_types_h.html",line:149,type:"type"};
this.def["cint256m_T"] = {file: "multiword_types_h.html",line:154,type:"type"};
this.def["uint256m_T"] = {file: "multiword_types_h.html",line:158,type:"type"};
this.def["cuint256m_T"] = {file: "multiword_types_h.html",line:163,type:"type"};
this.def["int288m_T"] = {file: "multiword_types_h.html",line:167,type:"type"};
this.def["cint288m_T"] = {file: "multiword_types_h.html",line:172,type:"type"};
this.def["uint288m_T"] = {file: "multiword_types_h.html",line:176,type:"type"};
this.def["cuint288m_T"] = {file: "multiword_types_h.html",line:181,type:"type"};
this.def["int320m_T"] = {file: "multiword_types_h.html",line:185,type:"type"};
this.def["cint320m_T"] = {file: "multiword_types_h.html",line:190,type:"type"};
this.def["uint320m_T"] = {file: "multiword_types_h.html",line:194,type:"type"};
this.def["cuint320m_T"] = {file: "multiword_types_h.html",line:199,type:"type"};
this.def["int352m_T"] = {file: "multiword_types_h.html",line:203,type:"type"};
this.def["cint352m_T"] = {file: "multiword_types_h.html",line:208,type:"type"};
this.def["uint352m_T"] = {file: "multiword_types_h.html",line:212,type:"type"};
this.def["cuint352m_T"] = {file: "multiword_types_h.html",line:217,type:"type"};
this.def["int384m_T"] = {file: "multiword_types_h.html",line:221,type:"type"};
this.def["cint384m_T"] = {file: "multiword_types_h.html",line:226,type:"type"};
this.def["uint384m_T"] = {file: "multiword_types_h.html",line:230,type:"type"};
this.def["cuint384m_T"] = {file: "multiword_types_h.html",line:235,type:"type"};
this.def["int416m_T"] = {file: "multiword_types_h.html",line:239,type:"type"};
this.def["cint416m_T"] = {file: "multiword_types_h.html",line:244,type:"type"};
this.def["uint416m_T"] = {file: "multiword_types_h.html",line:248,type:"type"};
this.def["cuint416m_T"] = {file: "multiword_types_h.html",line:253,type:"type"};
this.def["int448m_T"] = {file: "multiword_types_h.html",line:257,type:"type"};
this.def["cint448m_T"] = {file: "multiword_types_h.html",line:262,type:"type"};
this.def["uint448m_T"] = {file: "multiword_types_h.html",line:266,type:"type"};
this.def["cuint448m_T"] = {file: "multiword_types_h.html",line:271,type:"type"};
this.def["int480m_T"] = {file: "multiword_types_h.html",line:275,type:"type"};
this.def["cint480m_T"] = {file: "multiword_types_h.html",line:280,type:"type"};
this.def["uint480m_T"] = {file: "multiword_types_h.html",line:284,type:"type"};
this.def["cuint480m_T"] = {file: "multiword_types_h.html",line:289,type:"type"};
this.def["int512m_T"] = {file: "multiword_types_h.html",line:293,type:"type"};
this.def["cint512m_T"] = {file: "multiword_types_h.html",line:298,type:"type"};
this.def["uint512m_T"] = {file: "multiword_types_h.html",line:302,type:"type"};
this.def["cuint512m_T"] = {file: "multiword_types_h.html",line:307,type:"type"};
this.def["int544m_T"] = {file: "multiword_types_h.html",line:311,type:"type"};
this.def["cint544m_T"] = {file: "multiword_types_h.html",line:316,type:"type"};
this.def["uint544m_T"] = {file: "multiword_types_h.html",line:320,type:"type"};
this.def["cuint544m_T"] = {file: "multiword_types_h.html",line:325,type:"type"};
this.def["int576m_T"] = {file: "multiword_types_h.html",line:329,type:"type"};
this.def["cint576m_T"] = {file: "multiword_types_h.html",line:334,type:"type"};
this.def["uint576m_T"] = {file: "multiword_types_h.html",line:338,type:"type"};
this.def["cuint576m_T"] = {file: "multiword_types_h.html",line:343,type:"type"};
this.def["int608m_T"] = {file: "multiword_types_h.html",line:347,type:"type"};
this.def["cint608m_T"] = {file: "multiword_types_h.html",line:352,type:"type"};
this.def["uint608m_T"] = {file: "multiword_types_h.html",line:356,type:"type"};
this.def["cuint608m_T"] = {file: "multiword_types_h.html",line:361,type:"type"};
this.def["int640m_T"] = {file: "multiword_types_h.html",line:365,type:"type"};
this.def["cint640m_T"] = {file: "multiword_types_h.html",line:370,type:"type"};
this.def["uint640m_T"] = {file: "multiword_types_h.html",line:374,type:"type"};
this.def["cuint640m_T"] = {file: "multiword_types_h.html",line:379,type:"type"};
this.def["int672m_T"] = {file: "multiword_types_h.html",line:383,type:"type"};
this.def["cint672m_T"] = {file: "multiword_types_h.html",line:388,type:"type"};
this.def["uint672m_T"] = {file: "multiword_types_h.html",line:392,type:"type"};
this.def["cuint672m_T"] = {file: "multiword_types_h.html",line:397,type:"type"};
this.def["int704m_T"] = {file: "multiword_types_h.html",line:401,type:"type"};
this.def["cint704m_T"] = {file: "multiword_types_h.html",line:406,type:"type"};
this.def["uint704m_T"] = {file: "multiword_types_h.html",line:410,type:"type"};
this.def["cuint704m_T"] = {file: "multiword_types_h.html",line:415,type:"type"};
this.def["int736m_T"] = {file: "multiword_types_h.html",line:419,type:"type"};
this.def["cint736m_T"] = {file: "multiword_types_h.html",line:424,type:"type"};
this.def["uint736m_T"] = {file: "multiword_types_h.html",line:428,type:"type"};
this.def["cuint736m_T"] = {file: "multiword_types_h.html",line:433,type:"type"};
this.def["int768m_T"] = {file: "multiword_types_h.html",line:437,type:"type"};
this.def["cint768m_T"] = {file: "multiword_types_h.html",line:442,type:"type"};
this.def["uint768m_T"] = {file: "multiword_types_h.html",line:446,type:"type"};
this.def["cuint768m_T"] = {file: "multiword_types_h.html",line:451,type:"type"};
this.def["int800m_T"] = {file: "multiword_types_h.html",line:455,type:"type"};
this.def["cint800m_T"] = {file: "multiword_types_h.html",line:460,type:"type"};
this.def["uint800m_T"] = {file: "multiword_types_h.html",line:464,type:"type"};
this.def["cuint800m_T"] = {file: "multiword_types_h.html",line:469,type:"type"};
this.def["int832m_T"] = {file: "multiword_types_h.html",line:473,type:"type"};
this.def["cint832m_T"] = {file: "multiword_types_h.html",line:478,type:"type"};
this.def["uint832m_T"] = {file: "multiword_types_h.html",line:482,type:"type"};
this.def["cuint832m_T"] = {file: "multiword_types_h.html",line:487,type:"type"};
this.def["int864m_T"] = {file: "multiword_types_h.html",line:491,type:"type"};
this.def["cint864m_T"] = {file: "multiword_types_h.html",line:496,type:"type"};
this.def["uint864m_T"] = {file: "multiword_types_h.html",line:500,type:"type"};
this.def["cuint864m_T"] = {file: "multiword_types_h.html",line:505,type:"type"};
this.def["int896m_T"] = {file: "multiword_types_h.html",line:509,type:"type"};
this.def["cint896m_T"] = {file: "multiword_types_h.html",line:514,type:"type"};
this.def["uint896m_T"] = {file: "multiword_types_h.html",line:518,type:"type"};
this.def["cuint896m_T"] = {file: "multiword_types_h.html",line:523,type:"type"};
this.def["int928m_T"] = {file: "multiword_types_h.html",line:527,type:"type"};
this.def["cint928m_T"] = {file: "multiword_types_h.html",line:532,type:"type"};
this.def["uint928m_T"] = {file: "multiword_types_h.html",line:536,type:"type"};
this.def["cuint928m_T"] = {file: "multiword_types_h.html",line:541,type:"type"};
this.def["int960m_T"] = {file: "multiword_types_h.html",line:545,type:"type"};
this.def["cint960m_T"] = {file: "multiword_types_h.html",line:550,type:"type"};
this.def["uint960m_T"] = {file: "multiword_types_h.html",line:554,type:"type"};
this.def["cuint960m_T"] = {file: "multiword_types_h.html",line:559,type:"type"};
this.def["int992m_T"] = {file: "multiword_types_h.html",line:563,type:"type"};
this.def["cint992m_T"] = {file: "multiword_types_h.html",line:568,type:"type"};
this.def["uint992m_T"] = {file: "multiword_types_h.html",line:572,type:"type"};
this.def["cuint992m_T"] = {file: "multiword_types_h.html",line:577,type:"type"};
this.def["int1024m_T"] = {file: "multiword_types_h.html",line:581,type:"type"};
this.def["cint1024m_T"] = {file: "multiword_types_h.html",line:586,type:"type"};
this.def["uint1024m_T"] = {file: "multiword_types_h.html",line:590,type:"type"};
this.def["cuint1024m_T"] = {file: "multiword_types_h.html",line:595,type:"type"};
this.def["int1056m_T"] = {file: "multiword_types_h.html",line:599,type:"type"};
this.def["cint1056m_T"] = {file: "multiword_types_h.html",line:604,type:"type"};
this.def["uint1056m_T"] = {file: "multiword_types_h.html",line:608,type:"type"};
this.def["cuint1056m_T"] = {file: "multiword_types_h.html",line:613,type:"type"};
this.def["int1088m_T"] = {file: "multiword_types_h.html",line:617,type:"type"};
this.def["cint1088m_T"] = {file: "multiword_types_h.html",line:622,type:"type"};
this.def["uint1088m_T"] = {file: "multiword_types_h.html",line:626,type:"type"};
this.def["cuint1088m_T"] = {file: "multiword_types_h.html",line:631,type:"type"};
this.def["int1120m_T"] = {file: "multiword_types_h.html",line:635,type:"type"};
this.def["cint1120m_T"] = {file: "multiword_types_h.html",line:640,type:"type"};
this.def["uint1120m_T"] = {file: "multiword_types_h.html",line:644,type:"type"};
this.def["cuint1120m_T"] = {file: "multiword_types_h.html",line:649,type:"type"};
this.def["int1152m_T"] = {file: "multiword_types_h.html",line:653,type:"type"};
this.def["cint1152m_T"] = {file: "multiword_types_h.html",line:658,type:"type"};
this.def["uint1152m_T"] = {file: "multiword_types_h.html",line:662,type:"type"};
this.def["cuint1152m_T"] = {file: "multiword_types_h.html",line:667,type:"type"};
this.def["int1184m_T"] = {file: "multiword_types_h.html",line:671,type:"type"};
this.def["cint1184m_T"] = {file: "multiword_types_h.html",line:676,type:"type"};
this.def["uint1184m_T"] = {file: "multiword_types_h.html",line:680,type:"type"};
this.def["cuint1184m_T"] = {file: "multiword_types_h.html",line:685,type:"type"};
this.def["int1216m_T"] = {file: "multiword_types_h.html",line:689,type:"type"};
this.def["cint1216m_T"] = {file: "multiword_types_h.html",line:694,type:"type"};
this.def["uint1216m_T"] = {file: "multiword_types_h.html",line:698,type:"type"};
this.def["cuint1216m_T"] = {file: "multiword_types_h.html",line:703,type:"type"};
this.def["int1248m_T"] = {file: "multiword_types_h.html",line:707,type:"type"};
this.def["cint1248m_T"] = {file: "multiword_types_h.html",line:712,type:"type"};
this.def["uint1248m_T"] = {file: "multiword_types_h.html",line:716,type:"type"};
this.def["cuint1248m_T"] = {file: "multiword_types_h.html",line:721,type:"type"};
this.def["int1280m_T"] = {file: "multiword_types_h.html",line:725,type:"type"};
this.def["cint1280m_T"] = {file: "multiword_types_h.html",line:730,type:"type"};
this.def["uint1280m_T"] = {file: "multiword_types_h.html",line:734,type:"type"};
this.def["cuint1280m_T"] = {file: "multiword_types_h.html",line:739,type:"type"};
this.def["int1312m_T"] = {file: "multiword_types_h.html",line:743,type:"type"};
this.def["cint1312m_T"] = {file: "multiword_types_h.html",line:748,type:"type"};
this.def["uint1312m_T"] = {file: "multiword_types_h.html",line:752,type:"type"};
this.def["cuint1312m_T"] = {file: "multiword_types_h.html",line:757,type:"type"};
this.def["int1344m_T"] = {file: "multiword_types_h.html",line:761,type:"type"};
this.def["cint1344m_T"] = {file: "multiword_types_h.html",line:766,type:"type"};
this.def["uint1344m_T"] = {file: "multiword_types_h.html",line:770,type:"type"};
this.def["cuint1344m_T"] = {file: "multiword_types_h.html",line:775,type:"type"};
this.def["int1376m_T"] = {file: "multiword_types_h.html",line:779,type:"type"};
this.def["cint1376m_T"] = {file: "multiword_types_h.html",line:784,type:"type"};
this.def["uint1376m_T"] = {file: "multiword_types_h.html",line:788,type:"type"};
this.def["cuint1376m_T"] = {file: "multiword_types_h.html",line:793,type:"type"};
this.def["int1408m_T"] = {file: "multiword_types_h.html",line:797,type:"type"};
this.def["cint1408m_T"] = {file: "multiword_types_h.html",line:802,type:"type"};
this.def["uint1408m_T"] = {file: "multiword_types_h.html",line:806,type:"type"};
this.def["cuint1408m_T"] = {file: "multiword_types_h.html",line:811,type:"type"};
this.def["int1440m_T"] = {file: "multiword_types_h.html",line:815,type:"type"};
this.def["cint1440m_T"] = {file: "multiword_types_h.html",line:820,type:"type"};
this.def["uint1440m_T"] = {file: "multiword_types_h.html",line:824,type:"type"};
this.def["cuint1440m_T"] = {file: "multiword_types_h.html",line:829,type:"type"};
this.def["int1472m_T"] = {file: "multiword_types_h.html",line:833,type:"type"};
this.def["cint1472m_T"] = {file: "multiword_types_h.html",line:838,type:"type"};
this.def["uint1472m_T"] = {file: "multiword_types_h.html",line:842,type:"type"};
this.def["cuint1472m_T"] = {file: "multiword_types_h.html",line:847,type:"type"};
this.def["int1504m_T"] = {file: "multiword_types_h.html",line:851,type:"type"};
this.def["cint1504m_T"] = {file: "multiword_types_h.html",line:856,type:"type"};
this.def["uint1504m_T"] = {file: "multiword_types_h.html",line:860,type:"type"};
this.def["cuint1504m_T"] = {file: "multiword_types_h.html",line:865,type:"type"};
this.def["int1536m_T"] = {file: "multiword_types_h.html",line:869,type:"type"};
this.def["cint1536m_T"] = {file: "multiword_types_h.html",line:874,type:"type"};
this.def["uint1536m_T"] = {file: "multiword_types_h.html",line:878,type:"type"};
this.def["cuint1536m_T"] = {file: "multiword_types_h.html",line:883,type:"type"};
this.def["int1568m_T"] = {file: "multiword_types_h.html",line:887,type:"type"};
this.def["cint1568m_T"] = {file: "multiword_types_h.html",line:892,type:"type"};
this.def["uint1568m_T"] = {file: "multiword_types_h.html",line:896,type:"type"};
this.def["cuint1568m_T"] = {file: "multiword_types_h.html",line:901,type:"type"};
this.def["int1600m_T"] = {file: "multiword_types_h.html",line:905,type:"type"};
this.def["cint1600m_T"] = {file: "multiword_types_h.html",line:910,type:"type"};
this.def["uint1600m_T"] = {file: "multiword_types_h.html",line:914,type:"type"};
this.def["cuint1600m_T"] = {file: "multiword_types_h.html",line:919,type:"type"};
this.def["int1632m_T"] = {file: "multiword_types_h.html",line:923,type:"type"};
this.def["cint1632m_T"] = {file: "multiword_types_h.html",line:928,type:"type"};
this.def["uint1632m_T"] = {file: "multiword_types_h.html",line:932,type:"type"};
this.def["cuint1632m_T"] = {file: "multiword_types_h.html",line:937,type:"type"};
this.def["int1664m_T"] = {file: "multiword_types_h.html",line:941,type:"type"};
this.def["cint1664m_T"] = {file: "multiword_types_h.html",line:946,type:"type"};
this.def["uint1664m_T"] = {file: "multiword_types_h.html",line:950,type:"type"};
this.def["cuint1664m_T"] = {file: "multiword_types_h.html",line:955,type:"type"};
this.def["int1696m_T"] = {file: "multiword_types_h.html",line:959,type:"type"};
this.def["cint1696m_T"] = {file: "multiword_types_h.html",line:964,type:"type"};
this.def["uint1696m_T"] = {file: "multiword_types_h.html",line:968,type:"type"};
this.def["cuint1696m_T"] = {file: "multiword_types_h.html",line:973,type:"type"};
this.def["int1728m_T"] = {file: "multiword_types_h.html",line:977,type:"type"};
this.def["cint1728m_T"] = {file: "multiword_types_h.html",line:982,type:"type"};
this.def["uint1728m_T"] = {file: "multiword_types_h.html",line:986,type:"type"};
this.def["cuint1728m_T"] = {file: "multiword_types_h.html",line:991,type:"type"};
this.def["int1760m_T"] = {file: "multiword_types_h.html",line:995,type:"type"};
this.def["cint1760m_T"] = {file: "multiword_types_h.html",line:1000,type:"type"};
this.def["uint1760m_T"] = {file: "multiword_types_h.html",line:1004,type:"type"};
this.def["cuint1760m_T"] = {file: "multiword_types_h.html",line:1009,type:"type"};
this.def["int1792m_T"] = {file: "multiword_types_h.html",line:1013,type:"type"};
this.def["cint1792m_T"] = {file: "multiword_types_h.html",line:1018,type:"type"};
this.def["uint1792m_T"] = {file: "multiword_types_h.html",line:1022,type:"type"};
this.def["cuint1792m_T"] = {file: "multiword_types_h.html",line:1027,type:"type"};
this.def["int1824m_T"] = {file: "multiword_types_h.html",line:1031,type:"type"};
this.def["cint1824m_T"] = {file: "multiword_types_h.html",line:1036,type:"type"};
this.def["uint1824m_T"] = {file: "multiword_types_h.html",line:1040,type:"type"};
this.def["cuint1824m_T"] = {file: "multiword_types_h.html",line:1045,type:"type"};
this.def["int1856m_T"] = {file: "multiword_types_h.html",line:1049,type:"type"};
this.def["cint1856m_T"] = {file: "multiword_types_h.html",line:1054,type:"type"};
this.def["uint1856m_T"] = {file: "multiword_types_h.html",line:1058,type:"type"};
this.def["cuint1856m_T"] = {file: "multiword_types_h.html",line:1063,type:"type"};
this.def["int1888m_T"] = {file: "multiword_types_h.html",line:1067,type:"type"};
this.def["cint1888m_T"] = {file: "multiword_types_h.html",line:1072,type:"type"};
this.def["uint1888m_T"] = {file: "multiword_types_h.html",line:1076,type:"type"};
this.def["cuint1888m_T"] = {file: "multiword_types_h.html",line:1081,type:"type"};
this.def["int1920m_T"] = {file: "multiword_types_h.html",line:1085,type:"type"};
this.def["cint1920m_T"] = {file: "multiword_types_h.html",line:1090,type:"type"};
this.def["uint1920m_T"] = {file: "multiword_types_h.html",line:1094,type:"type"};
this.def["cuint1920m_T"] = {file: "multiword_types_h.html",line:1099,type:"type"};
this.def["int1952m_T"] = {file: "multiword_types_h.html",line:1103,type:"type"};
this.def["cint1952m_T"] = {file: "multiword_types_h.html",line:1108,type:"type"};
this.def["uint1952m_T"] = {file: "multiword_types_h.html",line:1112,type:"type"};
this.def["cuint1952m_T"] = {file: "multiword_types_h.html",line:1117,type:"type"};
this.def["int1984m_T"] = {file: "multiword_types_h.html",line:1121,type:"type"};
this.def["cint1984m_T"] = {file: "multiword_types_h.html",line:1126,type:"type"};
this.def["uint1984m_T"] = {file: "multiword_types_h.html",line:1130,type:"type"};
this.def["cuint1984m_T"] = {file: "multiword_types_h.html",line:1135,type:"type"};
this.def["int2016m_T"] = {file: "multiword_types_h.html",line:1139,type:"type"};
this.def["cint2016m_T"] = {file: "multiword_types_h.html",line:1144,type:"type"};
this.def["uint2016m_T"] = {file: "multiword_types_h.html",line:1148,type:"type"};
this.def["cuint2016m_T"] = {file: "multiword_types_h.html",line:1153,type:"type"};
this.def["int2048m_T"] = {file: "multiword_types_h.html",line:1157,type:"type"};
this.def["cint2048m_T"] = {file: "multiword_types_h.html",line:1162,type:"type"};
this.def["uint2048m_T"] = {file: "multiword_types_h.html",line:1166,type:"type"};
this.def["cuint2048m_T"] = {file: "multiword_types_h.html",line:1171,type:"type"};
this.def["rtGetInf"] = {file: "rtGetInf_cpp.html",line:33,type:"fcn"};
this.def["rtGetInfF"] = {file: "rtGetInf_cpp.html",line:81,type:"fcn"};
this.def["rtGetMinusInf"] = {file: "rtGetInf_cpp.html",line:92,type:"fcn"};
this.def["rtGetMinusInfF"] = {file: "rtGetInf_cpp.html",line:140,type:"fcn"};
this.def["rtGetNaN"] = {file: "rtGetNaN_cpp.html",line:33,type:"fcn"};
this.def["rtGetNaNF"] = {file: "rtGetNaN_cpp.html",line:81,type:"fcn"};
this.def["rtInf"] = {file: "rt_nonfinite_cpp.html",line:32,type:"var"};
this.def["rtMinusInf"] = {file: "rt_nonfinite_cpp.html",line:33,type:"var"};
this.def["rtNaN"] = {file: "rt_nonfinite_cpp.html",line:34,type:"var"};
this.def["rtInfF"] = {file: "rt_nonfinite_cpp.html",line:35,type:"var"};
this.def["rtMinusInfF"] = {file: "rt_nonfinite_cpp.html",line:36,type:"var"};
this.def["rtNaNF"] = {file: "rt_nonfinite_cpp.html",line:37,type:"var"};
this.def["rt_InitInfAndNaN"] = {file: "rt_nonfinite_cpp.html",line:45,type:"fcn"};
this.def["rtIsInf"] = {file: "rt_nonfinite_cpp.html",line:57,type:"fcn"};
this.def["rtIsInfF"] = {file: "rt_nonfinite_cpp.html",line:63,type:"fcn"};
this.def["rtIsNaN"] = {file: "rt_nonfinite_cpp.html",line:69,type:"fcn"};
this.def["rtIsNaNF"] = {file: "rt_nonfinite_cpp.html",line:92,type:"fcn"};
this.def["wordH"] = {file: "rt_nonfinite_h.html",line:44,type:"var"};
this.def["pointer_T"] = {file: "rtwtypes_h.html",line:27,type:"type"};
this.def["LogInfo"] = {file: "rt_logging_c.html",line:95,type:"type"};
this.def["MatItem"] = {file: "rt_logging_c.html",line:101,type:"type"};
this.def["ItemDataKind"] = {file: "rt_logging_c.html",line:108,type:"type"};
this.def["rt_logging.c:rtMemAllocError"] = {file: "rt_logging_c.html",line:114,type:"var"};
this.def["rt_logging.c:rtStructLogVarFieldNames"] = {file: "rt_logging_c.html",line:136,type:"var"};
this.def["rt_logging.c:rtLocalLoggingSignalsStructFieldNames"] = {file: "rt_logging_c.html",line:141,type:"var"};
this.def["rt_logging.c:rtGlobalLoggingSignalsStructFieldNames"] = {file: "rt_logging_c.html",line:149,type:"var"};
this.def["rt_logging.c:rtLocalLoggingSignalsStructFieldNames_noValDims"] = {file: "rt_logging_c.html",line:174,type:"var"};
this.def["rt_logging.c:rtGlobalLoggingSignalsStructFieldNames_noValDims"] = {file: "rt_logging_c.html",line:180,type:"var"};
this.def["rt_logging.c:rt_GetSizeofDataType"] = {file: "rt_logging_c.html",line:200,type:"fcn"};
this.def["rt_logging.c:rt_GetSizeofComplexType"] = {file: "rt_logging_c.html",line:242,type:"fcn"};
this.def["rt_logging.c:rt_GetDataTypeConvertInfo"] = {file: "rt_logging_c.html",line:302,type:"fcn"};
this.def["rt_logging.c:rt_GetDblValueFromOverSizedData"] = {file: "rt_logging_c.html",line:331,type:"fcn"};
this.def["rt_logging.c:rt_GetNonBoolMxIdFromDTypeId"] = {file: "rt_logging_c.html",line:393,type:"fcn"};
this.def["rt_GetMxIdFromDTypeIdForRSim"] = {file: "rt_logging_c.html",line:477,type:"fcn"};
this.def["rt_GetMxIdFromDTypeId"] = {file: "rt_logging_c.html",line:520,type:"fcn"};
this.def["rt_logging.c:rt_GetMatIdFromMxId"] = {file: "rt_logging_c.html",line:556,type:"fcn"};
this.def["rt_logging.c:rt_ProcessMatItem"] = {file: "rt_logging_c.html",line:625,type:"fcn"};
this.def["rt_logging.c:rt_WriteItemToMatFile"] = {file: "rt_logging_c.html",line:1112,type:"fcn"};
this.def["rt_logging.c:rt_WriteMat5FileHeader"] = {file: "rt_logging_c.html",line:1163,type:"fcn"};
this.def["rt_logging.c:rt_FixupLogVar"] = {file: "rt_logging_c.html",line:1200,type:"fcn"};
this.def["rt_logging.c:rt_LoadModifiedLogVarName"] = {file: "rt_logging_c.html",line:1423,type:"fcn"};
this.def["rt_logging.c:rt_GetActualDTypeID"] = {file: "rt_logging_c.html",line:1460,type:"fcn"};
this.def["rt_logging.c:rt_DestroyLogVar"] = {file: "rt_logging_c.html",line:1482,type:"fcn"};
this.def["rt_logging.c:rt_DestroyStructLogVar"] = {file: "rt_logging_c.html",line:1512,type:"fcn"};
this.def["rt_logging.c:rt_InitSignalsStruct"] = {file: "rt_logging_c.html",line:1548,type:"fcn"};
this.def["rt_logging.c:local_CreateStructLogVar"] = {file: "rt_logging_c.html",line:2101,type:"fcn"};
this.def["rt_logging.c:rt_StartDataLoggingForOutput"] = {file: "rt_logging_c.html",line:2246,type:"fcn"};
this.def["rt_logging.c:rt_ReallocLogVar"] = {file: "rt_logging_c.html",line:2402,type:"fcn"};
this.def["rt_UpdateLogVarWithDiscontiguousData"] = {file: "rt_logging_c.html",line:2544,type:"fcn"};
this.def["rt_CreateLogVarWithConvert"] = {file: "rt_logging_c.html",line:2663,type:"fcn"};
this.def["rt_CreateLogVar"] = {file: "rt_logging_c.html",line:3040,type:"fcn"};
this.def["rt_CreateStructLogVar"] = {file: "rt_logging_c.html",line:3108,type:"fcn"};
this.def["rt_StartDataLoggingWithStartTime"] = {file: "rt_logging_c.html",line:3160,type:"fcn"};
this.def["rt_StartDataLogging"] = {file: "rt_logging_c.html",line:3311,type:"fcn"};
this.def["rt_UpdateLogVar"] = {file: "rt_logging_c.html",line:3340,type:"fcn"};
this.def["rt_UpdateStructLogVar"] = {file: "rt_logging_c.html",line:3827,type:"fcn"};
this.def["rt_getTempMemory"] = {file: "rt_logging_c.html",line:3872,type:"fcn"};
this.def["rt_preProcessAndLogDataWithIndex"] = {file: "rt_logging_c.html",line:3894,type:"fcn"};
this.def["rt_preProcessAndLogData"] = {file: "rt_logging_c.html",line:3924,type:"fcn"};
this.def["rt_UpdateTXYLogVars"] = {file: "rt_logging_c.html",line:3933,type:"fcn"};
this.def["rt_UpdateTXXFYLogVars"] = {file: "rt_logging_c.html",line:3942,type:"fcn"};
this.def["rt_StopDataLoggingImpl"] = {file: "rt_logging_c.html",line:4130,type:"fcn"};
this.def["rt_StopDataLogging"] = {file: "rt_logging_c.html",line:4270,type:"fcn"};
}
CodeDefine.instance = new CodeDefine();
var testHarnessInfo = {OwnerFileName: "", HarnessOwner: "", HarnessName: "", IsTestHarness: "0"};
var relPathToBuildDir = "../ert_main.c";
var fileSep = "\\";
var isPC = true;
function Html2SrcLink() {
this.html2SrcPath = new Array;
this.html2Root = new Array;
this.html2SrcPath["Arduino_skal_cpp.html"] = "../Arduino_skal.cpp";
this.html2Root["Arduino_skal_cpp.html"] = "Arduino_skal_cpp.html";
this.html2SrcPath["Arduino_skal_h.html"] = "../Arduino_skal.h";
this.html2Root["Arduino_skal_h.html"] = "Arduino_skal_h.html";
this.html2SrcPath["Arduino_skal_private_h.html"] = "../Arduino_skal_private.h";
this.html2Root["Arduino_skal_private_h.html"] = "Arduino_skal_private_h.html";
this.html2SrcPath["Arduino_skal_types_h.html"] = "../Arduino_skal_types.h";
this.html2Root["Arduino_skal_types_h.html"] = "Arduino_skal_types_h.html";
this.html2SrcPath["Arduino_skal_data_cpp.html"] = "../Arduino_skal_data.cpp";
this.html2Root["Arduino_skal_data_cpp.html"] = "Arduino_skal_data_cpp.html";
this.html2SrcPath["builtin_typeid_types_h.html"] = "../builtin_typeid_types.h";
this.html2Root["builtin_typeid_types_h.html"] = "builtin_typeid_types_h.html";
this.html2SrcPath["multiword_types_h.html"] = "../multiword_types.h";
this.html2Root["multiword_types_h.html"] = "multiword_types_h.html";
this.html2SrcPath["rtGetInf_cpp.html"] = "../rtGetInf.cpp";
this.html2Root["rtGetInf_cpp.html"] = "rtGetInf_cpp.html";
this.html2SrcPath["rtGetInf_h.html"] = "../rtGetInf.h";
this.html2Root["rtGetInf_h.html"] = "rtGetInf_h.html";
this.html2SrcPath["rtGetNaN_cpp.html"] = "../rtGetNaN.cpp";
this.html2Root["rtGetNaN_cpp.html"] = "rtGetNaN_cpp.html";
this.html2SrcPath["rtGetNaN_h.html"] = "../rtGetNaN.h";
this.html2Root["rtGetNaN_h.html"] = "rtGetNaN_h.html";
this.html2SrcPath["rt_nonfinite_cpp.html"] = "../rt_nonfinite.cpp";
this.html2Root["rt_nonfinite_cpp.html"] = "rt_nonfinite_cpp.html";
this.html2SrcPath["rt_nonfinite_h.html"] = "../rt_nonfinite.h";
this.html2Root["rt_nonfinite_h.html"] = "rt_nonfinite_h.html";
this.html2SrcPath["rtwtypes_h.html"] = "../rtwtypes.h";
this.html2Root["rtwtypes_h.html"] = "rtwtypes_h.html";
this.html2SrcPath["rtmodel_h.html"] = "../rtmodel.h";
this.html2Root["rtmodel_h.html"] = "rtmodel_h.html";
this.html2SrcPath["rt_logging_c.html"] = "../../../../../Program Files/MATLAB/R2021a/rtw/c/src/rt_logging.c";
this.html2Root["rt_logging_c.html"] = "rt_logging_c.html";
this.getLink2Src = function (htmlFileName) {
if (this.html2SrcPath[htmlFileName])
return this.html2SrcPath[htmlFileName];
else
return null;
}
this.getLinkFromRoot = function (htmlFileName) {
if (this.html2Root[htmlFileName])
return this.html2Root[htmlFileName];
else
return null;
}
}
Html2SrcLink.instance = new Html2SrcLink();
var fileList = [
"Arduino_skal_cpp.html","Arduino_skal_h.html","Arduino_skal_private_h.html","Arduino_skal_types_h.html","Arduino_skal_data_cpp.html","builtin_typeid_types_h.html","multiword_types_h.html","rtGetInf_cpp.html","rtGetInf_h.html","rtGetNaN_cpp.html","rtGetNaN_h.html","rt_nonfinite_cpp.html","rt_nonfinite_h.html","rtwtypes_h.html","rtmodel_h.html","rt_logging_c.html"];

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="rtwreport.css" />
<link rel="stylesheet" type="text/css" href="css/coder_app.css" />
<style type="text/css">
div#popup_window {
position: relative;
background-color: ghostwhite;
border-radius: 0px;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
div#popup_window a {
text-decoration: underline;
color: blue;
}
div#token_usage_nav {
border-bottom: none;
}
</style>
</head>
<body class="inspect_body">
<table width="100%">
<col style="width: 95%;"><col style="width: 5%">
<tr><td><div id="popup_window"></div></td>
<td align="right"><div><a onclick="top.closeInspectWindow();" class="closeButton">x</a></div></td>
</tr>
</table></body></html>
<!-- LocalWords: ghostwhite
-->

View File

@ -0,0 +1,525 @@
/* Copyright 2013-2018 The MathWorks, Inc. */
function queryByClassName(className, elem) {
if (!elem) elem = document.body;
if (typeof elem.querySelectorAll === "function") {
return elem.querySelectorAll("."+className);
} else {
return elem.getElementsByClass(className);
}
}
function nav_token_usage_details(direction) {
var els = queryByClassName("token_usage_details_tabrow");
var selectedIdx = 0;
var selectedClassName = "selected";
for (selectedIdx; selectedIdx < els.length; selectedIdx++) {
if (els[selectedIdx].classList.contains(selectedClassName)) {
break;
}
}
var nextIdx = selectedIdx;
if (direction === -1 && selectedIdx > 0) {
nextIdx = selectedIdx-1;
} else if (direction === 1 && selectedIdx < els.length - 1) {
nextIdx = selectedIdx + 1;
}
if (nextIdx !== selectedIdx) {
els[selectedIdx].classList.remove(selectedClassName);
els[nextIdx].classList.add(selectedClassName);
els[nextIdx].scrollIntoView(alignWithTop=false);
}
return false;
}
function tabrowClicked(event) {
}
function popupOnload() {
var els = queryByClassName("token_usage_details_tabrow");
for (var i=0; i<els.length; i++) {
els[i].onclick= tabrowClicked;
}
};
function tokenOnRightclick(event) {
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
top.inspectToken(filename, location.pathname, event);
top.hiliteClickedToken(event.currentTarget);
return false;
}
function tokenOnclick(event) {
tokenOnRightclick(event);
if (event.currentTarget.href.length !== 0 && event.currentTarget.href.protocol !== "matlab:") {
top.tokenLinkOnClick(event);
return true;
}
return false;
};
function tokenOnMouseOver(event) {
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
createPopup(filename, event);
};
function tokenOnMouseOut(event) {
destroyPopup(event.currentTarget);
};
function blkLinkOnClick(event) {
top.hiliteClickedToken(event.currentTarget);
return true;
}
function clearTokenLink(id) {
var codeElement = document.getElementById(id);
var els = queryByClassName("tk", codeElement);
var elem;
if (top.CodeDefine && top.CodeDefine.instance) {
for (var i=0; i<els.length; i++) {
var re = new RegExp('active', 'g');
els[i].className = els[i].className.replace(re, '');
re = new RegExp('traceable_token', 'g');
els[i].className = els[i].className.replace(re, '');
}
}
}
function updateTokenLink(id) {
var codeElement = document.getElementById(id);
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
var srcFilename;
if (top.RTW_TraceInfo) {
srcFilename = top.RTW_TraceInfo.toSrcFileName(filename);
}
var els = queryByClassName("tk", codeElement);
var elem;
var hasTraceFlag = null;
if (top.TraceInfoFlag && top.TraceInfoFlag.instance)
hasTraceFlag = top.TraceInfoFlag.instance.traceFlag;
else
hasTraceFlag = false;
var defObj;
var traceObj;
var codeDef = (top.CodeDefine && top.CodeDefine.instance) ? top.CodeDefine.instance : null;
var aLink = top.document.createElement("a");
if (hasTraceFlag || (top.CodeDefine && top.CodeDefine.instance)) {
for (var i=0; i<els.length; i++) {
defObj = null;
if (codeDef) {
if (codeDef.def.hasOwnProperty(srcFilename + ":" + els[i].text)) {
defObj = codeDef.def[srcFilename + ":" + els[i].text];
} else if (codeDef.def.hasOwnProperty(els[i].text)) {
defObj = codeDef.def[els[i].text];
}
}
traceObj = hasTraceFlag && hasTraceFlag[srcFilename+":"+els[i].id];
if (traceObj || defObj) {
els[i].onclick= tokenOnclick;
els[i].oncontextmenu= tokenOnRightclick;
els[i].onmouseover = tokenOnMouseOver;
els[i].onmouseout = tokenOnMouseOut;
els[i].className += " active";
els[i].target = "rtwreport_document_frame";
if (traceObj && top.reportModel) {
if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
els[i].href = "matlab:rtw.report.code2model('" + top.reportModel
+ "','" + location.pathname + "','" + els[i].id
+ "','" + top.testHarnessInfo.HarnessName
+ "','" + top.testHarnessInfo.HarnessOwner
+ "','" + top.testHarnessInfo.OwnerFileName + "')";
} else {
els[i].href = "matlab:rtw.report.code2model(\'" + top.reportModel
+ "\',\'" + location.pathname + "\',\'" + els[i].id + "')";
}
} else {
aLink.href = defObj.file;
els[i].href = aLink.pathname + "#" + defObj.line;
}
}
}
}
}
// remove the code table; insert back
function updateToken(codeElement) {
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
var srcFilename;
if (top.RTW_TraceInfo) {
srcFilename = top.RTW_TraceInfo.toSrcFileName(filename);
}
// update block path link in comments
els = queryByClassName("blk", codeElement);
var lineSid = null;
if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
for (var i=0; i<els.length; i++) {
lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].text);
if (lineSid) {
if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "','" +
top.testHarnessInfo.HarnessName+ "','" +
top.testHarnessInfo.HarnessOwner+ "','" +
top.testHarnessInfo.OwnerFileName + "');";
} else {
els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "');";
}
els[i].id = "blkLink_" + i;
els[i].onclick = blkLinkOnClick;
els[i].className += " blk_active";
}
}
}
// update lib block path link in comments
els = queryByClassName("libblk", codeElement);
var lineSid = null;
for (var i=0; i<els.length; i++) {
lineSid = els[i].text;
if (lineSid) {
if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
els[i].href = "matlab:coder.internal.code2model('" + lineSid + "','" +
top.testHarnessInfo.HarnessName+ "','" +
top.testHarnessInfo.HarnessOwner+ "','" +
top.testHarnessInfo.OwnerFileName + "');";
} else {
els[i].href = "matlab:coder.internal.code2model('" + lineSid + "');";
}
els[i].id = "blkLink_" + i;
els[i].onclick = blkLinkOnClick;
els[i].className += " blk_active";
}
}
// update requirement link in comments
els = queryByClassName("req", codeElement);
var req_block;
if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
for (var i=0; i<els.length; i++) {
lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].getAttribute("blockpath"));
if (lineSid) {
req_block = lineSid.sid;
} else {
req_block = els[i].getAttribute("blockpath");
}
var req_id = els[i].getAttribute("req_id");
els[i].href = "matlab:rtw.report.code2req('" + req_block + "'," + req_id + ");";
els[i].id = "req_" + i;
els[i].onclick = top.reqOnClick;
els[i].className += " req_active";
}
}
// add link to source file
if (top.Html2SrcLink && top.Html2SrcLink.instance) {
filename = top.rtwGetFileName(location.href);
var link2Src = top.Html2SrcLink.instance.getLink2Src(filename);
var link = document.createElement("h4");
link.innerHTML = "File: <a href=\"" + link2Src +
"\" target = \"rtwreport_document_frame\" id=\"linkToText_plain\">" +
top.rtwGetFileName(link2Src) + "</a>";
var bodyNode = document.body;
bodyNode.insertBefore(link, bodyNode.firstElementChild);
}
top.updateHyperlinks();
// update fileSelector frame
if (top.fileSelector) {
var o = top.fileSelector.document.getElementById('fileSelector');
if (o) {
o.value = filename;
}
}
// add links to line numbers
var hasLineFlag = null;
if (top.TraceInfoLineFlag && top.TraceInfoLineFlag.instance) {
hasLineFlag = true;
} else {
hasLineFlag = false;
}
if(hasLineFlag) {
var lines = queryByClassName("ln", codeElement);
var lineTraceFlag = top.TraceInfoLineFlag.instance.lineTraceFlag;
var lineNo = null;
for (var i=0; i<lines.length; i++) {
lineNo = lines[i].id.substring(1)
if(lineTraceFlag[srcFilename+":"+ lineNo]) {
lines[i].className += " active";
if (top.testHarnessInfo && top.testHarnessInfo.IsTestHarness==="1") {
lines[i].href = "matlab:rtw.report.code2model('" + top.reportModel
+ "','" + srcFilename
+ "','" + lineNo
+ "','" + top.testHarnessInfo.HarnessName
+ "','" + top.testHarnessInfo.HarnessOwner
+ "','" + top.testHarnessInfo.OwnerFileName + "')";
} else {
lines[i].href = "matlab:rtw.report.code2model('" + top.reportModel
+ "','" + srcFilename + "','" + lineNo + "')";
}
}
}
}
}
function getInsertFunction(element) {
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
parentNode.removeChild(element);
var spinner = document.createElement("img");
spinner.src = "spinner.gif";
parentNode.appendChild(spinner);
return function() {
if (spinner) {
parentNode.removeChild(spinner);
}
if (nextSibling) {
parentNode.insertBefore(element, nextSibling);
} else {
parentNode.appendChild(element);
}
};
}
var hovered_line = '';
var lineOnMouseIn = function (id) {
if (hovered_line !== id) {
hovered_line = id;
updateTokenLink(id);
}
}
var lineOnMouseOut = function (id) {
clearTokenLink(id);
hovered_line = '';
}
function registerDelayedOnMouseOver(elm, onMouseIn, onMouseOut) {
var delay = function (elem, onMouseIn, onMouseOut) {
var timeout = null;
elem.onmouseover = function(e) {
timeout = setTimeout(onMouseIn, 200, e.currentTarget.id);
};
elem.onmouseout = function(e) {
clearTimeout(timeout);
if (hovered_line !== '') {
onMouseOut(e.currentTarget.id);
}
}
};
delay(elm, onMouseIn, onMouseOut);
}
// Returns true if obj has all the fields in criteria and obj's values (as strings)
// are present in criteria's values
function matchCriteria(obj, criteria) {
for (var prop in criteria) {
if (!obj.hasOwnProperty(prop) || String(obj[prop]).toUpperCase().indexOf(String(criteria[prop]).toUpperCase()) === -1) {
return false;
}
}
return true;
}
function findParent(node, criteria) {
if (!node) {
return null;
}
else if (matchCriteria(node, criteria)) {
return node;
}
else {
return findParent(node.parentNode, criteria);
}
}
function getLastTableCellContents(trNode) {
for (var i = trNode.childNodes.length - 1; i >= 0; --i) {
var childNode = trNode.childNodes[i];
if (childNode.tagName.toUpperCase() === "TD") {
return childNode.childNodes;
}
}
return null;
}
// see g1225075
function fixBoxStyleFnHeaderLineWidths() {
// Match strings like "/**********/" which is the top line of
// a box-style function comment header
var reBoxHeader = /\/\*+\//;
// Match strings like "' */" which is the contents of the text
// element originally generated in the report to pad the width of
// the line.
var rePadding = /'\s*\*\//;
// All block identifier elements in the report page
blkLineElts = queryByClassName("blk");
for (var i = 0; i < blkLineElts.length; ++i) {
var origPadding = blkLineElts[i].nextSibling;
if (origPadding.textContent.match(rePadding)) {
var spanElt = findParent(blkLineElts[i], { tagName: "span", className: "ct" });
if (!spanElt) {
continue;
}
// The numbered line in the report containing block identifier "i"
var tableRowElt = findParent(spanElt, { tagName: "tr" });
if (!tableRowElt) {
continue;
}
// Loop backward through table rows (i.e., report lines) looking
// for the "/***************/" start of the header. When found save
// its pixel width. Not actually the width of the <tr> itself but
// the span inside its last <td>. This is will determine the real
// padding that is needed for proper alignment regardless of font
// or CKJ characters.
var targetWidth = 0;
var sanity = Number.MAX_VALUE;
var node = tableRowElt.previousSibling;
while (node && (sanity-- > 0)) {
var lastCellContents = getLastTableCellContents(node);
if (lastCellContents) {
if (lastCellContents.length === 0) {
break;
}
if (lastCellContents[0].textContent.match(reBoxHeader)) {
targetWidth = lastCellContents[0].offsetWidth;
break;
}
}
node = node.previousSibling;
}
// If applying a new padding (i.e., targetWidth > 0), replace
// the original padding "' */' (a single text element) with
// two text elements and a span in between. The span will be the
// new pixel-accurate padding.
if (targetWidth > 0) {
var singleQuoteNode = document.createTextNode("'");
var spacerNode = document.createElement('span');
origPadding.textContent = "*/";
origPadding.parentNode.insertBefore(spacerNode, origPadding);
origPadding.parentNode.insertBefore(singleQuoteNode, spacerNode);
var padWidth = targetWidth - spanElt.offsetWidth;
spacerNode.style.display = 'inline-block';
spacerNode.style.width = String(padWidth) + "px";
spacerNode.style.height = '1em'; // cursor won't work w/o some height
spacerNode.style.cursor = 'text';
}
}
}
}
// the onload function for source file
function srcFileOnload() {
var codeElement = document.getElementById("codeTbl");
var insertFunction = getInsertFunction(codeElement);
try {
var els = codeElement.getElementsByTagName("tr");
for (var i = 0; i < els.length; i++) {
registerDelayedOnMouseOver(els[i], lineOnMouseIn, lineOnMouseOut);
}
updateToken(codeElement);
} catch (err) {};
insertFunction();
// add code to model hyperlinks for all tokens
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
// highlight the filename in the TOC frame
if (top.rtwreport_contents_frame && top.hiliteByFileName(top.rtwreport_document_frame.document.location.href)) {
// remove the highlights in the TOC frame if filename is hilite successfully
top.removeHiliteTOC(top.rtwreport_contents_frame);
}
// annotate code with code coverage data
if (typeof rtwannotate === 'function') {
rtwannotate(filename.replace(/.html$/,"_cov.xml"));
}
fixBoxStyleFnHeaderLineWidths();
// highlight token and row
if (top.RTW_TraceInfo.instance && top.RTW_TraceArgs.instance) {
var i;
// find the highlight file name
var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(filename);
var ids=[], rows=[];
if (typeof fileIdx !== "undefined") {
ids = top.RTW_TraceArgs.instance.getIDs(fileIdx);
rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
// highlight rows in file
for (i=0; i<rows.length;i++) {
elem = top.rtwreport_document_frame.document.getElementById(rows[i]);
if (elem) elem.className += " hilite";
}
// highlight tokens in file
if (top.GlobalConfig.hiliteToken) {
for (i=0; i<ids.length;i++) {
elem = top.rtwreport_document_frame.document.getElementById(ids[i]);
if (elem) elem.className += " hilite";
}
}
} // end of if current file has highlighted lines
// if the loaded file is not currFile, call setInitLocation
var currFileIdx = top.RTW_TraceInfo.instance.getCurrFileIdx();
var myFileIdx = top.RTW_TraceInfo.instance.getFileIdx(filename);
// update navigation status if the file is loaded first time
if (currFileIdx !== myFileIdx && document.location.hash === "") {
if (rows.length > 0)
top.RTW_TraceInfo.instance.setInitLocation(filename,rows[0]);
else {
top.toggleNavSideBar("off");
return;
}
}
// display navigation side bar
if (top.rtwreport_nav_frame) top.rtwreport_nav_frame.location.reload();
if (rows.length>0) {
top.toggleNavSideBar("on");
top.toggleNavToolBar("on");
} else {
top.toggleNavSideBar("off");
}
}
top.scrollToLineBasedOnHash(document.location.hash);
function getHash() {
var loc;
var aHash="";
var topDocObj = top.window.document;
// get the hash value from location.
loc = topDocObj.location;
loc = loc.search || loc.hash;
aHash = loc.substring(1);
aHash = decodeURI(aHash);
return aHash;
}
}
function createPopup(filename, evt) {
var anchorObj = evt.currentTarget;
if (anchorObj.children.length > 0)
return;
var filename = location.pathname.split(/\//);
filename = filename[filename.length-1];
var windowObj = top.getInspectWindow();
var propObj = top.getInspectData(filename, anchorObj);
var navObj = top.getInspectLink(filename, location.pathname, anchorObj);
if (propObj) {
windowObj.appendChild(propObj);
windowObj.style.left = "0px";
if (anchorObj.parentElement.nodeName === "TD" &&
anchorObj.parentElement.parentElement.nodeName === "TR") {
anchorObj.parentElement.parentElement.lastChild.insertBefore(windowObj,
anchorObj.parentElement.parentElement.lastChild.lastChild.nextSibling);
var left = Math.min(evt.clientX , window.innerWidth - windowObj.scrollWidth - 30);
left = Math.max(0, left);
windowObj.style.left = "" + left + "px";
}
}
};
function destroyPopup(anchorObj) {
var popWindow = document.getElementById("popup_window");
if (popWindow) {
popWindow.parentElement.removeChild(popWindow);
}
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
</head>
<style>
* {
margin: 0;
padding: 0
}
</style>
<body onresize="top.drawNavSideBar();" onload="top.drawNavSideBar();top.load_metrics();">
<canvas id="canvas" title="navigate to highlighted lines"></canvas>
</body>
</html>

View File

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="rtwreport.css" />
<link rel="stylesheet" type="text/css" href="css/coder_app.css" />
<script>
function NavOnloadFcn() {
var node = document.getElementById("rtwIdTraceBlock");
var td1 = document.getElementById("td1");
if (node && top.RTW_TraceArgs.instance) {
var sid = top.RTW_TraceArgs.instance.getBlock();
if (sid) {
if (top.RTW_TraceArgs.instance.getNumBlocks() === 1) {
var block = sid;
if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance && top.RTW_rtwnameSIDMap.instance.getRtwname(sid)) {
block = top.RTW_rtwnameSIDMap.instance.getRtwname(sid).rtwname;
}
if (block) {
node.textContent = "'" + block + "'";
}
td1.className = "";
} else {
td1.innerHTML = "<b>Highlight code for selected blocks:</b>";
}
} else {
td1.className = "hidden";
}
}
if (top.RTW_TraceInfo && top.RTW_TraceInfo.instance) {
top.RTW_TraceInfo.instance.updateNavState();
}
}
function resize_text() {
var node = document.getElementById("rtwIdTraceBlock");
if (node) {
node.style.maxWidth = "" + (window.innerWidth - 450) + "px";
}
top.resize_NavToolbar_frame();
}
</script>
</head>
<body class="nav_toolbar" onload="NavOnloadFcn(); resize_text();" onresize="resize_text();">
<table class="nav_table" id="rtwIdTracePanel">
<col style="width: 90%;">
<col style="width: 150px;">
<col style="width: 150px;">
<tr>
<td title="Navigation control for highlighted code" id="td1">
<b>Highlight code for block:</b>
<div id="rtwIdTraceBlock" style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap"></div>
</td>
<td style="white-space:nowrap">
<INPUT class="button" TYPE="button" VALUE="<<" style="width: 45px; height: 2em" ID="rtwIdButtonFirst" ONCLICK="if (top.rtwGoFirst) top.rtwGoFirst();" title="goto the first highlighted line" />
<INPUT class="button" TYPE="button" VALUE="<" style="width: 45px; height: 2em" ID="rtwIdButtonPrev" ONCLICK="if (top.rtwGoPrev) top.rtwGoPrev();" disabled="disabled" title="goto the previous highlighted line"/>
<span id="rtwIdTraceNumber"></span>
<INPUT class="button" TYPE="button" VALUE=">" style="width: 45px; height: 2em" ID="rtwIdButtonNext" ONCLICK="if (top.rtwGoNext) top.rtwGoNext();" disabled="disabled" title="goto the next highlighted line"/>
<INPUT class="button" TYPE="button" VALUE=">>" style="width: 45px; height: 2em" ID="rtwIdButtonLast" ONCLICK="if (top.rtwGoLast) top.rtwGoLast();" title="goto the last highlighted line" />
</td>
<td>
<INPUT class="button" TYPE="button" VALUE="Remove Highlights" style="width: 150px; height: 2em" ID="rtwIdButtonRemove" ONCLICK="if (top.removeInCodeTraceHighlight()) top.removeInCodeTraceHighlight()" title="remove highlighted lines"/>
</td>
</tr>
</table>
</body>
</html>
</table>
<!-- LocalWords: Onload px ONCLICK
-->

View File

@ -0,0 +1,310 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtGetInf.cpp</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="ct">/*</span></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="ct"> * Abstract:</span></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="ct"> * Function to initialize non-finite, Inf</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="ct"> */</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rtGetInf.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">NumBitsPerChar</a> 8U</td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="ct"> * Initialize rtInf needed by the generated code.</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="ct"> */</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <a id="33c3" class="tk">real_T</a> <a id="33c10" class="tk">rtGetInf</a>(<span class="kw">void</span>)</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <span class="br">{</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <a id="35c5" class="tk">size_t</a> <a id="35c12" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="35c33" class="tk">real_T</a>) <a id="35c41" class="tk">*</a> (<a id="35c44" class="tk">NumBitsPerChar</a>);</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td> <a id="36c5" class="tk">real_T</a> <a id="36c12" class="tk">inf</a> = 0.0;</td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <span class="kw">if</span> (<a id="37c9" class="tk">bitsPerReal</a> <a id="37c21" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td> <a id="38c7" class="tk">inf</a> = <a id="38c13" class="tk">rtGetInfF</a>();</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td> <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td> <a id="40c7" class="tk">uint16_T</a> <a id="40c16" class="tk">one</a> = 1U;</td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td> <a id="42c9" class="tk">LittleEndian</a>,</td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td> <a id="43c9" class="tk">BigEndian</a></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td> <span class="br">}</span> <a id="44c9" class="tk">machByteOrder</a> = (<a id="44c26" class="tk">*</a>((<a id="44c29" class="tk">uint8_T</a> <a id="44c37" class="tk">*</a>) <a id="44c40" class="tk">&amp;</a><a id="44c41" class="tk">one</a>) <a id="44c46" class="tk">==</a> 1U) <a id="44c53" class="tk">?</a> <a id="44c55" class="tk">LittleEndian</a> <a id="44c68" class="tk">:</a> <a id="44c70" class="tk">BigEndian</a>;</td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <span class="kw">switch</span> (<a id="45c15" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td> <span class="kw">case</span> <a id="46c13" class="tk">LittleEndian</a><a id="46c25" class="tk">:</a></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> <span class="br">{</span></td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td> <a id="49c13" class="tk">LittleEndianIEEEDouble</a> <a id="49c36" class="tk">bitVal</a>;</td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td> <a id="50c13" class="tk">real_T</a> <a id="50c20" class="tk">fltVal</a>;</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td> <span class="br">}</span> <a id="51c13" class="tk">tmpVal</a>;</td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td></td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td> <a id="53c11" class="tk">tmpVal</a>.<a id="53c18" class="tk">bitVal</a>.<a id="53c25" class="tk">words</a>.<a id="53c31" class="tk">wordH</a> = 0x7FF00000U;</td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td> <a id="54c11" class="tk">tmpVal</a>.<a id="54c18" class="tk">bitVal</a>.<a id="54c25" class="tk">words</a>.<a id="54c31" class="tk">wordL</a> = 0x00000000U;</td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td> <a id="55c11" class="tk">inf</a> = <a id="55c17" class="tk">tmpVal</a>.<a id="55c24" class="tk">fltVal</a>;</td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td> <span class="br">}</span></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td></td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td> <span class="kw">case</span> <a id="59c13" class="tk">BigEndian</a><a id="59c22" class="tk">:</a></td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td> <span class="br">{</span></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td> <a id="62c13" class="tk">BigEndianIEEEDouble</a> <a id="62c33" class="tk">bitVal</a>;</td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td> <a id="63c13" class="tk">real_T</a> <a id="63c20" class="tk">fltVal</a>;</td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td> <span class="br">}</span> <a id="64c13" class="tk">tmpVal</a>;</td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td> <a id="66c11" class="tk">tmpVal</a>.<a id="66c18" class="tk">bitVal</a>.<a id="66c25" class="tk">words</a>.<a id="66c31" class="tk">wordH</a> = 0x7FF00000U;</td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td> <a id="67c11" class="tk">tmpVal</a>.<a id="67c18" class="tk">bitVal</a>.<a id="67c25" class="tk">words</a>.<a id="67c31" class="tk">wordL</a> = 0x00000000U;</td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td> <a id="68c11" class="tk">inf</a> = <a id="68c17" class="tk">tmpVal</a>.<a id="68c24" class="tk">fltVal</a>;</td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td> <span class="br">}</span></td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td> <span class="br">}</span></td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td> <span class="br">}</span></td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td></td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td> <span class="kw">return</span> <a id="74c12" class="tk">inf</a>;</td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td> <span class="br">}</span></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * Initialize rtInfF needed by the generated code.</span></td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td><span class="ct"> */</span></td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td> <a id="81c3" class="tk">real32_T</a> <a id="81c12" class="tk">rtGetInfF</a>(<span class="kw">void</span>)</td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td> <span class="br">{</span></td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td> <a id="83c5" class="tk">IEEESingle</a> <a id="83c16" class="tk">infF</a>;</td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td> <a id="84c5" class="tk">infF</a>.<a id="84c10" class="tk">wordL</a>.<a id="84c16" class="tk">wordLuint</a> = 0x7F800000U;</td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td> <span class="kw">return</span> <a id="85c12" class="tk">infF</a>.<a id="85c17" class="tk">wordL</a>.<a id="85c23" class="tk">wordLreal</a>;</td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td> <span class="br">}</span></td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td></td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td><span class="ct"> * Initialize rtMinusInf needed by the generated code.</span></td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td><span class="ct"> */</span></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td> <a id="92c3" class="tk">real_T</a> <a id="92c10" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>)</td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td> <span class="br">{</span></td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td> <a id="94c5" class="tk">size_t</a> <a id="94c12" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="94c33" class="tk">real_T</a>) <a id="94c41" class="tk">*</a> (<a id="94c44" class="tk">NumBitsPerChar</a>);</td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td> <a id="95c5" class="tk">real_T</a> <a id="95c12" class="tk">minf</a> = 0.0;</td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td> <span class="kw">if</span> (<a id="96c9" class="tk">bitsPerReal</a> <a id="96c21" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td> <a id="97c7" class="tk">minf</a> = <a id="97c14" class="tk">rtGetMinusInfF</a>();</td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td> <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td> <a id="99c7" class="tk">uint16_T</a> <a id="99c16" class="tk">one</a> = 1U;</td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="101" id="101">
<td><a id="l101" class='ln'>101</a></td><td> <a id="101c9" class="tk">LittleEndian</a>,</td></tr>
<tr name="102" id="102">
<td><a id="l102" class='ln'>102</a></td><td> <a id="102c9" class="tk">BigEndian</a></td></tr>
<tr name="103" id="103">
<td><a id="l103" class='ln'>103</a></td><td> <span class="br">}</span> <a id="103c9" class="tk">machByteOrder</a> = (<a id="103c26" class="tk">*</a>((<a id="103c29" class="tk">uint8_T</a> <a id="103c37" class="tk">*</a>) <a id="103c40" class="tk">&amp;</a><a id="103c41" class="tk">one</a>) <a id="103c46" class="tk">==</a> 1U) <a id="103c53" class="tk">?</a> <a id="103c55" class="tk">LittleEndian</a> <a id="103c68" class="tk">:</a> <a id="103c70" class="tk">BigEndian</a>;</td></tr>
<tr name="104" id="104">
<td><a id="l104" class='ln'>104</a></td><td> <span class="kw">switch</span> (<a id="104c15" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
<tr name="105" id="105">
<td><a id="l105" class='ln'>105</a></td><td> <span class="kw">case</span> <a id="105c13" class="tk">LittleEndian</a><a id="105c25" class="tk">:</a></td></tr>
<tr name="106" id="106">
<td><a id="l106" class='ln'>106</a></td><td> <span class="br">{</span></td></tr>
<tr name="107" id="107">
<td><a id="l107" class='ln'>107</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="108" id="108">
<td><a id="l108" class='ln'>108</a></td><td> <a id="108c13" class="tk">LittleEndianIEEEDouble</a> <a id="108c36" class="tk">bitVal</a>;</td></tr>
<tr name="109" id="109">
<td><a id="l109" class='ln'>109</a></td><td> <a id="109c13" class="tk">real_T</a> <a id="109c20" class="tk">fltVal</a>;</td></tr>
<tr name="110" id="110">
<td><a id="l110" class='ln'>110</a></td><td> <span class="br">}</span> <a id="110c13" class="tk">tmpVal</a>;</td></tr>
<tr name="111" id="111">
<td><a id="l111" class='ln'>111</a></td><td></td></tr>
<tr name="112" id="112">
<td><a id="l112" class='ln'>112</a></td><td> <a id="112c11" class="tk">tmpVal</a>.<a id="112c18" class="tk">bitVal</a>.<a id="112c25" class="tk">words</a>.<a id="112c31" class="tk">wordH</a> = 0xFFF00000U;</td></tr>
<tr name="113" id="113">
<td><a id="l113" class='ln'>113</a></td><td> <a id="113c11" class="tk">tmpVal</a>.<a id="113c18" class="tk">bitVal</a>.<a id="113c25" class="tk">words</a>.<a id="113c31" class="tk">wordL</a> = 0x00000000U;</td></tr>
<tr name="114" id="114">
<td><a id="l114" class='ln'>114</a></td><td> <a id="114c11" class="tk">minf</a> = <a id="114c18" class="tk">tmpVal</a>.<a id="114c25" class="tk">fltVal</a>;</td></tr>
<tr name="115" id="115">
<td><a id="l115" class='ln'>115</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="116" id="116">
<td><a id="l116" class='ln'>116</a></td><td> <span class="br">}</span></td></tr>
<tr name="117" id="117">
<td><a id="l117" class='ln'>117</a></td><td></td></tr>
<tr name="118" id="118">
<td><a id="l118" class='ln'>118</a></td><td> <span class="kw">case</span> <a id="118c13" class="tk">BigEndian</a><a id="118c22" class="tk">:</a></td></tr>
<tr name="119" id="119">
<td><a id="l119" class='ln'>119</a></td><td> <span class="br">{</span></td></tr>
<tr name="120" id="120">
<td><a id="l120" class='ln'>120</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="121" id="121">
<td><a id="l121" class='ln'>121</a></td><td> <a id="121c13" class="tk">BigEndianIEEEDouble</a> <a id="121c33" class="tk">bitVal</a>;</td></tr>
<tr name="122" id="122">
<td><a id="l122" class='ln'>122</a></td><td> <a id="122c13" class="tk">real_T</a> <a id="122c20" class="tk">fltVal</a>;</td></tr>
<tr name="123" id="123">
<td><a id="l123" class='ln'>123</a></td><td> <span class="br">}</span> <a id="123c13" class="tk">tmpVal</a>;</td></tr>
<tr name="124" id="124">
<td><a id="l124" class='ln'>124</a></td><td></td></tr>
<tr name="125" id="125">
<td><a id="l125" class='ln'>125</a></td><td> <a id="125c11" class="tk">tmpVal</a>.<a id="125c18" class="tk">bitVal</a>.<a id="125c25" class="tk">words</a>.<a id="125c31" class="tk">wordH</a> = 0xFFF00000U;</td></tr>
<tr name="126" id="126">
<td><a id="l126" class='ln'>126</a></td><td> <a id="126c11" class="tk">tmpVal</a>.<a id="126c18" class="tk">bitVal</a>.<a id="126c25" class="tk">words</a>.<a id="126c31" class="tk">wordL</a> = 0x00000000U;</td></tr>
<tr name="127" id="127">
<td><a id="l127" class='ln'>127</a></td><td> <a id="127c11" class="tk">minf</a> = <a id="127c18" class="tk">tmpVal</a>.<a id="127c25" class="tk">fltVal</a>;</td></tr>
<tr name="128" id="128">
<td><a id="l128" class='ln'>128</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="129" id="129">
<td><a id="l129" class='ln'>129</a></td><td> <span class="br">}</span></td></tr>
<tr name="130" id="130">
<td><a id="l130" class='ln'>130</a></td><td> <span class="br">}</span></td></tr>
<tr name="131" id="131">
<td><a id="l131" class='ln'>131</a></td><td> <span class="br">}</span></td></tr>
<tr name="132" id="132">
<td><a id="l132" class='ln'>132</a></td><td></td></tr>
<tr name="133" id="133">
<td><a id="l133" class='ln'>133</a></td><td> <span class="kw">return</span> <a id="133c12" class="tk">minf</a>;</td></tr>
<tr name="134" id="134">
<td><a id="l134" class='ln'>134</a></td><td> <span class="br">}</span></td></tr>
<tr name="135" id="135">
<td><a id="l135" class='ln'>135</a></td><td></td></tr>
<tr name="136" id="136">
<td><a id="l136" class='ln'>136</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="137" id="137">
<td><a id="l137" class='ln'>137</a></td><td><span class="ct"> * Initialize rtMinusInfF needed by the generated code.</span></td></tr>
<tr name="138" id="138">
<td><a id="l138" class='ln'>138</a></td><td><span class="ct"> * Inf is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="139" id="139">
<td><a id="l139" class='ln'>139</a></td><td><span class="ct"> */</span></td></tr>
<tr name="140" id="140">
<td><a id="l140" class='ln'>140</a></td><td> <a id="140c3" class="tk">real32_T</a> <a id="140c12" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>)</td></tr>
<tr name="141" id="141">
<td><a id="l141" class='ln'>141</a></td><td> <span class="br">{</span></td></tr>
<tr name="142" id="142">
<td><a id="l142" class='ln'>142</a></td><td> <a id="142c5" class="tk">IEEESingle</a> <a id="142c16" class="tk">minfF</a>;</td></tr>
<tr name="143" id="143">
<td><a id="l143" class='ln'>143</a></td><td> <a id="143c5" class="tk">minfF</a>.<a id="143c11" class="tk">wordL</a>.<a id="143c17" class="tk">wordLuint</a> = 0xFF800000U;</td></tr>
<tr name="144" id="144">
<td><a id="l144" class='ln'>144</a></td><td> <span class="kw">return</span> <a id="144c12" class="tk">minfF</a>.<a id="144c18" class="tk">wordL</a>.<a id="144c24" class="tk">wordLreal</a>;</td></tr>
<tr name="145" id="145">
<td><a id="l145" class='ln'>145</a></td><td> <span class="br">}</span></td></tr>
<tr name="146" id="146">
<td><a id="l146" class='ln'>146</a></td><td><span class="br">}</span></td></tr>
<tr name="147" id="147">
<td><a id="l147" class='ln'>147</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtGetInf.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_rtGetInf_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_rtGetInf_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#ifdef</span> <a id="26c8" class="tk">__cplusplus</a></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <span class="kw">extern</span> <a id="32c10" class="tk">real_T</a> <a id="32c17" class="tk">rtGetInf</a>(<span class="kw">void</span>);</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <span class="kw">extern</span> <a id="33c10" class="tk">real32_T</a> <a id="33c19" class="tk">rtGetInfF</a>(<span class="kw">void</span>);</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <span class="kw">extern</span> <a id="34c10" class="tk">real_T</a> <a id="34c17" class="tk">rtGetMinusInf</a>(<span class="kw">void</span>);</td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <span class="kw">extern</span> <a id="35c10" class="tk">real32_T</a> <a id="35c19" class="tk">rtGetMinusInfF</a>(<span class="kw">void</span>);</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#ifdef</span> <a id="37c8" class="tk">__cplusplus</a></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="br">}</span> <span class="ct">/* extern "C" */</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rtGetInf_h_ */</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,230 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtGetNaN.cpp</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="ct">/*</span></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="ct"> * Abstract:</span></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="ct"> * Function to initialize non-finite, NaN</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="ct"> */</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rtGetNaN.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#define</span> <a id="26c9" class="tk">NumBitsPerChar</a> 8U</td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="ct"> * Initialize rtNaN needed by the generated code.</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="ct"> */</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <a id="33c3" class="tk">real_T</a> <a id="33c10" class="tk">rtGetNaN</a>(<span class="kw">void</span>)</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <span class="br">{</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <a id="35c5" class="tk">size_t</a> <a id="35c12" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="35c33" class="tk">real_T</a>) <a id="35c41" class="tk">*</a> (<a id="35c44" class="tk">NumBitsPerChar</a>);</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td> <a id="36c5" class="tk">real_T</a> <a id="36c12" class="tk">nan</a> = 0.0;</td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <span class="kw">if</span> (<a id="37c9" class="tk">bitsPerReal</a> <a id="37c21" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td> <a id="38c7" class="tk">nan</a> = <a id="38c13" class="tk">rtGetNaNF</a>();</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td> <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td> <a id="40c7" class="tk">uint16_T</a> <a id="40c16" class="tk">one</a> = 1U;</td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td> <a id="42c9" class="tk">LittleEndian</a>,</td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td> <a id="43c9" class="tk">BigEndian</a></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td> <span class="br">}</span> <a id="44c9" class="tk">machByteOrder</a> = (<a id="44c26" class="tk">*</a>((<a id="44c29" class="tk">uint8_T</a> <a id="44c37" class="tk">*</a>) <a id="44c40" class="tk">&amp;</a><a id="44c41" class="tk">one</a>) <a id="44c46" class="tk">==</a> 1U) <a id="44c53" class="tk">?</a> <a id="44c55" class="tk">LittleEndian</a> <a id="44c68" class="tk">:</a> <a id="44c70" class="tk">BigEndian</a>;</td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <span class="kw">switch</span> (<a id="45c15" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td> <span class="kw">case</span> <a id="46c13" class="tk">LittleEndian</a><a id="46c25" class="tk">:</a></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> <span class="br">{</span></td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td> <a id="49c13" class="tk">LittleEndianIEEEDouble</a> <a id="49c36" class="tk">bitVal</a>;</td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td> <a id="50c13" class="tk">real_T</a> <a id="50c20" class="tk">fltVal</a>;</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td> <span class="br">}</span> <a id="51c13" class="tk">tmpVal</a>;</td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td></td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td> <a id="53c11" class="tk">tmpVal</a>.<a id="53c18" class="tk">bitVal</a>.<a id="53c25" class="tk">words</a>.<a id="53c31" class="tk">wordH</a> = 0xFFF80000U;</td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td> <a id="54c11" class="tk">tmpVal</a>.<a id="54c18" class="tk">bitVal</a>.<a id="54c25" class="tk">words</a>.<a id="54c31" class="tk">wordL</a> = 0x00000000U;</td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td> <a id="55c11" class="tk">nan</a> = <a id="55c17" class="tk">tmpVal</a>.<a id="55c24" class="tk">fltVal</a>;</td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td> <span class="br">}</span></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td></td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td> <span class="kw">case</span> <a id="59c13" class="tk">BigEndian</a><a id="59c22" class="tk">:</a></td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td> <span class="br">{</span></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td> <a id="62c13" class="tk">BigEndianIEEEDouble</a> <a id="62c33" class="tk">bitVal</a>;</td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td> <a id="63c13" class="tk">real_T</a> <a id="63c20" class="tk">fltVal</a>;</td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td> <span class="br">}</span> <a id="64c13" class="tk">tmpVal</a>;</td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td> <a id="66c11" class="tk">tmpVal</a>.<a id="66c18" class="tk">bitVal</a>.<a id="66c25" class="tk">words</a>.<a id="66c31" class="tk">wordH</a> = 0x7FFFFFFFU;</td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td> <a id="67c11" class="tk">tmpVal</a>.<a id="67c18" class="tk">bitVal</a>.<a id="67c25" class="tk">words</a>.<a id="67c31" class="tk">wordL</a> = 0xFFFFFFFFU;</td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td> <a id="68c11" class="tk">nan</a> = <a id="68c17" class="tk">tmpVal</a>.<a id="68c24" class="tk">fltVal</a>;</td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td> <span class="br">}</span></td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td> <span class="br">}</span></td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td> <span class="br">}</span></td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td></td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td> <span class="kw">return</span> <a id="74c12" class="tk">nan</a>;</td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td> <span class="br">}</span></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * Initialize rtNaNF needed by the generated code.</span></td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td><span class="ct"> * NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td><span class="ct"> */</span></td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td> <a id="81c3" class="tk">real32_T</a> <a id="81c12" class="tk">rtGetNaNF</a>(<span class="kw">void</span>)</td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td> <span class="br">{</span></td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td> <a id="83c5" class="tk">IEEESingle</a> <a id="83c16" class="tk">nanF</a> = <span class="br">{</span> <span class="br">{</span> 0.0F <span class="br">}</span> <span class="br">}</span>;</td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td></td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td> <a id="85c5" class="tk">uint16_T</a> <a id="85c14" class="tk">one</a> = 1U;</td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td> <a id="87c7" class="tk">LittleEndian</a>,</td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td> <a id="88c7" class="tk">BigEndian</a></td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td> <span class="br">}</span> <a id="89c7" class="tk">machByteOrder</a> = (<a id="89c24" class="tk">*</a>((<a id="89c27" class="tk">uint8_T</a> <a id="89c35" class="tk">*</a>) <a id="89c38" class="tk">&amp;</a><a id="89c39" class="tk">one</a>) <a id="89c44" class="tk">==</a> 1U) <a id="89c51" class="tk">?</a> <a id="89c53" class="tk">LittleEndian</a> <a id="89c66" class="tk">:</a> <a id="89c68" class="tk">BigEndian</a>;</td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td> <span class="kw">switch</span> (<a id="90c13" class="tk">machByteOrder</a>) <span class="br">{</span></td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td> <span class="kw">case</span> <a id="91c11" class="tk">LittleEndian</a><a id="91c23" class="tk">:</a></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td> <span class="br">{</span></td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td> <a id="93c9" class="tk">nanF</a>.<a id="93c14" class="tk">wordL</a>.<a id="93c20" class="tk">wordLuint</a> = 0xFFC00000U;</td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td> <span class="br">}</span></td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td></td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td> <span class="kw">case</span> <a id="97c11" class="tk">BigEndian</a><a id="97c20" class="tk">:</a></td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td> <span class="br">{</span></td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td> <a id="99c9" class="tk">nanF</a>.<a id="99c14" class="tk">wordL</a>.<a id="99c20" class="tk">wordLuint</a> = 0x7FFFFFFFU;</td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="101" id="101">
<td><a id="l101" class='ln'>101</a></td><td> <span class="br">}</span></td></tr>
<tr name="102" id="102">
<td><a id="l102" class='ln'>102</a></td><td> <span class="br">}</span></td></tr>
<tr name="103" id="103">
<td><a id="l103" class='ln'>103</a></td><td></td></tr>
<tr name="104" id="104">
<td><a id="l104" class='ln'>104</a></td><td> <span class="kw">return</span> <a id="104c12" class="tk">nanF</a>.<a id="104c17" class="tk">wordL</a>.<a id="104c23" class="tk">wordLreal</a>;</td></tr>
<tr name="105" id="105">
<td><a id="l105" class='ln'>105</a></td><td> <span class="br">}</span></td></tr>
<tr name="106" id="106">
<td><a id="l106" class='ln'>106</a></td><td><span class="br">}</span></td></tr>
<tr name="107" id="107">
<td><a id="l107" class='ln'>107</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtGetNaN.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_rtGetNaN_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_rtGetNaN_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#ifdef</span> <a id="26c8" class="tk">__cplusplus</a></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <span class="kw">extern</span> <a id="32c10" class="tk">real_T</a> <a id="32c17" class="tk">rtGetNaN</a>(<span class="kw">void</span>);</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <span class="kw">extern</span> <a id="33c10" class="tk">real32_T</a> <a id="33c19" class="tk">rtGetNaNF</a>(<span class="kw">void</span>);</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#ifdef</span> <a id="35c8" class="tk">__cplusplus</a></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="br">}</span> <span class="ct">/* extern "C" */</span></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rtGetNaN_h_ */</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,216 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rt_nonfinite.cpp</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="ct">/*</span></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="ct"> * Abstract:</span></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="ct"> * Function to initialize non-finites,</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="ct"> * (Inf, NaN and -Inf).</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="ct"> */</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#include "rt_nonfinite.h"</span></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#include "rtGetNaN.h"</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#include "rtGetInf.h"</span></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#define</span> <a id="29c9" class="tk">NumBitsPerChar</a> 8U</td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <a id="32c3" class="tk">real_T</a> <a id="32c10" class="tk">rtInf</a>;</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <a id="33c3" class="tk">real_T</a> <a id="33c10" class="tk">rtMinusInf</a>;</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <a id="34c3" class="tk">real_T</a> <a id="34c10" class="tk">rtNaN</a>;</td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <a id="35c3" class="tk">real32_T</a> <a id="35c12" class="tk">rtInfF</a>;</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td> <a id="36c3" class="tk">real32_T</a> <a id="36c12" class="tk">rtMinusInfF</a>;</td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <a id="37c3" class="tk">real32_T</a> <a id="37c12" class="tk">rtNaNF</a>;</td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="br">}</span></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td> <span class="kw">extern</span> "C"</td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td><span class="br">{</span></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td> <span class="ct">/*</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td><span class="ct"> * Initialize the rtInf, rtMinusInf, and rtNaN needed by the</span></td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td><span class="ct"> * generated code. NaN is initialized as non-signaling. Assumes IEEE.</span></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td><span class="ct"> */</span></td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <span class="kw">void</span> <a id="45c8" class="tk">rt_InitInfAndNaN</a>(<a id="45c25" class="tk">size_t</a> <a id="45c32" class="tk">realSize</a>)</td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td> <span class="br">{</span></td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> (<span class="kw">void</span>) (<a id="47c13" class="tk">realSize</a>);</td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td> <a id="48c5" class="tk">rtNaN</a> = <a id="48c13" class="tk">rtGetNaN</a>();</td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td> <a id="49c5" class="tk">rtNaNF</a> = <a id="49c14" class="tk">rtGetNaNF</a>();</td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td> <a id="50c5" class="tk">rtInf</a> = <a id="50c13" class="tk">rtGetInf</a>();</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td> <a id="51c5" class="tk">rtInfF</a> = <a id="51c14" class="tk">rtGetInfF</a>();</td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td> <a id="52c5" class="tk">rtMinusInf</a> = <a id="52c18" class="tk">rtGetMinusInf</a>();</td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td> <a id="53c5" class="tk">rtMinusInfF</a> = <a id="53c19" class="tk">rtGetMinusInfF</a>();</td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td> <span class="br">}</span></td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td></td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> <span class="ct">/* Test if value is infinite */</span></td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td> <a id="57c3" class="tk">boolean_T</a> <a id="57c13" class="tk">rtIsInf</a>(<a id="57c21" class="tk">real_T</a> <a id="57c28" class="tk">value</a>)</td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td> <span class="br">{</span></td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td> <span class="kw">return</span> (<a id="59c13" class="tk">boolean_T</a>)((<a id="59c25" class="tk">value</a><a id="59c30" class="tk">==</a><a id="59c32" class="tk">rtInf</a> <a id="59c38" class="tk">||</a> <a id="59c41" class="tk">value</a><a id="59c46" class="tk">==</a><a id="59c48" class="tk">rtMinusInf</a>) <a id="59c60" class="tk">?</a> 1U <a id="59c65" class="tk">:</a> 0U);</td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td> <span class="br">}</span></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td></td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td> <span class="ct">/* Test if single-precision value is infinite */</span></td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td> <a id="63c3" class="tk">boolean_T</a> <a id="63c13" class="tk">rtIsInfF</a>(<a id="63c22" class="tk">real32_T</a> <a id="63c31" class="tk">value</a>)</td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td> <span class="br">{</span></td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td> <span class="kw">return</span> (<a id="65c13" class="tk">boolean_T</a>)(((<a id="65c26" class="tk">value</a>)<a id="65c32" class="tk">==</a><a id="65c34" class="tk">rtInfF</a> <a id="65c41" class="tk">||</a> (<a id="65c45" class="tk">value</a>)<a id="65c51" class="tk">==</a><a id="65c53" class="tk">rtMinusInfF</a>) <a id="65c66" class="tk">?</a> 1U <a id="65c71" class="tk">:</a> 0U);</td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td> <span class="br">}</span></td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td></td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td> <span class="ct">/* Test if value is not a number */</span></td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td> <a id="69c3" class="tk">boolean_T</a> <a id="69c13" class="tk">rtIsNaN</a>(<a id="69c21" class="tk">real_T</a> <a id="69c28" class="tk">value</a>)</td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td> <span class="br">{</span></td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td> <a id="71c5" class="tk">boolean_T</a> <a id="71c15" class="tk">result</a> = (<a id="71c25" class="tk">boolean_T</a>) 0;</td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td> <a id="72c5" class="tk">size_t</a> <a id="72c12" class="tk">bitsPerReal</a> = <span class="kw">sizeof</span>(<a id="72c33" class="tk">real_T</a>) <a id="72c41" class="tk">*</a> (<a id="72c44" class="tk">NumBitsPerChar</a>);</td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td> <span class="kw">if</span> (<a id="73c9" class="tk">bitsPerReal</a> <a id="73c21" class="tk">==</a> 32U) <span class="br">{</span></td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td> <a id="74c7" class="tk">result</a> = <a id="74c16" class="tk">rtIsNaNF</a>((<a id="74c26" class="tk">real32_T</a>)<a id="74c35" class="tk">value</a>);</td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td> <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td> <a id="77c9" class="tk">LittleEndianIEEEDouble</a> <a id="77c32" class="tk">bitVal</a>;</td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td> <a id="78c9" class="tk">real_T</a> <a id="78c16" class="tk">fltVal</a>;</td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td> <span class="br">}</span> <a id="79c9" class="tk">tmpVal</a>;</td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td></td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td> <a id="81c7" class="tk">tmpVal</a>.<a id="81c14" class="tk">fltVal</a> = <a id="81c23" class="tk">value</a>;</td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td> <a id="82c7" class="tk">result</a> = (<a id="82c17" class="tk">boolean_T</a>)((<a id="82c29" class="tk">tmpVal</a>.<a id="82c36" class="tk">bitVal</a>.<a id="82c43" class="tk">words</a>.<a id="82c49" class="tk">wordH</a> <a id="82c55" class="tk">&amp;</a> 0x7FF00000) <a id="82c69" class="tk">==</a></td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td> 0x7FF00000 <a id="83c39" class="tk">&amp;&amp;</a></td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td> ( (<a id="84c31" class="tk">tmpVal</a>.<a id="84c38" class="tk">bitVal</a>.<a id="84c45" class="tk">words</a>.<a id="84c51" class="tk">wordH</a> <a id="84c57" class="tk">&amp;</a> 0x000FFFFF) <a id="84c71" class="tk">!=</a> 0 <a id="84c76" class="tk">||</a></td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td> (<a id="85c30" class="tk">tmpVal</a>.<a id="85c37" class="tk">bitVal</a>.<a id="85c44" class="tk">words</a>.<a id="85c50" class="tk">wordL</a> <a id="85c56" class="tk">!=</a> 0) ));</td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td> <span class="br">}</span></td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td></td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td> <span class="kw">return</span> <a id="88c12" class="tk">result</a>;</td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td> <span class="br">}</span></td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td></td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td> <span class="ct">/* Test if single-precision value is not a number */</span></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td> <a id="92c3" class="tk">boolean_T</a> <a id="92c13" class="tk">rtIsNaNF</a>(<a id="92c22" class="tk">real32_T</a> <a id="92c31" class="tk">value</a>)</td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td> <span class="br">{</span></td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td> <a id="94c5" class="tk">IEEESingle</a> <a id="94c16" class="tk">tmp</a>;</td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td> <a id="95c5" class="tk">tmp</a>.<a id="95c9" class="tk">wordL</a>.<a id="95c15" class="tk">wordLreal</a> = <a id="95c27" class="tk">value</a>;</td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td> <span class="kw">return</span> (<a id="96c13" class="tk">boolean_T</a>)( (<a id="96c26" class="tk">tmp</a>.<a id="96c30" class="tk">wordL</a>.<a id="96c36" class="tk">wordLuint</a> <a id="96c46" class="tk">&amp;</a> 0x7F800000) <a id="96c60" class="tk">==</a> 0x7F800000 <a id="96c74" class="tk">&amp;&amp;</a></td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td> (<a id="97c25" class="tk">tmp</a>.<a id="97c29" class="tk">wordL</a>.<a id="97c35" class="tk">wordLuint</a> <a id="97c45" class="tk">&amp;</a> 0x007FFFFF) <a id="97c59" class="tk">!=</a> 0 );</td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td> <span class="br">}</span></td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td><span class="br">}</span></td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rt_nonfinite.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_rt_nonfinite_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_rt_nonfinite_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#ifdef</span> <a id="25c8" class="tk">__cplusplus</a></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="kw">extern</span> "C" <span class="br">{</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td> <span class="kw">extern</span> <a id="31c10" class="tk">real_T</a> <a id="31c17" class="tk">rtInf</a>;</td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td> <span class="kw">extern</span> <a id="32c10" class="tk">real_T</a> <a id="32c17" class="tk">rtMinusInf</a>;</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td> <span class="kw">extern</span> <a id="33c10" class="tk">real_T</a> <a id="33c17" class="tk">rtNaN</a>;</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td> <span class="kw">extern</span> <a id="34c10" class="tk">real32_T</a> <a id="34c19" class="tk">rtInfF</a>;</td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td> <span class="kw">extern</span> <a id="35c10" class="tk">real32_T</a> <a id="35c19" class="tk">rtMinusInfF</a>;</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td> <span class="kw">extern</span> <a id="36c10" class="tk">real32_T</a> <a id="36c19" class="tk">rtNaNF</a>;</td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td> <span class="kw">extern</span> <span class="kw">void</span> <a id="37c15" class="tk">rt_InitInfAndNaN</a>(<a id="37c32" class="tk">size_t</a> <a id="37c39" class="tk">realSize</a>);</td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td> <span class="kw">extern</span> <a id="38c10" class="tk">boolean_T</a> <a id="38c20" class="tk">rtIsInf</a>(<a id="38c28" class="tk">real_T</a> <a id="38c35" class="tk">value</a>);</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td> <span class="kw">extern</span> <a id="39c10" class="tk">boolean_T</a> <a id="39c20" class="tk">rtIsInfF</a>(<a id="39c29" class="tk">real32_T</a> <a id="39c38" class="tk">value</a>);</td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td> <span class="kw">extern</span> <a id="40c10" class="tk">boolean_T</a> <a id="40c20" class="tk">rtIsNaN</a>(<a id="40c28" class="tk">real_T</a> <a id="40c35" class="tk">value</a>);</td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td> <span class="kw">extern</span> <a id="41c10" class="tk">boolean_T</a> <a id="41c20" class="tk">rtIsNaNF</a>(<a id="41c29" class="tk">real32_T</a> <a id="41c38" class="tk">value</a>);</td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td> <span class="kw">struct</span> <a id="42c10" class="tk">BigEndianIEEEDouble</a> <span class="br">{</span></td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td> <span class="kw">struct</span> <span class="br">{</span></td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td> <a id="44c7" class="tk">uint32_T</a> <a id="44c16" class="tk">wordH</a>;</td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <a id="45c7" class="tk">uint32_T</a> <a id="45c16" class="tk">wordL</a>;</td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td> <span class="br">}</span> <a id="46c7" class="tk">words</a>;</td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> <span class="br">}</span>;</td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td></td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td> <span class="kw">struct</span> <a id="49c10" class="tk">LittleEndianIEEEDouble</a> <span class="br">{</span></td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td> <span class="kw">struct</span> <span class="br">{</span></td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td> <a id="51c7" class="tk">uint32_T</a> <a id="51c16" class="tk">wordL</a>;</td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td> <a id="52c7" class="tk">uint32_T</a> <a id="52c16" class="tk">wordH</a>;</td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td> <span class="br">}</span> <a id="53c7" class="tk">words</a>;</td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td> <span class="br">}</span>;</td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td></td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> <span class="kw">struct</span> <a id="56c10" class="tk">IEEESingle</a> <span class="br">{</span></td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td> <span class="kw">union</span> <span class="br">{</span></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td> <a id="58c7" class="tk">real32_T</a> <a id="58c16" class="tk">wordLreal</a>;</td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td> <a id="59c7" class="tk">uint32_T</a> <a id="59c16" class="tk">wordLuint</a>;</td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td> <span class="br">}</span> <a id="60c7" class="tk">wordL</a>;</td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td> <span class="br">}</span>;</td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td></td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td><span class="pp">#ifdef</span> <a id="63c8" class="tk">__cplusplus</a></td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td></td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td><span class="br">}</span> <span class="ct">/* extern "C" */</span></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rt_nonfinite_h_ */</span></td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtmodel.h:</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTW_HEADER_rtmodel_h_</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTW_HEADER_rtmodel_h_</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="ct">/*</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="ct"> * Includes the appropriate headers when we are using rtModel</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="ct"> */</span></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#include "Arduino_skal.h"</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td><span class="pp">#define</span> <a id="28c9" class="tk">MODEL_CLASSNAME</a> <a id="28c40" class="tk">Arduino_skalModelClass</a></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#define</span> <a id="29c9" class="tk">MODEL_STEPNAME</a> <a id="29c40" class="tk">step</a></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#define</span> <a id="30c9" class="tk">GRTINTERFACE</a> 0</td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="ct">/*</span></td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="ct"> * ROOT_IO_FORMAT: 0 (Individual arguments)</span></td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="ct"> * ROOT_IO_FORMAT: 1 (Structure reference)</span></td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td><span class="ct"> * ROOT_IO_FORMAT: 2 (Part of model data structure)</span></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td><span class="ct"> */</span></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#define</span> <a id="37c9" class="tk">ROOT_IO_FORMAT</a> 2</td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTW_HEADER_rtmodel_h_ */</span></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Block-to-Code Highlighting Message</title>
<link rel="stylesheet" type="text/css" href="rtwreport.css" />
</head>
<body onload="if (top.rtwDisplayMessage) top.rtwDisplayMessage();">
<h1>Block-to-Code Highlighting Message</h1>
<p id="rtwMsg_notTraceable" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />For '%s', you cannot trace code from the model because there is no traceability information.
</p>
<p id="rtwMsg_virtualBlock" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />'%s' is a virtual block. Code is not generated for virtual blocks.
</p>
<p id="rtwMsg_reducedBlock" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />'%s' is reduced during model compilation. Code is not generated for reduced blocks.
</p>
<p id="rtwMsg_reusableFunction" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />Code for '%s' is from reusable function and cannot be traced.
</p>
<p id="rtwMsg_blockOutsideSystem" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />'%s' is outside of source subsystem and cannot be traced.
</p>
<p id="rtwMsg_illegalCharacter" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />'%s' contains illegal character (single quote) that disables model-to-code navigation. Remove single quote from block name and rebuild model.
</p>
<p id="rtwMsg_maskedSubSystem" style="display: none">
<img src=hilite_warning.png vspace="3px" align="top" />'%s' is a masked subsystem and cannot be traced at the subsystem block level. Traceability information is available for individual blocks under the mask.
</p>
</body>
</html>

View File

@ -0,0 +1,257 @@
/* Copyright 2011-2019 The MathWorks, Inc. */
body,p,table {font-family: calibri, verdana, sans-serif;}
button,.buton {font-family: calibri, verdana, sans-serif;}
button,.button {font-size: small;}
.small_font {font-size: small;}
h1 { font-weight: normal; color: #000066; }
td { vertical-align: top }
th { background-color: #eeeeee; text-align: left; }
a:link { color: #0033cc; }
a:visited { color: #666666; }
input { font-family: sans-serif, verdana, calibri; }
table {
background-color: #ffffff;
width: 100%;
}
table.toc, table.button, table.panel {
border-style: none;
}
/* LineNumber */
.LN {
font-style: italic;
color: #888888;
}
/* Comment */
.CT {
font-style: italic;
color: #117755;
}
/* PreProcessor */
PP {
/* font-weight: bold; */
color: #992211;
}
/* Keyword */
.KW {
/* font-weight: bold; */
color: #0000FF;
}
/* Datatype */
.DT {
/* font-weight: bold; */
color: #112266
}
.highlighted {
background-color: yellow;
}
.highlightedCurrent {
background-color: rgba(150, 12, 116, 0.1);
}
input.search {
background-color: #ffffff;
}
input.failedSearch {
background-color: #F78181;
}
/* ensure that code2model links are comment green */
a.code2model:link {
color: #117755;
font-style: italic;
}
a.code2model:visited{
color: #117755;
font-style: italic;
}
.toc td, .button td, .panel td {
border-style: none;
padding: 4px;
}
h1 { font-weight: normal; color: #000066; }
td { vertical-align: top }
th { background-color: #eeeeee; text-align: left; }
a:link { color: #0033cc; }
a:visited { color: #666666; }
/******* table *******/
/* default table style */
table.AltRow {
border-collapse: collapse; border: none; border-spacing: 0pt;
border-top: solid #4F81BD 1.0pt; border-bottom: solid #4F81BD 1.0pt;
}
table.AltRow th, table.AltRow td { padding: 2pt 8pt 2pt 2pt }
/* default alternating row style */
table.AltRow tr.even td { background-color:#D3DFEE; border:none;}
table.AltRow tr.odd td { background-color:#FFFFFF; border:none;}
/* tr class="heading" */
table.AltRow tr.heading td, table.AltRow th {
background-color:#FFFFFF; font-weight:bold; border:none;
border-bottom: solid #4F81BD 1.0pt;
}
/* table class="FirstColumn" */
table.FirstColumn td:first-child { font-weight:bold }
/* table class="TotalRow" */
table.TotalRow tr:last-child { font-weight:bold }
table.TotalRow tr:last-child td { border-top: solid #4F81BD 1.0pt }
a.closeButton {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9) );
background:-moz-linear-gradient( center top, #f9f9f9 5%, #e9e9e9 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9');
background-color:#f9f9f9;
-webkit-border-top-left-radius:20px;
-moz-border-radius-topleft:20px;
border-top-left-radius:20px;
-webkit-border-top-right-radius:20px;
-moz-border-radius-topright:20px;
border-top-right-radius:20px;
-webkit-border-bottom-right-radius:20px;
-moz-border-radius-bottomright:20px;
border-bottom-right-radius:20px;
-webkit-border-bottom-left-radius:20px;
-moz-border-radius-bottomleft:20px;
border-bottom-left-radius:20px;
text-indent:0;
border:2px solid #dcdcdc;
display:inline-block;
color:#454143;
font-family:Arial;
font-size:15px;
font-weight:bold;
font-style:normal;
height:20px;
line-height:20px;
width:20px;
text-decoration:none;
text-align:center;
cursor: pointer;
}
a.closeButton:hover {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) );
background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9');
background-color:#e9e9e9;
}
a.closeButton:active {
position:relative;
top:1px;
}
.button {
-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
box-shadow:inset 0px 1px 0px 0px #ffffff;
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
background-color:#ededed;
-webkit-border-top-left-radius:5px;
-moz-border-radius-topleft:5px;
border-top-left-radius:5px;
-webkit-border-top-right-radius:5px;
-moz-border-radius-topright:5px;
border-top-right-radius:5px;
-webkit-border-bottom-right-radius:5px;
-moz-border-radius-bottomright:5px;
border-bottom-right-radius:5px;
-webkit-border-bottom-left-radius:5px;
-moz-border-radius-bottomleft:5px;
border-bottom-left-radius:5px;
text-indent:0px;
border:1px solid #dcdcdc;
display:inline-block;
color:black;
font-family:Arial;
font-size:12px;
font-weight:bold;
font-style:normal;
height:12px;
line-height:12px;
width:45px;
text-decoration:none;
text-align:center;
text-shadow:1px 1px 0px #ffffff;
}
.button:hover {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
background-color:#dfdfdf;
}.button:active {
position:relative;
top:1px;
}.button:disabled {
color:#777777;
}
ul.nav_list {
list-style-type:none;
display: block;
margin: 0;
padding: 0;
}
ul.nav_list li {
list-style-type:none;
display: inline;
margin: 0 18px 0 0;
padding: 0;
}
.nav_toolbar {
background-color: ivory;
margin-top: 0;
}
.inspect_body {
margin: 0;
margin-bottom: 0;
display: inline;
vertical-align:middle;
}
table.nav_table {
background-color: ivory;
border: none;
width: 100%;
display: inline;
vertical-align:middle;
}
table#rtwIdTracePanel > tr > td {
white-space: nowrap;
table-layout:fixed;
vertical-align:middle;
}
table.nav_table > button {
height: 20px;
}
select#fileSelector {
padding: 5px;
font-size: 16px;
line-height: 1;
border-radius: 0;
height: 34px;
}
.treeTable table{
table-layout: fixed;
}
.treeTable td:first-child > span{
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
width: 100%;
}

View File

@ -0,0 +1,92 @@
// Copyright 2011-2013 The MathWorks, Inc.
function local_onload() {
if (typeof top.rtwreport_document_frame !== "undefined") {
var docObj = window.document;
var alink = docObj.getElementById("linkToText_plain");
if (alink) {
alink.href = "matlab:coder.internal.editUrlTextFile('" + alink.href + "')";
}
alink = docObj.getElementById("linkToCS");
if (alink) {
alink.href = "matlab:coder.internal.viewCodeConfigsetFromReport('" + alink.href + "');";
}
}
}
var utils = (function() {
// Load via Microsoft.XMLDOM--for older versions of IE
function loadXML_MSXMLDOM(filename, callback, async) {
if (navigator.appName == "Microsoft Internet Explorer") {
// Internet Explorer 5/6
try {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = async;
xmlDoc.onreadystatechange = function() {
if (xmlDoc.readyState == 4) {
callback(xmlDoc);
}
}
xmlDoc.load(filename);
return true;
} catch(e) {
}
}
return false;
}
// Load via XMLHttpRequest
function loadXML_XHR(filename, callback, async) {
if (window.XMLHttpRequest) {
try {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
callback(this.responseXML);
}
}
xhr.open("GET", filename, async);
xhr.send("");
return true;
} catch(e) {
if (navigator.appName === "Netscape" && e.code === 1012) {
// file not found: ignore
return true;
}
}
}
return false;
}
return {
trimText: function(s) {
// In IE9, String.trim not present
if (s && s.trim) {
return s.trim();
}
else {
return s;
}
},
getText: function(elt) {
// In IE9, use 'text' property rather than 'textContent'
return elt.textContent ? elt.textContent : elt.text;
},
loadXML: function(filename, callback, options) {
var async = !!options && typeof(options["async"]) !== "undefined" ? options.async : true;
if (!loadXML_XHR(filename, callback, async)) {
if (!loadXML_MSXMLDOM(filename, callback, async)) {
return false;
}
}
return true;
}
};
})();
function code2model(sid) {
utils.loadXML("http://localhost:31415/matlab/feval/coder.internal.code2model?arguments=[\"" + sid + "\"]", function() {});
//window.location.href = "matlab:coder.internal.code2model('" + sid + "')";
}

View File

@ -0,0 +1,210 @@
// Copyright 2011-2017 The MathWorks, Inc.
function RTW_STRUCT(prop, value) {
this.prop = prop;
if (typeof(value) == 'undefined') {
this.value = "";
} else {
this.value = value;
}
}
// initialize the cache when code generation report is first loaded
function RTW_BOOK() {
this.length = 0;
this.rtw_pages = new Array();
this.getPage = function(file) {
return this.rtw_pages[file];
};
this.addPage = function(file) {
var page;
if (this.hasPage(file)) {
page = this.rtw_pages[file];
} else {
page = new RTW_PAGE(file);
this.rtw_pages[file] = page;
}
return page;
};
this.hasPage = function(file) {
return typeof(this.rtw_pages[file]) != 'undefined';
};
this.removePage = function(file) {
var tmp;
if (typeof(this.rtw_pages[file]) != 'undefined') {
tmp = this.rtw_pages[file];
delete this.rtw_pages[file];
this.length--;
}
return tmp;
};
}
if (!RTW_BOOK.instance) {
RTW_BOOK.instance = new RTW_BOOK();
}
function RTW_PAGE() {
this.length = 0;
this.items = new Array();
this.pagename = '';
if (arguments.length > 0 && typeof(arguments[1]) != 'undefined') {
this.pagename = arguments[1];
}
this.getItem = function(id) {
return this.items[id];
};
this.getItems = function() {
return this.items;
};
this.addItem = function(id, value) {
var tmp;
if (typeof(value) != 'undefined') {
if (typeof(this.items[id]) != 'undefined') {
this.length++;
} else {
tmp = this.items[id];
}
this.items[id] = value;
this.length++;
}
return tmp;
};
this.hasItem = function(id) {
return typeof(this.items[id]) != 'undefined';
};
this.removeItem = function(id) {
var tmp;
if (typeof(this.items[id]) != 'undefined') {
tmp = this.items[id];
delete this.items[id];
this.length--;
}
return tmp;
};
}
function rtwTableShrink(doc, obj, id, isSymbol) {
var hide, hide_text, show, show_text;
if (isSymbol) {
hide = "[-]";
hide_text = hide;
show = "[+]";
show_text = show;
} else {
hide = "[<u>hide</u>]";
hide_text = "[hide]";
show = "[<u>show</u>]";
show_text = "[show]";
}
hide = "<span class='shrink-button'>" + hide + "</span>";
show = "<span class='shrink-button'>" + show + "</span>";
if (doc.getElementsByName) {
var o = doc.getElementsByName(id);
for (var oid = 0; oid < o.length; ++oid) {
if (o[oid].style.display === "none") {
o[oid].style.display = "";
} else {
o[oid].style.display = "none";
}
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
}
// IE supports innerText while other browsers support textContent
if (obj.textContent) {
var objText = obj.textContent;
} else {
var objText = obj.innerText;
}
if (objText.toLowerCase() === show_text.toLowerCase()) {
obj.innerHTML = hide;
} else {
obj.innerHTML = show;
}
if (addToPage) {
addToPage(doc, obj, 'innerHTML');
}
}
function rtwTableExpand(doc, controlObj, id) {
if (doc.getElementById) {
var obj = doc.getElementById(id);
if (obj && obj.style.display === "none") {
rtwTableShrink(doc, controlObj, id, false);
}
}
}
function restoreState(docObj) {
var filename = docObj.location.href;
if (RTW_BOOK.instance && RTW_BOOK.instance.hasPage(filename)) {
var page = RTW_BOOK.instance.getPage(filename);
var items = page.getItems();
var elem;
if (docObj.getElementsByName) {
for (var i in items) {
var o = docObj.getElementsByName(i);
for (var oid = 0; oid < o.length; ++oid) {
elem = o[oid];
if (items[i].prop === 'display') {
if (elem.style.display === 'none') {
elem.style.display = '';
} else {
elem.style.display = 'none';
}
} else if (items[i].prop === 'innerHTML') {
elem.innerHTML = items[i].value;
}
}
}
}
}
}
function addToPage(docObj, obj, prop) {
var filename = docObj.location.href;
if (RTW_BOOK.instance) {
var page;
if (RTW_BOOK.instance.hasPage(filename)) {
page = RTW_BOOK.instance.getPage(filename);
} else {
page = RTW_BOOK.instance.addPage(filename);
}
if (page.hasItem(obj.id)) {
page.removeItem(obj.id);
} else {
var my_struct;
if (prop === "display") {
my_struct = new RTW_STRUCT(prop, obj.style.display);
} else {
my_struct = new RTW_STRUCT(prop, obj.innerHTML);
}
page.addItem(obj.id, my_struct);
}
}
}
function rtwSwitchView(doc, obj1, obj2) {
if (doc.getElementsByName) {
var o = doc.getElementsByName(obj1);
for (var oid = 0; oid < o.length; ++oid) {
o[oid].style.display = "none";
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
var o = doc.getElementsByName(obj2);
for (var oid = 0; oid < o.length; ++oid) {
o[oid].style.display = "";
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
}
}

View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * rtwtypes.h</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Academic License - for use in teaching, academic research, and meeting</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct"> * course requirements at degree granting institutions only. Not for</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * government, commercial, or other organizational use.</span></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td><span class="ct"> *</span></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * Code generation for model "Arduino_skal".</span></td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Model version : 1.1</span></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Simulink Coder version : 9.5 (R2021a) 14-Nov-2020</span></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * C++ source code generated on : Thu Apr 15 15:56:50 2021</span></td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td><span class="ct"> *</span></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * Target selection: grt.tlc</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Note: GRT includes extra infrastructure and instrumentation for prototyping</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="ct"> * Embedded hardware selection: Intel-&gt;x86-64 (Windows64)</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td><span class="ct"> * Code generation objective: Debugging</span></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="ct"> */</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#ifndef</span> <a id="21c9" class="tk">RTWTYPES_H</a></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td><span class="pp">#define</span> <a id="22c9" class="tk">RTWTYPES_H</a></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#include "tmwtypes.h"</span></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#ifndef</span> <a id="24c9" class="tk">POINTER_T</a></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#define</span> <a id="25c9" class="tk">POINTER_T</a></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="kw">typedef</span> <span class="kw">void</span> <a id="27c14" class="tk">*</a> <a id="27c16" class="tk">pointer_T</a>;</td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td></td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td><span class="ct">/* Logical type definitions */</span></td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#if</span> (<a id="32c6" class="tk">!</a><a id="32c7" class="tk">defined</a>(<a id="32c15" class="tk">__cplusplus</a>))</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#ifndef</span> false</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#define</span> false (0U)</td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td></td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td><span class="pp">#ifndef</span> true</td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td><span class="pp">#define</span> true (1U)</td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td><span class="pp">#endif</span> <span class="ct">/* RTWTYPES_H */</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td></td></tr>
</table>
</pre>
</body>
</html>

View File

@ -0,0 +1,559 @@
// Copyright 2007-2012 The MathWorks, Inc.
function createHighlightSpanStart(num)
{
return "<span class=\"highlighted\" name=\"highlight" + num + "\">";
}
var str2pos; // This is a map between a tag stripped string and the original string.
function getTagStrippedStringAndMap(aString)
{
var tagStrippedString = new String();
str2pos = new Array();
var inTag = false;
var inScript = false;
for (var strPos = 0; strPos < aString.length; strPos++) {
if (inTag && aString.charAt(strPos) == '>') {
inTag = false;
if (inScript && (strPos > 8) && (aString.slice(strPos, strPos - 8) == '/script>')) {
inScript = false;
}
continue;
} else if (!inTag && aString.charAt(strPos) == '<') {
inTag = true;
if (!inScript && aString.slice(strPos, strPos + 7) == '<script') {
inScript = true;
strPos += 7;
}
continue;
}
if (inTag == false && inScript == false) {
tagStrippedString += aString.charAt(strPos);
str2pos.push(strPos);
}
}
return tagStrippedString;
}
function escapeSpecialChars(string)
{
// let the browser handle the escaping rather than doing a String.replace
// call
var div = document.createElement("div");
var text = document.createTextNode(string);
div.appendChild(text);
var escapedString = div.innerHTML;
delete div;
return escapedString;
}
// insert highlight tags into the body. Split it up into multiple sections if necessary
// (i.e. if there is a tag in the middle).
function insertHighlighting(bodyText, previ, i, length, highlightStartTag, highlightEndTag)
{
var newText = "";
newText = bodyText.slice(previ, str2pos[i]);
// insert start
newText += highlightStartTag;
var str2posprev = str2pos[i];
// deal with intermediate tags
for(var cnt = i; cnt < i+length; cnt++)
{
if (str2pos[cnt] > str2posprev+1) // we have jumped some text, so there must be a tag
{
// insert end tag
newText += highlightEndTag;
// insert intermediate body text tags
newText += bodyText.slice(str2posprev+1, str2pos[cnt]);
// insert start tag
newText += highlightStartTag;
}
newText += bodyText.charAt(str2pos[cnt]);
str2posprev=str2pos[cnt];
}
// insert end
newText += highlightEndTag;
return newText;
}
// check to see if the sequence at position 'i' in taglessString is actually in
// the middle of an escape sequence. We assume escape sequences follow the pattern
// &<sequenceText>;. We check for &nbsp;, &lt;, &gt; and &amp;
function isInEscapedSequence(i, taglessString, searchTerm)
{
var escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
var maxEscapeSeqLength = 6;
var startPos = 0;
var endPos = 0;
// exit if the search term has an escape sequence inside it
if (escapeSeq.test(searchTerm)) {
return false;
}
// reset the escape sequence
escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
// go back in the string until we find an ampersand or we hit maxEscapeSeqLength characters
tempI = i;
var bFound = false;
while (tempI >= 0 && tempI > (i-maxEscapeSeqLength)) {
if (taglessString.charAt(tempI) == "&") {
startPos = tempI;
bFound = true;
break;
}
tempI = tempI-1;
// if we hit a ';' in any position other than the first while searching
// for an ampersand, then we cannot be inside an escape sequence
if (tempI >= 0 && taglessString.charAt(tempI) == ";") {
return false;
}
}
if (!bFound) {
return false;
}
// reset the escape sequence
escapeSeq = /&nbsp;|&lt;|&gt;|&amp;/gi;
var subString = taglessString.substring(startPos, startPos + maxEscapeSeqLength);
return escapeSeq.test(subString);
}
// Adds highlighting to bodyText around searchTerm. Case sensitivity is optional.
// hitCount is used to a) count the number of search matches and b) Generate unique
// name strings for each highlighting SPAN element.
function addHighlight(bodyText, searchTerm, caseSensitive, hitCount)
{
var highlightStartTag = "";
var highlightEndTag = "</span>";
var newText = "";
var i = 0;
var previ = 0;
var bodyTextUC = bodyText.toUpperCase();
if (caseSensitive) {
var taglessString = getTagStrippedStringAndMap(bodyText);
} else {
var taglessString = getTagStrippedStringAndMap(bodyTextUC);
}
// escape the search term in case the user input '<' or '>' etc
searchTerm = escapeSpecialChars(searchTerm);
if (!caseSensitive) {
var searchTermUC = searchTerm.toUpperCase();
}
// search for subsequent matches
while (true) {
if (caseSensitive) {
i = taglessString.indexOf(searchTerm, i);
} else {
i = taglessString.indexOf(searchTermUC, i);
}
if (i < 0) break;
// we have a match!
// make sure that the match is not inside an escaped sequence of text
// such as &nbsp;
if (isInEscapedSequence(i, taglessString, searchTerm)) {
i=i+1;
continue;
}
// insert highlight tags that cross tag boundaries
highlightStartTag = createHighlightSpanStart(hitCount);
hitCount = hitCount+1;
newText += insertHighlighting(bodyText, previ, i, searchTerm.length, highlightStartTag, highlightEndTag);
previ = str2pos[i+searchTerm.length-1]+1;
i = i + searchTerm.length;
}
newText += bodyText.slice(previ, bodyText.length);
return [newText, hitCount];
}
function removeHighlight(bodyText)
{
// We use regular expressions here rather than a straight text search because
// some browsers actually insert double quotes and capitalize. Also, each highlight
// name is uniquely numbered in order of discovery
var highlightStartTag = /<span class=[\"]*highlighted(Current)*[\"]* name=[\"]*highlight[0-9]*[\"]*>/i;
var highlightEndTag = /<\/span>/i;
var newText = "";
var startPatternFirstIndex = -1;
var startPatternLastIndex = -1;
var endPatternFirstIndex = -1;
var endPatternLastIndex = -1;
while (highlightStartTag.test(bodyText) === true) {
startPatternFirstIndex = bodyText.search(highlightStartTag);
newText += bodyText.substring(0, startPatternFirstIndex);
startPatternLastIndex = bodyText.indexOf('>', startPatternFirstIndex+1);
bodyText = bodyText.substr(startPatternLastIndex+1);
endPatternFirstIndex = bodyText.search(highlightEndTag);
newText += bodyText.substring(0, endPatternFirstIndex);
endPatternLastIndex = endPatternFirstIndex+7;
bodyText = bodyText.substr(endPatternLastIndex);
}
if (startPatternFirstIndex < 0) {
return bodyText;
} else {
return newText+bodyText;
}
}
function removeHighlightInAllDocs()
{
if (top) {
for (var i = 0; i < top.frames.length; i++) {
if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
var currentDoc = top.frames[i].document;
if (typeof currentDoc.body !== "undefined" && currentDoc.body !== null)
currentDoc.body.innerHTML=removeHighlight(currentDoc.body.innerHTML);
}
}
}
}
function findInDoc(searchStringFromSubmitBox, doc, caseSensitive, hitCount)
{
var searchBody = doc.body.innerHTML;
// if the document is empty, or the documents is invalid, return
if (!doc.body || typeof(searchBody) === "undefined") {
return [false, hitCount];
}
// inject highlighting code into html
var result = addHighlight(searchBody, searchStringFromSubmitBox, caseSensitive, hitCount);
doc.body.innerHTML = result[0];
return [true, result[1]];
}
var currentlyHighlightedHit;
function getSpansByName(name)
{
var allSpans = [];
for (i = 0; i < top.frames.length; i++) {
if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
var currentDoc = top.frames[i].document;
var highlightedSpans = currentDoc.getElementsByName(name);
if (highlightedSpans && highlightedSpans.length && highlightedSpans.length > 0) {
for (j = 0; j < highlightedSpans.length; j++) {
allSpans = allSpans.concat(highlightedSpans[j]);
}
}
}
}
return allSpans;
}
function isVisibleElement(elementID)
{
if (elementID)
return elementID.offsetWidth > 0 || elementID.offsetHeight > 0;
else
return false;
}
function areAllSpansVisible(spans)
{
isVisible = true;
for (i = 0; i < highlightedSpans.length; i++) {
isVisible = isVisible && isVisibleElement(highlightedSpans[i]);
}
return isVisible;
}
function getNextVisible()
{
var isVisible = false;
var foundVisible = false;
while (!isVisible) {
currentlyHighlightedHit = currentlyHighlightedHit + 1;
highlightedSpans = setCurrentSearchMatchIfVisible(currentlyHighlightedHit);
if (highlightedSpans && highlightedSpans.length > 0) {
isVisible = true;
} else if (currentlyHighlightedHit < totalHits) {
continue;
} else {
// we have reached the end
isVisible = false;
currentlyHighlightedHit = 0;
highlightedSpans = null;
break;
}
}
return highlightedSpans;
}
function clearCurrentSearchMatch()
{
// clear prior highlighting
spanName = "highlight" + currentlyHighlightedHit;
highlightedSpans = getSpansByName(spanName);
if (highlightedSpans && highlightedSpans.length) {
for (i = 0; i < highlightedSpans.length; i++) {
if (highlightedSpans[i]) {
highlightedSpans[i].setAttribute("class", "highlighted");
}
}
}
}
function setCurrentSearchMatchIfVisible(hitNum){
currentlyHighlightedHit = hitNum;
var spanName = "highlight" + currentlyHighlightedHit;
var highlightedSpans = getSpansByName(spanName);
if (highlightedSpans && highlightedSpans.length) {
for (i = 0; i < highlightedSpans.length; i++) {
if (!isVisibleElement(highlightedSpans[i])) {
highlightedSpans = null;
break;
}
}
}
return highlightedSpans;
}
// this takes in an option integer 'hitNum'. If not specified, it scrolls
// to the next hit
function scrollToNextHit(hitNum)
{
var i = 0;
var found = false;
var spanName = "";
var highlightedSpans;
var searchBox = findElement('searchTxtBox');
clearCurrentSearchMatch();
if (hitNum) {
// if a number is provided, use it
highlightedSpans = setCurrentSearchMatchIfVisible(hitNum);
} else {
// start working on next element to highlight
highlightedSpans = getNextVisible();
}
// we found the current
if (highlightedSpans && highlightedSpans.length > 0) {
highlightedSpans[0].scrollIntoView();
for (i = 0; i < highlightedSpans.length; i++) {
highlightedSpans[i].setAttribute("class", "highlightedCurrent");
}
searchBox.setAttribute("class", "search");
// if highlightedSpans is invalid, then we did not find any valid, visible subsequent matches
// wrap to beginning or indicate no matches
} else {
// Element not found. Scroll to first visible element
currentlyHighlightedHit = 0;
var highlightedSpans = getNextVisible(currentlyHighlightedHit);
if (highlightedSpans && highlightedSpans.length > 0) {
highlightedSpans[0].scrollIntoView();
for (i = 0; i < highlightedSpans.length; i++) {
highlightedSpans[i].setAttribute("class", "highlightedCurrent");
}
searchBox.setAttribute("class", "search");
} else {
// there aren't any matches
searchBox.setAttribute("class", "failedSearch");
}
}
}
// find search box
function findElement(element)
{
var i = 0;
for (i = 0; i < top.frames.length; i++) {
if (top.frames[i].name === "rtwreport_contents_frame" || top.frames[i].name === "rtwreport_document_frame") {
var elem = top.frames[i].document.getElementById(element);
if (elem) {
return elem;
}
}
}
}
// Restore search term once form is submitted
function initSearchBox(strInitValue)
{
var txtBox = findElement('searchTxtBox');
if (txtBox) {
txtBox.value = strInitValue;
}
}
// Sets focus back on to the text box
function setFocusOnTxtBox()
{
var txtBox = findElement('searchTxtBox');
if (txtBox) {
txtBox.focus();
txtBox.select();
}
return txtBox;
}
var previousSearchString;
var totalHits;
function findInAllDocs(searchStringFromSubmitBox, caseSensitive)
{
if (previousSearchString != searchStringFromSubmitBox) {
// If the search string has changed or a new page has been loaded, do a new search
var hitCount = 1;
var i = 0;
var success = false;
previousSearchString = searchStringFromSubmitBox;
// start by removing traceinfo highlighting
rtwRemoveHighlighting();
// remove all previous search highlighting
removeHighlightInAllDocs();
// 1. Iterate through all frames in window and search
for (i = 0; i < top.frames.length; i++) {
var currentDoc = top.frames[i].document;
// if we have no search term, restore
if (searchStringFromSubmitBox !== "") {
// search and highlight in all frames
var srchResult = findInDoc(searchStringFromSubmitBox, currentDoc, caseSensitive, hitCount);
hitCount = srchResult[1];
totalHits = srchResult[1];
}
}
// 2. Restore search term once form is submitted and text highlighted
if (searchStringFromSubmitBox != "") {
strInitValue = searchStringFromSubmitBox;
}
initSearchBox(strInitValue);
// 3. Scroll to the first hit encountered
scrollToNextHit(1);
// 4. Set focus back to text box and select text
var txtBox = setFocusOnTxtBox();
if (txtBox) {
txtBox.select();
}
} else {
// If the search string is the same, then scroll to the next
// hit if the hit is valid. Else wrap back.
scrollToNextHit();
}
return false;
}
// if the search box is empty, clear highlighting
function clearIfEmpty()
{
txtBox = findElement('searchTxtBox');
if (txtBox.value == "") {
txtBox.setAttribute("class", "search");
removeHighlightInAllDocs();
previousSearchString="";
setFocusOnTxtBox();
}
}
function keyPressSwitchyard(keyPressEvent)
{
var kc;
keyPressEvent = (keyPressEvent == null ? window.keyPressEvent : keyPressEvent);
// typically IE does not support this
if (!keyPressEvent || (typeof keyPressEvent == "undefined")) {
return;
}
if (keyPressEvent.keyCode) {
kc=keyPressEvent.keyCode;
} else if (keyPressEvent.which) {
kc=keyPressEvent.which;
} else {
return;
}
// we do not care about the browser find appearing. If it does appear, then
// we are running an external browser and that is okay.
// handle Ctrl-Key combinations
if (keyPressEvent.ctrlKey) {
switch (kc) {
case 70: // Ctrl-F
{
setFocusOnTxtBox();
break;
}
default: break;
}
}
}
function installDocumentKeyPressHandler()
{
var i = 0;
for (i = 0; i < top.frames.length; i++) {
var currentDoc = top.frames[i].document;
currentDoc.onkeydown = keyPressSwitchyard;
}
top.document.onkeydown = keyPressSwitchyard;
// This also clears search related highlighting
removeHighlightInAllDocs();
currentlyHighlightedHit = 0;
if (previousSearchString) initSearchBox(previousSearchString);
previousSearchString = "";
}
// This function is a onresize callback for the rtwreport_contents_frame
// It is used to dynamically resize the searchbox based on the size of the frame.
function setWidthDynamic(frameID, elementID, extraSpace, minSize)
{
var frame = document.getElementById(frameID);
// sanity check input args
if (frame && extraSpace > 0 && minSize > 0) {
var frameWidth = frame.scrollWidth;
var newSize = extraSpace + minSize + 40; // 40 is the extra whitespace
var element = findElement(elementID);
if (element)
{
if (frameWidth < newSize) {
element.style.width = minSize;
} else {
element.style.width = frameWidth - extraSpace - 40;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

View File

@ -0,0 +1,2 @@
Arduino_skal.cpp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,146 @@
/*
* rtGetInf.cpp
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finite, Inf
*/
#include "rtGetInf.h"
#define NumBitsPerChar 8U
extern "C" {
/*
* Initialize rtInf needed by the generated code.
* Inf is initialized as non-signaling. Assumes IEEE.
*/
real_T rtGetInf(void)
{
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
real_T inf = 0.0;
if (bitsPerReal == 32U) {
inf = rtGetInfF();
} else {
uint16_T one = 1U;
enum {
LittleEndian,
BigEndian
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
switch (machByteOrder) {
case LittleEndian:
{
union {
LittleEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0x7FF00000U;
tmpVal.bitVal.words.wordL = 0x00000000U;
inf = tmpVal.fltVal;
break;
}
case BigEndian:
{
union {
BigEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0x7FF00000U;
tmpVal.bitVal.words.wordL = 0x00000000U;
inf = tmpVal.fltVal;
break;
}
}
}
return inf;
}
/*
* Initialize rtInfF needed by the generated code.
* Inf is initialized as non-signaling. Assumes IEEE.
*/
real32_T rtGetInfF(void)
{
IEEESingle infF;
infF.wordL.wordLuint = 0x7F800000U;
return infF.wordL.wordLreal;
}
/*
* Initialize rtMinusInf needed by the generated code.
* Inf is initialized as non-signaling. Assumes IEEE.
*/
real_T rtGetMinusInf(void)
{
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
real_T minf = 0.0;
if (bitsPerReal == 32U) {
minf = rtGetMinusInfF();
} else {
uint16_T one = 1U;
enum {
LittleEndian,
BigEndian
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
switch (machByteOrder) {
case LittleEndian:
{
union {
LittleEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0xFFF00000U;
tmpVal.bitVal.words.wordL = 0x00000000U;
minf = tmpVal.fltVal;
break;
}
case BigEndian:
{
union {
BigEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0xFFF00000U;
tmpVal.bitVal.words.wordL = 0x00000000U;
minf = tmpVal.fltVal;
break;
}
}
}
return minf;
}
/*
* Initialize rtMinusInfF needed by the generated code.
* Inf is initialized as non-signaling. Assumes IEEE.
*/
real32_T rtGetMinusInfF(void)
{
IEEESingle minfF;
minfF.wordL.wordLuint = 0xFF800000U;
return minfF.wordL.wordLreal;
}
}

View File

@ -0,0 +1,41 @@
/*
* rtGetInf.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtGetInf_h_
#define RTW_HEADER_rtGetInf_h_
#include <stddef.h>
#include "rtwtypes.h"
#include "rt_nonfinite.h"
#ifdef __cplusplus
extern "C" {
#endif
extern real_T rtGetInf(void);
extern real32_T rtGetInfF(void);
extern real_T rtGetMinusInf(void);
extern real32_T rtGetMinusInfF(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* RTW_HEADER_rtGetInf_h_ */

View File

@ -0,0 +1,106 @@
/*
* rtGetNaN.cpp
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finite, NaN
*/
#include "rtGetNaN.h"
#define NumBitsPerChar 8U
extern "C" {
/*
* Initialize rtNaN needed by the generated code.
* NaN is initialized as non-signaling. Assumes IEEE.
*/
real_T rtGetNaN(void)
{
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
real_T nan = 0.0;
if (bitsPerReal == 32U) {
nan = rtGetNaNF();
} else {
uint16_T one = 1U;
enum {
LittleEndian,
BigEndian
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
switch (machByteOrder) {
case LittleEndian:
{
union {
LittleEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0xFFF80000U;
tmpVal.bitVal.words.wordL = 0x00000000U;
nan = tmpVal.fltVal;
break;
}
case BigEndian:
{
union {
BigEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.bitVal.words.wordH = 0x7FFFFFFFU;
tmpVal.bitVal.words.wordL = 0xFFFFFFFFU;
nan = tmpVal.fltVal;
break;
}
}
}
return nan;
}
/*
* Initialize rtNaNF needed by the generated code.
* NaN is initialized as non-signaling. Assumes IEEE.
*/
real32_T rtGetNaNF(void)
{
IEEESingle nanF = { { 0.0F } };
uint16_T one = 1U;
enum {
LittleEndian,
BigEndian
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
switch (machByteOrder) {
case LittleEndian:
{
nanF.wordL.wordLuint = 0xFFC00000U;
break;
}
case BigEndian:
{
nanF.wordL.wordLuint = 0x7FFFFFFFU;
break;
}
}
return nanF.wordL.wordLreal;
}
}

View File

@ -0,0 +1,39 @@
/*
* rtGetNaN.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtGetNaN_h_
#define RTW_HEADER_rtGetNaN_h_
#include <stddef.h>
#include "rtwtypes.h"
#include "rt_nonfinite.h"
#ifdef __cplusplus
extern "C" {
#endif
extern real_T rtGetNaN(void);
extern real32_T rtGetNaNF(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* RTW_HEADER_rtGetNaN_h_ */

View File

@ -0,0 +1,99 @@
/*
* rt_nonfinite.cpp
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finites,
* (Inf, NaN and -Inf).
*/
#include "rt_nonfinite.h"
#include "rtGetNaN.h"
#include "rtGetInf.h"
#define NumBitsPerChar 8U
extern "C" {
real_T rtInf;
real_T rtMinusInf;
real_T rtNaN;
real32_T rtInfF;
real32_T rtMinusInfF;
real32_T rtNaNF;
}
extern "C"
{
/*
* Initialize the rtInf, rtMinusInf, and rtNaN needed by the
* generated code. NaN is initialized as non-signaling. Assumes IEEE.
*/
void rt_InitInfAndNaN(size_t realSize)
{
(void) (realSize);
rtNaN = rtGetNaN();
rtNaNF = rtGetNaNF();
rtInf = rtGetInf();
rtInfF = rtGetInfF();
rtMinusInf = rtGetMinusInf();
rtMinusInfF = rtGetMinusInfF();
}
/* Test if value is infinite */
boolean_T rtIsInf(real_T value)
{
return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
}
/* Test if single-precision value is infinite */
boolean_T rtIsInfF(real32_T value)
{
return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
}
/* Test if value is not a number */
boolean_T rtIsNaN(real_T value)
{
boolean_T result = (boolean_T) 0;
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
if (bitsPerReal == 32U) {
result = rtIsNaNF((real32_T)value);
} else {
union {
LittleEndianIEEEDouble bitVal;
real_T fltVal;
} tmpVal;
tmpVal.fltVal = value;
result = (boolean_T)((tmpVal.bitVal.words.wordH & 0x7FF00000) ==
0x7FF00000 &&
( (tmpVal.bitVal.words.wordH & 0x000FFFFF) != 0 ||
(tmpVal.bitVal.words.wordL != 0) ));
}
return result;
}
/* Test if single-precision value is not a number */
boolean_T rtIsNaNF(real32_T value)
{
IEEESingle tmp;
tmp.wordL.wordLreal = value;
return (boolean_T)( (tmp.wordL.wordLuint & 0x7F800000) == 0x7F800000 &&
(tmp.wordL.wordLuint & 0x007FFFFF) != 0 );
}
}

View File

@ -0,0 +1,67 @@
/*
* rt_nonfinite.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_rt_nonfinite_h_
#define RTW_HEADER_rt_nonfinite_h_
#include <stddef.h>
#include "rtwtypes.h"
#ifdef __cplusplus
extern "C" {
#endif
extern real_T rtInf;
extern real_T rtMinusInf;
extern real_T rtNaN;
extern real32_T rtInfF;
extern real32_T rtMinusInfF;
extern real32_T rtNaNF;
extern void rt_InitInfAndNaN(size_t realSize);
extern boolean_T rtIsInf(real_T value);
extern boolean_T rtIsInfF(real32_T value);
extern boolean_T rtIsNaN(real_T value);
extern boolean_T rtIsNaNF(real32_T value);
struct BigEndianIEEEDouble {
struct {
uint32_T wordH;
uint32_T wordL;
} words;
};
struct LittleEndianIEEEDouble {
struct {
uint32_T wordL;
uint32_T wordH;
} words;
};
struct IEEESingle {
union {
real32_T wordLreal;
uint32_T wordLuint;
} wordL;
};
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* RTW_HEADER_rt_nonfinite_h_ */

38
simulink_export/rtmodel.h Normal file
View File

@ -0,0 +1,38 @@
/*
* rtmodel.h:
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtmodel_h_
#define RTW_HEADER_rtmodel_h_
/*
* Includes the appropriate headers when we are using rtModel
*/
#include "Arduino_skal.h"
#define MODEL_CLASSNAME Arduino_skalModelClass
#define MODEL_STEPNAME step
#define GRTINTERFACE 0
/*
* ROOT_IO_FORMAT: 0 (Individual arguments)
* ROOT_IO_FORMAT: 1 (Structure reference)
* ROOT_IO_FORMAT: 2 (Part of model data structure)
*/
#define ROOT_IO_FORMAT 2
#endif /* RTW_HEADER_rtmodel_h_ */

View File

@ -0,0 +1,4 @@
Simulink Coder project for Arduino_skal using . MATLAB root = C:\Program Files\MATLAB\R2021a. SimStruct date: 15-Nov-2020 02:10:14
This file is generated by Simulink Coder for use by the make utility
to determine when to rebuild objects when the name of the current Simulink Coder project changes.
The rtwinfomat located at: ..\slprj\grt\Arduino_skal\tmwinternal\binfo.mat

View File

@ -0,0 +1,41 @@
/*
* rtwtypes.h
*
* Academic License - for use in teaching, academic research, and meeting
* course requirements at degree granting institutions only. Not for
* government, commercial, or other organizational use.
*
* Code generation for model "Arduino_skal".
*
* Model version : 1.1
* Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
* C++ source code generated on : Thu Apr 15 15:56:50 2021
*
* Target selection: grt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objective: Debugging
* Validation result: Not run
*/
#ifndef RTWTYPES_H
#define RTWTYPES_H
#include "tmwtypes.h"
#ifndef POINTER_T
#define POINTER_T
typedef void * pointer_T;
#endif
/* Logical type definitions */
#if (!defined(__cplusplus))
#ifndef false
#define false (0U)
#endif
#ifndef true
#define true (1U)
#endif
#endif
#endif /* RTWTYPES_H */

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
<slcache.FileAttributes type="slcache.FileAttributes" uuid="75c0c431-16c9-4708-975c-ec4fc6596d76">
<checksum>NHYGvrKIL3x9N9FasK5drmO/HHGvJHDPAa52dRgJB+/3PvNOTpeC5goiozX0WwLenYSrLEqjVul+DXF2dJorsA==</checksum>
</slcache.FileAttributes>
</MF0>

View File

@ -0,0 +1,292 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: Arduino_skal.cpp
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#include "Arduino_skal.h"
// Private macros used by the generated code to access rtModel
#ifndef rtmIsMajorTimeStep
#define rtmIsMajorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MAJOR_TIME_STEP)
#endif
#ifndef rtmIsMinorTimeStep
#define rtmIsMinorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MINOR_TIME_STEP)
#endif
#ifndef rtmSetTPtr
#define rtmSetTPtr(rtm, val) ((rtm)->Timing.t = (val))
#endif
// private model entry point functions
extern void Arduino_skal_derivatives();
//
// This function updates continuous states using the ODE3 fixed-step
// solver algorithm
//
void Arduino_skalModelClass::rt_ertODEUpdateContinuousStates(RTWSolverInfo *si )
{
// Solver Matrices
static const real_T rt_ODE3_A[3] = {
1.0/2.0, 3.0/4.0, 1.0
};
static const real_T rt_ODE3_B[3][3] = {
{ 1.0/2.0, 0.0, 0.0 },
{ 0.0, 3.0/4.0, 0.0 },
{ 2.0/9.0, 1.0/3.0, 4.0/9.0 }
};
time_T t = rtsiGetT(si);
time_T tnew = rtsiGetSolverStopTime(si);
time_T h = rtsiGetStepSize(si);
real_T *x = rtsiGetContStates(si);
ODE3_IntgData *id = static_cast<ODE3_IntgData *>(rtsiGetSolverData(si));
real_T *y = id->y;
real_T *f0 = id->f[0];
real_T *f1 = id->f[1];
real_T *f2 = id->f[2];
real_T hB[3];
int_T i;
int_T nXc = 4;
rtsiSetSimTimeStep(si,MINOR_TIME_STEP);
// Save the state values at time t in y, we'll use x as ynew.
(void) std::memcpy(y, x,
static_cast<uint_T>(nXc)*sizeof(real_T));
// Assumes that rtsiSetT and ModelOutputs are up-to-date
// f0 = f(t,y)
rtsiSetdX(si, f0);
Arduino_skal_derivatives();
// f(:,2) = feval(odefile, t + hA(1), y + f*hB(:,1), args(:)(*));
hB[0] = h * rt_ODE3_B[0][0];
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0]);
}
rtsiSetT(si, t + h*rt_ODE3_A[0]);
rtsiSetdX(si, f1);
this->step();
Arduino_skal_derivatives();
// f(:,3) = feval(odefile, t + hA(2), y + f*hB(:,2), args(:)(*));
for (i = 0; i <= 1; i++) {
hB[i] = h * rt_ODE3_B[1][i];
}
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1]);
}
rtsiSetT(si, t + h*rt_ODE3_A[1]);
rtsiSetdX(si, f2);
this->step();
Arduino_skal_derivatives();
// tnew = t + hA(3);
// ynew = y + f*hB(:,3);
for (i = 0; i <= 2; i++) {
hB[i] = h * rt_ODE3_B[2][i];
}
for (i = 0; i < nXc; i++) {
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1] + f2[i]*hB[2]);
}
rtsiSetT(si, tnew);
rtsiSetSimTimeStep(si,MAJOR_TIME_STEP);
}
// Model step function
void Arduino_skalModelClass::step()
{
real_T tmp[2];
real_T rtb_Saturation;
int32_T i;
if (rtmIsMajorTimeStep((&rtM))) {
// set solver stop time
rtsiSetSolverStopTime(&(&rtM)->solverInfo,(((&rtM)->Timing.clockTick0+1)*
(&rtM)->Timing.stepSize0));
} // end MajorTimeStep
// Update absolute time of base rate at minor time step
if (rtmIsMinorTimeStep((&rtM))) {
(&rtM)->Timing.t[0] = rtsiGetT(&(&rtM)->solverInfo);
}
// Gain: '<Root>/Gain' incorporates:
// Integrator: '<Root>/Integrator1'
rtb_Saturation = ((-31.622776601683942 * rtX.Integrator1_CSTATE[0] +
-21.286439360075747 * rtX.Integrator1_CSTATE[1]) +
80.789376267003959 * rtX.Integrator1_CSTATE[2]) +
13.42463576551093 * rtX.Integrator1_CSTATE[3];
// Saturate: '<Root>/Saturation' incorporates:
// Gain: '<Root>/Gain'
// Step: '<Root>/Step'
// Sum: '<Root>/Sum5'
if (0.0 - rtb_Saturation > 11.5) {
rtb_Saturation = 11.5;
} else if (0.0 - rtb_Saturation < -11.5) {
rtb_Saturation = -11.5;
} else {
rtb_Saturation = 0.0 - rtb_Saturation;
}
// End of Saturate: '<Root>/Saturation'
// Sum: '<Root>/Sum2' incorporates:
// Constant: '<Root>/vartejag'
// Gain: '<Root>/Gain6'
// Integrator: '<Root>/Integrator1'
for (i = 0; i < 2; i++) {
tmp[i] = rtConstP.vartejag_Value[i] - (((rtConstP.Gain6_Gain[i + 2] *
rtX.Integrator1_CSTATE[1] + rtConstP.Gain6_Gain[i] *
rtX.Integrator1_CSTATE[0]) + rtConstP.Gain6_Gain[i + 4] *
rtX.Integrator1_CSTATE[2]) + rtConstP.Gain6_Gain[i + 6] *
rtX.Integrator1_CSTATE[3]);
}
// End of Sum: '<Root>/Sum2'
for (i = 0; i < 4; i++) {
// Sum: '<Root>/Sum4' incorporates:
// Gain: '<Root>/Gain2'
// Gain: '<Root>/Gain3'
// Gain: '<Root>/Gain4'
// Integrator: '<Root>/Integrator1'
// Sum: '<Root>/Sum3'
rtDW.Sum4[i] = ((rtConstP.Gain2_Gain[i + 4] * tmp[1] + rtConstP.Gain2_Gain[i]
* tmp[0]) + rtConstP.Gain3_Gain[i] * rtb_Saturation) +
(rtConstP.Gain4_Gain[i + 12] * rtX.Integrator1_CSTATE[3] +
(rtConstP.Gain4_Gain[i + 8] * rtX.Integrator1_CSTATE[2] +
(rtConstP.Gain4_Gain[i + 4] * rtX.Integrator1_CSTATE[1] +
rtConstP.Gain4_Gain[i] * rtX.Integrator1_CSTATE[0])));
}
if (rtmIsMajorTimeStep((&rtM))) {
rt_ertODEUpdateContinuousStates(&(&rtM)->solverInfo);
// Update absolute time for base rate
// The "clockTick0" counts the number of times the code of this task has
// been executed. The absolute time is the multiplication of "clockTick0"
// and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
// overflow during the application lifespan selected.
++(&rtM)->Timing.clockTick0;
(&rtM)->Timing.t[0] = rtsiGetSolverStopTime(&(&rtM)->solverInfo);
{
// Update absolute timer for sample time: [0.2s, 0.0s]
// The "clockTick1" counts the number of times the code of this task has
// been executed. The resolution of this integer timer is 0.2, which is the step size
// of the task. Size of "clockTick1" ensures timer will not overflow during the
// application lifespan selected.
(&rtM)->Timing.clockTick1++;
}
} // end MajorTimeStep
}
// Derivatives for root system: '<Root>'
void Arduino_skalModelClass::Arduino_skal_derivatives()
{
Arduino_skalModelClass::XDot *_rtXdot;
_rtXdot = ((XDot *) (&rtM)->derivs);
// Derivatives for Integrator: '<Root>/Integrator1'
_rtXdot->Integrator1_CSTATE[0] = rtDW.Sum4[0];
_rtXdot->Integrator1_CSTATE[1] = rtDW.Sum4[1];
_rtXdot->Integrator1_CSTATE[2] = rtDW.Sum4[2];
_rtXdot->Integrator1_CSTATE[3] = rtDW.Sum4[3];
}
// Model initialize function
void Arduino_skalModelClass::initialize()
{
// Registration code
{
// Setup solver object
rtsiSetSimTimeStepPtr(&(&rtM)->solverInfo, &(&rtM)->Timing.simTimeStep);
rtsiSetTPtr(&(&rtM)->solverInfo, &rtmGetTPtr((&rtM)));
rtsiSetStepSizePtr(&(&rtM)->solverInfo, &(&rtM)->Timing.stepSize0);
rtsiSetdXPtr(&(&rtM)->solverInfo, &(&rtM)->derivs);
rtsiSetContStatesPtr(&(&rtM)->solverInfo, (real_T **) &(&rtM)->contStates);
rtsiSetNumContStatesPtr(&(&rtM)->solverInfo, &(&rtM)->Sizes.numContStates);
rtsiSetNumPeriodicContStatesPtr(&(&rtM)->solverInfo, &(&rtM)
->Sizes.numPeriodicContStates);
rtsiSetPeriodicContStateIndicesPtr(&(&rtM)->solverInfo, &(&rtM)
->periodicContStateIndices);
rtsiSetPeriodicContStateRangesPtr(&(&rtM)->solverInfo, &(&rtM)
->periodicContStateRanges);
rtsiSetErrorStatusPtr(&(&rtM)->solverInfo, (&rtmGetErrorStatus((&rtM))));
rtsiSetRTModelPtr(&(&rtM)->solverInfo, (&rtM));
}
rtsiSetSimTimeStep(&(&rtM)->solverInfo, MAJOR_TIME_STEP);
(&rtM)->intgData.y = (&rtM)->odeY;
(&rtM)->intgData.f[0] = (&rtM)->odeF[0];
(&rtM)->intgData.f[1] = (&rtM)->odeF[1];
(&rtM)->intgData.f[2] = (&rtM)->odeF[2];
(&rtM)->contStates = ((X *) &rtX);
rtsiSetSolverData(&(&rtM)->solverInfo, static_cast<void *>(&(&rtM)->intgData));
rtsiSetSolverName(&(&rtM)->solverInfo,"ode3");
rtmSetTPtr((&rtM), &(&rtM)->Timing.tArray[0]);
(&rtM)->Timing.stepSize0 = 0.2;
// InitializeConditions for Integrator: '<Root>/Integrator1'
rtX.Integrator1_CSTATE[0] = 0.0;
rtX.Integrator1_CSTATE[1] = 0.0;
rtX.Integrator1_CSTATE[2] = 0.0;
rtX.Integrator1_CSTATE[3] = 0.0;
}
// Constructor
Arduino_skalModelClass::Arduino_skalModelClass() :
rtDW(),
rtX(),
rtM()
{
// Currently there is no constructor body generated.
}
// Destructor
Arduino_skalModelClass::~Arduino_skalModelClass()
{
// Currently there is no destructor body generated.
}
// Real-Time Model get method
Arduino_skalModelClass::RT_MODEL * Arduino_skalModelClass::getRTM()
{
return (&rtM);
}
//
// File trailer for generated code.
//
// [EOF]
//

View File

@ -0,0 +1,228 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: Arduino_skal.h
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#ifndef RTW_HEADER_Arduino_skal_h_
#define RTW_HEADER_Arduino_skal_h_
#include <cstring>
#include "rtwtypes.h"
#include "rtw_continuous.h"
#include "rtw_solver.h"
// Model Code Variants
// 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
#ifndef rtmGetStopRequested
#define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
#endif
#ifndef rtmSetStopRequested
#define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
#endif
#ifndef rtmGetStopRequestedPtr
#define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
#endif
#ifndef rtmGetT
#define rtmGetT(rtm) (rtmGetTPtr((rtm))[0])
#endif
#ifndef rtmGetTPtr
#define rtmGetTPtr(rtm) ((rtm)->Timing.t)
#endif
#ifndef ODE3_INTG
#define ODE3_INTG
// ODE3 Integration Data
struct ODE3_IntgData {
real_T *y; // output
real_T *f[3]; // derivatives
};
#endif
// Class declaration for model Arduino_skal
class Arduino_skalModelClass {
// public data and function members
public:
// Block signals and states (default storage) for system '<Root>'
struct DW {
real_T Sum4[4]; // '<Root>/Sum4'
};
// Continuous states (default storage)
struct X {
real_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// State derivatives (default storage)
struct XDot {
real_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// State disabled
struct XDis {
boolean_T Integrator1_CSTATE[4]; // '<Root>/Integrator1'
};
// Constant parameters (default storage)
struct ConstP {
// Expression: [100;200]
// Referenced by: '<Root>/vartejag'
real_T vartejag_Value[2];
// Expression: A
// Referenced by: '<Root>/Gain4'
real_T Gain4_Gain[16];
// Expression: C
// Referenced by: '<Root>/Gain6'
real_T Gain6_Gain[8];
// Expression: L
// Referenced by: '<Root>/Gain2'
real_T Gain2_Gain[8];
// Expression: B
// Referenced by: '<Root>/Gain3'
real_T Gain3_Gain[4];
};
// Real-time Model Data Structure
struct RT_MODEL {
const char_T *errorStatus;
RTWSolverInfo solverInfo;
X *contStates;
int_T *periodicContStateIndices;
real_T *periodicContStateRanges;
real_T *derivs;
boolean_T *contStateDisabled;
boolean_T zCCacheNeedsReset;
boolean_T derivCacheNeedsReset;
boolean_T CTOutputIncnstWithState;
real_T odeY[4];
real_T odeF[3][4];
ODE3_IntgData intgData;
//
// Sizes:
// The following substructure contains sizes information
// for many of the model attributes such as inputs, outputs,
// dwork, sample times, etc.
struct {
int_T numContStates;
int_T numPeriodicContStates;
int_T numSampTimes;
} Sizes;
//
// Timing:
// The following substructure contains information regarding
// the timing information for the model.
struct {
uint32_T clockTick0;
time_T stepSize0;
uint32_T clockTick1;
SimTimeStep simTimeStep;
boolean_T stopRequestedFlag;
time_T *t;
time_T tArray[2];
} Timing;
};
// model initialize function
void initialize();
// model step function
void step();
// Constructor
Arduino_skalModelClass();
// Destructor
~Arduino_skalModelClass();
// Real-Time Model get method
Arduino_skalModelClass::RT_MODEL * getRTM();
// private data and function members
private:
// Block signals and states
DW rtDW;
X rtX; // Block continuous states
// Real-Time Model
RT_MODEL rtM;
// Continuous states update member function
void rt_ertODEUpdateContinuousStates(RTWSolverInfo *si );
// Derivatives member function
void Arduino_skal_derivatives();
};
// Constant parameters (default storage)
extern const Arduino_skalModelClass::ConstP rtConstP;
//-
// These blocks were eliminated from the model due to optimizations:
//
// Block '<Root>/Kr' : Eliminated nontunable gain of 1
//-
// 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.
//
// Use the MATLAB hilite_system command to trace the generated code back
// to the model. For example,
//
// hilite_system('<S3>') - opens system 3
// hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
//
// Here is the system hierarchy for this model
//
// '<Root>' : 'Arduino_skal'
#endif // RTW_HEADER_Arduino_skal_h_
//
// File trailer for generated code.
//
// [EOF]
//

View File

@ -0,0 +1,58 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: Arduino_skal_data.cpp
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#include "Arduino_skal.h"
// Constant parameters (default storage)
const Arduino_skalModelClass::ConstP rtConstP = {
// Expression: [100;200]
// Referenced by: '<Root>/vartejag'
{ 100.0, 200.0 },
// Expression: A
// Referenced by: '<Root>/Gain4'
{ 0.0, 0.0, 0.0, 0.0, 1.0, -0.20780947085442231, 0.0, -0.52810302415000854,
0.0, 13.239785742831822, 0.0, 58.601480177829842, 0.0, 0.0, 1.0, 0.0 },
// Expression: C
// Referenced by: '<Root>/Gain6'
{ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
// Expression: L
// Referenced by: '<Root>/Gain2'
{ 116.63033952875418, 3387.8673967111704, -1.4473912197449676,
-115.34372132703447, -1.0534041975488044, -48.223441605702455,
117.16185100039935, 3490.0480780568214 },
// Expression: B
// Referenced by: '<Root>/Gain3'
{ 0.0, 2.078094708544223, 0.0, 5.2810302415000852 }
};
//
// File trailer for generated code.
//
// [EOF]
//

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,14 @@
MODEL=Arduino_skal
NUMST=2
NCSTATES=4
HAVESTDIO
MODEL_HAS_DYNAMICALLY_LOADED_SFCNS=0
CLASSIC_INTERFACE=0
ALLOCATIONFCN=0
TID01EQ=1
TERMFCN=0
ONESTEPFCN=1
MAT_FILE=0
MULTI_INSTANCE_CODE=1
INTEGER_CODE=0
MT=0

View File

@ -0,0 +1,102 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: ert_main.cpp
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#include <stddef.h>
#include <stdio.h> // This ert_main.c example uses printf/fflush
#include "Arduino_skal.h" // Model's header file
#include "rtwtypes.h"
static Arduino_skalModelClass rtObj; // Instance of model class
//
// Associating rt_OneStep with a real-time clock or interrupt service routine
// is what makes the generated code "real-time". The function rt_OneStep is
// always associated with the base rate of the model. Subrates are managed
// by the base rate from inside the generated code. Enabling/disabling
// interrupts and floating point context switches are target specific. This
// example code indicates where these should take place relative to executing
// the generated code step function. Overrun behavior should be tailored to
// your application needs. This example simply sets an error status in the
// real-time model and returns from rt_OneStep.
//
void rt_OneStep(void);
void rt_OneStep(void)
{
static boolean_T OverrunFlag = false;
// Disable interrupts here
// Check for overrun
if (OverrunFlag) {
rtmSetErrorStatus(rtObj.getRTM(), "Overrun");
return;
}
OverrunFlag = true;
// Save FPU context here (if necessary)
// Re-enable timer or interrupt here
// Set model inputs here
// Step the model for base rate
rtObj.step();
// Get model outputs here
// Indicate task complete
OverrunFlag = false;
// Disable interrupts here
// Restore FPU context here (if necessary)
// Enable interrupts here
}
//
// The example "main" function illustrates what is required by your
// application code to initialize, execute, and terminate the generated code.
// Attaching rt_OneStep to a real-time clock is target specific. This example
// illustrates how you do this relative to initializing the model.
//
int_T main(int_T argc, const char *argv[])
{
// Unused arguments
(void)(argc);
(void)(argv);
// Initialize model
rtObj.initialize();
// Simulating the model step behavior (in non real-time) to
// simulate model behavior at stop time.
while ((rtmGetErrorStatus(rtObj.getRTM()) == (NULL)) && !rtmGetStopRequested
(rtObj.getRTM())) {
rt_OneStep();
}
// Disable rt_OneStep() here
return 0;
}
//
// File trailer for generated code.
//
// [EOF]
//

Binary file not shown.

View File

@ -0,0 +1,2 @@
Arduino_skal.cpp

View File

@ -0,0 +1,4 @@
Simulink Coder project for Arduino_skal using . MATLAB root = C:\Program Files\MATLAB\R2021a. SimStruct date: 15-Nov-2020 02:10:14
This file is generated by Simulink Coder for use by the make utility
to determine when to rebuild objects when the name of the current Simulink Coder project changes.
The rtwinfomat located at: ..\slprj\ert\Arduino_skal\tmwinternal\binfo.mat

View File

@ -0,0 +1,106 @@
//
// Academic License - for use in teaching, academic research, and meeting
// course requirements at degree granting institutions only. Not for
// government, commercial, or other organizational use.
//
// File: rtwtypes.h
//
// Code generated for Simulink model 'Arduino_skal'.
//
// Model version : 1.1
// Simulink Coder version : 9.5 (R2021a) 14-Nov-2020
// C/C++ source code generated on : Thu Apr 15 22:06:00 2021
//
// Target selection: ert.tlc
// Embedded hardware selection: AMD->x86-64 (Windows64)
// Code generation objectives:
// 1. Execution efficiency
// 2. RAM efficiency
// Validation result: Not run
//
#ifndef RTWTYPES_H
#define RTWTYPES_H
// Logical type definitions
#if (!defined(__cplusplus))
#ifndef false
#define false (0U)
#endif
#ifndef true
#define true (1U)
#endif
#endif
//=======================================================================*
// Target hardware information
// Device type: AMD->x86-64 (Windows64)
// Number of bits: char: 8 short: 16 int: 32
// long: 32 long long: 64
// native word size: 64
// Byte ordering: LittleEndian
// Signed integer division rounds to: Zero
// Shift right on a signed integer as arithmetic shift: on
// =======================================================================
//=======================================================================*
// Fixed width word size data types: *
// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
// real32_T, real64_T - 32 and 64 bit floating point numbers *
// =======================================================================
typedef signed char int8_T;
typedef unsigned char uint8_T;
typedef short int16_T;
typedef unsigned short uint16_T;
typedef int int32_T;
typedef unsigned int uint32_T;
typedef long long int64_T;
typedef unsigned long long uint64_T;
typedef float real32_T;
typedef double real64_T;
//===========================================================================*
// Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T, *
// real_T, time_T, ulong_T, ulonglong_T. *
// ===========================================================================
typedef double real_T;
typedef double time_T;
typedef unsigned char boolean_T;
typedef int int_T;
typedef unsigned int uint_T;
typedef unsigned long ulong_T;
typedef unsigned long long ulonglong_T;
typedef char char_T;
typedef unsigned char uchar_T;
typedef char_T byte_T;
//=======================================================================*
// Min and Max: *
// int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
// uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
// =======================================================================
#define MAX_int8_T ((int8_T)(127))
#define MIN_int8_T ((int8_T)(-128))
#define MAX_uint8_T ((uint8_T)(255U))
#define MAX_int16_T ((int16_T)(32767))
#define MIN_int16_T ((int16_T)(-32768))
#define MAX_uint16_T ((uint16_T)(65535U))
#define MAX_int32_T ((int32_T)(2147483647))
#define MIN_int32_T ((int32_T)(-2147483647-1))
#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU))
#define MAX_int64_T ((int64_T)(9223372036854775807LL))
#define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
#define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
// Block D-Work pointer type
typedef void * pointer_T;
#endif // RTWTYPES_H
//
// File trailer for generated code.
//
// [EOF]
//

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
<slcache.FileAttributes type="slcache.FileAttributes" uuid="25501367-5862-4c38-9446-3a10b71f5dfd">
<checksum>jUWCD6upU5eKEHQT+1NwAiXXhPHl8CuLumYkuZ/nhqUqt9Bgq71EB7eSu+x+mM96egeRAwLhm/aq3c0y4CL1kg==</checksum>
</slcache.FileAttributes>
</MF0>

Binary file not shown.