Cruise Control Update

Cruise Control Update
This commit is contained in:
JaeminSong 2024-08-07 11:01:25 +09:00
parent b8db48c1ce
commit 3854fbc169
219 changed files with 43694 additions and 0 deletions

View File

@ -0,0 +1,5 @@
t=data{8}.Values.Time;
RPM=data{8}.Values.Data;
TarRPM=data{16}.Values.Data;
figure(1); plot(t, TarRPM, t, RPM); grid on;

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,653 @@
<?xml version="1.0" encoding="UTF-8"?><Root>
<SubSystem>
<Name>DAQ_In</Name>
<xPCName>CANTest/DAQ_In</xPCName>
<block>
<blkName>CAN Read1</blkName>
<xpcblkName>DAQ_In/CAN Read1</xpcblkName>
<SLblockPath>CANTest/DAQ_In/CAN Read1</SLblockPath>
<isSrc>[1 0 2]</isSrc>
<parameter>
<paramName>P1</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P2</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P3</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P4</paramName>
<dim>[1, 5]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P5</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P6</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
</block>
<block>
<blkName>CAN Setup</blkName>
<xpcblkName>DAQ_In/CAN Setup</xpcblkName>
<SLblockPath>CANTest/DAQ_In/CAN Setup</SLblockPath>
<isSrc>[0 0 0]</isSrc>
<parameter>
<paramName>P1</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P2</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P3</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P4</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P5</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P6</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P7</paramName>
<dim>[1, 4]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P8</paramName>
<dim>[1, 6]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P9</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P10</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P11</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P12</paramName>
<dim>[1, 4]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P13</paramName>
<dim>[1, 6]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P14</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P15</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P16</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P17</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P18</paramName>
<dim>[1, 5]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P19</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P20</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P21</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P22</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P23</paramName>
<dim>[1, 2]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
<parameter>
<paramName>P24</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
</parameter>
</block>
<signal>
<sigName>CAN Read1/p1</sigName>
<xpcsigName>DAQ_In/CAN Read1/p1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>CAN Read1/p2</sigName>
<xpcsigName>DAQ_In/CAN Read1/p2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>CAN Unpack2/p1</sigName>
<xpcsigName>DAQ_In/CAN Unpack2/p1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
<sigLabel>RPM</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>CAN Unpack2/p2</sigName>
<xpcsigName>DAQ_In/CAN Unpack2/p2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_In</SubSystemName>
<sigLabel>TQ</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
</SubSystem>
<SubSystem>
<Name>DAQ_Out</Name>
<xPCName>CANTest/DAQ_Out</xPCName>
<SubSystem>
<Name>CANBoard</Name>
<xPCName>CANTest/DAQ_Out/CANBoard</xPCName>
<block>
<blkName>Constant</blkName>
<xpcblkName>DAQ_Out/CANBoard/Constant</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/Constant</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<block>
<blkName>Constant1</blkName>
<xpcblkName>DAQ_Out/CANBoard/Constant1</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/Constant1</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<block>
<blkName>Constant2</blkName>
<xpcblkName>DAQ_Out/CANBoard/Constant2</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/Constant2</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<block>
<blkName>Constant3</blkName>
<xpcblkName>DAQ_Out/CANBoard/Constant3</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/Constant3</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<block>
<blkName>Constant4</blkName>
<xpcblkName>DAQ_Out/CANBoard/Constant4</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/Constant4</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<block>
<blkName>CAN Write1</blkName>
<xpcblkName>DAQ_Out/CANBoard/CAN Write1</xpcblkName>
<SLblockPath>CANTest/DAQ_Out/CANBoard/CAN Write1</SLblockPath>
<isSrc>[0 1 0]</isSrc>
<parameter>
<paramName>P1</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P2</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P3</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P4</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P5</paramName>
<dim>[1, 5]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P6</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
<parameter>
<paramName>P7</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
</parameter>
</block>
<signal>
<sigName>Constant</sigName>
<xpcsigName>DAQ_Out/CANBoard/Constant</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigLabel>Ready</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Constant1</sigName>
<xpcsigName>DAQ_Out/CANBoard/Constant1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigLabel>Gear</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Constant2</sigName>
<xpcsigName>DAQ_Out/CANBoard/Constant2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigLabel>BMS</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Constant3</sigName>
<xpcsigName>DAQ_Out/CANBoard/Constant3</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigLabel>PosTQLim</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Constant4</sigName>
<xpcsigName>DAQ_Out/CANBoard/Constant4</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigLabel>NegTQLim</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>CAN Pack</sigName>
<xpcsigName>DAQ_Out/CANBoard/CAN Pack</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/DAQ_Out/CANBoard</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
</SubSystem>
</SubSystem>
<SubSystem>
<Name>Input Signal Conditioning</Name>
<xPCName>CANTest/Input Signal Conditioning</xPCName>
</SubSystem>
<SubSystem>
<Name>Mon_Cont</Name>
<xPCName>CANTest/Mon_Cont</xPCName>
<SubSystem>
<Name>LPFM</Name>
<xPCName>CANTest/Mon_Cont/LPFM</xPCName>
<block>
<blkName>Constant1</blkName>
<xpcblkName>Mon_Cont/LPFM/Constant1</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/LPFM/Constant1</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
</parameter>
</block>
<block>
<blkName>gain1</blkName>
<xpcblkName>Mon_Cont/LPFM/gain1</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/LPFM/gain1</SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>Gain</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
</parameter>
</block>
<block>
<blkName>gain2</blkName>
<xpcblkName>Mon_Cont/LPFM/gain2</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/LPFM/gain2</SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>Gain</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
</parameter>
</block>
<block>
<blkName>d</blkName>
<xpcblkName>Mon_Cont/LPFM/d</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/LPFM/d</SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>InitialCondition</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
</parameter>
</block>
<block>
<blkName>d1</blkName>
<xpcblkName>Mon_Cont/LPFM/d1</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/LPFM/d1</SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>InitialCondition</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
</parameter>
</block>
<signal>
<sigName>gain</sigName>
<xpcsigName>Mon_Cont/LPFM/gain</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>gain1</sigName>
<xpcsigName>Mon_Cont/LPFM/gain1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>gain2</sigName>
<xpcsigName>Mon_Cont/LPFM/gain2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Product1</sigName>
<xpcsigName>Mon_Cont/LPFM/Product1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Product11</sigName>
<xpcsigName>Mon_Cont/LPFM/Product11</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Product2</sigName>
<xpcsigName>Mon_Cont/LPFM/Product2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Sum1</sigName>
<xpcsigName>Mon_Cont/LPFM/Sum1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Sum2</sigName>
<xpcsigName>Mon_Cont/LPFM/Sum2</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Sum3</sigName>
<xpcsigName>Mon_Cont/LPFM/Sum3</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>Sum4</sigName>
<xpcsigName>Mon_Cont/LPFM/Sum4</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>d</sigName>
<xpcsigName>Mon_Cont/LPFM/d</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
<signal>
<sigName>d1</sigName>
<xpcsigName>Mon_Cont/LPFM/d1</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont/LPFM</SubSystemName>
<sigTestPoint>false</sigTestPoint>
</signal>
</SubSystem>
<block>
<blkName>Constant1</blkName>
<xpcblkName>Mon_Cont/Constant1</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/Constant1</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont</SubSystemName>
</parameter>
</block>
<block>
<blkName>ContMode</blkName>
<xpcblkName>Mon_Cont/ContMode</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/ContMode</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont</SubSystemName>
</parameter>
</block>
<block>
<blkName>TQCom</blkName>
<xpcblkName>Mon_Cont/TQCom</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/TQCom</SLblockPath>
<isSrc>[1 0 1]</isSrc>
<parameter>
<paramName>Value</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont</SubSystemName>
</parameter>
</block>
<block>
<blkName>ContM</blkName>
<xpcblkName>Mon_Cont/ContM</xpcblkName>
<SLblockPath>CANTest/Mon_Cont/ContM</SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>Gain</paramName>
<dim>[1, 1]</dim>
<SubSystemName>CANTest/Mon_Cont</SubSystemName>
</parameter>
</block>
<signal>
<sigName>ContM</sigName>
<xpcsigName>Mon_Cont/ContM</xpcsigName>
<sigWidth>1</sigWidth>
<sigDim>[1, 1]</sigDim>
<SubSystemName>CANTest/Mon_Cont</SubSystemName>
<sigLabel>ContMode</sigLabel>
<sigTestPoint>false</sigTestPoint>
</signal>
</SubSystem>
<block>
<blkName>Model Parameters</blkName>
<xpcblkName>Model Parameters</xpcblkName>
<SLblockPath>. </SLblockPath>
<isSrc>[0 1 1]</isSrc>
<parameter>
<paramName>Ts</paramName>
<dim>[1,1]</dim>
<SubSystemName>CANTest</SubSystemName>
</parameter>
</block>
</Root>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,564 @@
/*
* CANTest_capi.c
*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#include "rtw_capi.h"
#ifdef HOST_CAPI_BUILD
#include "CANTest_capi_host.h"
#define sizeof(s) ((size_t)(0xFFFF))
#undef rt_offsetof
#define rt_offsetof(s,el) ((uint16_T)(0xFFFF))
#define TARGET_CONST
#define TARGET_STRING(s) (s)
#else /* HOST_CAPI_BUILD */
#include "builtin_typeid_types.h"
#include "CANTest.h"
#include "CANTest_capi.h"
#include "CANTest_private.h"
#ifdef LIGHT_WEIGHT_CAPI
#define TARGET_CONST
#define TARGET_STRING(s) (NULL)
#else
#define TARGET_CONST const
#define TARGET_STRING(s) (s)
#endif
#endif /* HOST_CAPI_BUILD */
/* Block output signal information */
static const rtwCAPI_Signals rtBlockSignals[] = {
/* addrMapIndex, sysNum, blockPath,
* signalName, portNumber, dataTypeIndex, dimIndex, fxpIndex, sTimeIndex
*/
{ 0, 1, TARGET_STRING("DAQ_In/CAN Read1/p1"),
TARGET_STRING(""), 0, 0, 0, 0, 0 },
{ 1, 1, TARGET_STRING("DAQ_In/CAN Read1/p2"),
TARGET_STRING(""), 1, 1, 0, 0, 0 },
{ 2, 1, TARGET_STRING("DAQ_In/CAN Unpack2/p1"),
TARGET_STRING("RPM"), 0, 2, 0, 0, 0 },
{ 3, 1, TARGET_STRING("DAQ_In/CAN Unpack2/p2"),
TARGET_STRING("TQ"), 1, 2, 0, 0, 0 },
{ 4, 0, TARGET_STRING("Mon_Cont/ContM"),
TARGET_STRING("ContMode"), 0, 2, 0, 0, 1 },
{ 5, 0, TARGET_STRING("DAQ_Out/CANBoard/Constant"),
TARGET_STRING("Ready"), 0, 2, 0, 0, 1 },
{ 6, 0, TARGET_STRING("DAQ_Out/CANBoard/Constant1"),
TARGET_STRING("Gear"), 0, 2, 0, 0, 1 },
{ 7, 0, TARGET_STRING("DAQ_Out/CANBoard/Constant2"),
TARGET_STRING("BMS"), 0, 2, 0, 0, 1 },
{ 8, 0, TARGET_STRING("DAQ_Out/CANBoard/Constant3"),
TARGET_STRING("PosTQLim"), 0, 2, 0, 0, 1 },
{ 9, 0, TARGET_STRING("DAQ_Out/CANBoard/Constant4"),
TARGET_STRING("NegTQLim"), 0, 2, 0, 0, 1 },
{ 10, 0, TARGET_STRING("DAQ_Out/CANBoard/CAN Pack"),
TARGET_STRING(""), 0, 1, 0, 0, 1 },
{ 11, 0, TARGET_STRING("Mon_Cont/LPFM/gain"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 12, 0, TARGET_STRING("Mon_Cont/LPFM/gain1"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 13, 0, TARGET_STRING("Mon_Cont/LPFM/gain2"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 14, 0, TARGET_STRING("Mon_Cont/LPFM/Product1"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 15, 0, TARGET_STRING("Mon_Cont/LPFM/Product11"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 16, 0, TARGET_STRING("Mon_Cont/LPFM/Product2"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 17, 0, TARGET_STRING("Mon_Cont/LPFM/Sum1"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 18, 0, TARGET_STRING("Mon_Cont/LPFM/Sum2"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 19, 0, TARGET_STRING("Mon_Cont/LPFM/Sum3"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 20, 0, TARGET_STRING("Mon_Cont/LPFM/Sum4"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 21, 0, TARGET_STRING("Mon_Cont/LPFM/d"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{ 22, 0, TARGET_STRING("Mon_Cont/LPFM/d1"),
TARGET_STRING(""), 0, 2, 0, 0, 1 },
{
0, 0, (NULL), (NULL), 0, 0, 0, 0, 0
}
};
static const rtwCAPI_BlockParameters rtBlockParameters[] = {
/* addrMapIndex, blockPath,
* paramName, dataTypeIndex, dimIndex, fixPtIdx
*/
{ 23, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P1"), 2, 0, 0 },
{ 24, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P2"), 2, 0, 0 },
{ 25, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P3"), 2, 0, 0 },
{ 26, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P4"), 2, 1, 0 },
{ 27, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P5"), 2, 0, 0 },
{ 28, TARGET_STRING("DAQ_In/CAN Read1"),
TARGET_STRING("P6"), 2, 0, 0 },
{ 29, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P1"), 2, 0, 0 },
{ 30, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P2"), 2, 2, 0 },
{ 31, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P3"), 2, 0, 0 },
{ 32, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P4"), 2, 0, 0 },
{ 33, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P5"), 2, 0, 0 },
{ 34, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P6"), 2, 0, 0 },
{ 35, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P7"), 2, 3, 0 },
{ 36, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P8"), 2, 4, 0 },
{ 37, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P9"), 2, 2, 0 },
{ 38, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P10"), 2, 2, 0 },
{ 39, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P11"), 2, 0, 0 },
{ 40, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P12"), 2, 3, 0 },
{ 41, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P13"), 2, 4, 0 },
{ 42, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P14"), 2, 2, 0 },
{ 43, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P15"), 2, 2, 0 },
{ 44, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P16"), 2, 0, 0 },
{ 45, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P17"), 2, 0, 0 },
{ 46, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P18"), 2, 1, 0 },
{ 47, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P19"), 2, 0, 0 },
{ 48, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P20"), 2, 2, 0 },
{ 49, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P21"), 2, 2, 0 },
{ 50, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P22"), 2, 2, 0 },
{ 51, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P23"), 2, 2, 0 },
{ 52, TARGET_STRING("DAQ_In/CAN Setup"),
TARGET_STRING("P24"), 2, 0, 0 },
{ 53, TARGET_STRING("Mon_Cont/Constant1"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 54, TARGET_STRING("Mon_Cont/ContMode"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 55, TARGET_STRING("Mon_Cont/TQCom"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 56, TARGET_STRING("Mon_Cont/ContM"),
TARGET_STRING("Gain"), 2, 0, 0 },
{ 57, TARGET_STRING("DAQ_Out/CANBoard/Constant"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 58, TARGET_STRING("DAQ_Out/CANBoard/Constant1"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 59, TARGET_STRING("DAQ_Out/CANBoard/Constant2"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 60, TARGET_STRING("DAQ_Out/CANBoard/Constant3"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 61, TARGET_STRING("DAQ_Out/CANBoard/Constant4"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 62, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P1"), 2, 0, 0 },
{ 63, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P2"), 2, 0, 0 },
{ 64, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P3"), 2, 0, 0 },
{ 65, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P4"), 2, 0, 0 },
{ 66, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P5"), 2, 1, 0 },
{ 67, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P6"), 2, 0, 0 },
{ 68, TARGET_STRING("DAQ_Out/CANBoard/CAN Write1"),
TARGET_STRING("P7"), 2, 0, 0 },
{ 69, TARGET_STRING("Mon_Cont/LPFM/Constant1"),
TARGET_STRING("Value"), 2, 0, 0 },
{ 70, TARGET_STRING("Mon_Cont/LPFM/gain1"),
TARGET_STRING("Gain"), 2, 0, 0 },
{ 71, TARGET_STRING("Mon_Cont/LPFM/gain2"),
TARGET_STRING("Gain"), 2, 0, 0 },
{ 72, TARGET_STRING("Mon_Cont/LPFM/d"),
TARGET_STRING("InitialCondition"), 2, 0, 0 },
{ 73, TARGET_STRING("Mon_Cont/LPFM/d1"),
TARGET_STRING("InitialCondition"), 2, 0, 0 },
{
0, (NULL), (NULL), 0, 0, 0
}
};
/* Tunable variable parameters */
static const rtwCAPI_ModelParameters rtModelParameters[] = {
/* addrMapIndex, varName, dataTypeIndex, dimIndex, fixPtIndex */
{ 74, TARGET_STRING("Ts"), 2, 0, 0 },
{ 0, (NULL), 0, 0, 0 }
};
#ifndef HOST_CAPI_BUILD
/* Declare Data Addresses statically */
static void* rtDataAddrMap[] = {
&CANTest_B.CANRead1_o1, /* 0: Signal */
&CANTest_B.CANRead1_o2, /* 1: Signal */
&CANTest_B.RPM, /* 2: Signal */
&CANTest_B.TQ, /* 3: Signal */
&CANTest_B.ContMode, /* 4: Signal */
&CANTest_B.Ready, /* 5: Signal */
&CANTest_B.Gear, /* 6: Signal */
&CANTest_B.BMS, /* 7: Signal */
&CANTest_B.PosTQLim, /* 8: Signal */
&CANTest_B.NegTQLim, /* 9: Signal */
&CANTest_B.CANPack, /* 10: Signal */
&CANTest_B.gain, /* 11: Signal */
&CANTest_B.gain1, /* 12: Signal */
&CANTest_B.gain2, /* 13: Signal */
&CANTest_B.Product1, /* 14: Signal */
&CANTest_B.Product11, /* 15: Signal */
&CANTest_B.Product2, /* 16: Signal */
&CANTest_B.Sum1, /* 17: Signal */
&CANTest_B.Sum2, /* 18: Signal */
&CANTest_B.Sum3, /* 19: Signal */
&CANTest_B.Sum4, /* 20: Signal */
&CANTest_B.d, /* 21: Signal */
&CANTest_B.d1, /* 22: Signal */
&CANTest_P.CANRead1_P1, /* 23: Block Parameter */
&CANTest_P.CANRead1_P2, /* 24: Block Parameter */
&CANTest_P.CANRead1_P3, /* 25: Block Parameter */
&CANTest_P.CANRead1_P4[0], /* 26: Block Parameter */
&CANTest_P.CANRead1_P5, /* 27: Block Parameter */
&CANTest_P.CANRead1_P6, /* 28: Block Parameter */
&CANTest_P.CANSetup_P1, /* 29: Block Parameter */
&CANTest_P.CANSetup_P2[0], /* 30: Block Parameter */
&CANTest_P.CANSetup_P3, /* 31: Block Parameter */
&CANTest_P.CANSetup_P4, /* 32: Block Parameter */
&CANTest_P.CANSetup_P5, /* 33: Block Parameter */
&CANTest_P.CANSetup_P6, /* 34: Block Parameter */
&CANTest_P.CANSetup_P7[0], /* 35: Block Parameter */
&CANTest_P.CANSetup_P8[0], /* 36: Block Parameter */
&CANTest_P.CANSetup_P9[0], /* 37: Block Parameter */
&CANTest_P.CANSetup_P10[0], /* 38: Block Parameter */
&CANTest_P.CANSetup_P11, /* 39: Block Parameter */
&CANTest_P.CANSetup_P12[0], /* 40: Block Parameter */
&CANTest_P.CANSetup_P13[0], /* 41: Block Parameter */
&CANTest_P.CANSetup_P14[0], /* 42: Block Parameter */
&CANTest_P.CANSetup_P15[0], /* 43: Block Parameter */
&CANTest_P.CANSetup_P16, /* 44: Block Parameter */
&CANTest_P.CANSetup_P17, /* 45: Block Parameter */
&CANTest_P.CANSetup_P18[0], /* 46: Block Parameter */
&CANTest_P.CANSetup_P19, /* 47: Block Parameter */
&CANTest_P.CANSetup_P20[0], /* 48: Block Parameter */
&CANTest_P.CANSetup_P21[0], /* 49: Block Parameter */
&CANTest_P.CANSetup_P22[0], /* 50: Block Parameter */
&CANTest_P.CANSetup_P23[0], /* 51: Block Parameter */
&CANTest_P.CANSetup_P24, /* 52: Block Parameter */
&CANTest_P.Constant1_Value_j, /* 53: Block Parameter */
&CANTest_P.ContMode_Value, /* 54: Block Parameter */
&CANTest_P.TQCom_Value, /* 55: Block Parameter */
&CANTest_P.ContM_Gain, /* 56: Block Parameter */
&CANTest_P.Constant_Value, /* 57: Block Parameter */
&CANTest_P.Constant1_Value, /* 58: Block Parameter */
&CANTest_P.Constant2_Value, /* 59: Block Parameter */
&CANTest_P.Constant3_Value, /* 60: Block Parameter */
&CANTest_P.Constant4_Value, /* 61: Block Parameter */
&CANTest_P.CANWrite1_P1, /* 62: Block Parameter */
&CANTest_P.CANWrite1_P2, /* 63: Block Parameter */
&CANTest_P.CANWrite1_P3, /* 64: Block Parameter */
&CANTest_P.CANWrite1_P4, /* 65: Block Parameter */
&CANTest_P.CANWrite1_P5[0], /* 66: Block Parameter */
&CANTest_P.CANWrite1_P6, /* 67: Block Parameter */
&CANTest_P.CANWrite1_P7, /* 68: Block Parameter */
&CANTest_P.Constant1_Value_a, /* 69: Block Parameter */
&CANTest_P.gain1_Gain, /* 70: Block Parameter */
&CANTest_P.gain2_Gain, /* 71: Block Parameter */
&CANTest_P.d_InitialCondition, /* 72: Block Parameter */
&CANTest_P.d1_InitialCondition, /* 73: Block Parameter */
&CANTest_P.Ts, /* 74: Model Parameter */
};
/* Declare Data Run-Time Dimension Buffer Addresses statically */
static int32_T* rtVarDimsAddrMap[] = {
(NULL)
};
#endif
/* Data Type Map - use dataTypeMapIndex to access this structure */
static TARGET_CONST rtwCAPI_DataTypeMap rtDataTypeMap[] = {
/* cName, mwName, numElements, elemMapIndex, dataSize, slDataId, *
* isComplex, isPointer */
{ "unsigned char", "boolean_T", 0, 0, sizeof(boolean_T), SS_BOOLEAN, 0, 0 },
{ "numeric", "CAN_DATATYPE", 0, 0, sizeof(CAN_DATATYPE), SS_STRUCT, 0, 0 },
{ "double", "real_T", 0, 0, sizeof(real_T), SS_DOUBLE, 0, 0 }
};
#ifdef HOST_CAPI_BUILD
#undef sizeof
#endif
/* Structure Element Map - use elemMapIndex to access this structure */
static TARGET_CONST rtwCAPI_ElementMap rtElementMap[] = {
/* elementName, elementOffset, dataTypeIndex, dimIndex, fxpIndex */
{ (NULL), 0, 0, 0, 0 },
};
/* Dimension Map - use dimensionMapIndex to access elements of ths structure*/
static const rtwCAPI_DimensionMap rtDimensionMap[] = {
/* dataOrientation, dimArrayIndex, numDims, vardimsIndex */
{ rtwCAPI_SCALAR, 0, 2, 0 },
{ rtwCAPI_VECTOR, 2, 2, 0 },
{ rtwCAPI_VECTOR, 4, 2, 0 },
{ rtwCAPI_VECTOR, 6, 2, 0 },
{ rtwCAPI_VECTOR, 8, 2, 0 }
};
/* Dimension Array- use dimArrayIndex to access elements of this array */
static const uint_T rtDimensionArray[] = {
1, /* 0 */
1, /* 1 */
1, /* 2 */
5, /* 3 */
1, /* 4 */
2, /* 5 */
1, /* 6 */
4, /* 7 */
1, /* 8 */
6 /* 9 */
};
/* C-API stores floating point values in an array. The elements of this *
* are unique. This ensures that values which are shared across the model*
* are stored in the most efficient way. These values are referenced by *
* - rtwCAPI_FixPtMap.fracSlopePtr, *
* - rtwCAPI_FixPtMap.biasPtr, *
* - rtwCAPI_SampleTimeMap.samplePeriodPtr, *
* - rtwCAPI_SampleTimeMap.sampleOffsetPtr */
static const real_T rtcapiStoredFloats[] = {
0.002, 0.0
};
/* Fixed Point Map */
static const rtwCAPI_FixPtMap rtFixPtMap[] = {
/* fracSlopePtr, biasPtr, scaleType, wordLength, exponent, isSigned */
{ (NULL), (NULL), rtwCAPI_FIX_RESERVED, 0, 0, 0 },
};
/* Sample Time Map - use sTimeIndex to access elements of ths structure */
static const rtwCAPI_SampleTimeMap rtSampleTimeMap[] = {
/* samplePeriodPtr, sampleOffsetPtr, tid, samplingMode */
{ (NULL), (NULL), -1, 0 },
{ (const void *) &rtcapiStoredFloats[0], (const void *) &rtcapiStoredFloats[1],
0, 0 }
};
static rtwCAPI_ModelMappingStaticInfo mmiStatic = {
/* Signals:{signals, numSignals,
* rootInputs, numRootInputs,
* rootOutputs, numRootOutputs},
* Params: {blockParameters, numBlockParameters,
* modelParameters, numModelParameters},
* States: {states, numStates},
* Maps: {dataTypeMap, dimensionMap, fixPtMap,
* elementMap, sampleTimeMap, dimensionArray},
* TargetType: targetType
*/
{ rtBlockSignals, 23,
(NULL), 0,
(NULL), 0 },
{ rtBlockParameters, 51,
rtModelParameters, 1 },
{ (NULL), 0 },
{ rtDataTypeMap, rtDimensionMap, rtFixPtMap,
rtElementMap, rtSampleTimeMap, rtDimensionArray },
"float",
{ 1549657953U,
1200499624U,
3365832572U,
428343849U },
(NULL), 0,
0
};
/* Function to get C API Model Mapping Static Info */
const rtwCAPI_ModelMappingStaticInfo*
CANTest_GetCAPIStaticMap(void)
{
return &mmiStatic;
}
/* Cache pointers into DataMapInfo substructure of RTModel */
#ifndef HOST_CAPI_BUILD
void CANTest_InitializeDataMapInfo(void)
{
/* Set C-API version */
rtwCAPI_SetVersion(CANTest_M->DataMapInfo.mmi, 1);
/* Cache static C-API data into the Real-time Model Data structure */
rtwCAPI_SetStaticMap(CANTest_M->DataMapInfo.mmi, &mmiStatic);
/* Cache static C-API logging data into the Real-time Model Data structure */
rtwCAPI_SetLoggingStaticMap(CANTest_M->DataMapInfo.mmi, (NULL));
/* Cache C-API Data Addresses into the Real-Time Model Data structure */
rtwCAPI_SetDataAddressMap(CANTest_M->DataMapInfo.mmi, rtDataAddrMap);
/* Cache C-API Data Run-Time Dimension Buffer Addresses into the Real-Time Model Data structure */
rtwCAPI_SetVarDimsAddressMap(CANTest_M->DataMapInfo.mmi, rtVarDimsAddrMap);
/* Cache C-API rtp Address and size into the Real-Time Model Data structure */
CANTest_M->DataMapInfo.mmi.InstanceMap.rtpAddress = rtmGetDefaultParam
(CANTest_M);
CANTest_M->DataMapInfo.mmi.staticMap->rtpSize = sizeof(P_CANTest_T);
/* Cache the instance C-API logging pointer */
rtwCAPI_SetInstanceLoggingInfo(CANTest_M->DataMapInfo.mmi, (NULL));
/* Set reference to submodels */
rtwCAPI_SetChildMMIArray(CANTest_M->DataMapInfo.mmi, (NULL));
rtwCAPI_SetChildMMIArrayLen(CANTest_M->DataMapInfo.mmi, 0);
}
#else /* HOST_CAPI_BUILD */
#ifdef __cplusplus
extern "C" {
#endif
void CANTest_host_InitializeDataMapInfo(CANTest_host_DataMapInfo_T *dataMap,
const char *path)
{
/* Set C-API version */
rtwCAPI_SetVersion(dataMap->mmi, 1);
/* Cache static C-API data into the Real-time Model Data structure */
rtwCAPI_SetStaticMap(dataMap->mmi, &mmiStatic);
/* host data address map is NULL */
rtwCAPI_SetDataAddressMap(dataMap->mmi, NULL);
/* host vardims address map is NULL */
rtwCAPI_SetVarDimsAddressMap(dataMap->mmi, NULL);
/* Set Instance specific path */
rtwCAPI_SetPath(dataMap->mmi, path);
rtwCAPI_SetFullPath(dataMap->mmi, NULL);
/* Set reference to submodels */
rtwCAPI_SetChildMMIArray(dataMap->mmi, (NULL));
rtwCAPI_SetChildMMIArrayLen(dataMap->mmi, 0);
}
#ifdef __cplusplus
}
#endif
#endif /* HOST_CAPI_BUILD */
/* EOF: CANTest_capi.c */

View File

@ -0,0 +1,29 @@
/*
* CANTest_capi.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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_CANTest_capi_h
#define RTW_HEADER_CANTest_capi_h
#include "CANTest.h"
extern void CANTest_InitializeDataMapInfo(void);
#endif /* RTW_HEADER_CANTest_capi_h */
/* EOF: CANTest_capi.h */

View File

@ -0,0 +1,27 @@
#ifndef RTW_HEADER_CANTest_cap_host_h_
#define RTW_HEADER_CANTest_cap_host_h_
#ifdef HOST_CAPI_BUILD
#include "rtw_capi.h"
#include "rtw_modelmap.h"
typedef struct {
rtwCAPI_ModelMappingInfo mmi;
} CANTest_host_DataMapInfo_T;
#ifdef __cplusplus
extern "C" {
#endif
void CANTest_host_InitializeDataMapInfo(CANTest_host_DataMapInfo_T *dataMap,
const char *path);
#ifdef __cplusplus
}
#endif
#endif /* HOST_CAPI_BUILD */
#endif /* RTW_HEADER_CANTest_cap_host_h_ */
/* EOF: CANTest_capi_host.h */

View File

@ -0,0 +1,472 @@
/*
* CANTest_data.c
*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#include "CANTest.h"
#include "CANTest_private.h"
/* Block parameters (default storage) */
P_CANTest_T CANTest_P = {
/* Variable: Ts
* Referenced by:
* '<S6>/Constant'
* '<S6>/gain'
*/
0.002,
/* Computed Parameter: CANSetup_P1_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: id
* Referenced by: '<S1>/CAN Setup'
*/
1.0,
/* Computed Parameter: CANSetup_P2_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Computed Parameter: CANSetup_P2
* Referenced by: '<S1>/CAN Setup'
*/
{ 67.0, 58.0 },
/* Computed Parameter: CANSetup_P3_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: PCISlot
* Referenced by: '<S1>/CAN Setup'
*/
-1.0,
/* Computed Parameter: CANSetup_P4_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: port1
* Referenced by: '<S1>/CAN Setup'
*/
2.0,
/* Computed Parameter: CANSetup_P5_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: port2
* Referenced by: '<S1>/CAN Setup'
*/
2.0,
/* Computed Parameter: CANSetup_P6_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: opModeCAN1
* Referenced by: '<S1>/CAN Setup'
*/
1.0,
/* Computed Parameter: CANSetup_P7_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 4.0 },
/* Expression: usrBdrCAN1
* Referenced by: '<S1>/CAN Setup'
*/
{ 10.0, 1.0, 13.0, 2.0 },
/* Computed Parameter: CANSetup_P8_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 6.0 },
/* Expression: usrBdrFD1
* Referenced by: '<S1>/CAN Setup'
*/
{ 2.0, 1.0, 5.0, 2.0, 75.0, 5000.0 },
/* Computed Parameter: CANSetup_P9_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: stdAccMaskCAN1
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 0.0 },
/* Computed Parameter: CANSetup_P10_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: extAccMaskCAN1
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 0.0 },
/* Computed Parameter: CANSetup_P11_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: opModeCAN2
* Referenced by: '<S1>/CAN Setup'
*/
1.0,
/* Computed Parameter: CANSetup_P12_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 4.0 },
/* Expression: usrBdrCAN2
* Referenced by: '<S1>/CAN Setup'
*/
{ 10.0, 1.0, 13.0, 2.0 },
/* Computed Parameter: CANSetup_P13_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 6.0 },
/* Expression: usrBdrFD2
* Referenced by: '<S1>/CAN Setup'
*/
{ 2.0, 1.0, 5.0, 2.0, 75.0, 5000.0 },
/* Computed Parameter: CANSetup_P14_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: stdAccMaskCAN2
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 0.0 },
/* Computed Parameter: CANSetup_P15_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: extAccMaskCAN2
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 0.0 },
/* Computed Parameter: CANSetup_P16_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: initStruct
* Referenced by: '<S1>/CAN Setup'
*/
0.0,
/* Computed Parameter: CANSetup_P17_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: termStruct
* Referenced by: '<S1>/CAN Setup'
*/
0.0,
/* Computed Parameter: CANSetup_P18_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 5.0 },
/* Computed Parameter: CANSetup_P18
* Referenced by: '<S1>/CAN Setup'
*/
{ 73.0, 79.0, 54.0, 49.0, 51.0 },
/* Computed Parameter: CANSetup_P19_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: qtyMod
* Referenced by: '<S1>/CAN Setup'
*/
1.0,
/* Computed Parameter: CANSetup_P20_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: chNo
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Computed Parameter: CANSetup_P21_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: ptTypes
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Computed Parameter: CANSetup_P22_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: isProtlFD
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 0.0 },
/* Computed Parameter: CANSetup_P23_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 2.0 },
/* Expression: protlHelpIdx
* Referenced by: '<S1>/CAN Setup'
*/
{ 0.0, 1.0 },
/* Computed Parameter: CANSetup_P24_Size
* Referenced by: '<S1>/CAN Setup'
*/
{ 1.0, 1.0 },
/* Expression: isFDMod
* Referenced by: '<S1>/CAN Setup'
*/
1.0,
/* Computed Parameter: CANRead1_P1_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 1.0 },
/* Expression: id
* Referenced by: '<S1>/CAN Read1'
*/
1.0,
/* Computed Parameter: CANRead1_P2_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 1.0 },
/* Expression: sampleTime
* Referenced by: '<S1>/CAN Read1'
*/
-1.0,
/* Computed Parameter: CANRead1_P3_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 1.0 },
/* Expression: messageType
* Referenced by: '<S1>/CAN Read1'
*/
1.0,
/* Computed Parameter: CANRead1_P4_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 5.0 },
/* Computed Parameter: CANRead1_P4
* Referenced by: '<S1>/CAN Read1'
*/
{ 73.0, 79.0, 54.0, 49.0, 51.0 },
/* Computed Parameter: CANRead1_P5_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 1.0 },
/* Expression: ptIdx
* Referenced by: '<S1>/CAN Read1'
*/
0.0,
/* Computed Parameter: CANRead1_P6_Size
* Referenced by: '<S1>/CAN Read1'
*/
{ 1.0, 1.0 },
/* Expression: isFDMod
* Referenced by: '<S1>/CAN Read1'
*/
1.0,
/* Expression: 1
* Referenced by: '<S4>/ContMode'
*/
1.0,
/* Expression: 0
* Referenced by: '<S4>/ContM'
*/
0.0,
/* Expression: 1
* Referenced by: '<S5>/Constant'
*/
1.0,
/* Expression: 4
* Referenced by: '<S5>/Constant1'
*/
4.0,
/* Expression: 0
* Referenced by: '<S5>/Constant2'
*/
0.0,
/* Expression: 10
* Referenced by: '<S5>/Constant3'
*/
10.0,
/* Expression: -2
* Referenced by: '<S5>/Constant4'
*/
-2.0,
/* Expression: 0
* Referenced by: '<S4>/TQCom'
*/
0.0,
/* Expression: 0
* Referenced by: '<S6>/d1'
*/
0.0,
/* Expression: 1
* Referenced by: '<S6>/Constant1'
*/
1.0,
/* Expression: 5
* Referenced by: '<S4>/Constant1'
*/
5.0,
/* Expression: 2*pi
* Referenced by: '<S6>/gain2'
*/
6.2831853071795862,
/* Expression: 2
* Referenced by: '<S6>/gain1'
*/
2.0,
/* Expression: 0
* Referenced by: '<S6>/d'
*/
0.0,
/* Computed Parameter: CANWrite1_P1_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: id
* Referenced by: '<S5>/CAN Write1'
*/
1.0,
/* Computed Parameter: CANWrite1_P2_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: sampleTime
* Referenced by: '<S5>/CAN Write1'
*/
-1.0,
/* Computed Parameter: CANWrite1_P3_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: messageType
* Referenced by: '<S5>/CAN Write1'
*/
1.0,
/* Computed Parameter: CANWrite1_P4_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: enaStatusPort
* Referenced by: '<S5>/CAN Write1'
*/
0.0,
/* Computed Parameter: CANWrite1_P5_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 5.0 },
/* Computed Parameter: CANWrite1_P5
* Referenced by: '<S5>/CAN Write1'
*/
{ 73.0, 79.0, 54.0, 49.0, 51.0 },
/* Computed Parameter: CANWrite1_P6_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: ptIdx
* Referenced by: '<S5>/CAN Write1'
*/
0.0,
/* Computed Parameter: CANWrite1_P7_Size
* Referenced by: '<S5>/CAN Write1'
*/
{ 1.0, 1.0 },
/* Expression: isFDMod
* Referenced by: '<S5>/CAN Write1'
*/
1.0
};

View File

@ -0,0 +1,39 @@
/*
* CANTest_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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_CANTest_private_h_
#define RTW_HEADER_CANTest_private_h_
#include "rtwtypes.h"
#include "builtin_typeid_types.h"
#include "multiword_types.h"
#include "zero_crossing_types.h"
extern CAN_DATATYPE CAN_DATATYPE_GROUND;
extern const serialfifoptr serialfifoground;
extern const bcmsglist1553 bcmsg1553ground;
extern const bcstatus1553 bcstatground;
extern const bmmsglist1553 bmmsg1553ground;
extern void* slrtRegisterSignalToLoggingService(rtwCAPI_ModelMappingInfo* mdlMMI,
const char* relBlkPath, int portNumber);
extern void sg_IO613_setup_s(SimStruct *rts);
extern void sg_IO61X_read_s(SimStruct *rts);
extern void sg_IO61X_write_s(SimStruct *rts);
#endif /* RTW_HEADER_CANTest_private_h_ */

View File

@ -0,0 +1,34 @@
/*
* CANTest_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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_CANTest_types_h_
#define RTW_HEADER_CANTest_types_h_
#include "rtwtypes.h"
#include "builtin_typeid_types.h"
#include "multiword_types.h"
#include "zero_crossing_types.h"
/* Parameters (default storage) */
typedef struct P_CANTest_T_ P_CANTest_T;
/* Forward declaration for rtModel */
typedef struct tag_RTM_CANTest_T RT_MODEL_CANTest_T;
#endif /* RTW_HEADER_CANTest_types_h_ */

View File

@ -0,0 +1,18 @@
/***************************************************************/
/* XCP: No ASAP2 objects found for calibration and measurement */
/***************************************************************/
#include "xcpmdlapi.h"
ModelXcpInfo mxi = {
0,
{ "", 0 },
{ 0, 0, 0, 0 }
};
ModelXcpInfo* mdlXcp_GetMdlXcpInfo()
{
return &mxi;
}

View File

@ -0,0 +1,40 @@
#include <stdio.h>
/** TET record for one model thread */
typedef struct SLRTTET_tag {
double minTET; /* Minimal TET since model starts*/
double maxTET; /* Maximal TET since model starts*/
double TET; /* average TET since model starts*/
} SLRTTET_T;
SLRTTET_T slrtTETViaXCP[1];
void SLRT_update_TET(const int tid, const double mdltime, const double currTET)
{
if (tid >= 1 ) {
printf("Error: task ID %d is out of range. This model has %d tasks", tid, 1);
return;
}
if (mdltime > 1.0e-9 ) { /* > machine epsilon */
if (currTET < slrtTETViaXCP[tid].minTET ) {
slrtTETViaXCP[tid].minTET = currTET;
}
if (currTET > slrtTETViaXCP[tid].maxTET ) {
slrtTETViaXCP[tid].maxTET = currTET;
}
/* Basic Exponential Smoothing */
#define ALPHA_FACTOR (0.01)
slrtTETViaXCP[tid].TET = slrtTETViaXCP[tid].TET * ( 1.0 - ALPHA_FACTOR )
+ currTET * ALPHA_FACTOR;
#undef ALPHA_FACTOR
} else { /*first time*/
slrtTETViaXCP[tid].minTET = currTET;
slrtTETViaXCP[tid].maxTET = currTET;
slrtTETViaXCP[tid].TET = currTET;
}
}

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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* 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 */

View File

@ -0,0 +1,4 @@
#include "can_message.h"
const CAN_DATATYPE CAN_DATATYPE_GROUND = { 0, 0, 0, 0, 0, 0.0, { 0, 0, 0, 0, 0,
0, 0, 0 } };

Binary file not shown.

View File

@ -0,0 +1,13 @@
MODEL=CANTest
NUMST=1
NCSTATES=0
HAVESTDIO
CLASSIC_INTERFACE=1
ALLOCATIONFCN=0
TID01EQ=0
EXT_MODE=1
ONESTEPFCN=0
TERMFCN=1
MULTI_INSTANCE_CODE=0
INTEGER_CODE=0
MT=0

View File

@ -0,0 +1,10 @@
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCVARSALL.BAT " x86
cd .
nmake -f CANTest.mk COMBINE_OUTPUT_UPDATE_FCNS=0 INCLUDE_MDL_TERMINATE_FCN=1 MULTI_INSTANCE_CODE=0 ISPROTECTINGMODEL=NOTPROTECTING
@if errorlevel 1 goto error_exit
exit /B 0
:error_exit
echo The make command returned an error of %errorlevel%
An_error_occurred_during_the_call_to_make

View File

@ -0,0 +1,373 @@
# Copyright 1996-2017 The MathWorks, Inc.
#
# File : slrt_vc.tmf
#
#
# Abstract:
# Makefile for building a Simulink Real-Time application from a Simulink
# model using generated C code and a supported Microsoft Visual C/C++
# compiler
#
# The following defines can be used to modify the behavior of the
# build:
#
# OPT_OPTS - Optimization option. Default is -O2. To enable
# debugging specify as OPT_OPTS=-Zd.
# OPTS - User specific options.
# USER_SRCS - Additional user sources, such as files needed by
# S-functions.
# USER_INCLUDES - Additional include paths
# (i.e. USER_INCLUDES="-Iwhere-ever -Iwhere-ever2")
#------------------------ Macros read by make_rtw -----------------------------
#
# The following macros are read by the code generation build procedure:
#
# MAKECMD - This is the command used to invoke the make utility
# HOST - What platform this template makefile is targeted for
# (i.e. PC or UNIX)
# BUILD - Invoke make from the code generation build procedure
# (yes/no)?
# SYS_TARGET_FILE - Name of system target file.
HOST = PC
BUILD = yes
MAKECMD = nmake
SYS_TARGET_FILE = slrt.tlc
COMPILER_TOOL_CHAIN = vc
# Opt in to simplified format by specifying compatible Toolchain
TOOLCHAIN_NAME = [\
"Microsoft Visual C++ 2017 v15.0 | nmake (64-bit Windows)", \
"Microsoft Visual C++ 2015 v14.0 | nmake (64-bit Windows)", \
"Microsoft Visual C++ 2013 v12.0 | nmake (64-bit Windows)"]
DEBUG_BUILD = 0
#---------------------- Tokens expanded by make_rtw ---------------------------
#
# The following tokens, when wrapped with "|>" and "|<" are expanded by the
# build procedure.
#
# MODEL_NAME - Name of the Simulink block diagram
# MODEL_MODULES - Any additional generated source modules
# MAKEFILE_NAME - Name of makefile created from template makefile <model>.mk
# MATLAB_ROOT - Path to were MATLAB is installed.
# MATLAB_BIN - Path to MATLAB executable.
# S_FUNCTIONS - List of S-functions.
# S_FUNCTIONS_LIB - List of S-functions libraries to link.
# NUMST - Number of sample times
# TID01EQ - yes (1) or no (0): Are sampling rates of continuous task
# (tid=0) and 1st discrete task equal.
# NCSTATES - Number of continuous states
# BUILDARGS - Options passed in at the command line.
# MULTITASKING - yes (1) or no (0): Is solver mode multitasking
# MEX_OPT_FILE - Original file name of the mexopt.bat.
MODEL = CANTest
MODULES = rt_matrx.c rt_printf.c rt_logging.c CANTest.c CANTest_capi.c CANTest_data.c CANTest_xcp.c CANTest_xcp_TET.c can_datatype_ground.c rtGetInf.c rtGetNaN.c rt_nonfinite.c xpc_datatype_ground.c rt_logging_mmi.c rtw_modelmap_utils.c host_timer_x86.c xpc_code_profiling_utility_functions.c
MAKEFILE = CANTest.mk
MATLAB_ROOT = C:\Program Files\MATLAB\R2018a
ALT_MATLAB_ROOT = C:\PROGRA~1\MATLAB\R2018a
MATLAB_BIN = C:\Program Files\MATLAB\R2018a\bin
ALT_MATLAB_BIN = C:\PROGRA~1\MATLAB\R2018a\bin
MASTER_ANCHOR_DIR =
START_DIR = D:\Project\DelieveryMobility\WheelSpdCont\Day_20240711
S_FUNCTIONS = sg_IO613_setup_s.cpp sg_IO61X_read_s.cpp sg_IO61X_write_s.cpp
S_FUNCTIONS_LIB = C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\common\libsg\libsg_MSVC120_vc.lib C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\include\IO61X_Library_MSVC120_vc.lib
NUMST = 1
TID01EQ = 0
NCSTATES = 0
BUILDARGS = COMBINE_OUTPUT_UPDATE_FCNS=0 INCLUDE_MDL_TERMINATE_FCN=1 MULTI_INSTANCE_CODE=0 ISPROTECTINGMODEL=NOTPROTECTING
MULTITASKING = 0
MEX_OPT_FILE = -f "C:\Users\okxan\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64.xml"
MODELREFS =
SHARED_SRC =
SHARED_SRC_DIR =
SHARED_BIN_DIR =
SHARED_LIB =
VISUAL_VER = 12.0
TGT_FCN_LIB = XPC_BLAS
OPTIMIZATION_FLAGS = /O2 /Oy-
ADDITIONAL_LDFLAGS =
DEFINES_CUSTOM =
#--------------------------- Model and reference models -----------------------
MODELLIB = CANTestlib.lib
MODELREF_LINK_LIBS =
MODELREF_LINK_RSPFILE = CANTest_ref.rsp
MODELREF_INC_PATH =
RELATIVE_PATH_TO_ANCHOR = ..\..
# ..\..\..\..\..\..\.. or .. or even . if you want it
MODELREF_TARGET_TYPE = NONE
!if "$(MATLAB_ROOT)" != "$(ALT_MATLAB_ROOT)"
MATLAB_ROOT = $(ALT_MATLAB_ROOT)
!endif
!if "$(MATLAB_BIN)" != "$(ALT_MATLAB_BIN)"
MATLAB_BIN = $(ALT_MATLAB_BIN)
!endif
MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64
#--------------------------- Tool Specifications ------------------------------
CPU=i386
!include $(MATLAB_ROOT)\rtw\c\tools\vctools.mak
CMD_FILE = $(MODEL).rsp
#------------------------------ Include/Lib Path ------------------------------
MATLAB_INCLUDES = $(MATLAB_ROOT)\simulink\include
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\extern\include
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\src
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\libsrc
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\src\ext_mode\common
# Additional file include paths
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(START_DIR)
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(START_DIR)\CANTest_slrt_rtw
MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1
MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\include
MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\common\libsg
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\toolbox\shared\can\src\scanutil
MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\include
XPC_BASE = $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build
XPC_INCLUDES = $(XPC_BASE)\include;$(XPC_BASE)\xpcblocks\include
XPC_INCLUDES = $(XPC_INCLUDES);$(XPC_BASE)\xpcblocks\thirdpartydrivers
XPC_INCLUDES = $(XPC_INCLUDES);$(MATLAB_ROOT)\toolbox\slrt\target\kernel\include
INCLUDE = .;..;$(XPC_INCLUDES);$(MATLAB_INCLUDES);$(INCLUDE);$(MODELREF_INC_PATH)
!if "$(SHARED_SRC_DIR)" != ""
INCLUDE = $(INCLUDE);$(SHARED_SRC_DIR)
!endif
#----------------- Compiler and Linker Options --------------------------------
# Optimization Options
DEFAULT_OPT_OPTS = /W3 /Z7
OPT_OPTS = $(DEFAULT_OPT_OPTS)
# General User Options
OPTS =
#/GD
CC_OPTS = $(OPTS) $(OPT_OPTS) /c /nologo $(OPTIMIZATION_FLAGS)
CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DRT -DNUMST=$(NUMST) \
-DTID01EQ=$(TID01EQ) -DNCSTATES=$(NCSTATES) \
-DMT=$(MULTITASKING) -DHAVESTDIO -DXPCMSVISUALC \
-DXPCCALLCONV=__cdecl -DUSE_RTMODEL -DERT_CORE \
$(DEFINES_CUSTOM)
# Uncomment this line to move warning level to W4
# cflags = $(cflags:W3=W4)
CFLAGS = $(cvarsmt) /wd4996 /fp:fast /arch:SSE2 $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES)
CPPFLAGS = $(cflags) $(cvarsmt) /wd4996 /fp:fast /arch:SSE2 /EHsc \
$(CPP_OPTS) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES)
!if "$(SLRTFTZOFF)" != ""
CFLAGS = $(cvarsmt) $(CFLAGS_VERSPECIFIC) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES)
CPPFLAGS = $(cflags) $(cvarsmt) $(CPPFLAGS_VERSPECIFIC) /EHsc \
$(CPP_OPTS) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES)
!endif
LDFLAGS = /NOLOGO /DLL /SUBSYSTEM:CONSOLE /DEF:xpcvcdll.def /Include:_malloc /MAP /DEBUG /IGNORE:4099 $(ADDITIONAL_LDFLAGS)
#----------------------------- Source Files -----------------------------------
#Standalone executable
!if "$(MODELREF_TARGET_TYPE)" == "NONE"
PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\$(MODEL).dlm
SLRT_SRCS = xpctarget.c appmappingData.c legacy_stdio.c
REQ_SRCS = $(MODULES) $(SLRT_SRCS)
#Model Reference Target
!else
PRODUCT = $(MODELLIB)
REQ_SRCS = $(MODULES)
!endif
USER_SRCS =
SRCS = $(REQ_SRCS) $(USER_SRCS) $(S_FUNCTIONS)
OBJS_CPP_UPPER = $(SRCS:.CPP=.obj)
OBJS_CPP_LOWER = $(OBJS_CPP_UPPER:.cpp=.obj)
OBJS_C_UPPER = $(OBJS_CPP_LOWER:.C=.obj)
OBJS = $(OBJS_C_UPPER:.c=.obj)
SHARED_OBJS = $(SHARED_BIN_DIR)\*.obj
# Special handling for object files that are not in the pre-generated linker
# response file
SLRT_OBJS = $(SLRT_SRCS:.c=.obj)
# ------------------------- Libraries ------------------------------
LIBS =
LIBS = $(LIBS) xpcruntime.lib
!if "$(TGT_FCN_LIB)" == "XPC_BLAS"
BLASLIBS = $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\lib\libatlas.a $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\lib\libcblas.a
!else
BLASLIBS =
!endif
#--------------------------------- Rules --------------------------------------
!if "$(MODELREF_TARGET_TYPE)" == "NONE"
#--- Stand-alone model ---
$(RELATIVE_PATH_TO_ANCHOR)\$(MODEL).dlm : $(MODEL)_slrt.dll
$(MATLAB_ROOT)\toolbox\slrt\target\thirdparty\OnTime\bin\mkusrdlm -c+ -q+ $(MODEL)_slrt.dll $(RELATIVE_PATH_TO_ANCHOR)\$(MODEL)
@cmd /C "echo ### Created DLM $@"
@del $(MODEL)_slrt.lib
$(MODEL)_slrt.dll : set_environment_variables $(OBJS) $(SHARED_LIB) $(LIBS) $(MODELREF_LINK_LIBS)
@cmd /C "echo ### Linking ..."
$(LD) $(LDFLAGS) $(BLASLIBS) $(LIBS) $(S_FUNCTIONS_LIB) $(CANLIB) $(SHARED_LIB) $(SLRT_OBJS) @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) -out:$@
@cmd /C "echo ### Created DLL $@"
!else
#--- Model reference Target ---
$(PRODUCT) : set_environment_variables $(OBJS) $(SHARED_LIB) $(LIBS)
@cmd /C "echo ### Linking ..."
$(LD) -lib /OUT:$(MODELLIB) @$(CMD_FILE) $(S_FUNCTIONS_LIB) $(BLASLIBS)
@cmd /C "echo ### Created static library $(MODELLIB)"
!endif
{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
xpcruntime.lib: xpcimports.obj xpcPCFunctions.obj
$(LIBCMD) /nologo /out:$@ $**
# Additional sources
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(MATLAB_ROOT)\simulink\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{..}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(MATLAB_ROOT)\toolbox\coder\profile\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\src}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{$(MATLAB_ROOT)\rtw\c\src}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{$(MATLAB_ROOT)\simulink\src}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{..}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{$(MATLAB_ROOT)\toolbox\coder\profile\src}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
# Look in simulink/src helper files
{$(MATLAB_ROOT)\simulink\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
# Libraries:
# Put this rule last, otherwise nmake will check toolboxes first
{$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\include}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
xpctarget.obj : $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src\xpctarget.c xpcoptions.h
@cmd /C "echo ### Compiling xpctarget.c"
$(CC) $(CFLAGS) $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src\xpctarget.c
{$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\thirdpartydrivers}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{..}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
{$(RELATIVE_PATH_TO_ANCHOR)}.c.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CFLAGS) $<
{$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj :
@cmd /C "echo ### Compiling $<"
$(CC) $(CPPFLAGS) $<
!if "$(SHARED_LIB)" != ""
$(SHARED_LIB) : $(SHARED_SRC)
@cmd /C "echo ### Creating $@"
@$(CC) $(CFLAGS) -Fo$(SHARED_BIN_DIR)\ $?
@$(LIBCMD) /nologo /out:$@ $(SHARED_OBJS)
@cmd /C "echo ### $@ Created"
!endif
set_environment_variables:
@set INCLUDE=$(INCLUDE)
@set LIB=$(LIB)
#----------------------------- Dependencies -----------------------------------
$(OBJS) : $(MAKEFILE) rtw_proj.tmw
xpcPCFunctions.obj xpcimports.obj: $(MAKEFILE) rtw_proj.tmw

View File

@ -0,0 +1,20 @@
rt_matrx.obj
rt_printf.obj
rt_logging.obj
CANTest.obj
CANTest_capi.obj
CANTest_data.obj
CANTest_xcp.obj
CANTest_xcp_TET.obj
can_datatype_ground.obj
rtGetInf.obj
rtGetNaN.obj
rt_nonfinite.obj
xpc_datatype_ground.obj
rt_logging_mmi.obj
rtw_modelmap_utils.obj
host_timer_x86.obj
xpc_code_profiling_utility_functions.obj
sg_IO613_setup_s.obj
sg_IO61X_read_s.obj
sg_IO61X_write_s.obj

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
#include "slrtappmapping.h"
#include "./maps/CANTest.map"
const AppMapInfo appInfo[] =
{
{ /* Idx 0, <CANTest> */
{ /* SignalMapInfo */
CANTest_BIOMAP,
CANTest_LBLMAP,
CANTest_SIDMAP,
CANTest_SBIO,
CANTest_SLBL,
{0,22},
23,
},
{ /* ParamMapInfo */
CANTest_PTIDSMAP,
CANTest_PTNAMESMAP,
CANTest_SPTMAP,
{0,51},
52,
},
"CANTest",
"",
"CANTest",
3,
CANTest_dtmap,
},
};
int getNumRef(void){
return(sizeof(appInfo) / sizeof(AppMapInfo));
}

View File

@ -0,0 +1,312 @@
const signalNameMap CANTest_BIOMAP[] =
{
{0,0,1},
{1,1,1},
{2,2,1},
{3,3,1},
{10,10,1},
{5,5,1},
{6,6,1},
{7,7,1},
{8,8,1},
{9,9,1},
{4,4,1},
{14,14,1},
{15,15,1},
{16,16,1},
{17,17,1},
{18,18,1},
{19,19,1},
{20,20,1},
{21,21,1},
{22,22,1},
{11,11,1},
{12,12,1},
{13,13,1},
{-1, -1,23}
};
const signalLabelMap CANTest_LBLMAP[] =
{
{0,0,1},
{1,1,1},
{10,10,1},
{11,11,1},
{12,12,1},
{13,13,1},
{14,14,1},
{15,15,1},
{16,16,1},
{17,17,1},
{18,18,1},
{19,19,1},
{20,20,1},
{21,21,1},
{22,22,1},
{7,7,1},
{4,4,1},
{6,6,1},
{9,9,1},
{8,8,1},
{2,2,1},
{5,5,1},
{3,3,1},
{-1, -1,23}
};
const signalIdMap CANTest_SIDMAP[] =
{
{0,0,1},
{1,1,1},
{2,2,1},
{3,3,1},
{4,4,1},
{5,5,1},
{6,6,1},
{7,7,1},
{8,8,1},
{9,9,1},
{10,10,1},
{11,11,1},
{12,12,1},
{13,13,1},
{14,14,1},
{15,15,1},
{16,16,1},
{17,17,1},
{18,18,1},
{19,19,1},
{20,20,1},
{21,21,1},
{22,22,1},
{-1, -1,23}
};
const SortedBlockSignals CANTest_SBIO[] ={
0,
1,
2,
3,
10,
5,
6,
7,
8,
9,
4,
14,
15,
16,
17,
18,
19,
20,
21,
22,
11,
12,
13,
-1
};
const SortedBlockLabels CANTest_SLBL[] ={
0,
1,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
7,
4,
6,
9,
8,
2,
5,
3,
-1
};
const OldSortedBlockParameters CANTest_PTIDSMAP[] ={
{0,0},
{1,1},
{2,2},
{3,3},
{4,4},
{5,5},
{6,6},
{7,7},
{8,8},
{9,9},
{10,10},
{11,11},
{12,12},
{13,13},
{14,14},
{15,15},
{16,16},
{17,17},
{18,18},
{19,19},
{20,20},
{21,21},
{22,22},
{23,23},
{24,24},
{25,25},
{26,26},
{27,27},
{28,28},
{29,29},
{30,30},
{31,31},
{32,32},
{33,33},
{34,34},
{35,35},
{36,36},
{37,37},
{38,38},
{39,39},
{40,40},
{41,41},
{42,42},
{43,43},
{44,44},
{45,45},
{46,46},
{47,47},
{48,48},
{49,49},
{50,50},
{51,51},
{-1,-1},
};
const OldSortedBlockParameters CANTest_PTNAMESMAP[] ={
{51,51},
{0,0},
{1,1},
{2,2},
{3,3},
{4,4},
{5,5},
{6,6},
{15,15},
{16,16},
{17,17},
{18,18},
{19,19},
{20,20},
{21,21},
{22,22},
{23,23},
{24,24},
{7,7},
{25,25},
{26,26},
{27,27},
{28,28},
{29,29},
{8,8},
{9,9},
{10,10},
{11,11},
{12,12},
{13,13},
{14,14},
{39,39},
{40,40},
{41,41},
{42,42},
{43,43},
{44,44},
{45,45},
{34,34},
{35,35},
{36,36},
{37,37},
{38,38},
{30,30},
{33,33},
{31,31},
{46,46},
{49,49},
{50,50},
{47,47},
{48,48},
{32,32},
{-1,-1},
};
const SortedBlockParameters CANTest_SPTMAP[] ={
51,
0,
1,
2,
3,
4,
5,
6,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
7,
25,
26,
27,
28,
29,
8,
9,
10,
11,
12,
13,
14,
39,
40,
41,
42,
43,
44,
45,
34,
35,
36,
37,
38,
30,
33,
31,
46,
49,
50,
47,
48,
32,
-1
};
const EnumElemMapInfo CANTest_dtmap[] =
{
{
NULL,NULL,0
},
{
NULL,NULL,0
},
{
NULL,NULL,0
},
};

View File

@ -0,0 +1,4 @@
Simulink Coder project for CANTest using C:\Program Files\MATLAB\R2018a\toolbox\slrt\rtw\slrt_vc.tmf. MATLAB root = C:\Program Files\MATLAB\R2018a. SimStruct date: 06-2-2018 14:40:31
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\slrt\CANTest\tmwinternal\binfo.mat

View File

@ -0,0 +1,54 @@
#ifndef __CANTest_XPCOPTIONS_H___
#define __CANTest_XPCOPTIONS_H___
#include "simstruc_types.h"
#ifndef MT
#define MT 0 /* MT may be undefined by simstruc_types.h */
#endif
#include "CANTest.h"
#define XPCMDSSUPPORT 0
#define MDSTASKSNUM 0
#define FULLMULTITHREAD 1
#define SIZEOF_PARAMS (-1 * (int)sizeof(P_CANTest_T))
#define SIMMODE 0
#define LOGTET 0
#define LOGBUFSIZE 100000
#define PROFILINGFLAG 1
#define EVENTNUMBER 5000
#define IRQ_NO 0
#define IO_IRQ 0
#define WWW_ACCESS_LEVEL 0
#define CPUCLOCK 0
#define MAXOVERLOAD 0
#define MAXOVERLOADLEN 0
#define XPCMODELSTACKSIZEKB 2048
#define XPCSTARTUPFLAG 1
#define PTLOADPARAMFLAG 0
#define DOUBLEBUFFERING 0
#define SLRTFTZOFFFLAG 0
/* Change all stepsize using the newBaseRateStepSize */
void CANTest_ChangeStepSize(real_T newBaseRateStepSize, RT_MODEL_CANTest_T *
const CANTest_M)
{
real_T ratio = newBaseRateStepSize / 0.002;
/* update non-zore stepsize of periodic
* sample time. Stepsize of asynchronous
* sample time is not changed in this function */
CANTest_M->Timing.stepSize0 = CANTest_M->Timing.stepSize0 * ratio;
CANTest_M->Timing.stepSize = CANTest_M->Timing.stepSize * ratio;
}
void XPCCALLCONV changeStepSize(real_T stepSize)
{
/* Change all stepsize using the newBaseRateStepSize */
CANTest_ChangeStepSize(stepSize, CANTest_M);
}
void XPCCALLCONV SLRTSetErrorStatus(const char * errMsg)
{
rtmSetErrorStatus(CANTest_M, errMsg);
}
#endif /* __CANTest_XPCOPTIONS_H___ */

View File

@ -0,0 +1 @@
const char ptsetfilename[] = "";

View File

@ -0,0 +1,4 @@
const unsigned char xmlfile[] = {
"NULL"
};
const int *xmlsize = (int *)0;

View File

@ -0,0 +1,10 @@
EXPORTS
MdlStart
MdlTerminate
MdlOutputs
MdlUpdate
getrlmdlinfo
getDLMVersion
SLRT_update_TET

View File

@ -0,0 +1 @@
{"model_checksum":[0,0,0,0],"num_entries":0,"channels":[]}

View File

@ -0,0 +1 @@
CANTest.c can_datatype_ground.c xpc_datatype_ground.c rt_logging_mmi.c rtw_modelmap_utils.c

View File

@ -0,0 +1,597 @@
/*
* multiword_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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef MULTIWORD_TYPES_H
#define MULTIWORD_TYPES_H
#include "rtwtypes.h"
/*
* Definitions supporting external data access
*/
typedef int64_T chunk_T;
typedef uint64_T uchunk_T;
/*
* MultiWord supporting definitions
*/
typedef long long longlong_T;
/*
* MultiWord types
*/
typedef struct {
uint64_T chunks[2];
} int128m_T;
typedef struct {
int128m_T re;
int128m_T im;
} cint128m_T;
typedef struct {
uint64_T chunks[2];
} uint128m_T;
typedef struct {
uint128m_T re;
uint128m_T im;
} cuint128m_T;
typedef struct {
uint64_T chunks[3];
} int192m_T;
typedef struct {
int192m_T re;
int192m_T im;
} cint192m_T;
typedef struct {
uint64_T chunks[3];
} uint192m_T;
typedef struct {
uint192m_T re;
uint192m_T im;
} cuint192m_T;
typedef struct {
uint64_T chunks[4];
} int256m_T;
typedef struct {
int256m_T re;
int256m_T im;
} cint256m_T;
typedef struct {
uint64_T chunks[4];
} uint256m_T;
typedef struct {
uint256m_T re;
uint256m_T im;
} cuint256m_T;
typedef struct {
uint64_T chunks[5];
} int320m_T;
typedef struct {
int320m_T re;
int320m_T im;
} cint320m_T;
typedef struct {
uint64_T chunks[5];
} uint320m_T;
typedef struct {
uint320m_T re;
uint320m_T im;
} cuint320m_T;
typedef struct {
uint64_T chunks[6];
} int384m_T;
typedef struct {
int384m_T re;
int384m_T im;
} cint384m_T;
typedef struct {
uint64_T chunks[6];
} uint384m_T;
typedef struct {
uint384m_T re;
uint384m_T im;
} cuint384m_T;
typedef struct {
uint64_T chunks[7];
} int448m_T;
typedef struct {
int448m_T re;
int448m_T im;
} cint448m_T;
typedef struct {
uint64_T chunks[7];
} uint448m_T;
typedef struct {
uint448m_T re;
uint448m_T im;
} cuint448m_T;
typedef struct {
uint64_T chunks[8];
} int512m_T;
typedef struct {
int512m_T re;
int512m_T im;
} cint512m_T;
typedef struct {
uint64_T chunks[8];
} uint512m_T;
typedef struct {
uint512m_T re;
uint512m_T im;
} cuint512m_T;
typedef struct {
uint64_T chunks[9];
} int576m_T;
typedef struct {
int576m_T re;
int576m_T im;
} cint576m_T;
typedef struct {
uint64_T chunks[9];
} uint576m_T;
typedef struct {
uint576m_T re;
uint576m_T im;
} cuint576m_T;
typedef struct {
uint64_T chunks[10];
} int640m_T;
typedef struct {
int640m_T re;
int640m_T im;
} cint640m_T;
typedef struct {
uint64_T chunks[10];
} uint640m_T;
typedef struct {
uint640m_T re;
uint640m_T im;
} cuint640m_T;
typedef struct {
uint64_T chunks[11];
} int704m_T;
typedef struct {
int704m_T re;
int704m_T im;
} cint704m_T;
typedef struct {
uint64_T chunks[11];
} uint704m_T;
typedef struct {
uint704m_T re;
uint704m_T im;
} cuint704m_T;
typedef struct {
uint64_T chunks[12];
} int768m_T;
typedef struct {
int768m_T re;
int768m_T im;
} cint768m_T;
typedef struct {
uint64_T chunks[12];
} uint768m_T;
typedef struct {
uint768m_T re;
uint768m_T im;
} cuint768m_T;
typedef struct {
uint64_T chunks[13];
} int832m_T;
typedef struct {
int832m_T re;
int832m_T im;
} cint832m_T;
typedef struct {
uint64_T chunks[13];
} uint832m_T;
typedef struct {
uint832m_T re;
uint832m_T im;
} cuint832m_T;
typedef struct {
uint64_T chunks[14];
} int896m_T;
typedef struct {
int896m_T re;
int896m_T im;
} cint896m_T;
typedef struct {
uint64_T chunks[14];
} uint896m_T;
typedef struct {
uint896m_T re;
uint896m_T im;
} cuint896m_T;
typedef struct {
uint64_T chunks[15];
} int960m_T;
typedef struct {
int960m_T re;
int960m_T im;
} cint960m_T;
typedef struct {
uint64_T chunks[15];
} uint960m_T;
typedef struct {
uint960m_T re;
uint960m_T im;
} cuint960m_T;
typedef struct {
uint64_T chunks[16];
} int1024m_T;
typedef struct {
int1024m_T re;
int1024m_T im;
} cint1024m_T;
typedef struct {
uint64_T chunks[16];
} uint1024m_T;
typedef struct {
uint1024m_T re;
uint1024m_T im;
} cuint1024m_T;
typedef struct {
uint64_T chunks[17];
} int1088m_T;
typedef struct {
int1088m_T re;
int1088m_T im;
} cint1088m_T;
typedef struct {
uint64_T chunks[17];
} uint1088m_T;
typedef struct {
uint1088m_T re;
uint1088m_T im;
} cuint1088m_T;
typedef struct {
uint64_T chunks[18];
} int1152m_T;
typedef struct {
int1152m_T re;
int1152m_T im;
} cint1152m_T;
typedef struct {
uint64_T chunks[18];
} uint1152m_T;
typedef struct {
uint1152m_T re;
uint1152m_T im;
} cuint1152m_T;
typedef struct {
uint64_T chunks[19];
} int1216m_T;
typedef struct {
int1216m_T re;
int1216m_T im;
} cint1216m_T;
typedef struct {
uint64_T chunks[19];
} uint1216m_T;
typedef struct {
uint1216m_T re;
uint1216m_T im;
} cuint1216m_T;
typedef struct {
uint64_T chunks[20];
} int1280m_T;
typedef struct {
int1280m_T re;
int1280m_T im;
} cint1280m_T;
typedef struct {
uint64_T chunks[20];
} uint1280m_T;
typedef struct {
uint1280m_T re;
uint1280m_T im;
} cuint1280m_T;
typedef struct {
uint64_T chunks[21];
} int1344m_T;
typedef struct {
int1344m_T re;
int1344m_T im;
} cint1344m_T;
typedef struct {
uint64_T chunks[21];
} uint1344m_T;
typedef struct {
uint1344m_T re;
uint1344m_T im;
} cuint1344m_T;
typedef struct {
uint64_T chunks[22];
} int1408m_T;
typedef struct {
int1408m_T re;
int1408m_T im;
} cint1408m_T;
typedef struct {
uint64_T chunks[22];
} uint1408m_T;
typedef struct {
uint1408m_T re;
uint1408m_T im;
} cuint1408m_T;
typedef struct {
uint64_T chunks[23];
} int1472m_T;
typedef struct {
int1472m_T re;
int1472m_T im;
} cint1472m_T;
typedef struct {
uint64_T chunks[23];
} uint1472m_T;
typedef struct {
uint1472m_T re;
uint1472m_T im;
} cuint1472m_T;
typedef struct {
uint64_T chunks[24];
} int1536m_T;
typedef struct {
int1536m_T re;
int1536m_T im;
} cint1536m_T;
typedef struct {
uint64_T chunks[24];
} uint1536m_T;
typedef struct {
uint1536m_T re;
uint1536m_T im;
} cuint1536m_T;
typedef struct {
uint64_T chunks[25];
} int1600m_T;
typedef struct {
int1600m_T re;
int1600m_T im;
} cint1600m_T;
typedef struct {
uint64_T chunks[25];
} uint1600m_T;
typedef struct {
uint1600m_T re;
uint1600m_T im;
} cuint1600m_T;
typedef struct {
uint64_T chunks[26];
} int1664m_T;
typedef struct {
int1664m_T re;
int1664m_T im;
} cint1664m_T;
typedef struct {
uint64_T chunks[26];
} uint1664m_T;
typedef struct {
uint1664m_T re;
uint1664m_T im;
} cuint1664m_T;
typedef struct {
uint64_T chunks[27];
} int1728m_T;
typedef struct {
int1728m_T re;
int1728m_T im;
} cint1728m_T;
typedef struct {
uint64_T chunks[27];
} uint1728m_T;
typedef struct {
uint1728m_T re;
uint1728m_T im;
} cuint1728m_T;
typedef struct {
uint64_T chunks[28];
} int1792m_T;
typedef struct {
int1792m_T re;
int1792m_T im;
} cint1792m_T;
typedef struct {
uint64_T chunks[28];
} uint1792m_T;
typedef struct {
uint1792m_T re;
uint1792m_T im;
} cuint1792m_T;
typedef struct {
uint64_T chunks[29];
} int1856m_T;
typedef struct {
int1856m_T re;
int1856m_T im;
} cint1856m_T;
typedef struct {
uint64_T chunks[29];
} uint1856m_T;
typedef struct {
uint1856m_T re;
uint1856m_T im;
} cuint1856m_T;
typedef struct {
uint64_T chunks[30];
} int1920m_T;
typedef struct {
int1920m_T re;
int1920m_T im;
} cint1920m_T;
typedef struct {
uint64_T chunks[30];
} uint1920m_T;
typedef struct {
uint1920m_T re;
uint1920m_T im;
} cuint1920m_T;
typedef struct {
uint64_T chunks[31];
} int1984m_T;
typedef struct {
int1984m_T re;
int1984m_T im;
} cint1984m_T;
typedef struct {
uint64_T chunks[31];
} uint1984m_T;
typedef struct {
uint1984m_T re;
uint1984m_T im;
} cuint1984m_T;
typedef struct {
uint64_T chunks[32];
} int2048m_T;
typedef struct {
int2048m_T re;
int2048m_T im;
} cint2048m_T;
typedef struct {
uint64_T chunks[32];
} uint2048m_T;
typedef struct {
uint2048m_T re;
uint2048m_T im;
} cuint2048m_T;
#endif /* MULTIWORD_TYPES_H */

View File

@ -0,0 +1,144 @@
/*
* rtGetInf.c
*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finite, Inf
*/
#include "rtGetInf.h"
#define NumBitsPerChar 8U
/*
* 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,32 @@
/*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtGetInf_h_
#define RTW_HEADER_rtGetInf_h_
#include <stddef.h>
#include "rtwtypes.h"
#include "rt_nonfinite.h"
extern real_T rtGetInf(void);
extern real32_T rtGetInfF(void);
extern real_T rtGetMinusInf(void);
extern real32_T rtGetMinusInfF(void);
#endif /* RTW_HEADER_rtGetInf_h_ */

View File

@ -0,0 +1,104 @@
/*
* rtGetNaN.c
*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finite, NaN
*/
#include "rtGetNaN.h"
#define NumBitsPerChar 8U
/*
* 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 } };
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,30 @@
/*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtGetNaN_h_
#define RTW_HEADER_rtGetNaN_h_
#include <stddef.h>
#include "rtwtypes.h"
#include "rt_nonfinite.h"
extern real_T rtGetNaN(void);
extern real32_T rtGetNaNF(void);
#endif /* RTW_HEADER_rtGetNaN_h_ */

View File

@ -0,0 +1,53 @@
/*
* rt_defines.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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_rt_defines_h_
#define RTW_HEADER_rt_defines_h_
/*===========*
* Constants *
*===========*/
#define RT_PI 3.14159265358979323846
#define RT_PIF 3.1415927F
#define RT_LN_10 2.30258509299404568402
#define RT_LN_10F 2.3025851F
#define RT_LOG10E 0.43429448190325182765
#define RT_LOG10EF 0.43429449F
#define RT_E 2.7182818284590452354
#define RT_EF 2.7182817F
/*
* UNUSED_PARAMETER(x)
* Used to specify that a function parameter (argument) is required but not
* accessed by the function body.
*/
#ifndef UNUSED_PARAMETER
# if defined(__LCC__)
# define UNUSED_PARAMETER(x) /* do nothing */
# else
/*
* This is the semi-ANSI standard way of indicating that an
* unused function parameter is required.
*/
# define UNUSED_PARAMETER(x) (void) (x)
# endif
#endif
#endif /* RTW_HEADER_rt_defines_h_ */

View File

@ -0,0 +1,74 @@
/*
* rt_nonfinite.c
*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
/*
* Abstract:
* Function to initialize non-finites,
* (Inf, NaN and -Inf).
*/
#include "rt_nonfinite.h"
#include "rtGetNaN.h"
#include "rtGetInf.h"
real_T rtInf;
real_T rtMinusInf;
real_T rtNaN;
real32_T rtInfF;
real32_T rtMinusInfF;
real32_T rtNaNF;
/*
* 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)
{
return (boolean_T)((value!=value) ? 1U : 0U);
}
/* Test if single-precision value is not a number */
boolean_T rtIsNaNF(real32_T value)
{
return (boolean_T)(((value!=value) ? 1U : 0U));
}

View File

@ -0,0 +1,58 @@
/*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_rt_nonfinite_h_
#define RTW_HEADER_rt_nonfinite_h_
#include <stddef.h>
#include "rtwtypes.h"
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);
typedef struct {
struct {
uint32_T wordH;
uint32_T wordL;
} words;
} BigEndianIEEEDouble;
typedef struct {
struct {
uint32_T wordL;
uint32_T wordH;
} words;
} LittleEndianIEEEDouble;
typedef struct {
union {
real32_T wordLreal;
uint32_T wordLuint;
} wordL;
} IEEESingle;
#endif /* RTW_HEADER_rt_nonfinite_h_ */

View File

@ -0,0 +1,29 @@
/*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_rtmodel_h_
#define RTW_HEADER_rtmodel_h_
/*
* Includes the appropriate headers when we are using rtModel
*/
#include "CANTest.h"
#define GRTINTERFACE 1
#endif /* RTW_HEADER_rtmodel_h_ */

View File

@ -0,0 +1,4 @@
Simulink Coder project for CANTest using C:\Program Files\MATLAB\R2018a\toolbox\slrt\rtw\slrt_vc.tmf. MATLAB root = C:\Program Files\MATLAB\R2018a. SimStruct date: 06-2-2018 14:40:31
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\slrt\CANTest\tmwinternal\binfo.mat

View File

@ -0,0 +1,79 @@
/*
* 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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTWTYPES_H
#define RTWTYPES_H
#include "tmwtypes.h"
#include "simstruc_types.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
#ifndef INT64_T
#define INT64_T
typedef long long int64_T;
#endif
#ifndef UINT64_T
#define UINT64_T
typedef unsigned long long uint64_T;
#endif
/*===========================================================================*
* Additional complex number type definitions *
*===========================================================================*/
#ifndef CINT64_T
#define CINT64_T
typedef struct {
int64_T re;
int64_T im;
} cint64_T;
#endif
#ifndef CUINT64_T
#define CUINT64_T
typedef struct {
uint64_T re;
uint64_T im;
} cuint64_T;
#endif
#endif /* RTWTYPES_H */

Binary file not shown.

View File

@ -0,0 +1,17 @@
function [taskInfo, numtask, isDeploymentDiagram]=slrt_task_info()
taskInfo(1).samplePeriod = 0.002;
taskInfo(1).sampleOffset = 0.0;
taskInfo(1).taskPrio = 9;
taskInfo(1).taskName = 'BaseRate';
taskInfo(1).entryPoints = {};
numtask = 1;
for i = 1:numtask
if ( 0 == isnumeric(taskInfo(i).samplePeriod) )
taskInfo(i).samplePeriod = evalin('base', taskInfo(i).samplePeriod);
end
if ( isempty(taskInfo(i).taskName) )
taskInfo(i).taskName = ['AutoGen' i ];
end
end
isDeploymentDiagram = 0;
end

Binary file not shown.

View File

@ -0,0 +1,54 @@
/*
* File: xpc_code_profiling_utility_functions.c
*
* Code generated for instrumentation.
*
*/
#include "xpc_code_profiling_utility_functions.h"
/* Code instrumentation offset(s) for model */
#define taskTimeStart__offset 0
#define taskTimeEnd__offset 0
void xilUploadProfilingData(uint32_T sectionId)
{
xpceaddEvent(sectionId);
}
/* For real-time, multitasking case this function is stubbed out. */
void xilProfilingTimerFreeze(void)
{
}
/* For real-time, multitasking case this function is stubbed out. */
void xilProfilingTimerUnFreeze(void)
{
}
void taskTimeStart(uint32_T sectionId)
{
/* Send execution profiling data to host */
xilUploadProfilingData(sectionId);
xilProfilingTimerUnFreeze();
}
void taskTimeEnd(uint32_T sectionId)
{
uint32_T sectionIdNeg = ~sectionId;
xilProfilingTimerFreeze();
/* Send execution profiling data to host */
xilUploadProfilingData(sectionIdNeg);
}
/* Code instrumentation method(s) for model */
void taskTimeStart_(uint32_T sectionId)
{
taskTimeStart(taskTimeStart__offset + sectionId);
}
void taskTimeEnd_(uint32_T sectionId)
{
taskTimeEnd(taskTimeEnd__offset + sectionId);
}

View File

@ -0,0 +1,45 @@
/*
* File: xpc_code_profiling_utility_functions.h
*
* Code generated for instrumentation.
*
*/
/* Functions with a C call interface */
#ifdef __cplusplus
extern "C" {
#endif
#include "xpctarget.h"
#ifdef __cplusplus
}
#endif
#include "rtwtypes.h"
/* Upload code instrumentation data point */
void xpceuploadevent(
void* pData, uint32_T numMemUnits, uint32_T sectionId);
/* Called before starting a profiled section of code */
void taskTimeStart(uint32_T);
/* Called on finishing a profiled section of code */
void taskTimeEnd(uint32_T);
/* Uploads data */
void xilUploadProfilingData(uint32_T sectionId);
/* Pause the timer while running code associated with storing
* and uploading the data. */
void xilProfilingTimerFreeze(void);
/* Restart the timer after a pause */
void xilProfilingTimerUnFreeze(void);
/* Code instrumentation method(s) for model */
void taskTimeStart_(uint32_T sectionId);
void taskTimeEnd_(uint32_T sectionId);

View File

@ -0,0 +1,9 @@
#include "xpcdatatypes.h"
const serialfifoptr serialfifoground = { 0, 0, 0 };
const bcmsglist1553 bcmsg1553ground = { 0, 0, 0, 0 };
const bcstatus1553 bcstatground = { 0, 0, 0, 0, 0, 0 };
const bmmsglist1553 bmmsg1553ground = { 0, 0, 0, 0 };

View File

@ -0,0 +1,54 @@
#ifndef __CANTest_XPCOPTIONS_H___
#define __CANTest_XPCOPTIONS_H___
#include "simstruc_types.h"
#ifndef MT
#define MT 0 /* MT may be undefined by simstruc_types.h */
#endif
#include "CANTest.h"
#define XPCMDSSUPPORT 0
#define MDSTASKSNUM 0
#define FULLMULTITHREAD 1
#define SIZEOF_PARAMS (-1 * (int)sizeof(P_CANTest_T))
#define SIMMODE 0
#define LOGTET 0
#define LOGBUFSIZE 100000
#define PROFILINGFLAG 1
#define EVENTNUMBER 5000
#define IRQ_NO 0
#define IO_IRQ 0
#define WWW_ACCESS_LEVEL 0
#define CPUCLOCK 0
#define MAXOVERLOAD 0
#define MAXOVERLOADLEN 0
#define XPCMODELSTACKSIZEKB 2048
#define XPCSTARTUPFLAG 1
#define PTLOADPARAMFLAG 0
#define DOUBLEBUFFERING 0
#define SLRTFTZOFFFLAG 0
/* Change all stepsize using the newBaseRateStepSize */
void CANTest_ChangeStepSize(real_T newBaseRateStepSize, RT_MODEL_CANTest_T *
const CANTest_M)
{
real_T ratio = newBaseRateStepSize / 0.002;
/* update non-zore stepsize of periodic
* sample time. Stepsize of asynchronous
* sample time is not changed in this function */
CANTest_M->Timing.stepSize0 = CANTest_M->Timing.stepSize0 * ratio;
CANTest_M->Timing.stepSize = CANTest_M->Timing.stepSize * ratio;
}
void XPCCALLCONV changeStepSize(real_T stepSize)
{
/* Change all stepsize using the newBaseRateStepSize */
CANTest_ChangeStepSize(stepSize, CANTest_M);
}
void XPCCALLCONV SLRTSetErrorStatus(const char * errMsg)
{
rtmSetErrorStatus(CANTest_M, errMsg);
}
#endif /* __CANTest_XPCOPTIONS_H___ */

View File

@ -0,0 +1,10 @@
EXPORTS
MdlStart
MdlTerminate
MdlOutputs
MdlUpdate
getrlmdlinfo
getDLMVersion
SLRT_update_TET

View File

@ -0,0 +1,48 @@
/*
* zero_crossing_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 "CANTest".
*
* Model version : 1.360
* Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
* C source code generated on : Tue Jul 11 11:56:08 2023
*
* Target selection: slrt.tlc
* Note: GRT includes extra infrastructure and instrumentation for prototyping
* Embedded hardware selection: Generic->32-bit x86 compatible
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef ZERO_CROSSING_TYPES_H
#define ZERO_CROSSING_TYPES_H
#include "rtwtypes.h"
/* Trigger directions: falling, either, and rising */
typedef enum {
FALLING_ZERO_CROSSING = -1,
ANY_ZERO_CROSSING = 0,
RISING_ZERO_CROSSING = 1
} ZCDirection;
/* Previous state of a trigger signal */
typedef uint8_T ZCSigState;
/* Initial value of a trigger zero crossing signal */
#define UNINITIALIZED_ZCSIG 0x03U
#define NEG_ZCSIG 0x02U
#define POS_ZCSIG 0x01U
#define ZERO_ZCSIG 0x00U
/* Current state of a trigger signal */
typedef enum {
FALLING_ZCEVENT = -1,
NO_ZCEVENT = 0,
RISING_ZCEVENT = 1
} ZCEventType;
#endif /* ZERO_CROSSING_TYPES_H */

View File

@ -0,0 +1,236 @@
function bio=CANTestbio
bio = [];
bio(1).blkName='DAQ_In/CAN Read1/p1';
bio(1).sigName='';
bio(1).portIdx=0;
bio(1).dim=[1,1];
bio(1).sigWidth=1;
bio(1).sigAddress='&CANTest_B.CANRead1_o1';
bio(1).ndims=2;
bio(1).size=[];
bio(1).isStruct=false;
bio(getlenBIO) = bio(1);
bio(2).blkName='DAQ_In/CAN Read1/p2';
bio(2).sigName='';
bio(2).portIdx=1;
bio(2).dim=[1,1];
bio(2).sigWidth=1;
bio(2).sigAddress='&CANTest_B.CANRead1_o2';
bio(2).ndims=2;
bio(2).size=[];
bio(2).isStruct=false;
bio(3).blkName='DAQ_In/CAN Unpack2/p1';
bio(3).sigName='RPM';
bio(3).portIdx=0;
bio(3).dim=[1,1];
bio(3).sigWidth=1;
bio(3).sigAddress='&CANTest_B.RPM';
bio(3).ndims=2;
bio(3).size=[];
bio(3).isStruct=false;
bio(4).blkName='DAQ_In/CAN Unpack2/p2';
bio(4).sigName='TQ';
bio(4).portIdx=1;
bio(4).dim=[1,1];
bio(4).sigWidth=1;
bio(4).sigAddress='&CANTest_B.TQ';
bio(4).ndims=2;
bio(4).size=[];
bio(4).isStruct=false;
bio(5).blkName='Mon_Cont/ContM';
bio(5).sigName='ContMode';
bio(5).portIdx=0;
bio(5).dim=[1,1];
bio(5).sigWidth=1;
bio(5).sigAddress='&CANTest_B.ContMode';
bio(5).ndims=2;
bio(5).size=[];
bio(5).isStruct=false;
bio(6).blkName='DAQ_Out/CANBoard/Constant';
bio(6).sigName='Ready';
bio(6).portIdx=0;
bio(6).dim=[1,1];
bio(6).sigWidth=1;
bio(6).sigAddress='&CANTest_B.Ready';
bio(6).ndims=2;
bio(6).size=[];
bio(6).isStruct=false;
bio(7).blkName='DAQ_Out/CANBoard/Constant1';
bio(7).sigName='Gear';
bio(7).portIdx=0;
bio(7).dim=[1,1];
bio(7).sigWidth=1;
bio(7).sigAddress='&CANTest_B.Gear';
bio(7).ndims=2;
bio(7).size=[];
bio(7).isStruct=false;
bio(8).blkName='DAQ_Out/CANBoard/Constant2';
bio(8).sigName='BMS';
bio(8).portIdx=0;
bio(8).dim=[1,1];
bio(8).sigWidth=1;
bio(8).sigAddress='&CANTest_B.BMS';
bio(8).ndims=2;
bio(8).size=[];
bio(8).isStruct=false;
bio(9).blkName='DAQ_Out/CANBoard/Constant3';
bio(9).sigName='PosTQLim';
bio(9).portIdx=0;
bio(9).dim=[1,1];
bio(9).sigWidth=1;
bio(9).sigAddress='&CANTest_B.PosTQLim';
bio(9).ndims=2;
bio(9).size=[];
bio(9).isStruct=false;
bio(10).blkName='DAQ_Out/CANBoard/Constant4';
bio(10).sigName='NegTQLim';
bio(10).portIdx=0;
bio(10).dim=[1,1];
bio(10).sigWidth=1;
bio(10).sigAddress='&CANTest_B.NegTQLim';
bio(10).ndims=2;
bio(10).size=[];
bio(10).isStruct=false;
bio(11).blkName='DAQ_Out/CANBoard/CAN Pack';
bio(11).sigName='';
bio(11).portIdx=0;
bio(11).dim=[1,1];
bio(11).sigWidth=1;
bio(11).sigAddress='&CANTest_B.CANPack';
bio(11).ndims=2;
bio(11).size=[];
bio(11).isStruct=false;
bio(12).blkName='Mon_Cont/LPFM/gain';
bio(12).sigName='';
bio(12).portIdx=0;
bio(12).dim=[1,1];
bio(12).sigWidth=1;
bio(12).sigAddress='&CANTest_B.gain';
bio(12).ndims=2;
bio(12).size=[];
bio(12).isStruct=false;
bio(13).blkName='Mon_Cont/LPFM/gain1';
bio(13).sigName='';
bio(13).portIdx=0;
bio(13).dim=[1,1];
bio(13).sigWidth=1;
bio(13).sigAddress='&CANTest_B.gain1';
bio(13).ndims=2;
bio(13).size=[];
bio(13).isStruct=false;
bio(14).blkName='Mon_Cont/LPFM/gain2';
bio(14).sigName='';
bio(14).portIdx=0;
bio(14).dim=[1,1];
bio(14).sigWidth=1;
bio(14).sigAddress='&CANTest_B.gain2';
bio(14).ndims=2;
bio(14).size=[];
bio(14).isStruct=false;
bio(15).blkName='Mon_Cont/LPFM/Product1';
bio(15).sigName='';
bio(15).portIdx=0;
bio(15).dim=[1,1];
bio(15).sigWidth=1;
bio(15).sigAddress='&CANTest_B.Product1';
bio(15).ndims=2;
bio(15).size=[];
bio(15).isStruct=false;
bio(16).blkName='Mon_Cont/LPFM/Product11';
bio(16).sigName='';
bio(16).portIdx=0;
bio(16).dim=[1,1];
bio(16).sigWidth=1;
bio(16).sigAddress='&CANTest_B.Product11';
bio(16).ndims=2;
bio(16).size=[];
bio(16).isStruct=false;
bio(17).blkName='Mon_Cont/LPFM/Product2';
bio(17).sigName='';
bio(17).portIdx=0;
bio(17).dim=[1,1];
bio(17).sigWidth=1;
bio(17).sigAddress='&CANTest_B.Product2';
bio(17).ndims=2;
bio(17).size=[];
bio(17).isStruct=false;
bio(18).blkName='Mon_Cont/LPFM/Sum1';
bio(18).sigName='';
bio(18).portIdx=0;
bio(18).dim=[1,1];
bio(18).sigWidth=1;
bio(18).sigAddress='&CANTest_B.Sum1';
bio(18).ndims=2;
bio(18).size=[];
bio(18).isStruct=false;
bio(19).blkName='Mon_Cont/LPFM/Sum2';
bio(19).sigName='';
bio(19).portIdx=0;
bio(19).dim=[1,1];
bio(19).sigWidth=1;
bio(19).sigAddress='&CANTest_B.Sum2';
bio(19).ndims=2;
bio(19).size=[];
bio(19).isStruct=false;
bio(20).blkName='Mon_Cont/LPFM/Sum3';
bio(20).sigName='';
bio(20).portIdx=0;
bio(20).dim=[1,1];
bio(20).sigWidth=1;
bio(20).sigAddress='&CANTest_B.Sum3';
bio(20).ndims=2;
bio(20).size=[];
bio(20).isStruct=false;
bio(21).blkName='Mon_Cont/LPFM/Sum4';
bio(21).sigName='';
bio(21).portIdx=0;
bio(21).dim=[1,1];
bio(21).sigWidth=1;
bio(21).sigAddress='&CANTest_B.Sum4';
bio(21).ndims=2;
bio(21).size=[];
bio(21).isStruct=false;
bio(22).blkName='Mon_Cont/LPFM/d';
bio(22).sigName='';
bio(22).portIdx=0;
bio(22).dim=[1,1];
bio(22).sigWidth=1;
bio(22).sigAddress='&CANTest_B.d';
bio(22).ndims=2;
bio(22).size=[];
bio(22).isStruct=false;
bio(23).blkName='Mon_Cont/LPFM/d1';
bio(23).sigName='';
bio(23).portIdx=0;
bio(23).dim=[1,1];
bio(23).sigWidth=1;
bio(23).sigAddress='&CANTest_B.d1';
bio(23).ndims=2;
bio(23).size=[];
bio(23).isStruct=false;
function len = getlenBIO
len = 23;

View File

@ -0,0 +1,838 @@
function pt=CANTestpt
pt = [];
pt(1).blockname = 'DAQ_In/CAN Read1';
pt(1).paramname = 'P1';
pt(1).class = 'scalar';
pt(1).nrows = 1;
pt(1).ncols = 1;
pt(1).subsource = 'SS_DOUBLE';
pt(1).ndims = '2';
pt(1).size = '[]';
pt(1).isStruct = false;
pt(1).symbol = 'CANTest_P.CANRead1_P1';
pt(1).baseaddr = '&CANTest_P.CANRead1_P1';
pt(1).dtname = 'real_T';
pt(getlenPT) = pt(1);
pt(2).blockname = 'DAQ_In/CAN Read1';
pt(2).paramname = 'P2';
pt(2).class = 'scalar';
pt(2).nrows = 1;
pt(2).ncols = 1;
pt(2).subsource = 'SS_DOUBLE';
pt(2).ndims = '2';
pt(2).size = '[]';
pt(2).isStruct = false;
pt(2).symbol = 'CANTest_P.CANRead1_P2';
pt(2).baseaddr = '&CANTest_P.CANRead1_P2';
pt(2).dtname = 'real_T';
pt(3).blockname = 'DAQ_In/CAN Read1';
pt(3).paramname = 'P3';
pt(3).class = 'scalar';
pt(3).nrows = 1;
pt(3).ncols = 1;
pt(3).subsource = 'SS_DOUBLE';
pt(3).ndims = '2';
pt(3).size = '[]';
pt(3).isStruct = false;
pt(3).symbol = 'CANTest_P.CANRead1_P3';
pt(3).baseaddr = '&CANTest_P.CANRead1_P3';
pt(3).dtname = 'real_T';
pt(4).blockname = 'DAQ_In/CAN Read1';
pt(4).paramname = 'P4';
pt(4).class = 'vector';
pt(4).nrows = 1;
pt(4).ncols = 5;
pt(4).subsource = 'SS_DOUBLE';
pt(4).ndims = '2';
pt(4).size = '[]';
pt(4).isStruct = false;
pt(4).symbol = 'CANTest_P.CANRead1_P4';
pt(4).baseaddr = '&CANTest_P.CANRead1_P4[0]';
pt(4).dtname = 'real_T';
pt(5).blockname = 'DAQ_In/CAN Read1';
pt(5).paramname = 'P5';
pt(5).class = 'scalar';
pt(5).nrows = 1;
pt(5).ncols = 1;
pt(5).subsource = 'SS_DOUBLE';
pt(5).ndims = '2';
pt(5).size = '[]';
pt(5).isStruct = false;
pt(5).symbol = 'CANTest_P.CANRead1_P5';
pt(5).baseaddr = '&CANTest_P.CANRead1_P5';
pt(5).dtname = 'real_T';
pt(6).blockname = 'DAQ_In/CAN Read1';
pt(6).paramname = 'P6';
pt(6).class = 'scalar';
pt(6).nrows = 1;
pt(6).ncols = 1;
pt(6).subsource = 'SS_DOUBLE';
pt(6).ndims = '2';
pt(6).size = '[]';
pt(6).isStruct = false;
pt(6).symbol = 'CANTest_P.CANRead1_P6';
pt(6).baseaddr = '&CANTest_P.CANRead1_P6';
pt(6).dtname = 'real_T';
pt(7).blockname = 'DAQ_In/CAN Setup';
pt(7).paramname = 'P1';
pt(7).class = 'scalar';
pt(7).nrows = 1;
pt(7).ncols = 1;
pt(7).subsource = 'SS_DOUBLE';
pt(7).ndims = '2';
pt(7).size = '[]';
pt(7).isStruct = false;
pt(7).symbol = 'CANTest_P.CANSetup_P1';
pt(7).baseaddr = '&CANTest_P.CANSetup_P1';
pt(7).dtname = 'real_T';
pt(8).blockname = 'DAQ_In/CAN Setup';
pt(8).paramname = 'P2';
pt(8).class = 'vector';
pt(8).nrows = 1;
pt(8).ncols = 2;
pt(8).subsource = 'SS_DOUBLE';
pt(8).ndims = '2';
pt(8).size = '[]';
pt(8).isStruct = false;
pt(8).symbol = 'CANTest_P.CANSetup_P2';
pt(8).baseaddr = '&CANTest_P.CANSetup_P2[0]';
pt(8).dtname = 'real_T';
pt(9).blockname = 'DAQ_In/CAN Setup';
pt(9).paramname = 'P3';
pt(9).class = 'scalar';
pt(9).nrows = 1;
pt(9).ncols = 1;
pt(9).subsource = 'SS_DOUBLE';
pt(9).ndims = '2';
pt(9).size = '[]';
pt(9).isStruct = false;
pt(9).symbol = 'CANTest_P.CANSetup_P3';
pt(9).baseaddr = '&CANTest_P.CANSetup_P3';
pt(9).dtname = 'real_T';
pt(10).blockname = 'DAQ_In/CAN Setup';
pt(10).paramname = 'P4';
pt(10).class = 'scalar';
pt(10).nrows = 1;
pt(10).ncols = 1;
pt(10).subsource = 'SS_DOUBLE';
pt(10).ndims = '2';
pt(10).size = '[]';
pt(10).isStruct = false;
pt(10).symbol = 'CANTest_P.CANSetup_P4';
pt(10).baseaddr = '&CANTest_P.CANSetup_P4';
pt(10).dtname = 'real_T';
pt(11).blockname = 'DAQ_In/CAN Setup';
pt(11).paramname = 'P5';
pt(11).class = 'scalar';
pt(11).nrows = 1;
pt(11).ncols = 1;
pt(11).subsource = 'SS_DOUBLE';
pt(11).ndims = '2';
pt(11).size = '[]';
pt(11).isStruct = false;
pt(11).symbol = 'CANTest_P.CANSetup_P5';
pt(11).baseaddr = '&CANTest_P.CANSetup_P5';
pt(11).dtname = 'real_T';
pt(12).blockname = 'DAQ_In/CAN Setup';
pt(12).paramname = 'P6';
pt(12).class = 'scalar';
pt(12).nrows = 1;
pt(12).ncols = 1;
pt(12).subsource = 'SS_DOUBLE';
pt(12).ndims = '2';
pt(12).size = '[]';
pt(12).isStruct = false;
pt(12).symbol = 'CANTest_P.CANSetup_P6';
pt(12).baseaddr = '&CANTest_P.CANSetup_P6';
pt(12).dtname = 'real_T';
pt(13).blockname = 'DAQ_In/CAN Setup';
pt(13).paramname = 'P7';
pt(13).class = 'vector';
pt(13).nrows = 1;
pt(13).ncols = 4;
pt(13).subsource = 'SS_DOUBLE';
pt(13).ndims = '2';
pt(13).size = '[]';
pt(13).isStruct = false;
pt(13).symbol = 'CANTest_P.CANSetup_P7';
pt(13).baseaddr = '&CANTest_P.CANSetup_P7[0]';
pt(13).dtname = 'real_T';
pt(14).blockname = 'DAQ_In/CAN Setup';
pt(14).paramname = 'P8';
pt(14).class = 'vector';
pt(14).nrows = 1;
pt(14).ncols = 6;
pt(14).subsource = 'SS_DOUBLE';
pt(14).ndims = '2';
pt(14).size = '[]';
pt(14).isStruct = false;
pt(14).symbol = 'CANTest_P.CANSetup_P8';
pt(14).baseaddr = '&CANTest_P.CANSetup_P8[0]';
pt(14).dtname = 'real_T';
pt(15).blockname = 'DAQ_In/CAN Setup';
pt(15).paramname = 'P9';
pt(15).class = 'vector';
pt(15).nrows = 1;
pt(15).ncols = 2;
pt(15).subsource = 'SS_DOUBLE';
pt(15).ndims = '2';
pt(15).size = '[]';
pt(15).isStruct = false;
pt(15).symbol = 'CANTest_P.CANSetup_P9';
pt(15).baseaddr = '&CANTest_P.CANSetup_P9[0]';
pt(15).dtname = 'real_T';
pt(16).blockname = 'DAQ_In/CAN Setup';
pt(16).paramname = 'P10';
pt(16).class = 'vector';
pt(16).nrows = 1;
pt(16).ncols = 2;
pt(16).subsource = 'SS_DOUBLE';
pt(16).ndims = '2';
pt(16).size = '[]';
pt(16).isStruct = false;
pt(16).symbol = 'CANTest_P.CANSetup_P10';
pt(16).baseaddr = '&CANTest_P.CANSetup_P10[0]';
pt(16).dtname = 'real_T';
pt(17).blockname = 'DAQ_In/CAN Setup';
pt(17).paramname = 'P11';
pt(17).class = 'scalar';
pt(17).nrows = 1;
pt(17).ncols = 1;
pt(17).subsource = 'SS_DOUBLE';
pt(17).ndims = '2';
pt(17).size = '[]';
pt(17).isStruct = false;
pt(17).symbol = 'CANTest_P.CANSetup_P11';
pt(17).baseaddr = '&CANTest_P.CANSetup_P11';
pt(17).dtname = 'real_T';
pt(18).blockname = 'DAQ_In/CAN Setup';
pt(18).paramname = 'P12';
pt(18).class = 'vector';
pt(18).nrows = 1;
pt(18).ncols = 4;
pt(18).subsource = 'SS_DOUBLE';
pt(18).ndims = '2';
pt(18).size = '[]';
pt(18).isStruct = false;
pt(18).symbol = 'CANTest_P.CANSetup_P12';
pt(18).baseaddr = '&CANTest_P.CANSetup_P12[0]';
pt(18).dtname = 'real_T';
pt(19).blockname = 'DAQ_In/CAN Setup';
pt(19).paramname = 'P13';
pt(19).class = 'vector';
pt(19).nrows = 1;
pt(19).ncols = 6;
pt(19).subsource = 'SS_DOUBLE';
pt(19).ndims = '2';
pt(19).size = '[]';
pt(19).isStruct = false;
pt(19).symbol = 'CANTest_P.CANSetup_P13';
pt(19).baseaddr = '&CANTest_P.CANSetup_P13[0]';
pt(19).dtname = 'real_T';
pt(20).blockname = 'DAQ_In/CAN Setup';
pt(20).paramname = 'P14';
pt(20).class = 'vector';
pt(20).nrows = 1;
pt(20).ncols = 2;
pt(20).subsource = 'SS_DOUBLE';
pt(20).ndims = '2';
pt(20).size = '[]';
pt(20).isStruct = false;
pt(20).symbol = 'CANTest_P.CANSetup_P14';
pt(20).baseaddr = '&CANTest_P.CANSetup_P14[0]';
pt(20).dtname = 'real_T';
pt(21).blockname = 'DAQ_In/CAN Setup';
pt(21).paramname = 'P15';
pt(21).class = 'vector';
pt(21).nrows = 1;
pt(21).ncols = 2;
pt(21).subsource = 'SS_DOUBLE';
pt(21).ndims = '2';
pt(21).size = '[]';
pt(21).isStruct = false;
pt(21).symbol = 'CANTest_P.CANSetup_P15';
pt(21).baseaddr = '&CANTest_P.CANSetup_P15[0]';
pt(21).dtname = 'real_T';
pt(22).blockname = 'DAQ_In/CAN Setup';
pt(22).paramname = 'P16';
pt(22).class = 'scalar';
pt(22).nrows = 1;
pt(22).ncols = 1;
pt(22).subsource = 'SS_DOUBLE';
pt(22).ndims = '2';
pt(22).size = '[]';
pt(22).isStruct = false;
pt(22).symbol = 'CANTest_P.CANSetup_P16';
pt(22).baseaddr = '&CANTest_P.CANSetup_P16';
pt(22).dtname = 'real_T';
pt(23).blockname = 'DAQ_In/CAN Setup';
pt(23).paramname = 'P17';
pt(23).class = 'scalar';
pt(23).nrows = 1;
pt(23).ncols = 1;
pt(23).subsource = 'SS_DOUBLE';
pt(23).ndims = '2';
pt(23).size = '[]';
pt(23).isStruct = false;
pt(23).symbol = 'CANTest_P.CANSetup_P17';
pt(23).baseaddr = '&CANTest_P.CANSetup_P17';
pt(23).dtname = 'real_T';
pt(24).blockname = 'DAQ_In/CAN Setup';
pt(24).paramname = 'P18';
pt(24).class = 'vector';
pt(24).nrows = 1;
pt(24).ncols = 5;
pt(24).subsource = 'SS_DOUBLE';
pt(24).ndims = '2';
pt(24).size = '[]';
pt(24).isStruct = false;
pt(24).symbol = 'CANTest_P.CANSetup_P18';
pt(24).baseaddr = '&CANTest_P.CANSetup_P18[0]';
pt(24).dtname = 'real_T';
pt(25).blockname = 'DAQ_In/CAN Setup';
pt(25).paramname = 'P19';
pt(25).class = 'scalar';
pt(25).nrows = 1;
pt(25).ncols = 1;
pt(25).subsource = 'SS_DOUBLE';
pt(25).ndims = '2';
pt(25).size = '[]';
pt(25).isStruct = false;
pt(25).symbol = 'CANTest_P.CANSetup_P19';
pt(25).baseaddr = '&CANTest_P.CANSetup_P19';
pt(25).dtname = 'real_T';
pt(26).blockname = 'DAQ_In/CAN Setup';
pt(26).paramname = 'P20';
pt(26).class = 'vector';
pt(26).nrows = 1;
pt(26).ncols = 2;
pt(26).subsource = 'SS_DOUBLE';
pt(26).ndims = '2';
pt(26).size = '[]';
pt(26).isStruct = false;
pt(26).symbol = 'CANTest_P.CANSetup_P20';
pt(26).baseaddr = '&CANTest_P.CANSetup_P20[0]';
pt(26).dtname = 'real_T';
pt(27).blockname = 'DAQ_In/CAN Setup';
pt(27).paramname = 'P21';
pt(27).class = 'vector';
pt(27).nrows = 1;
pt(27).ncols = 2;
pt(27).subsource = 'SS_DOUBLE';
pt(27).ndims = '2';
pt(27).size = '[]';
pt(27).isStruct = false;
pt(27).symbol = 'CANTest_P.CANSetup_P21';
pt(27).baseaddr = '&CANTest_P.CANSetup_P21[0]';
pt(27).dtname = 'real_T';
pt(28).blockname = 'DAQ_In/CAN Setup';
pt(28).paramname = 'P22';
pt(28).class = 'vector';
pt(28).nrows = 1;
pt(28).ncols = 2;
pt(28).subsource = 'SS_DOUBLE';
pt(28).ndims = '2';
pt(28).size = '[]';
pt(28).isStruct = false;
pt(28).symbol = 'CANTest_P.CANSetup_P22';
pt(28).baseaddr = '&CANTest_P.CANSetup_P22[0]';
pt(28).dtname = 'real_T';
pt(29).blockname = 'DAQ_In/CAN Setup';
pt(29).paramname = 'P23';
pt(29).class = 'vector';
pt(29).nrows = 1;
pt(29).ncols = 2;
pt(29).subsource = 'SS_DOUBLE';
pt(29).ndims = '2';
pt(29).size = '[]';
pt(29).isStruct = false;
pt(29).symbol = 'CANTest_P.CANSetup_P23';
pt(29).baseaddr = '&CANTest_P.CANSetup_P23[0]';
pt(29).dtname = 'real_T';
pt(30).blockname = 'DAQ_In/CAN Setup';
pt(30).paramname = 'P24';
pt(30).class = 'scalar';
pt(30).nrows = 1;
pt(30).ncols = 1;
pt(30).subsource = 'SS_DOUBLE';
pt(30).ndims = '2';
pt(30).size = '[]';
pt(30).isStruct = false;
pt(30).symbol = 'CANTest_P.CANSetup_P24';
pt(30).baseaddr = '&CANTest_P.CANSetup_P24';
pt(30).dtname = 'real_T';
pt(31).blockname = 'Mon_Cont/Constant1';
pt(31).paramname = 'Value';
pt(31).class = 'scalar';
pt(31).nrows = 1;
pt(31).ncols = 1;
pt(31).subsource = 'SS_DOUBLE';
pt(31).ndims = '2';
pt(31).size = '[]';
pt(31).isStruct = false;
pt(31).symbol = 'CANTest_P.Constant1_Value_j';
pt(31).baseaddr = '&CANTest_P.Constant1_Value_j';
pt(31).dtname = 'real_T';
pt(32).blockname = 'Mon_Cont/ContMode';
pt(32).paramname = 'Value';
pt(32).class = 'scalar';
pt(32).nrows = 1;
pt(32).ncols = 1;
pt(32).subsource = 'SS_DOUBLE';
pt(32).ndims = '2';
pt(32).size = '[]';
pt(32).isStruct = false;
pt(32).symbol = 'CANTest_P.ContMode_Value';
pt(32).baseaddr = '&CANTest_P.ContMode_Value';
pt(32).dtname = 'real_T';
pt(33).blockname = 'Mon_Cont/TQCom';
pt(33).paramname = 'Value';
pt(33).class = 'scalar';
pt(33).nrows = 1;
pt(33).ncols = 1;
pt(33).subsource = 'SS_DOUBLE';
pt(33).ndims = '2';
pt(33).size = '[]';
pt(33).isStruct = false;
pt(33).symbol = 'CANTest_P.TQCom_Value';
pt(33).baseaddr = '&CANTest_P.TQCom_Value';
pt(33).dtname = 'real_T';
pt(34).blockname = 'Mon_Cont/ContM';
pt(34).paramname = 'Gain';
pt(34).class = 'scalar';
pt(34).nrows = 1;
pt(34).ncols = 1;
pt(34).subsource = 'SS_DOUBLE';
pt(34).ndims = '2';
pt(34).size = '[]';
pt(34).isStruct = false;
pt(34).symbol = 'CANTest_P.ContM_Gain';
pt(34).baseaddr = '&CANTest_P.ContM_Gain';
pt(34).dtname = 'real_T';
pt(35).blockname = 'DAQ_Out/CANBoard/Constant';
pt(35).paramname = 'Value';
pt(35).class = 'scalar';
pt(35).nrows = 1;
pt(35).ncols = 1;
pt(35).subsource = 'SS_DOUBLE';
pt(35).ndims = '2';
pt(35).size = '[]';
pt(35).isStruct = false;
pt(35).symbol = 'CANTest_P.Constant_Value';
pt(35).baseaddr = '&CANTest_P.Constant_Value';
pt(35).dtname = 'real_T';
pt(36).blockname = 'DAQ_Out/CANBoard/Constant1';
pt(36).paramname = 'Value';
pt(36).class = 'scalar';
pt(36).nrows = 1;
pt(36).ncols = 1;
pt(36).subsource = 'SS_DOUBLE';
pt(36).ndims = '2';
pt(36).size = '[]';
pt(36).isStruct = false;
pt(36).symbol = 'CANTest_P.Constant1_Value';
pt(36).baseaddr = '&CANTest_P.Constant1_Value';
pt(36).dtname = 'real_T';
pt(37).blockname = 'DAQ_Out/CANBoard/Constant2';
pt(37).paramname = 'Value';
pt(37).class = 'scalar';
pt(37).nrows = 1;
pt(37).ncols = 1;
pt(37).subsource = 'SS_DOUBLE';
pt(37).ndims = '2';
pt(37).size = '[]';
pt(37).isStruct = false;
pt(37).symbol = 'CANTest_P.Constant2_Value';
pt(37).baseaddr = '&CANTest_P.Constant2_Value';
pt(37).dtname = 'real_T';
pt(38).blockname = 'DAQ_Out/CANBoard/Constant3';
pt(38).paramname = 'Value';
pt(38).class = 'scalar';
pt(38).nrows = 1;
pt(38).ncols = 1;
pt(38).subsource = 'SS_DOUBLE';
pt(38).ndims = '2';
pt(38).size = '[]';
pt(38).isStruct = false;
pt(38).symbol = 'CANTest_P.Constant3_Value';
pt(38).baseaddr = '&CANTest_P.Constant3_Value';
pt(38).dtname = 'real_T';
pt(39).blockname = 'DAQ_Out/CANBoard/Constant4';
pt(39).paramname = 'Value';
pt(39).class = 'scalar';
pt(39).nrows = 1;
pt(39).ncols = 1;
pt(39).subsource = 'SS_DOUBLE';
pt(39).ndims = '2';
pt(39).size = '[]';
pt(39).isStruct = false;
pt(39).symbol = 'CANTest_P.Constant4_Value';
pt(39).baseaddr = '&CANTest_P.Constant4_Value';
pt(39).dtname = 'real_T';
pt(40).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(40).paramname = 'P1';
pt(40).class = 'scalar';
pt(40).nrows = 1;
pt(40).ncols = 1;
pt(40).subsource = 'SS_DOUBLE';
pt(40).ndims = '2';
pt(40).size = '[]';
pt(40).isStruct = false;
pt(40).symbol = 'CANTest_P.CANWrite1_P1';
pt(40).baseaddr = '&CANTest_P.CANWrite1_P1';
pt(40).dtname = 'real_T';
pt(41).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(41).paramname = 'P2';
pt(41).class = 'scalar';
pt(41).nrows = 1;
pt(41).ncols = 1;
pt(41).subsource = 'SS_DOUBLE';
pt(41).ndims = '2';
pt(41).size = '[]';
pt(41).isStruct = false;
pt(41).symbol = 'CANTest_P.CANWrite1_P2';
pt(41).baseaddr = '&CANTest_P.CANWrite1_P2';
pt(41).dtname = 'real_T';
pt(42).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(42).paramname = 'P3';
pt(42).class = 'scalar';
pt(42).nrows = 1;
pt(42).ncols = 1;
pt(42).subsource = 'SS_DOUBLE';
pt(42).ndims = '2';
pt(42).size = '[]';
pt(42).isStruct = false;
pt(42).symbol = 'CANTest_P.CANWrite1_P3';
pt(42).baseaddr = '&CANTest_P.CANWrite1_P3';
pt(42).dtname = 'real_T';
pt(43).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(43).paramname = 'P4';
pt(43).class = 'scalar';
pt(43).nrows = 1;
pt(43).ncols = 1;
pt(43).subsource = 'SS_DOUBLE';
pt(43).ndims = '2';
pt(43).size = '[]';
pt(43).isStruct = false;
pt(43).symbol = 'CANTest_P.CANWrite1_P4';
pt(43).baseaddr = '&CANTest_P.CANWrite1_P4';
pt(43).dtname = 'real_T';
pt(44).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(44).paramname = 'P5';
pt(44).class = 'vector';
pt(44).nrows = 1;
pt(44).ncols = 5;
pt(44).subsource = 'SS_DOUBLE';
pt(44).ndims = '2';
pt(44).size = '[]';
pt(44).isStruct = false;
pt(44).symbol = 'CANTest_P.CANWrite1_P5';
pt(44).baseaddr = '&CANTest_P.CANWrite1_P5[0]';
pt(44).dtname = 'real_T';
pt(45).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(45).paramname = 'P6';
pt(45).class = 'scalar';
pt(45).nrows = 1;
pt(45).ncols = 1;
pt(45).subsource = 'SS_DOUBLE';
pt(45).ndims = '2';
pt(45).size = '[]';
pt(45).isStruct = false;
pt(45).symbol = 'CANTest_P.CANWrite1_P6';
pt(45).baseaddr = '&CANTest_P.CANWrite1_P6';
pt(45).dtname = 'real_T';
pt(46).blockname = 'DAQ_Out/CANBoard/CAN Write1';
pt(46).paramname = 'P7';
pt(46).class = 'scalar';
pt(46).nrows = 1;
pt(46).ncols = 1;
pt(46).subsource = 'SS_DOUBLE';
pt(46).ndims = '2';
pt(46).size = '[]';
pt(46).isStruct = false;
pt(46).symbol = 'CANTest_P.CANWrite1_P7';
pt(46).baseaddr = '&CANTest_P.CANWrite1_P7';
pt(46).dtname = 'real_T';
pt(47).blockname = 'Mon_Cont/LPFM/Constant1';
pt(47).paramname = 'Value';
pt(47).class = 'scalar';
pt(47).nrows = 1;
pt(47).ncols = 1;
pt(47).subsource = 'SS_DOUBLE';
pt(47).ndims = '2';
pt(47).size = '[]';
pt(47).isStruct = false;
pt(47).symbol = 'CANTest_P.Constant1_Value_a';
pt(47).baseaddr = '&CANTest_P.Constant1_Value_a';
pt(47).dtname = 'real_T';
pt(48).blockname = 'Mon_Cont/LPFM/gain1';
pt(48).paramname = 'Gain';
pt(48).class = 'scalar';
pt(48).nrows = 1;
pt(48).ncols = 1;
pt(48).subsource = 'SS_DOUBLE';
pt(48).ndims = '2';
pt(48).size = '[]';
pt(48).isStruct = false;
pt(48).symbol = 'CANTest_P.gain1_Gain';
pt(48).baseaddr = '&CANTest_P.gain1_Gain';
pt(48).dtname = 'real_T';
pt(49).blockname = 'Mon_Cont/LPFM/gain2';
pt(49).paramname = 'Gain';
pt(49).class = 'scalar';
pt(49).nrows = 1;
pt(49).ncols = 1;
pt(49).subsource = 'SS_DOUBLE';
pt(49).ndims = '2';
pt(49).size = '[]';
pt(49).isStruct = false;
pt(49).symbol = 'CANTest_P.gain2_Gain';
pt(49).baseaddr = '&CANTest_P.gain2_Gain';
pt(49).dtname = 'real_T';
pt(50).blockname = 'Mon_Cont/LPFM/d';
pt(50).paramname = 'InitialCondition';
pt(50).class = 'scalar';
pt(50).nrows = 1;
pt(50).ncols = 1;
pt(50).subsource = 'SS_DOUBLE';
pt(50).ndims = '2';
pt(50).size = '[]';
pt(50).isStruct = false;
pt(50).symbol = 'CANTest_P.d_InitialCondition';
pt(50).baseaddr = '&CANTest_P.d_InitialCondition';
pt(50).dtname = 'real_T';
pt(51).blockname = 'Mon_Cont/LPFM/d1';
pt(51).paramname = 'InitialCondition';
pt(51).class = 'scalar';
pt(51).nrows = 1;
pt(51).ncols = 1;
pt(51).subsource = 'SS_DOUBLE';
pt(51).ndims = '2';
pt(51).size = '[]';
pt(51).isStruct = false;
pt(51).symbol = 'CANTest_P.d1_InitialCondition';
pt(51).baseaddr = '&CANTest_P.d1_InitialCondition';
pt(51).dtname = 'real_T';
pt(52).blockname = '';
pt(52).paramname = 'Ts';
pt(52).class = 'scalar';
pt(52).nrows = 1;
pt(52).ncols = 1;
pt(52).subsource = 'SS_DOUBLE';
pt(52).ndims = '2';
pt(52).size = '[]';
pt(52).isStruct = false;
pt(52).symbol = 'CANTest_P.Ts';
pt(52).baseaddr = '&CANTest_P.Ts';
pt(52).dtname = 'real_T';
function len = getlenPT
len = 52;

View File

@ -0,0 +1,12 @@
function sys=CANTestref
sys = [];
sys.child = [];
sys.NumDataTypes = 3;
sys.DataTypes = [];
temp.EnumNames='';
temp.EnumValues = [];
temp.Name = '';
sys.DataTypes = repmat(temp,1,3);
sys.DataTypes(1).Name = 'boolean_T';
sys.DataTypes(2).Name = 'CAN_DATATYPE';
sys.DataTypes(3).Name = 'real_T';

View File

@ -0,0 +1,4 @@
function ri = CANTestri
ri = [];

View File

@ -0,0 +1,333 @@
function xcp = CANTestxcp
xcp.events = repmat(struct('id',{}, 'sampletime', {}, 'offset', {}), getNumEvents, 1 );
xcp.parameters = repmat(struct('symbol',{}, 'size', {}, 'dtname', {}, 'baseaddr', {}), getNumParameters, 1 );
xcp.signals = repmat(struct('symbol',{}), getNumSignals, 1 );
xcp.models = cell(1,getNumModels);
xcp.models{1} = 'CANTest';
xcp.events(1).id = 0;
xcp.events(1).sampletime = 0.002;
xcp.events(1).offset = 0.0;
xcp.signals(1).symbol = 'CANTest_B.CANRead1_o1';
xcp.signals(2).symbol = 'CANTest_B.CANRead1_o2';
xcp.signals(3).symbol = 'CANTest_B.RPM';
xcp.signals(4).symbol = 'CANTest_B.TQ';
xcp.signals(5).symbol = 'CANTest_B.ContMode';
xcp.signals(6).symbol = 'CANTest_B.Ready';
xcp.signals(7).symbol = 'CANTest_B.Gear';
xcp.signals(8).symbol = 'CANTest_B.BMS';
xcp.signals(9).symbol = 'CANTest_B.PosTQLim';
xcp.signals(10).symbol = 'CANTest_B.NegTQLim';
xcp.signals(11).symbol = 'CANTest_B.CANPack';
xcp.signals(12).symbol = 'CANTest_B.gain';
xcp.signals(13).symbol = 'CANTest_B.gain1';
xcp.signals(14).symbol = 'CANTest_B.gain2';
xcp.signals(15).symbol = 'CANTest_B.Product1';
xcp.signals(16).symbol = 'CANTest_B.Product11';
xcp.signals(17).symbol = 'CANTest_B.Product2';
xcp.signals(18).symbol = 'CANTest_B.Sum1';
xcp.signals(19).symbol = 'CANTest_B.Sum2';
xcp.signals(20).symbol = 'CANTest_B.Sum3';
xcp.signals(21).symbol = 'CANTest_B.Sum4';
xcp.signals(22).symbol = 'CANTest_B.d';
xcp.signals(23).symbol = 'CANTest_B.d1';
xcp.parameters(1).symbol = 'CANTest_P.CANRead1_P1';
xcp.parameters(1).size = 1;
xcp.parameters(1).dtname = 'real_T';
xcp.parameters(2).baseaddr = '&CANTest_P.CANRead1_P1';
xcp.parameters(2).symbol = 'CANTest_P.CANRead1_P2';
xcp.parameters(2).size = 1;
xcp.parameters(2).dtname = 'real_T';
xcp.parameters(3).baseaddr = '&CANTest_P.CANRead1_P2';
xcp.parameters(3).symbol = 'CANTest_P.CANRead1_P3';
xcp.parameters(3).size = 1;
xcp.parameters(3).dtname = 'real_T';
xcp.parameters(4).baseaddr = '&CANTest_P.CANRead1_P3';
xcp.parameters(4).symbol = 'CANTest_P.CANRead1_P4';
xcp.parameters(4).size = 5;
xcp.parameters(4).dtname = 'real_T';
xcp.parameters(5).baseaddr = '&CANTest_P.CANRead1_P4[0]';
xcp.parameters(5).symbol = 'CANTest_P.CANRead1_P5';
xcp.parameters(5).size = 1;
xcp.parameters(5).dtname = 'real_T';
xcp.parameters(6).baseaddr = '&CANTest_P.CANRead1_P5';
xcp.parameters(6).symbol = 'CANTest_P.CANRead1_P6';
xcp.parameters(6).size = 1;
xcp.parameters(6).dtname = 'real_T';
xcp.parameters(7).baseaddr = '&CANTest_P.CANRead1_P6';
xcp.parameters(7).symbol = 'CANTest_P.CANSetup_P1';
xcp.parameters(7).size = 1;
xcp.parameters(7).dtname = 'real_T';
xcp.parameters(8).baseaddr = '&CANTest_P.CANSetup_P1';
xcp.parameters(8).symbol = 'CANTest_P.CANSetup_P2';
xcp.parameters(8).size = 2;
xcp.parameters(8).dtname = 'real_T';
xcp.parameters(9).baseaddr = '&CANTest_P.CANSetup_P2[0]';
xcp.parameters(9).symbol = 'CANTest_P.CANSetup_P3';
xcp.parameters(9).size = 1;
xcp.parameters(9).dtname = 'real_T';
xcp.parameters(10).baseaddr = '&CANTest_P.CANSetup_P3';
xcp.parameters(10).symbol = 'CANTest_P.CANSetup_P4';
xcp.parameters(10).size = 1;
xcp.parameters(10).dtname = 'real_T';
xcp.parameters(11).baseaddr = '&CANTest_P.CANSetup_P4';
xcp.parameters(11).symbol = 'CANTest_P.CANSetup_P5';
xcp.parameters(11).size = 1;
xcp.parameters(11).dtname = 'real_T';
xcp.parameters(12).baseaddr = '&CANTest_P.CANSetup_P5';
xcp.parameters(12).symbol = 'CANTest_P.CANSetup_P6';
xcp.parameters(12).size = 1;
xcp.parameters(12).dtname = 'real_T';
xcp.parameters(13).baseaddr = '&CANTest_P.CANSetup_P6';
xcp.parameters(13).symbol = 'CANTest_P.CANSetup_P7';
xcp.parameters(13).size = 4;
xcp.parameters(13).dtname = 'real_T';
xcp.parameters(14).baseaddr = '&CANTest_P.CANSetup_P7[0]';
xcp.parameters(14).symbol = 'CANTest_P.CANSetup_P8';
xcp.parameters(14).size = 6;
xcp.parameters(14).dtname = 'real_T';
xcp.parameters(15).baseaddr = '&CANTest_P.CANSetup_P8[0]';
xcp.parameters(15).symbol = 'CANTest_P.CANSetup_P9';
xcp.parameters(15).size = 2;
xcp.parameters(15).dtname = 'real_T';
xcp.parameters(16).baseaddr = '&CANTest_P.CANSetup_P9[0]';
xcp.parameters(16).symbol = 'CANTest_P.CANSetup_P10';
xcp.parameters(16).size = 2;
xcp.parameters(16).dtname = 'real_T';
xcp.parameters(17).baseaddr = '&CANTest_P.CANSetup_P10[0]';
xcp.parameters(17).symbol = 'CANTest_P.CANSetup_P11';
xcp.parameters(17).size = 1;
xcp.parameters(17).dtname = 'real_T';
xcp.parameters(18).baseaddr = '&CANTest_P.CANSetup_P11';
xcp.parameters(18).symbol = 'CANTest_P.CANSetup_P12';
xcp.parameters(18).size = 4;
xcp.parameters(18).dtname = 'real_T';
xcp.parameters(19).baseaddr = '&CANTest_P.CANSetup_P12[0]';
xcp.parameters(19).symbol = 'CANTest_P.CANSetup_P13';
xcp.parameters(19).size = 6;
xcp.parameters(19).dtname = 'real_T';
xcp.parameters(20).baseaddr = '&CANTest_P.CANSetup_P13[0]';
xcp.parameters(20).symbol = 'CANTest_P.CANSetup_P14';
xcp.parameters(20).size = 2;
xcp.parameters(20).dtname = 'real_T';
xcp.parameters(21).baseaddr = '&CANTest_P.CANSetup_P14[0]';
xcp.parameters(21).symbol = 'CANTest_P.CANSetup_P15';
xcp.parameters(21).size = 2;
xcp.parameters(21).dtname = 'real_T';
xcp.parameters(22).baseaddr = '&CANTest_P.CANSetup_P15[0]';
xcp.parameters(22).symbol = 'CANTest_P.CANSetup_P16';
xcp.parameters(22).size = 1;
xcp.parameters(22).dtname = 'real_T';
xcp.parameters(23).baseaddr = '&CANTest_P.CANSetup_P16';
xcp.parameters(23).symbol = 'CANTest_P.CANSetup_P17';
xcp.parameters(23).size = 1;
xcp.parameters(23).dtname = 'real_T';
xcp.parameters(24).baseaddr = '&CANTest_P.CANSetup_P17';
xcp.parameters(24).symbol = 'CANTest_P.CANSetup_P18';
xcp.parameters(24).size = 5;
xcp.parameters(24).dtname = 'real_T';
xcp.parameters(25).baseaddr = '&CANTest_P.CANSetup_P18[0]';
xcp.parameters(25).symbol = 'CANTest_P.CANSetup_P19';
xcp.parameters(25).size = 1;
xcp.parameters(25).dtname = 'real_T';
xcp.parameters(26).baseaddr = '&CANTest_P.CANSetup_P19';
xcp.parameters(26).symbol = 'CANTest_P.CANSetup_P20';
xcp.parameters(26).size = 2;
xcp.parameters(26).dtname = 'real_T';
xcp.parameters(27).baseaddr = '&CANTest_P.CANSetup_P20[0]';
xcp.parameters(27).symbol = 'CANTest_P.CANSetup_P21';
xcp.parameters(27).size = 2;
xcp.parameters(27).dtname = 'real_T';
xcp.parameters(28).baseaddr = '&CANTest_P.CANSetup_P21[0]';
xcp.parameters(28).symbol = 'CANTest_P.CANSetup_P22';
xcp.parameters(28).size = 2;
xcp.parameters(28).dtname = 'real_T';
xcp.parameters(29).baseaddr = '&CANTest_P.CANSetup_P22[0]';
xcp.parameters(29).symbol = 'CANTest_P.CANSetup_P23';
xcp.parameters(29).size = 2;
xcp.parameters(29).dtname = 'real_T';
xcp.parameters(30).baseaddr = '&CANTest_P.CANSetup_P23[0]';
xcp.parameters(30).symbol = 'CANTest_P.CANSetup_P24';
xcp.parameters(30).size = 1;
xcp.parameters(30).dtname = 'real_T';
xcp.parameters(31).baseaddr = '&CANTest_P.CANSetup_P24';
xcp.parameters(31).symbol = 'CANTest_P.Constant1_Value_j';
xcp.parameters(31).size = 1;
xcp.parameters(31).dtname = 'real_T';
xcp.parameters(32).baseaddr = '&CANTest_P.Constant1_Value_j';
xcp.parameters(32).symbol = 'CANTest_P.ContMode_Value';
xcp.parameters(32).size = 1;
xcp.parameters(32).dtname = 'real_T';
xcp.parameters(33).baseaddr = '&CANTest_P.ContMode_Value';
xcp.parameters(33).symbol = 'CANTest_P.TQCom_Value';
xcp.parameters(33).size = 1;
xcp.parameters(33).dtname = 'real_T';
xcp.parameters(34).baseaddr = '&CANTest_P.TQCom_Value';
xcp.parameters(34).symbol = 'CANTest_P.ContM_Gain';
xcp.parameters(34).size = 1;
xcp.parameters(34).dtname = 'real_T';
xcp.parameters(35).baseaddr = '&CANTest_P.ContM_Gain';
xcp.parameters(35).symbol = 'CANTest_P.Constant_Value';
xcp.parameters(35).size = 1;
xcp.parameters(35).dtname = 'real_T';
xcp.parameters(36).baseaddr = '&CANTest_P.Constant_Value';
xcp.parameters(36).symbol = 'CANTest_P.Constant1_Value';
xcp.parameters(36).size = 1;
xcp.parameters(36).dtname = 'real_T';
xcp.parameters(37).baseaddr = '&CANTest_P.Constant1_Value';
xcp.parameters(37).symbol = 'CANTest_P.Constant2_Value';
xcp.parameters(37).size = 1;
xcp.parameters(37).dtname = 'real_T';
xcp.parameters(38).baseaddr = '&CANTest_P.Constant2_Value';
xcp.parameters(38).symbol = 'CANTest_P.Constant3_Value';
xcp.parameters(38).size = 1;
xcp.parameters(38).dtname = 'real_T';
xcp.parameters(39).baseaddr = '&CANTest_P.Constant3_Value';
xcp.parameters(39).symbol = 'CANTest_P.Constant4_Value';
xcp.parameters(39).size = 1;
xcp.parameters(39).dtname = 'real_T';
xcp.parameters(40).baseaddr = '&CANTest_P.Constant4_Value';
xcp.parameters(40).symbol = 'CANTest_P.CANWrite1_P1';
xcp.parameters(40).size = 1;
xcp.parameters(40).dtname = 'real_T';
xcp.parameters(41).baseaddr = '&CANTest_P.CANWrite1_P1';
xcp.parameters(41).symbol = 'CANTest_P.CANWrite1_P2';
xcp.parameters(41).size = 1;
xcp.parameters(41).dtname = 'real_T';
xcp.parameters(42).baseaddr = '&CANTest_P.CANWrite1_P2';
xcp.parameters(42).symbol = 'CANTest_P.CANWrite1_P3';
xcp.parameters(42).size = 1;
xcp.parameters(42).dtname = 'real_T';
xcp.parameters(43).baseaddr = '&CANTest_P.CANWrite1_P3';
xcp.parameters(43).symbol = 'CANTest_P.CANWrite1_P4';
xcp.parameters(43).size = 1;
xcp.parameters(43).dtname = 'real_T';
xcp.parameters(44).baseaddr = '&CANTest_P.CANWrite1_P4';
xcp.parameters(44).symbol = 'CANTest_P.CANWrite1_P5';
xcp.parameters(44).size = 5;
xcp.parameters(44).dtname = 'real_T';
xcp.parameters(45).baseaddr = '&CANTest_P.CANWrite1_P5[0]';
xcp.parameters(45).symbol = 'CANTest_P.CANWrite1_P6';
xcp.parameters(45).size = 1;
xcp.parameters(45).dtname = 'real_T';
xcp.parameters(46).baseaddr = '&CANTest_P.CANWrite1_P6';
xcp.parameters(46).symbol = 'CANTest_P.CANWrite1_P7';
xcp.parameters(46).size = 1;
xcp.parameters(46).dtname = 'real_T';
xcp.parameters(47).baseaddr = '&CANTest_P.CANWrite1_P7';
xcp.parameters(47).symbol = 'CANTest_P.Constant1_Value_a';
xcp.parameters(47).size = 1;
xcp.parameters(47).dtname = 'real_T';
xcp.parameters(48).baseaddr = '&CANTest_P.Constant1_Value_a';
xcp.parameters(48).symbol = 'CANTest_P.gain1_Gain';
xcp.parameters(48).size = 1;
xcp.parameters(48).dtname = 'real_T';
xcp.parameters(49).baseaddr = '&CANTest_P.gain1_Gain';
xcp.parameters(49).symbol = 'CANTest_P.gain2_Gain';
xcp.parameters(49).size = 1;
xcp.parameters(49).dtname = 'real_T';
xcp.parameters(50).baseaddr = '&CANTest_P.gain2_Gain';
xcp.parameters(50).symbol = 'CANTest_P.d_InitialCondition';
xcp.parameters(50).size = 1;
xcp.parameters(50).dtname = 'real_T';
xcp.parameters(51).baseaddr = '&CANTest_P.d_InitialCondition';
xcp.parameters(51).symbol = 'CANTest_P.d1_InitialCondition';
xcp.parameters(51).size = 1;
xcp.parameters(51).dtname = 'real_T';
xcp.parameters(52).baseaddr = '&CANTest_P.d1_InitialCondition';
xcp.parameters(52).symbol = 'CANTest_P.Ts';
xcp.parameters(52).size = 1;
xcp.parameters(52).dtname = 'real_T';
xcp.parameters(53).baseaddr = '&CANTest_P.Ts';
function n = getNumParameters
n = 52;
function n = getNumSignals
n = 23;
function n = getNumEvents
n = 1;
function n = getNumModels
n = 1;

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More