From 8c2aaf4bdb8684950b4ca0c9fc72a88fdc56ae58 Mon Sep 17 00:00:00 2001 From: Dimitar Stanev Date: Tue, 2 Jun 2015 15:28:27 +0300 Subject: [PATCH 1/3] Correct occlusion of Ia afferent --- MATLAB/MuscleSpindle.mdl | 1167 +++++++------ MATLAB/MuscleSpindleTest.mdl | 1103 +++++++----- .../MuscleSpindle/_self/sfun/info/binfo.mat | Bin 5238 -> 4349 bytes .../info/chart1_ycYIpW7uLL3gXRMLAbVLtF.mat | Bin 2921 -> 0 bytes .../info/chart2_jArXz9tmqVBg2EURlcro0B.mat | Bin 3727 -> 0 bytes .../info/chart2_vS4hkj9wASYLpg5pFEfJZG.mat | Bin 2925 -> 0 bytes .../info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat | Bin 2920 -> 0 bytes .../info/chart3_4AIp75LcIllG7UOnkZHcRB.mat | Bin 2807 -> 0 bytes .../info/chart4_4AIp75LcIllG7UOnkZHcRB.mat | Bin 2809 -> 0 bytes .../info/chart5_ycYIpW7uLL3gXRMLAbVLtF.mat | Bin 2922 -> 0 bytes .../info/chart6_q0bLWDmxnDxpaSZP3och4.mat | Bin 2858 -> 0 bytes .../_self/sfun/src/MuscleSpindle_sfun.c | 128 +- .../_self/sfun/src/MuscleSpindle_sfun.h | 3 + .../_self/sfun/src/MuscleSpindle_sfun.mku | 99 -- .../_self/sfun/src/MuscleSpindle_sfun.o | Bin 7920 -> 0 bytes .../src/MuscleSpindle_sfun_debug_macros.h | 218 ++- .../sfun/src/MuscleSpindle_sfun_registry.c | 72 +- .../sfun/src/MuscleSpindle_sfun_registry.o | Bin 34256 -> 0 bytes .../_self/sfun/src/c1_MuscleSpindle.c | 385 ++-- .../_self/sfun/src/c1_MuscleSpindle.h | 18 +- .../_self/sfun/src/c1_MuscleSpindle.o | Bin 35928 -> 0 bytes .../_self/sfun/src/c2_MuscleSpindle.c | 385 ++-- .../_self/sfun/src/c2_MuscleSpindle.h | 18 +- .../_self/sfun/src/c2_MuscleSpindle.o | Bin 35928 -> 0 bytes .../_self/sfun/src/c3_MuscleSpindle.c | 184 +- .../_self/sfun/src/c3_MuscleSpindle.h | 18 +- .../_self/sfun/src/c3_MuscleSpindle.o | Bin 28048 -> 0 bytes .../_self/sfun/src/c4_MuscleSpindle.c | 184 +- .../_self/sfun/src/c4_MuscleSpindle.h | 18 +- .../_self/sfun/src/c4_MuscleSpindle.o | Bin 28048 -> 0 bytes .../_self/sfun/src/c5_MuscleSpindle.c | 385 ++-- .../_self/sfun/src/c5_MuscleSpindle.h | 18 +- .../_self/sfun/src/c5_MuscleSpindle.o | Bin 35928 -> 0 bytes .../_self/sfun/src/c6_MuscleSpindle.c | 1500 ---------------- .../_self/sfun/src/c6_MuscleSpindle.h | 46 - .../_self/sfun/src/c6_MuscleSpindle.o | Bin 33820 -> 0 bytes .../MuscleSpindle/_self/sfun/src/rtwtypes.h | 445 ++++- .../_self/sfun/src/rtwtypeschksum.mat | Bin 1072 -> 1105 bytes .../_sfprj/Test/_self/sfun/info/binfo.mat | Bin 1556 -> 0 bytes .../info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat | Bin 2904 -> 0 bytes .../_sfprj/Test/_self/sfun/src/Test_sfun.c | 238 --- .../_sfprj/Test/_self/sfun/src/Test_sfun.h | 40 - .../_sfprj/Test/_self/sfun/src/Test_sfun.mku | 95 - .../_sfprj/Test/_self/sfun/src/Test_sfun.mol | 3 - .../_sfprj/Test/_self/sfun/src/Test_sfun.o | Bin 6816 -> 0 bytes .../_self/sfun/src/Test_sfun_debug_macros.h | 354 ---- .../Test/_self/sfun/src/Test_sfun_registry.c | 283 --- .../Test/_self/sfun/src/Test_sfun_registry.o | Bin 28708 -> 0 bytes .../_sfprj/Test/_self/sfun/src/c2_Test.c | 1547 ----------------- .../_sfprj/Test/_self/sfun/src/c2_Test.h | 45 - .../_sfprj/Test/_self/sfun/src/c2_Test.o | Bin 35852 -> 0 bytes .../_sfprj/Test/_self/sfun/src/rtwtypes.h | 714 -------- .../Test/_self/sfun/src/rtwtypeschksum.mat | Bin 1064 -> 0 bytes .../tmwinternal/minfo_mdlref.mat | Bin 1482 -> 0 bytes .../tmwinternal/minfo_mdlref.mat | Bin 1515 -> 0 bytes .../MuscleSpindleTest/tmwinternal/minfo.mat | Bin 1517 -> 0 bytes .../tmwinternal/ContinuousDetectIncrease0.mdl | 826 --------- .../tmwinternal/ContinuousDetectIncrease1.mdl | 826 --------- MATLAB/slprj/sl_proj.tmw | 2 +- 59 files changed, 3021 insertions(+), 8346 deletions(-) delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart1_ycYIpW7uLL3gXRMLAbVLtF.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart2_jArXz9tmqVBg2EURlcro0B.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart2_vS4hkj9wASYLpg5pFEfJZG.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart3_4AIp75LcIllG7UOnkZHcRB.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart4_4AIp75LcIllG7UOnkZHcRB.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart5_ycYIpW7uLL3gXRMLAbVLtF.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart6_q0bLWDmxnDxpaSZP3och4.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mku delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.o delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/info/binfo.mat delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.c delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.h delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mku delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mol delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.o delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_debug_macros.h delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.c delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.o delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.c delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.h delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.o delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypes.h delete mode 100644 MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypeschksum.mat delete mode 100644 MATLAB/slprj/grt/ContinuousDetectIncrease/tmwinternal/minfo_mdlref.mat delete mode 100644 MATLAB/slprj/grt/MuscleSpindle/tmwinternal/minfo_mdlref.mat delete mode 100644 MATLAB/slprj/grt/MuscleSpindleTest/tmwinternal/minfo.mat delete mode 100644 MATLAB/slprj/sim/ContinuousDetectIncrease/tmwinternal/ContinuousDetectIncrease0.mdl delete mode 100644 MATLAB/slprj/sim/ContinuousDetectIncrease/tmwinternal/ContinuousDetectIncrease1.mdl diff --git a/MATLAB/MuscleSpindle.mdl b/MATLAB/MuscleSpindle.mdl index 8961e2f..77e8c25 100644 --- a/MATLAB/MuscleSpindle.mdl +++ b/MATLAB/MuscleSpindle.mdl @@ -1,6 +1,6 @@ Model { Name "MuscleSpindle" - Version 7.9 + Version 8.1 MdlSubVersion 0 GraphicalInterface { NumRootInports 3 @@ -28,7 +28,7 @@ Model { Name "Secondary Afferent" } ParameterArgumentNames "" - ComputedModelVersion "1.475" + ComputedModelVersion "1.477" NumModelReferences 3 ModelReference { ModelRefBlockPath "MuscleSpindle/Bag1/Coef of asymmetry (C)/Model|ContinuousDetectIncrease" @@ -41,7 +41,7 @@ Model { } NumTestPointedSignals 0 } - SavedCharacterEncoding "ISO-8859-1" + SavedCharacterEncoding "windows-1252" SaveDefaultBlockParams on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on @@ -52,15 +52,54 @@ Model { MinMaxOverflowArchiveMode "Overwrite" FPTRunName "Run 1" MaxMDLFileLineLength 120 + Object { + $PropName "BdWindowsInfo" + $ObjectID 1 + $ClassName "Simulink.BDWindowsInfo" + Object { + $PropName "WindowsInfo" + $ObjectID 2 + $ClassName "Simulink.WindowInfo" + IsActive [1] + Location [149.0, 173.0, 999.0, 840.0] + Object { + $PropName "ModelBrowserInfo" + $ObjectID 3 + $ClassName "Simulink.ModelBrowserInfo" + Visible [0] + DockPosition "Left" + Width [50] + Height [50] + Filter [8] + } + Object { + $PropName "ExplorerBarInfo" + $ObjectID 4 + $ClassName "Simulink.ExplorerBarInfo" + Visible [0] + } + Object { + $PropName "EditorsInfo" + $ObjectID 5 + $ClassName "Simulink.EditorInfo" + IsActive [1] + ViewObjType "SimulinkTopLevel" + LoadSaveID "0" + Extents [949.0, 695.0] + ZoomFactor [1.0] + Offset [0.0, 0.0] + } + } + } Created "Thu Oct 25 10:55:56 2012" Creator "oli" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" - LastModifiedBy "oli" + LastModifiedBy "mitkof6" ModifiedDateFormat "%" - LastModifiedDate "Mon Dec 02 14:04:34 2013" - RTWModifiedTimeStamp 307893841 - ModelVersionFormat "1.%" + LastModifiedDate "Tue Jun 02 15:26:19 2015" + RTWModifiedTimeStamp 355159578 + ModelVersionFormat "1.%" ConfigurationManager "None" SampleTimeColors off SampleTimeAnnotations off @@ -95,7 +134,7 @@ Model { TryForcingSFcnDF off Object { $PropName "DataLoggingOverride" - $ObjectID 1 + $ObjectID 6 $ClassName "Simulink.SimulationData.ModelLoggingInfo" model_ "MuscleSpindle" signals_ [] @@ -154,14 +193,14 @@ Model { Type "Handle" Dimension 2 Simulink.ConfigSet { - $ObjectID 2 - Version "1.12.0" + $ObjectID 7 + Version "1.13.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { - $ObjectID 3 - Version "1.12.0" + $ObjectID 8 + Version "1.13.0" StartTime "0.0" StopTime "3.3" AbsTol "auto" @@ -195,8 +234,8 @@ Model { InsertRTBMode "Whenever possible" } Simulink.DataIOCC { - $ObjectID 4 - Version "1.12.0" + $ObjectID 9 + Version "1.13.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" @@ -227,8 +266,8 @@ Model { Refine "1" } Simulink.OptimizationCC { - $ObjectID 5 - Version "1.12.0" + $ObjectID 10 + Version "1.13.0" Array { Type "Cell" Dimension 8 @@ -283,8 +322,8 @@ Model { ParallelExecutionInRapidAccelerator on } Simulink.DebuggingCC { - $ObjectID 6 - Version "1.12.0" + $ObjectID 11 + Version "1.13.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" @@ -333,7 +372,7 @@ Model { UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" - FcnCallInpInsideContextMsg "Enable All" + FcnCallInpInsideContextMsg "EnableAllAsWarning" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" @@ -369,14 +408,17 @@ Model { SFNoUnconditionalDefaultTransitionDiag "warning" SFTransitionOutsideNaturalParentDiag "warning" SFUnconditionalTransitionShadowingDiag "warning" + SFUndirectedBroadcastEventsDiag "warning" + SFTransitionActionBeforeConditionDiag "warning" } Simulink.HardwareCC { - $ObjectID 7 - Version "1.12.0" + $ObjectID 12 + Version "1.13.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 + ProdBitPerLongLong 64 ProdBitPerFloat 32 ProdBitPerDouble 64 ProdBitPerPointer 32 @@ -386,17 +428,20 @@ Model { ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on + ProdLongLongMode off ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 + TargetBitPerLongLong 64 TargetBitPerFloat 32 TargetBitPerDouble 64 TargetBitPerPointer 32 TargetLargestAtomicInteger "Char" TargetLargestAtomicFloat "None" TargetShiftRightIntArith on + TargetLongLongMode off TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 @@ -408,8 +453,8 @@ Model { ProdEqTarget on } Simulink.ModelReferenceCC { - $ObjectID 8 - Version "1.12.0" + $ObjectID 13 + Version "1.13.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off @@ -423,8 +468,8 @@ Model { SupportModelReferenceSimTargetCustomCode off } Simulink.SFSimCC { - $ObjectID 9 - Version "1.12.0" + $ObjectID 14 + Version "1.13.0" SFSimEnableDebug on SFSimOverflowDetection on SFSimEcho on @@ -438,8 +483,8 @@ Model { } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" - $ObjectID 10 - Version "1.12.0" + $ObjectID 15 + Version "1.13.0" Array { Type "Cell" Dimension 9 @@ -458,6 +503,7 @@ Model { GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on + PackageGeneratedCodeAndArtifacts off TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off @@ -474,6 +520,14 @@ Model { RTWUseSimCustomCode off IncludeHyperlinkInReport off LaunchReport off + PortableWordSizes off + GenerateErtSFunction off + CreateSILPILBlock "None" + CodeExecutionProfiling off + CodeExecutionProfileVariable "executionProfile" + CodeProfilingSaveOptions "SummaryOnly" + CodeProfilingInstrumentation off + SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off IncludeERTFirstTime off @@ -493,8 +547,8 @@ Model { Type "Handle" Dimension 2 Simulink.CodeAppCC { - $ObjectID 11 - Version "1.12.0" + $ObjectID 16 + Version "1.13.0" Array { Type "Cell" Dimension 21 @@ -530,6 +584,7 @@ Model { PreserveName off PreserveNameWithParent off ShowEliminatedStatement off + OperatorAnnotations off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off @@ -537,7 +592,7 @@ Model { IncDataTypeInIds off MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" - CustomSymbolStrType "$N$R$M" + CustomSymbolStrType "$N$R$M_T" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrFcnArg "rt$I$N$M" @@ -552,14 +607,15 @@ Model { SimulinkBlockComments on MATLABSourceComments off EnableCustomComments off + InternalIdentifier "Shortened" InlinedPrmAccess "Literals" ReqsInCode off UseSimReservedNames off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" - $ObjectID 12 - Version "1.12.0" + $ObjectID 17 + Version "1.13.0" Array { Type "Cell" Dimension 16 @@ -572,13 +628,13 @@ Model { Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlCompliant" Cell "CPPClassGenCompliant" - Cell "MultiInstanceERTCode" + Cell "PortableWordSizes" Cell "PurelyIntegerCode" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" - Cell "PortableWordSizes" + Cell "GenerateAllocFcn" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_table_tmw.mat" @@ -587,7 +643,6 @@ Model { CodeReplacementLibrary "ANSI_C" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" - CodeExecutionProfiling off ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on @@ -618,11 +673,12 @@ Model { SupportVariableSizeSignals off EnableShiftOperators on ParenthesesLevel "Nominal" - PortableWordSizes off + MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off CPPClassGenCompliant off AutosarCompliant off GRTInterface off + GenerateAllocFcn off UseMalloc off ExtMode off ExtModeStaticAlloc off @@ -647,14 +703,14 @@ Model { ConfigPrmDlgPosition [ 200, 85, 1080, 715 ] } Simulink.ConfigSet { - $ObjectID 13 - Version "1.12.0" + $ObjectID 18 + Version "1.13.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { - $ObjectID 14 - Version "1.12.0" + $ObjectID 19 + Version "1.13.0" StartTime "0.0" StopTime "inf" AbsTol "auto" @@ -688,8 +744,8 @@ Model { InsertRTBMode "Whenever possible" } Simulink.DataIOCC { - $ObjectID 15 - Version "1.12.0" + $ObjectID 20 + Version "1.13.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" @@ -720,8 +776,8 @@ Model { Refine "1" } Simulink.OptimizationCC { - $ObjectID 16 - Version "1.12.0" + $ObjectID 21 + Version "1.13.0" Array { Type "Cell" Dimension 8 @@ -776,8 +832,8 @@ Model { ParallelExecutionInRapidAccelerator on } Simulink.DebuggingCC { - $ObjectID 17 - Version "1.12.0" + $ObjectID 22 + Version "1.13.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" @@ -826,7 +882,7 @@ Model { UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" - FcnCallInpInsideContextMsg "Enable All" + FcnCallInpInsideContextMsg "EnableAllAsWarning" SignalLabelMismatchMsg "none" UnconnectedInputMsg "none" UnconnectedOutputMsg "none" @@ -862,14 +918,17 @@ Model { SFNoUnconditionalDefaultTransitionDiag "warning" SFTransitionOutsideNaturalParentDiag "warning" SFUnconditionalTransitionShadowingDiag "warning" + SFUndirectedBroadcastEventsDiag "warning" + SFTransitionActionBeforeConditionDiag "warning" } Simulink.HardwareCC { - $ObjectID 18 - Version "1.12.0" + $ObjectID 23 + Version "1.13.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 + ProdBitPerLongLong 64 ProdBitPerFloat 32 ProdBitPerDouble 64 ProdBitPerPointer 32 @@ -879,17 +938,20 @@ Model { ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on + ProdLongLongMode off ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 + TargetBitPerLongLong 64 TargetBitPerFloat 32 TargetBitPerDouble 64 TargetBitPerPointer 32 TargetLargestAtomicInteger "Char" TargetLargestAtomicFloat "None" TargetShiftRightIntArith on + TargetLongLongMode off TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 @@ -901,8 +963,8 @@ Model { ProdEqTarget on } Simulink.ModelReferenceCC { - $ObjectID 19 - Version "1.12.0" + $ObjectID 24 + Version "1.13.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off @@ -916,8 +978,8 @@ Model { SupportModelReferenceSimTargetCustomCode off } Simulink.SFSimCC { - $ObjectID 20 - Version "1.12.0" + $ObjectID 25 + Version "1.13.0" SFSimEnableDebug on SFSimOverflowDetection on SFSimEcho on @@ -931,8 +993,8 @@ Model { } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" - $ObjectID 21 - Version "1.12.0" + $ObjectID 26 + Version "1.13.0" Array { Type "Cell" Dimension 9 @@ -951,6 +1013,7 @@ Model { GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on + PackageGeneratedCodeAndArtifacts off TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off @@ -967,6 +1030,14 @@ Model { RTWUseSimCustomCode off IncludeHyperlinkInReport off LaunchReport off + PortableWordSizes off + GenerateErtSFunction off + CreateSILPILBlock "None" + CodeExecutionProfiling off + CodeExecutionProfileVariable "executionProfile" + CodeProfilingSaveOptions "SummaryOnly" + CodeProfilingInstrumentation off + SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off IncludeERTFirstTime off @@ -986,8 +1057,8 @@ Model { Type "Handle" Dimension 2 Simulink.CodeAppCC { - $ObjectID 22 - Version "1.12.0" + $ObjectID 27 + Version "1.13.0" Array { Type "Cell" Dimension 21 @@ -1023,6 +1094,7 @@ Model { PreserveName off PreserveNameWithParent off ShowEliminatedStatement off + OperatorAnnotations off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off @@ -1030,7 +1102,7 @@ Model { IncDataTypeInIds off MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" - CustomSymbolStrType "$N$R$M" + CustomSymbolStrType "$N$R$M_T" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrFcnArg "rt$I$N$M" @@ -1045,14 +1117,15 @@ Model { SimulinkBlockComments on MATLABSourceComments off EnableCustomComments off + InternalIdentifier "Shortened" InlinedPrmAccess "Literals" ReqsInCode off UseSimReservedNames off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" - $ObjectID 23 - Version "1.12.0" + $ObjectID 28 + Version "1.13.0" Array { Type "Cell" Dimension 16 @@ -1065,13 +1138,13 @@ Model { Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlCompliant" Cell "CPPClassGenCompliant" - Cell "MultiInstanceERTCode" + Cell "PortableWordSizes" Cell "PurelyIntegerCode" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" - Cell "PortableWordSizes" + Cell "GenerateAllocFcn" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_table_tmw.mat" @@ -1080,7 +1153,6 @@ Model { CodeReplacementLibrary "ANSI_C" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" - CodeExecutionProfiling off ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on @@ -1111,11 +1183,12 @@ Model { SupportVariableSizeSignals off EnableShiftOperators on ParenthesesLevel "Nominal" - PortableWordSizes off + MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off CPPClassGenCompliant off AutosarCompliant off GRTInterface off + GenerateAllocFcn off UseMalloc off ExtMode off ExtModeStaticAlloc off @@ -1143,7 +1216,17 @@ Model { } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" - $ObjectID 13 + $ObjectID 18 + } + Object { + $PropName "DataTransfer" + $ObjectID 29 + $ClassName "Simulink.GlobalDataTransfer" + DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)" + DefaultTransitionBetweenAsyncTasks "Ensure data integrity only" + DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)" + DefaultExtrapolationMethodBetweenContTasks "None" + AutoInsertRateTranBlk [0] } ExplicitPartitioning off BlockDefaults { @@ -1177,6 +1260,25 @@ Model { FontWeight "normal" FontAngle "normal" } + MaskDefaults { + SelfModifiable "off" + IconFrame "on" + IconOpaque "on" + RunInitForIconRedraw "off" + IconRotate "none" + PortRotate "default" + IconUnits "autoscale" + } + MaskParameterDefaults { + Evaluate "on" + Tunable "on" + NeverSave "off" + Internal "off" + ReadOnly "off" + Enabled "on" + Visible "on" + ToolTip "on" + } BlockParameterDefaults { Block { BlockType Constant @@ -1328,6 +1430,7 @@ Model { SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" + FunctionInterfaceSpec "void_void" RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" @@ -1378,7 +1481,7 @@ Model { } System { Name "MuscleSpindle" - Location [179, 285, 1122, 941] + Location [149, 173, 1148, 1013] Open on ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1435,7 +1538,7 @@ Model { MaskHideContents off System { Name "Bag1" - Location [151, 104, 1431, 795] + Location [121, 52, 1457, 927] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1481,7 +1584,7 @@ Model { MaskHideContents off System { Name "Beta Calculation (Eqn 4)" - Location [105, 251, 603, 551] + Location [75, 139, 629, 623] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1585,6 +1688,7 @@ Model { Annotation { SID "796" Position [260, 134] + ZOrder -1 } } } @@ -1619,7 +1723,7 @@ Model { MaskHideContents off System { Name "Coef of asymmetry (C)" - Location [309, 506, 807, 806] + Location [279, 394, 833, 878] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1680,8 +1784,16 @@ Model { ListType OutputPortOutputBusAsStructs port0 "off" } + List { + ListType InputPortLatchByCopyingInsideSignal + port0 "off" + } CopyOfModelName "ContinuousDetectIncrease" DefaultDataLogging on + List { + ListType InputPortLatchByDelayingOutsideSignal + port0 "off" + } } Block { BlockType RateTransition @@ -1761,6 +1873,7 @@ Model { Annotation { SID "989" Position [81, 88] + ZOrder -1 } } } @@ -1796,7 +1909,7 @@ Model { MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" - Location [75, 307, 573, 607] + Location [45, 195, 599, 679] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1867,6 +1980,7 @@ Model { Annotation { SID "813" Position [260, 134] + ZOrder -1 } } } @@ -1934,7 +2048,7 @@ Model { MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" - Location [14, 286, 567, 825] + Location [16, 174, 625, 897] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -2148,7 +2262,7 @@ Model { MaskHideContents off System { Name "Tension (T) Calculation " - Location [7, 72, 1254, 724] + Location [16, 52, 1319, 888] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -2278,19 +2392,9 @@ Model { RequestExecContextInheritance off MaskHideContents off SFBlockType "MATLAB Function" - MaskType "Stateflow" - MaskDescription "Embedded MATLAB block" - MaskSelfModifiable on - MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p" - "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'Calculate_ddT']);" - MaskIconFrame on - MaskIconOpaque off - MaskIconRotate "none" - MaskPortRotate "default" - MaskIconUnits "normalized" System { Name "Calculate ddT (Eqn 6)" - Location [257, 457, 812, 717] + Location [227, 345, 838, 789] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -2303,7 +2407,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "39" + SIDHighWatermark "42" Block { BlockType Inport Name "dT" @@ -2362,6 +2466,7 @@ Model { Name "Ksr" SID "846::1" Position [20, 316, 40, 334] + ZOrder -7 Port "7" IconDisplay "Port number" } @@ -2440,20 +2545,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "846::20" + SID "846::41" Ports [1, 1] - Position [270, 480, 320, 520] - ZOrder 6 + Position [270, 230, 320, 270] + ZOrder 26 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "846::19" + SID "846::40" Tag "Stateflow S-Function MuscleSpindle 2" Ports [15, 2] - Position [180, 120, 230, 480] - ZOrder 5 + Position [180, 85, 230, 405] + ZOrder 25 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -2467,15 +2572,16 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "846::22" - Position [460, 491, 480, 509] - ZOrder 8 + SID "846::42" + Position [460, 241, 480, 259] + ZOrder 27 } Block { BlockType Outport Name "ddT" SID "846::5" Position [460, 101, 480, 119] + ZOrder -19 IconDisplay "Port number" } Line { @@ -2788,7 +2894,7 @@ Model { MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" - Location [634, 379, 1132, 679] + Location [604, 267, 1158, 751] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3240,6 +3346,7 @@ Model { Annotation { SID "870" Position [650, 215] + ZOrder -1 } } } @@ -3259,7 +3366,7 @@ Model { MaskHideContents off System { Name "Bag2" - Location [40, 72, 795, 782] + Location [16, 52, 827, 946] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3305,7 +3412,7 @@ Model { MaskHideContents off System { Name "Beta Calculation (Eqn 4)" - Location [105, 251, 603, 551] + Location [75, 139, 629, 623] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3409,6 +3516,7 @@ Model { Annotation { SID "882" Position [260, 134] + ZOrder -1 } } } @@ -3443,7 +3551,7 @@ Model { MaskHideContents off System { Name "Coef of asymmetry (C)" - Location [66, 363, 564, 663] + Location [36, 251, 590, 735] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3504,8 +3612,16 @@ Model { ListType OutputPortOutputBusAsStructs port0 "off" } + List { + ListType InputPortLatchByCopyingInsideSignal + port0 "off" + } CopyOfModelName "ContinuousDetectIncrease" DefaultDataLogging on + List { + ListType InputPortLatchByDelayingOutsideSignal + port0 "off" + } } Block { BlockType RateTransition @@ -3616,7 +3732,7 @@ Model { MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" - Location [75, 307, 573, 607] + Location [45, 195, 599, 679] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3687,6 +3803,7 @@ Model { Annotation { SID "899" Position [260, 134] + ZOrder -1 } } } @@ -3762,7 +3879,7 @@ Model { MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" - Location [14, 264, 567, 803] + Location [16, 152, 625, 875] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3963,19 +4080,9 @@ Model { RequestExecContextInheritance off MaskHideContents off SFBlockType "MATLAB Function" - MaskType "Stateflow" - MaskDescription "Embedded MATLAB block" - MaskSelfModifiable on - MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('private/" - "eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'SndAffContrib']);" - MaskIconFrame on - MaskIconOpaque off - MaskIconRotate "none" - MaskPortRotate "default" - MaskIconUnits "normalized" System { Name "Secondary Afferent Calculation (eqn (8))" - Location [257, 457, 812, 717] + Location [227, 345, 838, 789] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3988,12 +4095,13 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "31" + SIDHighWatermark "34" Block { BlockType Inport Name "Gsnd" SID "971::1" Position [20, 101, 40, 119] + ZOrder -1 IconDisplay "Port number" } Block { @@ -4080,20 +4188,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "971::20" + SID "971::33" Ports [1, 1] - Position [270, 330, 320, 370] - ZOrder 6 + Position [270, 230, 320, 270] + ZOrder 19 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "971::19" + SID "971::32" Tag "Stateflow S-Function MuscleSpindle 3" Ports [10, 2] - Position [180, 110, 230, 330] - ZOrder 5 + Position [180, 100, 230, 320] + ZOrder 18 FunctionName "sf_sfun" PortCounts "[10 2]" EnableBusSupport on @@ -4107,15 +4215,16 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "971::22" - Position [460, 341, 480, 359] - ZOrder 8 + SID "971::34" + Position [460, 241, 480, 259] + ZOrder 20 } Block { BlockType Outport Name "ScndryAffrntCntrbtn" SID "971::5" Position [460, 101, 480, 119] + ZOrder -14 IconDisplay "Port number" } Line { @@ -4248,7 +4357,7 @@ Model { MaskHideContents off System { Name "Tension (T) Calculation " - Location [182, 296, 1429, 948] + Location [152, 184, 1455, 1020] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -4378,19 +4487,9 @@ Model { RequestExecContextInheritance off MaskHideContents off SFBlockType "MATLAB Function" - MaskType "Stateflow" - MaskDescription "Embedded MATLAB block" - MaskSelfModifiable on - MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p" - "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'Calculate_ddT']);" - MaskIconFrame on - MaskIconOpaque off - MaskIconRotate "none" - MaskPortRotate "default" - MaskIconUnits "normalized" System { Name "Calculate ddT (Eqn 6)" - Location [257, 457, 812, 717] + Location [227, 345, 838, 789] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -4403,7 +4502,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "38" + SIDHighWatermark "41" Block { BlockType Inport Name "dT" @@ -4462,6 +4561,7 @@ Model { Name "Ksr" SID "932::1" Position [20, 316, 40, 334] + ZOrder -7 Port "7" IconDisplay "Port number" } @@ -4540,20 +4640,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "932::20" + SID "932::40" Ports [1, 1] - Position [270, 480, 320, 520] - ZOrder 6 + Position [270, 230, 320, 270] + ZOrder 26 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "932::19" + SID "932::39" Tag "Stateflow S-Function MuscleSpindle 1" Ports [15, 2] - Position [180, 120, 230, 480] - ZOrder 5 + Position [180, 85, 230, 405] + ZOrder 25 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -4567,15 +4667,16 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "932::22" - Position [460, 491, 480, 509] - ZOrder 8 + SID "932::41" + Position [460, 241, 480, 259] + ZOrder 27 } Block { BlockType Outport Name "ddT" SID "932::5" Position [460, 101, 480, 119] + ZOrder -19 IconDisplay "Port number" } Line { @@ -4893,7 +4994,7 @@ Model { MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" - Location [54, 465, 552, 765] + Location [24, 353, 578, 837] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5437,6 +5538,7 @@ Model { Annotation { SID "955" Position [650, 215] + ZOrder -1 } } } @@ -5456,7 +5558,7 @@ Model { MaskHideContents off System { Name "Chain" - Location [3, 72, 1074, 756] + Location [16, 52, 1143, 920] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5502,7 +5604,7 @@ Model { MaskHideContents off System { Name "Beta Calculation (Eqn 4)" - Location [105, 251, 603, 551] + Location [75, 139, 629, 623] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5606,6 +5708,7 @@ Model { Annotation { SID "1011" Position [260, 134] + ZOrder -1 } } } @@ -5640,7 +5743,7 @@ Model { MaskHideContents off System { Name "Coef of asymmetry (C)" - Location [66, 319, 564, 619] + Location [36, 207, 590, 691] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5701,8 +5804,16 @@ Model { ListType OutputPortOutputBusAsStructs port0 "off" } + List { + ListType InputPortLatchByCopyingInsideSignal + port0 "off" + } CopyOfModelName "ContinuousDetectIncrease" DefaultDataLogging on + List { + ListType InputPortLatchByDelayingOutsideSignal + port0 "off" + } } Block { BlockType RateTransition @@ -5813,7 +5924,7 @@ Model { MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" - Location [75, 307, 573, 607] + Location [45, 195, 599, 679] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5884,6 +5995,7 @@ Model { Annotation { SID "1030" Position [260, 134] + ZOrder -1 } } } @@ -5951,7 +6063,7 @@ Model { MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" - Location [14, 264, 567, 803] + Location [16, 152, 625, 875] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -6152,19 +6264,9 @@ Model { RequestExecContextInheritance off MaskHideContents off SFBlockType "MATLAB Function" - MaskType "Stateflow" - MaskDescription "Embedded MATLAB block" - MaskSelfModifiable on - MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('private/" - "eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'SndAffContrib']);" - MaskIconFrame on - MaskIconOpaque off - MaskIconRotate "none" - MaskPortRotate "default" - MaskIconUnits "normalized" System { Name "Secondary Afferent Calculation (eqn (8))" - Location [257, 457, 812, 717] + Location [227, 345, 838, 789] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -6177,12 +6279,13 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "31" + SIDHighWatermark "34" Block { BlockType Inport Name "Gsnd" SID "1050::1" Position [20, 101, 40, 119] + ZOrder -1 IconDisplay "Port number" } Block { @@ -6269,20 +6372,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "1050::20" + SID "1050::33" Ports [1, 1] - Position [270, 330, 320, 370] - ZOrder 6 + Position [270, 230, 320, 270] + ZOrder 19 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "1050::19" + SID "1050::32" Tag "Stateflow S-Function MuscleSpindle 4" Ports [10, 2] - Position [180, 110, 230, 330] - ZOrder 5 + Position [180, 100, 230, 320] + ZOrder 18 FunctionName "sf_sfun" PortCounts "[10 2]" EnableBusSupport on @@ -6296,15 +6399,16 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "1050::22" - Position [460, 341, 480, 359] - ZOrder 8 + SID "1050::34" + Position [460, 241, 480, 259] + ZOrder 20 } Block { BlockType Outport Name "ScndryAffrntCntrbtn" SID "1050::5" Position [460, 101, 480, 119] + ZOrder -14 IconDisplay "Port number" } Line { @@ -6437,7 +6541,7 @@ Model { MaskHideContents off System { Name "Tension (T) Calculation " - Location [246, 183, 1493, 835] + Location [216, 71, 1519, 907] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -6567,19 +6671,9 @@ Model { RequestExecContextInheritance off MaskHideContents off SFBlockType "MATLAB Function" - MaskType "Stateflow" - MaskDescription "Embedded MATLAB block" - MaskSelfModifiable on - MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p" - "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'Calculate_ddT']);" - MaskIconFrame on - MaskIconOpaque off - MaskIconRotate "none" - MaskPortRotate "default" - MaskIconUnits "normalized" System { Name "Calculate ddT (Eqn 6)" - Location [257, 457, 812, 717] + Location [227, 345, 838, 789] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -6592,7 +6686,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "38" + SIDHighWatermark "41" Block { BlockType Inport Name "dT" @@ -6651,6 +6745,7 @@ Model { Name "Ksr" SID "1067::1" Position [20, 316, 40, 334] + ZOrder -7 Port "7" IconDisplay "Port number" } @@ -6729,20 +6824,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "1067::20" + SID "1067::40" Ports [1, 1] - Position [270, 480, 320, 520] - ZOrder 6 + Position [270, 230, 320, 270] + ZOrder 26 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "1067::19" + SID "1067::39" Tag "Stateflow S-Function MuscleSpindle 5" Ports [15, 2] - Position [180, 120, 230, 480] - ZOrder 5 + Position [180, 85, 230, 405] + ZOrder 25 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -6756,15 +6851,16 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "1067::22" - Position [460, 491, 480, 509] - ZOrder 8 + SID "1067::41" + Position [460, 241, 480, 259] + ZOrder 27 } Block { BlockType Outport Name "ddT" SID "1067::5" Position [460, 101, 480, 119] + ZOrder -19 IconDisplay "Port number" } Line { @@ -7082,7 +7178,7 @@ Model { MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" - Location [77, 356, 575, 656] + Location [47, 244, 601, 728] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -7505,6 +7601,7 @@ Model { Annotation { SID "1092" Position [650, 215] + ZOrder -1 } } } @@ -7524,7 +7621,7 @@ Model { MaskHideContents off System { Name "Partial Occlusion Effect" - Location [473, 267, 971, 567] + Location [443, 155, 997, 639] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -7708,12 +7805,11 @@ Model { BlockType Sum Name "Sum1" SID "980" - Ports [3, 1] - Position [515, 235, 545, 265] + Ports [2, 1] + Position [510, 295, 540, 325] ZOrder -18 ShowName off IconShape "round" - Inputs "+|+|+" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off @@ -7780,16 +7876,8 @@ Model { Line { SrcBlock "Sum" SrcPort 1 - Points [20, 0] - Branch { - DstBlock "Secondary\nAfferent" - DstPort 1 - } - Branch { - Points [0, -60] - DstBlock "Partial Occlusion Effect" - DstPort 3 - } + DstBlock "Secondary\nAfferent" + DstPort 1 } Line { SrcBlock "Partial Occlusion Effect" @@ -7807,22 +7895,23 @@ Model { Line { SrcBlock "Bag1" SrcPort 1 - Points [105, 0] - DstBlock "Sum1" - DstPort 1 + Points [114, 0; 0, 75] + DstBlock "Partial Occlusion Effect" + DstPort 2 } Line { SrcBlock "Bag2" SrcPort 1 + Points [100, 0] DstBlock "Sum1" - DstPort 2 + DstPort 1 } Line { SrcBlock "Chain" SrcPort 1 - Points [105, 0] + Points [100, 0] DstBlock "Sum1" - DstPort 3 + DstPort 2 } Line { SrcBlock "Chain" @@ -7834,8 +7923,9 @@ Model { Line { SrcBlock "Sum1" SrcPort 1 + Points [5, 0; 0, -45] DstBlock "Partial Occlusion Effect" - DstPort 2 + DstPort 3 } Line { Labels [0, 0] @@ -7848,16 +7938,16 @@ Model { Annotation { SID "1106" Position [652, 51] + ZOrder -1 } } } # Finite State Machines # -# Stateflow Version 7.6 (R2011b) dated Jan 25 2012, 13:47:19 +# Stateflow Version 7.6 (R2013a) dated Jan 19 2013, 14:32:20 # # - Stateflow { machine { id 1 @@ -7865,23 +7955,23 @@ Stateflow { created "08-Nov-2012 15:23:06" isLibrary 0 firstTarget 97 - sfVersion 76014001.00040001 + sfVersion 76014001.0015 } chart { id 2 name "Bag2/Tension (T) Calculation /Calculate ddT (Eqn 6)" - windowPosition [420.454 226.35 200.25 189.75] + windowPosition [561 368.75 213 385] viewLimits [0 156.75 0 153.75] - screen [1 1 1280 800 1.000788022064618] + screen [1 1 1920 1080 1.333333333333333] treeNode [0 3 0 0] - firstTransition 5 - firstJunction 4 + firstTransition 21 + firstJunction 20 viewObj 2 machine 1 ssIdHighWaterMark 21 decomposition CLUSTER_CHART type EML_CHART - firstData 6 + firstData 4 chartFileNumber 1 disableImplicitCasting 1 eml { @@ -7909,41 +7999,11 @@ Stateflow { editorLayout "100 M4x1[10 5 700 500]" } } - junction { - id 4 - position [23.5747 49.5747 7] - chart 2 - linkNode [2 0 0] - subviewer 2 - ssIdNumber 3 - type CONNECTIVE_JUNCTION - } - transition { - id 5 - labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] - fontSize 12 - src { - intersection [0 0 1 0 23.5747 14.625 0 0] - } - dst { - id 4 - intersection [7 0 -1 -1 23.5747 42.5747 0 0] - } - midPoint [23.5747 24.9468] - chart 2 - linkNode [2 0 0] - dataLimits [23.575 23.575 14.625 34.575] - subviewer 2 - drawStyle SMART - executionOrder 1 - ssIdNumber 2 - } data { - id 6 + id 4 ssIdNumber 10 name "dT" - linkNode [2 0 7] + linkNode [2 0 5] scope INPUT_DATA machine 1 props { @@ -7962,10 +8022,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 7 + id 5 ssIdNumber 13 name "T" - linkNode [2 6 8] + linkNode [2 4 6] scope INPUT_DATA machine 1 props { @@ -7984,10 +8044,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 8 + id 6 ssIdNumber 11 name "L" - linkNode [2 7 9] + linkNode [2 5 7] scope INPUT_DATA machine 1 props { @@ -8006,10 +8066,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 9 + id 7 ssIdNumber 9 name "dL" - linkNode [2 8 10] + linkNode [2 6 8] scope INPUT_DATA machine 1 props { @@ -8028,10 +8088,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 10 + id 8 ssIdNumber 20 name "ddL" - linkNode [2 9 11] + linkNode [2 7 9] scope INPUT_DATA machine 1 props { @@ -8050,10 +8110,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 11 + id 9 ssIdNumber 12 name "Lsr0" - linkNode [2 10 12] + linkNode [2 8 10] scope INPUT_DATA machine 1 props { @@ -8072,10 +8132,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 12 + id 10 ssIdNumber 4 name "Ksr" - linkNode [2 11 13] + linkNode [2 9 11] scope INPUT_DATA machine 1 props { @@ -8091,10 +8151,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 13 + id 11 ssIdNumber 5 name "ddT" - linkNode [2 12 14] + linkNode [2 10 12] scope OUTPUT_DATA machine 1 props { @@ -8111,10 +8171,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 14 + id 12 ssIdNumber 6 name "M" - linkNode [2 13 15] + linkNode [2 11 13] scope INPUT_DATA machine 1 props { @@ -8133,10 +8193,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 15 + id 13 ssIdNumber 7 name "C" - linkNode [2 14 16] + linkNode [2 12 14] scope INPUT_DATA machine 1 props { @@ -8155,10 +8215,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 16 + id 14 ssIdNumber 8 name "Beta" - linkNode [2 15 17] + linkNode [2 13 15] scope INPUT_DATA machine 1 props { @@ -8177,10 +8237,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 17 + id 15 ssIdNumber 15 name "a" - linkNode [2 16 18] + linkNode [2 14 16] scope INPUT_DATA machine 1 props { @@ -8199,10 +8259,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 18 + id 16 ssIdNumber 16 name "R" - linkNode [2 17 19] + linkNode [2 15 17] scope INPUT_DATA machine 1 props { @@ -8221,10 +8281,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 19 + id 17 ssIdNumber 17 name "Kpr" - linkNode [2 18 20] + linkNode [2 16 18] scope INPUT_DATA machine 1 props { @@ -8243,10 +8303,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 20 + id 18 ssIdNumber 18 name "Lpr0" - linkNode [2 19 21] + linkNode [2 17 19] scope INPUT_DATA machine 1 props { @@ -8265,10 +8325,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 21 + id 19 ssIdNumber 21 name "Gamma" - linkNode [2 20 0] + linkNode [2 18 0] scope INPUT_DATA machine 1 props { @@ -8286,6 +8346,39 @@ Stateflow { } dataType "Inherit: Same as Simulink" } + junction { + id 20 + position [23.5747 49.5747 7] + chart 2 + linkNode [2 0 0] + subviewer 2 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 21 + labelString "{eML_blk_kernel();}" + labelPosition [32.125 19.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 20 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 2 + linkNode [2 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 2 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } instance { id 22 name "Bag2/Tension (T) Calculation /Calculate ddT (Eqn 6)" @@ -8295,18 +8388,18 @@ Stateflow { chart { id 23 name "Bag1/Tension (T) Calculation /Calculate ddT (Eqn 6)" - windowPosition [405.454 241.35 200.25 189.75] + windowPosition [541 368.75 213 385] viewLimits [0 156.75 0 153.75] - screen [1 1 1280 800 1.000788022064618] + screen [1 1 1920 1080 1.333333333333333] treeNode [0 24 0 0] - firstTransition 26 - firstJunction 25 + firstTransition 42 + firstJunction 41 viewObj 23 machine 1 ssIdHighWaterMark 22 decomposition CLUSTER_CHART type EML_CHART - firstData 27 + firstData 25 chartFileNumber 2 disableImplicitCasting 1 eml { @@ -8334,41 +8427,11 @@ Stateflow { editorLayout "100 M4x1[10 5 700 500]" } } - junction { - id 25 - position [23.5747 49.5747 7] - chart 23 - linkNode [23 0 0] - subviewer 23 - ssIdNumber 3 - type CONNECTIVE_JUNCTION - } - transition { - id 26 - labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] - fontSize 12 - src { - intersection [0 0 1 0 23.5747 14.625 0 0] - } - dst { - id 25 - intersection [7 0 -1 -1 23.5747 42.5747 0 0] - } - midPoint [23.5747 24.9468] - chart 23 - linkNode [23 0 0] - dataLimits [23.575 23.575 14.625 34.575] - subviewer 23 - drawStyle SMART - executionOrder 1 - ssIdNumber 2 - } data { - id 27 + id 25 ssIdNumber 10 name "dT" - linkNode [23 0 28] + linkNode [23 0 26] scope INPUT_DATA machine 1 props { @@ -8387,10 +8450,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 28 + id 26 ssIdNumber 13 name "T" - linkNode [23 27 29] + linkNode [23 25 27] scope INPUT_DATA machine 1 props { @@ -8409,10 +8472,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 29 + id 27 ssIdNumber 11 name "L" - linkNode [23 28 30] + linkNode [23 26 28] scope INPUT_DATA machine 1 props { @@ -8431,10 +8494,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 30 + id 28 ssIdNumber 9 name "dL" - linkNode [23 29 31] + linkNode [23 27 29] scope INPUT_DATA machine 1 props { @@ -8453,10 +8516,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 31 + id 29 ssIdNumber 20 name "ddL" - linkNode [23 30 32] + linkNode [23 28 30] scope INPUT_DATA machine 1 props { @@ -8475,10 +8538,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 32 + id 30 ssIdNumber 12 name "Lsr0" - linkNode [23 31 33] + linkNode [23 29 31] scope INPUT_DATA machine 1 props { @@ -8497,10 +8560,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 33 + id 31 ssIdNumber 4 name "Ksr" - linkNode [23 32 34] + linkNode [23 30 32] scope INPUT_DATA machine 1 props { @@ -8516,10 +8579,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 34 + id 32 ssIdNumber 5 name "ddT" - linkNode [23 33 35] + linkNode [23 31 33] scope OUTPUT_DATA machine 1 props { @@ -8536,10 +8599,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 35 + id 33 ssIdNumber 6 name "M" - linkNode [23 34 36] + linkNode [23 32 34] scope INPUT_DATA machine 1 props { @@ -8558,10 +8621,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 36 + id 34 ssIdNumber 7 name "C" - linkNode [23 35 37] + linkNode [23 33 35] scope INPUT_DATA machine 1 props { @@ -8580,10 +8643,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 37 + id 35 ssIdNumber 8 name "Beta" - linkNode [23 36 38] + linkNode [23 34 36] scope INPUT_DATA machine 1 props { @@ -8602,10 +8665,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 38 + id 36 ssIdNumber 15 name "a" - linkNode [23 37 39] + linkNode [23 35 37] scope INPUT_DATA machine 1 props { @@ -8624,10 +8687,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 39 + id 37 ssIdNumber 16 name "R" - linkNode [23 38 40] + linkNode [23 36 38] scope INPUT_DATA machine 1 props { @@ -8646,10 +8709,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 40 + id 38 ssIdNumber 17 name "Kpr" - linkNode [23 39 41] + linkNode [23 37 39] scope INPUT_DATA machine 1 props { @@ -8668,10 +8731,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 41 + id 39 ssIdNumber 18 name "Lpr0" - linkNode [23 40 42] + linkNode [23 38 40] scope INPUT_DATA machine 1 props { @@ -8690,10 +8753,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 42 + id 40 ssIdNumber 21 name "Gamma" - linkNode [23 41 0] + linkNode [23 39 0] scope INPUT_DATA machine 1 props { @@ -8711,6 +8774,39 @@ Stateflow { } dataType "Inherit: Same as Simulink" } + junction { + id 41 + position [23.5747 49.5747 7] + chart 23 + linkNode [23 0 0] + subviewer 23 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 42 + labelString "{eML_blk_kernel();}" + labelPosition [32.125 19.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 41 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 23 + linkNode [23 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 23 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } instance { id 43 name "Bag1/Tension (T) Calculation /Calculate ddT (Eqn 6)" @@ -8720,19 +8816,19 @@ Stateflow { chart { id 44 name "Bag2/Secondary Afferent Calculation (eqn (8))" - windowPosition [375.454 271.35 200.25 189.75] + windowPosition [501 368.75 213 385] viewLimits [0 156.75 0 153.75] - screen [1 1 1280 800 1.000788022064618] + screen [1 1 1920 1080 1.333333333333333] treeNode [0 45 0 0] - firstTransition 47 - firstJunction 46 + firstTransition 58 + firstJunction 57 viewObj 44 machine 1 toolbarMode LIBRARY_TOOLBAR ssIdHighWaterMark 14 decomposition CLUSTER_CHART type EML_CHART - firstData 48 + firstData 46 chartFileNumber 3 disableImplicitCasting 1 eml { @@ -8760,41 +8856,11 @@ Stateflow { editorLayout "100 M4x1[10 5 700 500]" } } - junction { - id 46 - position [23.5747 49.5747 7] - chart 44 - linkNode [44 0 0] - subviewer 44 - ssIdNumber 3 - type CONNECTIVE_JUNCTION - } - transition { - id 47 - labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] - fontSize 12 - src { - intersection [0 0 1 0 23.5747 14.625 0 0] - } - dst { - id 46 - intersection [7 0 -1 -1 23.5747 42.5747 0 0] - } - midPoint [23.5747 24.9468] - chart 44 - linkNode [44 0 0] - dataLimits [23.575 23.575 14.625 34.575] - subviewer 44 - drawStyle SMART - executionOrder 1 - ssIdNumber 2 - } data { - id 48 + id 46 ssIdNumber 4 name "Gsnd" - linkNode [44 0 49] + linkNode [44 0 47] scope INPUT_DATA machine 1 props { @@ -8810,10 +8876,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 49 + id 47 ssIdNumber 8 name "T" - linkNode [44 48 50] + linkNode [44 46 48] scope INPUT_DATA machine 1 props { @@ -8832,10 +8898,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 50 + id 48 ssIdNumber 9 name "Ksr" - linkNode [44 49 51] + linkNode [44 47 49] scope INPUT_DATA machine 1 props { @@ -8854,10 +8920,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 51 + id 49 ssIdNumber 11 name "X" - linkNode [44 50 52] + linkNode [44 48 50] scope INPUT_DATA machine 1 props { @@ -8876,10 +8942,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 52 + id 50 ssIdNumber 5 name "ScndryAffrntCntrbtn" - linkNode [44 51 53] + linkNode [44 49 51] scope OUTPUT_DATA machine 1 props { @@ -8896,10 +8962,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 53 + id 51 ssIdNumber 6 name "Lsnd" - linkNode [44 52 54] + linkNode [44 50 52] scope INPUT_DATA machine 1 props { @@ -8918,10 +8984,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 54 + id 52 ssIdNumber 7 name "Lsr0" - linkNode [44 53 55] + linkNode [44 51 53] scope INPUT_DATA machine 1 props { @@ -8940,10 +9006,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 55 + id 53 ssIdNumber 10 name "LsrN" - linkNode [44 54 56] + linkNode [44 52 54] scope INPUT_DATA machine 1 props { @@ -8962,10 +9028,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 56 + id 54 ssIdNumber 12 name "Lpr0" - linkNode [44 55 57] + linkNode [44 53 55] scope INPUT_DATA machine 1 props { @@ -8984,10 +9050,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 57 + id 55 ssIdNumber 14 name "LprN" - linkNode [44 56 58] + linkNode [44 54 56] scope INPUT_DATA machine 1 props { @@ -9006,10 +9072,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 58 + id 56 ssIdNumber 13 name "L" - linkNode [44 57 0] + linkNode [44 55 0] scope INPUT_DATA machine 1 props { @@ -9027,6 +9093,39 @@ Stateflow { } dataType "Inherit: Same as Simulink" } + junction { + id 57 + position [23.5747 49.5747 7] + chart 44 + linkNode [44 0 0] + subviewer 44 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 58 + labelString "{eML_blk_kernel();}" + labelPosition [32.125 19.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 57 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 44 + linkNode [44 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 44 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } instance { id 59 name "Bag2/Secondary Afferent Calculation (eqn (8))" @@ -9036,19 +9135,19 @@ Stateflow { chart { id 60 name "Chain/Secondary Afferent Calculation (eqn (8))" - windowPosition [390.454 256.35 200.25 189.75] + windowPosition [521 368.75 213 385] viewLimits [0 156.75 0 153.75] - screen [1 1 1280 800 1.000788022064618] + screen [1 1 1920 1080 1.333333333333333] treeNode [0 61 0 0] - firstTransition 63 - firstJunction 62 + firstTransition 74 + firstJunction 73 viewObj 60 machine 1 toolbarMode LIBRARY_TOOLBAR ssIdHighWaterMark 14 decomposition CLUSTER_CHART type EML_CHART - firstData 64 + firstData 62 chartFileNumber 4 disableImplicitCasting 1 eml { @@ -9076,41 +9175,11 @@ Stateflow { editorLayout "100 M4x1[10 5 700 500]" } } - junction { - id 62 - position [23.5747 49.5747 7] - chart 60 - linkNode [60 0 0] - subviewer 60 - ssIdNumber 3 - type CONNECTIVE_JUNCTION - } - transition { - id 63 - labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] - fontSize 12 - src { - intersection [0 0 1 0 23.5747 14.625 0 0] - } - dst { - id 62 - intersection [7 0 -1 -1 23.5747 42.5747 0 0] - } - midPoint [23.5747 24.9468] - chart 60 - linkNode [60 0 0] - dataLimits [23.575 23.575 14.625 34.575] - subviewer 60 - drawStyle SMART - executionOrder 1 - ssIdNumber 2 - } data { - id 64 + id 62 ssIdNumber 4 name "Gsnd" - linkNode [60 0 65] + linkNode [60 0 63] scope INPUT_DATA machine 1 props { @@ -9126,10 +9195,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 65 + id 63 ssIdNumber 8 name "T" - linkNode [60 64 66] + linkNode [60 62 64] scope INPUT_DATA machine 1 props { @@ -9148,10 +9217,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 66 + id 64 ssIdNumber 9 name "Ksr" - linkNode [60 65 67] + linkNode [60 63 65] scope INPUT_DATA machine 1 props { @@ -9170,10 +9239,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 67 + id 65 ssIdNumber 11 name "X" - linkNode [60 66 68] + linkNode [60 64 66] scope INPUT_DATA machine 1 props { @@ -9192,10 +9261,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 68 + id 66 ssIdNumber 5 name "ScndryAffrntCntrbtn" - linkNode [60 67 69] + linkNode [60 65 67] scope OUTPUT_DATA machine 1 props { @@ -9212,10 +9281,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 69 + id 67 ssIdNumber 6 name "Lsnd" - linkNode [60 68 70] + linkNode [60 66 68] scope INPUT_DATA machine 1 props { @@ -9234,10 +9303,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 70 + id 68 ssIdNumber 7 name "Lsr0" - linkNode [60 69 71] + linkNode [60 67 69] scope INPUT_DATA machine 1 props { @@ -9256,10 +9325,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 71 + id 69 ssIdNumber 10 name "LsrN" - linkNode [60 70 72] + linkNode [60 68 70] scope INPUT_DATA machine 1 props { @@ -9278,10 +9347,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 72 + id 70 ssIdNumber 12 name "Lpr0" - linkNode [60 71 73] + linkNode [60 69 71] scope INPUT_DATA machine 1 props { @@ -9300,10 +9369,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 73 + id 71 ssIdNumber 14 name "LprN" - linkNode [60 72 74] + linkNode [60 70 72] scope INPUT_DATA machine 1 props { @@ -9322,10 +9391,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 74 + id 72 ssIdNumber 13 name "L" - linkNode [60 73 0] + linkNode [60 71 0] scope INPUT_DATA machine 1 props { @@ -9343,6 +9412,39 @@ Stateflow { } dataType "Inherit: Same as Simulink" } + junction { + id 73 + position [23.5747 49.5747 7] + chart 60 + linkNode [60 0 0] + subviewer 60 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 74 + labelString "{eML_blk_kernel();}" + labelPosition [32.125 19.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 73 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 60 + linkNode [60 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 60 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } instance { id 75 name "Chain/Secondary Afferent Calculation (eqn (8))" @@ -9352,18 +9454,18 @@ Stateflow { chart { id 76 name "Chain/Tension (T) Calculation /Calculate ddT (Eqn 6)" - windowPosition [435.454 211.35 200.25 189.75] + windowPosition [581 368.75 213 385] viewLimits [0 156.75 0 153.75] - screen [1 1 1280 800 1.000788022064618] + screen [1 1 1920 1080 1.333333333333333] treeNode [0 77 0 0] - firstTransition 79 - firstJunction 78 + firstTransition 95 + firstJunction 94 viewObj 76 machine 1 ssIdHighWaterMark 21 decomposition CLUSTER_CHART type EML_CHART - firstData 80 + firstData 78 chartFileNumber 5 disableImplicitCasting 1 eml { @@ -9391,41 +9493,11 @@ Stateflow { editorLayout "100 M4x1[10 5 700 500]" } } - junction { - id 78 - position [23.5747 49.5747 7] - chart 76 - linkNode [76 0 0] - subviewer 76 - ssIdNumber 3 - type CONNECTIVE_JUNCTION - } - transition { - id 79 - labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] - fontSize 12 - src { - intersection [0 0 1 0 23.5747 14.625 0 0] - } - dst { - id 78 - intersection [7 0 -1 -1 23.5747 42.5747 0 0] - } - midPoint [23.5747 24.9468] - chart 76 - linkNode [76 0 0] - dataLimits [23.575 23.575 14.625 34.575] - subviewer 76 - drawStyle SMART - executionOrder 1 - ssIdNumber 2 - } data { - id 80 + id 78 ssIdNumber 10 name "dT" - linkNode [76 0 81] + linkNode [76 0 79] scope INPUT_DATA machine 1 props { @@ -9444,10 +9516,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 81 + id 79 ssIdNumber 13 name "T" - linkNode [76 80 82] + linkNode [76 78 80] scope INPUT_DATA machine 1 props { @@ -9466,10 +9538,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 82 + id 80 ssIdNumber 11 name "L" - linkNode [76 81 83] + linkNode [76 79 81] scope INPUT_DATA machine 1 props { @@ -9488,10 +9560,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 83 + id 81 ssIdNumber 9 name "dL" - linkNode [76 82 84] + linkNode [76 80 82] scope INPUT_DATA machine 1 props { @@ -9510,10 +9582,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 84 + id 82 ssIdNumber 20 name "ddL" - linkNode [76 83 85] + linkNode [76 81 83] scope INPUT_DATA machine 1 props { @@ -9532,10 +9604,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 85 + id 83 ssIdNumber 12 name "Lsr0" - linkNode [76 84 86] + linkNode [76 82 84] scope INPUT_DATA machine 1 props { @@ -9554,10 +9626,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 86 + id 84 ssIdNumber 4 name "Ksr" - linkNode [76 85 87] + linkNode [76 83 85] scope INPUT_DATA machine 1 props { @@ -9573,10 +9645,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 87 + id 85 ssIdNumber 5 name "ddT" - linkNode [76 86 88] + linkNode [76 84 86] scope OUTPUT_DATA machine 1 props { @@ -9593,10 +9665,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 88 + id 86 ssIdNumber 6 name "M" - linkNode [76 87 89] + linkNode [76 85 87] scope INPUT_DATA machine 1 props { @@ -9615,10 +9687,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 89 + id 87 ssIdNumber 7 name "C" - linkNode [76 88 90] + linkNode [76 86 88] scope INPUT_DATA machine 1 props { @@ -9637,10 +9709,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 90 + id 88 ssIdNumber 8 name "Beta" - linkNode [76 89 91] + linkNode [76 87 89] scope INPUT_DATA machine 1 props { @@ -9659,10 +9731,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 91 + id 89 ssIdNumber 15 name "a" - linkNode [76 90 92] + linkNode [76 88 90] scope INPUT_DATA machine 1 props { @@ -9681,10 +9753,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 92 + id 90 ssIdNumber 16 name "R" - linkNode [76 91 93] + linkNode [76 89 91] scope INPUT_DATA machine 1 props { @@ -9703,10 +9775,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 93 + id 91 ssIdNumber 17 name "Kpr" - linkNode [76 92 94] + linkNode [76 90 92] scope INPUT_DATA machine 1 props { @@ -9725,10 +9797,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 94 + id 92 ssIdNumber 18 name "Lpr0" - linkNode [76 93 95] + linkNode [76 91 93] scope INPUT_DATA machine 1 props { @@ -9747,10 +9819,10 @@ Stateflow { dataType "Inherit: Same as Simulink" } data { - id 95 + id 93 ssIdNumber 21 name "Gamma" - linkNode [76 94 0] + linkNode [76 92 0] scope INPUT_DATA machine 1 props { @@ -9768,6 +9840,39 @@ Stateflow { } dataType "Inherit: Same as Simulink" } + junction { + id 94 + position [23.5747 49.5747 7] + chart 76 + linkNode [76 0 0] + subviewer 76 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 95 + labelString "{eML_blk_kernel();}" + labelPosition [32.125 19.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 94 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 76 + linkNode [76 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 76 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } instance { id 96 name "Chain/Tension (T) Calculation /Calculate ddT (Eqn 6)" diff --git a/MATLAB/MuscleSpindleTest.mdl b/MATLAB/MuscleSpindleTest.mdl index 58877b3..1b12125 100644 --- a/MATLAB/MuscleSpindleTest.mdl +++ b/MATLAB/MuscleSpindleTest.mdl @@ -1,19 +1,19 @@ Model { Name "MuscleSpindleTest" - Version 7.9 + Version 8.1 MdlSubVersion 0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" - ComputedModelVersion "1.147" + ComputedModelVersion "1.148" NumModelReferences 1 ModelReference { ModelRefBlockPath "MuscleSpindleTest/Model|MuscleSpindle" } NumTestPointedSignals 0 } - SavedCharacterEncoding "ISO-8859-1" + SavedCharacterEncoding "windows-1252" SaveDefaultBlockParams on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on @@ -24,15 +24,54 @@ Model { MinMaxOverflowArchiveMode "Overwrite" FPTRunName "Run 1" MaxMDLFileLineLength 120 + Object { + $PropName "BdWindowsInfo" + $ObjectID 1 + $ClassName "Simulink.BDWindowsInfo" + Object { + $PropName "WindowsInfo" + $ObjectID 2 + $ClassName "Simulink.WindowInfo" + IsActive [1] + Location [314.0, 52.0, 1044.0, 595.0] + Object { + $PropName "ModelBrowserInfo" + $ObjectID 3 + $ClassName "Simulink.ModelBrowserInfo" + Visible [0] + DockPosition "Left" + Width [50] + Height [50] + Filter [8] + } + Object { + $PropName "ExplorerBarInfo" + $ObjectID 4 + $ClassName "Simulink.ExplorerBarInfo" + Visible [0] + } + Object { + $PropName "EditorsInfo" + $ObjectID 5 + $ClassName "Simulink.EditorInfo" + IsActive [1] + ViewObjType "SimulinkTopLevel" + LoadSaveID "0" + Extents [994.0, 450.0] + ZoomFactor [1.0] + Offset [0.0, 40.0] + } + } + } Created "Tue Dec 04 14:49:36 2012" Creator "oli" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" - LastModifiedBy "oli" + LastModifiedBy "mitkof6" ModifiedDateFormat "%" - LastModifiedDate "Wed Dec 19 01:00:33 2012" - RTWModifiedTimeStamp 277779627 - ModelVersionFormat "1.%" + LastModifiedDate "Tue Jun 02 15:26:31 2015" + RTWModifiedTimeStamp 355159559 + ModelVersionFormat "1.%" ConfigurationManager "None" SampleTimeColors off SampleTimeAnnotations off @@ -67,7 +106,7 @@ Model { TryForcingSFcnDF off Object { $PropName "DataLoggingOverride" - $ObjectID 1 + $ObjectID 6 $ClassName "Simulink.SimulationData.ModelLoggingInfo" model_ "MuscleSpindleTest" signals_ [] @@ -127,14 +166,14 @@ Model { Type "Handle" Dimension 1 Simulink.ConfigSet { - $ObjectID 2 - Version "1.12.0" + $ObjectID 7 + Version "1.13.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { - $ObjectID 3 - Version "1.12.0" + $ObjectID 8 + Version "1.13.0" StartTime "0.0" StopTime "3.3" AbsTol "auto" @@ -154,8 +193,8 @@ Model { SolverMode "Auto" EnableConcurrentExecution off ConcurrentTasks off - Solver "ode45" - SolverName "ode45" + Solver "ode3" + SolverName "ode3" SolverJacobianMethodControl "auto" ShapePreserveControl "DisableAll" ZeroCrossControl "UseLocalSettings" @@ -168,8 +207,8 @@ Model { InsertRTBMode "Whenever possible" } Simulink.DataIOCC { - $ObjectID 4 - Version "1.12.0" + $ObjectID 9 + Version "1.13.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" @@ -200,8 +239,8 @@ Model { Refine "1" } Simulink.OptimizationCC { - $ObjectID 5 - Version "1.12.0" + $ObjectID 10 + Version "1.13.0" Array { Type "Cell" Dimension 8 @@ -256,8 +295,8 @@ Model { ParallelExecutionInRapidAccelerator on } Simulink.DebuggingCC { - $ObjectID 6 - Version "1.12.0" + $ObjectID 11 + Version "1.13.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" @@ -306,7 +345,7 @@ Model { UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" - FcnCallInpInsideContextMsg "Enable All" + FcnCallInpInsideContextMsg "EnableAllAsWarning" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" @@ -342,14 +381,17 @@ Model { SFNoUnconditionalDefaultTransitionDiag "warning" SFTransitionOutsideNaturalParentDiag "warning" SFUnconditionalTransitionShadowingDiag "warning" + SFUndirectedBroadcastEventsDiag "warning" + SFTransitionActionBeforeConditionDiag "warning" } Simulink.HardwareCC { - $ObjectID 7 - Version "1.12.0" + $ObjectID 12 + Version "1.13.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 + ProdBitPerLongLong 64 ProdBitPerFloat 32 ProdBitPerDouble 64 ProdBitPerPointer 32 @@ -359,17 +401,20 @@ Model { ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on + ProdLongLongMode off ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 + TargetBitPerLongLong 64 TargetBitPerFloat 32 TargetBitPerDouble 64 TargetBitPerPointer 32 TargetLargestAtomicInteger "Char" TargetLargestAtomicFloat "None" TargetShiftRightIntArith on + TargetLongLongMode off TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 @@ -381,8 +426,8 @@ Model { ProdEqTarget on } Simulink.ModelReferenceCC { - $ObjectID 8 - Version "1.12.0" + $ObjectID 13 + Version "1.13.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off @@ -396,8 +441,8 @@ Model { SupportModelReferenceSimTargetCustomCode off } Simulink.SFSimCC { - $ObjectID 9 - Version "1.12.0" + $ObjectID 14 + Version "1.13.0" SFSimEnableDebug on SFSimOverflowDetection on SFSimEcho on @@ -411,8 +456,8 @@ Model { } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" - $ObjectID 10 - Version "1.12.0" + $ObjectID 15 + Version "1.13.0" Array { Type "Cell" Dimension 9 @@ -431,6 +476,7 @@ Model { GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on + PackageGeneratedCodeAndArtifacts off TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off @@ -447,6 +493,14 @@ Model { RTWUseSimCustomCode off IncludeHyperlinkInReport off LaunchReport off + PortableWordSizes off + GenerateErtSFunction off + CreateSILPILBlock "None" + CodeExecutionProfiling off + CodeExecutionProfileVariable "executionProfile" + CodeProfilingSaveOptions "SummaryOnly" + CodeProfilingInstrumentation off + SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off IncludeERTFirstTime off @@ -466,8 +520,8 @@ Model { Type "Handle" Dimension 2 Simulink.CodeAppCC { - $ObjectID 11 - Version "1.12.0" + $ObjectID 16 + Version "1.13.0" Array { Type "Cell" Dimension 21 @@ -503,6 +557,7 @@ Model { PreserveName off PreserveNameWithParent off ShowEliminatedStatement off + OperatorAnnotations off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off @@ -510,7 +565,7 @@ Model { IncDataTypeInIds off MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" - CustomSymbolStrType "$N$R$M" + CustomSymbolStrType "$N$R$M_T" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrFcnArg "rt$I$N$M" @@ -525,14 +580,15 @@ Model { SimulinkBlockComments on MATLABSourceComments off EnableCustomComments off + InternalIdentifier "Shortened" InlinedPrmAccess "Literals" ReqsInCode off UseSimReservedNames off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" - $ObjectID 12 - Version "1.12.0" + $ObjectID 17 + Version "1.13.0" Array { Type "Cell" Dimension 16 @@ -545,13 +601,13 @@ Model { Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlCompliant" Cell "CPPClassGenCompliant" - Cell "MultiInstanceERTCode" + Cell "PortableWordSizes" Cell "PurelyIntegerCode" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" - Cell "PortableWordSizes" + Cell "GenerateAllocFcn" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_table_tmw.mat" @@ -560,7 +616,6 @@ Model { CodeReplacementLibrary "ANSI_C" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" - CodeExecutionProfiling off ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on @@ -591,11 +646,12 @@ Model { SupportVariableSizeSignals off EnableShiftOperators on ParenthesesLevel "Nominal" - PortableWordSizes off + MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off CPPClassGenCompliant off AutosarCompliant off GRTInterface off + GenerateAllocFcn off UseMalloc off ExtMode off ExtModeStaticAlloc off @@ -617,13 +673,23 @@ Model { } Name "Configuration" CurrentDlgPage "Solver" - ConfigPrmDlgPosition [ 202, 133, 1082, 763 ] + ConfigPrmDlgPosition [ 194, 102, 1090, 771 ] } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" - $ObjectID 2 + $ObjectID 7 + } + Object { + $PropName "DataTransfer" + $ObjectID 18 + $ClassName "Simulink.GlobalDataTransfer" + DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)" + DefaultTransitionBetweenAsyncTasks "Ensure data integrity only" + DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)" + DefaultExtrapolationMethodBetweenContTasks "None" + AutoInsertRateTranBlk [0] } ExplicitPartitioning off BlockDefaults { @@ -657,6 +723,25 @@ Model { FontWeight "normal" FontAngle "normal" } + MaskDefaults { + SelfModifiable "off" + IconFrame "on" + IconOpaque "on" + RunInitForIconRedraw "off" + IconRotate "none" + PortRotate "default" + IconUnits "autoscale" + } + MaskParameterDefaults { + Evaluate "on" + Tunable "on" + NeverSave "off" + Internal "off" + ReadOnly "off" + Enabled "on" + Visible "on" + ToolTip "on" + } BlockParameterDefaults { Block { BlockType Constant @@ -695,11 +780,12 @@ Model { Block { BlockType TimeScope NumInputPorts "1" + DefaultConfigurationName "Simulink.scopes.TimeScopeBlockCfg" } } System { Name "MuscleSpindleTest" - Location [344, 121, 1332, 532] + Location [314, 52, 1358, 647] Open on ModelBrowserVisibility off ModelBrowserWidth 200 @@ -750,7 +836,7 @@ Model { ZOrder -17 ModelNameDialog "MuscleSpindle" SimulationMode "Normal" - ModelReferenceVersion "1.475" + ModelReferenceVersion "1.477" List { ListType InputPortNames port0 "Fascicle Length" @@ -767,8 +853,20 @@ Model { port0 "off" port1 "off" } + List { + ListType InputPortLatchByCopyingInsideSignal + port0 "off" + port1 "off" + port2 "off" + } CopyOfModelName "MuscleSpindle" DefaultDataLogging on + List { + ListType InputPortLatchByDelayingOutsideSignal + port0 "off" + port1 "off" + port2 "off" + } } Block { BlockType Reference @@ -777,7 +875,7 @@ Model { Ports [0, 1] Position [35, 90, 65, 120] ZOrder -14 - LibraryVersion "1.260" + LibraryVersion "1.274" SourceBlock "simulink/Sources/Ramp" SourceType "Ramp" slope "0.66" @@ -802,6 +900,7 @@ Model { CloseFcn "scopeextensions.ScopeBlock.callback(gcbh, 'onBlockClose');" PreDeleteFcn "scopeextensions.ScopeBlock.callback(gcbh, 'onBlockPreDelete');" NumInputPorts "2" + DefaultConfigurationName "spbscopes.TimeScopeBlockCfg" } Block { BlockType Constant @@ -867,420 +966,538 @@ MatData { "5#9F=.86UE %-C;W!E . 4 8 ( ! % \" $ ; 0 0 &P '-" "P8G-C;W!E'1E;G-I;VYS+E-C;W!E0FQO8VL . 2 8 ( #0 % \" 8 ! 0 & & " - " -T\" 0 $ ! P X \"XB !@ @ ) 4 ( 0 (B( ! ( \"(B %)30 " - " . V(< 8 ( @ % \" $ ! 0 % 0 !0 $ % 34-/4P . D(< 8 " - " ( $0 ! $ ! !-0T]3 0 T !&:6QE5W)A<'!E6QE $]P96Y!=$UD;%-T87)T #@ % & \" 0 !0 @ ! &" - "P $ $ !L !S<&)S8V]P97,N5&EM95-C;W!E0FQO8VM#9F< X 0>@ !@ @ 1 $ 0 " - " 8 !H86YD;&4 $ / 97AT;6=R+D-O;F9I9T1B X #(>0 !@ @ ! 4 ( 6 $ ! " - " X !X#P !@ @ ) 4 ( 2 \\ $ ! ( !(#P 0 \"8 !0 0 H $ +@$ #X\"0 4 L " - " $@/ &5X=&UG<@!#;VYF:6=$8@!#;VYF:6< 5'EP90!#;W)E $YA;64 1V5N97)A;\"!520!%;F%B;&4 4')O<&5R='E$8@!00!-051,04(@87)R87D 5F%L=64 8F]O; !M>$%R'D $ \" ! " - " ! P 0 D $ $ * ! $ + 0 %4 ! \"P $ " - " 7 0 L ! 0 $ + 0 , ! \"P $ % 0 L ! !P $ + 0 D " - "! \"P $ + 0 L ! #0 $ + 0 \\ ! \"P $ 1 0 L ! $P $ " - " + 0 !4 ! \"P $ D 0 L ! &@ $ + 0 !P ! \"P $ > 0 L " - " ! ( $ + 0 \"( ! \"P $ I 0 L ! )P $ + 0 #H ! \"P $ " - " L 0 L ! +@ $ + 0 # ! \"P $ R 0 L ! ,P $ + 0 #0 " - " ! \"P $ U 0 L ! -@ $ + 0 #< ! \"P $ X 0 L ! .0 $ " - " + 0 $@ ! \"P $ ] 0 L ! /P $ + 0 $$ ! \"P $ !# 0 L " - " ! 10 $ + 0 $8 ! \"P $ !' 0 L ! 4P $ + 0 $L ! \"P $ " - "!, 0 L ! 30 $ + 0 $X ! \"P $ !/ 0 L ! 40 $ + 0 %( " - " ! ! \" 0 0 # \"" - " $ P # $ $ P 0 $ ( $ P 4 % , $ " - " P 8 & 0 $ P < ' 4 $ P @ ( 8 $ P D ) " - " < $ P H * @ $ P L + D $ P P , H $ P" - " T - L \" 0 ( @ # . $ $ / " - " P $ $ !$ 0 T $ $ !( 1 X $ $ !, 2 \\ $ $ " - " !0 3 ! \" 0 \\ P # 4 $ %P 5 " - " !$ \" 0 !8 ! # 6 $ &@ 7 !( $ &@ " - "!L 8 !, $ &@ !P 9 !0 $ &@ !T : !4 $ &@ !X ; !8" - " $ &@ !\\ < !< $ &@ \" = !@ $ &@ \"$ > !D $ &@ \"" - "( ? !H $ &@ \", @ !L $ &@ \"0 A !P \" 0 !D !0 " - " # B $ )P C !T $ )P \"@ D !X $ )P \"" - "D E !\\ $ )P \"H F \" $ )P \"L G \"$ $ )P \"P H " - " \"( $ )P \"T I \", \" 0 \"8 !@ # J $ " - " , K \"0 $ , #$ L \"4 $ , #( M \"8 $ , #, N " - " \"< $ , #0 O \"@ $ , #4 P \"D $ , #8 Q \"H " - " 0 $ 4 & < ( 0 ) 0 !@ ! 0 !0 8 " - " $ @ ! &0 D ! )0 $ ! 2 !@ 3 \" $ F \"0 $ J " - " 0 $ !0 & !4 ( 0 \"L ) 0 #L ! 0 '0 8 " - " '@ @ ! / D ! 20 $ ! = !@ A \" $ !* \"0 $ !4 " - " 0 P - 0 ( 0 P - 0 0 0 P - 0 8 " - "0 P - 0 @ 0 P + 0 H 0 P - 0 P 0 P - 0 " - " X 0 P - 0 ! 0 P - 0 !( 0 P . 0 !0 0 " - " P / 0 !8 0 P - 0 !L 0 P - 0 !T 0 P - 0 !\\" - " 0 P 1 0 \"$ 0 P - 0 \", 0 P 1 0 \"@ 0 " - "P . 0 \"T 0 P . 0 \"\\ 0 P . 0 #$ 0 P / " - "!8 0 P / !< 0 P / !< 0 P / !@ 0 P" - " / !D 0 P / !H 0 P / !L 0 P / !P " - " 0 P . 0 #X 0 P . 0 $ 0 P - 0 $( 0 P " - "- 0 $0 0 P / !\\ 0 P / \" 0 P / \" " - " 0 P / !@ 0 P / \"( 0 P / \", 0 P " - " / \"0 0 P - 0 % 0 P / \"4 0 P / \"8 " - " #@ '@ & \" $ !0 @ ! 0 $ #@ $@ & \" T !0 @ " - " % 0 $ !@ !0 #= @ $ ! 0 . , 8 ( \"0( % \" $ " - " ! 0 \" $ 0 X !0 0 !@ @ \" 4 ( 0 $ ! 4 ! ' 0 !P " - " !.86UE 4W1A='5S %1Y<&4 !686QU90 X ! !@ @ $ 4 ( 0 T ! ! " - "- 4VAO=TYE=T%C=&EO;@ X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . " - " , 8 ( ! % \" $ $ 0 0 0 8F]O; X P !@ @ ) @ 4 ( " - " 0 $ ! ( 0 #@ # & \" D\" !0 @ ! 0 $ @ ! . " - " 6 $ 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%" - "L=64 . 2 8 ( ! % \" $ 1 0 0 $0 %-H;W=,;V%D0V]N9FEG4V5T " - " X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . , 8 ( ! " + " -T\" 0 $ ! !0 X \"PKP !@ @ ) 4 ( 0 (\"O ! ( \" KP %)30" + " . T*X 8 ( @ % \" $ ! 0 % 0 !0 $ % 34-/4P . B*X 8" + " ( $0 ! $ ! !-0T]3 0 T !&:6QE5W)A<'!E0!!=71O3W!E;DUO9&54>7!E 0 ( $ $ # ! " + " $ $ 0 !P ! ! $ 0 0 ! @ $ $ 0 0 ! ! $ & 0 " + " 0 ! \" $ $ 0 H ! ! $ , 0 0 ! #@ $ $ 0 ! ! ! " + " $ 2 0 0 ! % $ $ 0 !8 ! ! $ 8 0 0 ! &@ " + " $ $ ( ! ( 0 ( ! @ , @ ( " + " ! P 0 P ( ! ! 4 ! ( ! !0 8 !0 ( ! !@ < " + " !@ ( ! !P @ !P ( ! \" D \" ( ! \"0 H \"0 ( " + " ! \"@ L \"@ ( ! \"P P \"P ( ! # T # ( ! #0 X" + " #0 ( ! #@ \\ #@ ! !0 8 ! 0 ! !0 8 " + " ! P ! !0 8 ! !0 ! !0 8 ! !P ! !0 0 ! \"0 " + " ! !0 8 ! \"P ! !0 8 ! #0 ! !0 8 ! #P ! !0 8 " + " ! $0 ! !0 < ! $P ! !0 @ ! %0 ! !0 8 ! %P !" + " !0 8 ! &0 ! !0 8 ! &P . > 8 ( 0 % \" $ ! " + " 0 . 2 8 ( #0 % \" 4 ! 0 & % -T\" 0 $ ! " + " X !0 0 !@ @ \" 4 ( 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %" + "1Y<&4 !686QU90 X ! !@ @ $ 4 ( 0 T ! ! - 4VAO=TYE=T%C=&EO" + ";@ X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . , 8 ( ! " " % \" $ $ 0 0 0 8F]O; X P !@ @ ) @ 4 ( 0 $ ! " " ( 0 #@ # & \" D\" !0 @ ! 0 $ @ ! . 6 $ 8 ( @ " " % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 2 " - " 8 ( ! % \" $ 1 0 0 $0 %-H;W=3879E0V]N9FEG4V5T X X !@ " + " 8 ( ! % \" $ 1 0 0 $0 %-H;W=,;V%D0V]N9FEG4V5T X X !@ " " @ $ 4 ( 0 8 ! ! & 06-T:79E . , 8 ( ! % \" " "$ $ 0 0 0 8F]O; X P !@ @ ) @ 4 ( 0 $ ! ( 0 #@ # " " & \" D\" !0 @ ! 0 $ @ ! . 6 $ 8 ( @ % \" $" " ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 2 8 ( ! " - " % \" $ 5 0 0 %0 $1I7!E 5F%L=64 . 2 8 ( ! % \" $ 8 " - " 0 0 & $UE0 . 4 8 ( !@ % \" $ $ 0 ) ( #1 ! @$ " - "\"!\\0 0'] #@ % & \" 8 !0 @ ! ! $ \"0 \" T0 0(" - "! @?$ $!_0 X !0 0 !@ @ \" 4 ( 0 $ ! 4 ! ' 0 !P !.86U" - "E 4W1A='5S %1Y<&4 !686QU90 X ! !@ @ $ 4 ( 0 \\ ! ! / " - "4VAO=TUA:6Y4;V]L8F%R X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . , " - " 8 ( ! % \" $ $ 0 0 0 8F]O; X P !@ @ ) @ 4 ( 0 " - " $ ! ( 0 ! #@ # & \" D\" !0 @ ! 0 $ @ ! $ . 6 $" - " 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 " - " . 2 8 ( ! % \" $ 3 0 0 $P %-H;W=0;&%Y8F%C:U1O;VQB87( " + " !0 @ ! 0 $ @ ! . 6 $ 8 ( @ % \" $ ! 0 %" + " 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 2 8 ( ! % \" $ 5 " + " 0 0 %0 $1I7!E 5F%L=64 . 2 8 ( ! % \" $ 8 0 0 & " + " $UE0 . 4 " + " 8 ( !@ % \" $ $ 0 ) ( #1 ! @$ \"!\\0 0'] #@ " + " % & \" 8 !0 @ ! ! $ \"0 \" T0 0(! @?$ $!" + "_0 X !0 0 !@ @ \" 4 ( 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 " + " !686QU90 X ! !@ @ $ 4 ( 0 \\ ! ! / 4VAO=TUA:6Y4;V]L8F%R " " X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . , 8 ( ! " " % \" $ $ 0 0 0 8F]O; X P !@ @ ) @ 4 ( 0 $ ! ( " - " 0 ! #@ # & \" D\" !0 @ ! 0 $ @ ! $ . 4 $ 8 ( @ " - " % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 0 8 " - " ( ! % \" $ - 0 0 #0 %-H;W=3=&%T=7-B87( . . 8 ( ! " - " % \" $ & 0 0 !@ $%C=&EV90 #@ # & \" 0 !0 @ ! ! $ " - " $ $ &)O;VP. , 8 ( \"0( % \" $ ! 0 \" $ 0 X P !@ @ " - " ) @ 4 ( 0 $ ! ( 0 ! #@ %@! & \" ( !0 @ ! 0 $ " - " !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $@ & \" 0 !0 @ " - "! $@ $ $ !( !3:&]W1G5L;%!A=&A!8W1I;VX . . 8 ( ! % \" $ &" - " 0 0 !@ $%C=&EV90 #@ # & \" 0 !0 @ ! ! $ $ $ &)O;VP. " - " , 8 ( \"0( % \" $ ! 0 \" $ 0 X P !@ @ ) @ 4 (" - " 0 $ ! ( 0 ! #@ ' ! & \" ( !0 @ ! 0 $ !0 $ < ! " - " ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $ & \" 0 !0 @ ! \"P $ " - " $ L !&:6=U0 . 2 8 ( " - "!@ % \" $ # 0 ) & +Z]O;V]O>T_OKV]O;V][3^^O;V]O;WM/PX !( !@ @ & " - " 4 ( 0 , ! D 8 OKV]O;V][3^^O;V]O;WM/[Z]O;V]O>T_#@ '@! & \" ( !0" - " @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $@ & \" " - " 0 !0 @ ! %@ $ $ !8 !-97-S86=E3&]G075T;T]P96Y-;V1E . . 8 ( ! " - " % \" $ & 0 0 !@ $%C=&EV90 #@ #@ & \" 0 !0 @ ! !@ " - " $ $ 8 !S=')I;F< X !( !@ @ $ 4 ( 0 !8 ! ! 6 9F]R('=" - "A'1M9W(N4')O" - "<&5R='E$8@ . < 8 ( #0 % \" \\ ! 0 & / -T\" \"P " - "$ $ !0 8 ' \" D * \"P P - #@ . 2 8 ( #0 % \" " - " 4 ! 0 & % -T\" 0 $ # X P !@ @ ) @ 4 ( 0 " - "$ ! ( 0 ! #@ %@! & \" ( !0 @ ! 0 $ !0 $ < ! ' $Y" - "A;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $@ & \" 0 !0 @ ! $0 $ $ !$ " - " !3:&]W4F5C96YT4V]U6)A8VM" - "#;61-;V1E . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ # &" - " \" 0 !0 @ ! ! $ $ $ &)O;VP. , 8 ( \"0( % \" $ " - "! 0 \" $ X P !@ @ ) @ 4 ( 0 $ ! ( 0 #@ % ! &" - " \" ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E " - " #@ $ & \" 0 !0 @ ! #P $ $ \\ !0;&%Y8F%C:T-M9$UO9&4 #@ #@ & " - " \" 0 !0 @ ! !@ $ $ 8 !!8W1I=F4 X P !@ @ $ 4 ( " - " 0 0 ! ! ! !B;V]L#@ # & \" D\" !0 @ ! 0 $ @ ! $ . " - " , 8 ( \"0( % \" $ ! 0 \" $ 0 X !H 0 !@ @ \" 4 (" - " 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90 X !( !@ @ $ " - " 4 ( 0 !< ! ! 7 4F5C96YT4V]U41B X !( !@ @ - 4 ( !0 $ ! 8 4 W0( !" - " 0 !@ #@ $@ & \" T !0 @ % 0 $ !@ !0 #= @ $ ! " - " %P . , 8 ( \"0( % \" $ ! 0 \" $ 0 X !P 0 !@ @ \"" - " 4 ( 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90 X !( " - " !@ @ $ 4 ( 0 !< ! ! 7 1&ES<&QA>4QA>6]U=$1I;65N0 . 0 8 ( !@ % \" $ \" 0 ) $" - " ! \\#\\. 0 8 ( !@ % \" $ \" 0 ) $ !" - " \\#\\. 6 0 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T87" - "1U7!E 5F%L=64 . 2 8 ( ! % \" $ 7 0 0 %P $1I41E9F%U;'1S X X !@ @ $ 4 ( 0 8 ! ! & 06-T:79E . ." - " 8 ( ! % \" $ ' 0 0 !P &UX07)R87D #@ \"@# & \" ( " - "!0 @ ! 0 $ !0 $ !$ ! J@ $UI;EE,:6U296%L 36%X64QI;5)E86P !93&%B96Q296%L " - " $UI;EE,:6U-86< 36%X64QI;4UA9P !4:71L90 $QE9V5N9%9IF5D1&ES<&Q" - "A>7, . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ #@ & " - "\" 0 !0 @ ! !P $ $ < !M>$%R&5S0V]L;W( !!>&5S5&EC:T-O;&]R !0;&]T36%G4&AA7!E 5F%L=64 . 2 8 " + " ( ! % \" $ 3 0 0 $P %-H;W=0;&%Y8F%C:U1O;VQB87( X X !@ @ " + " $ 4 ( 0 8 ! ! & 06-T:79E . , 8 ( ! % \" $ " + "$ 0 0 0 8F]O; X P !@ @ ) @ 4 ( 0 $ ! ( 0 ! #@ # & " + " \" D\" !0 @ ! 0 $ @ ! $ . 4 $ 8 ( @ % \" $ !" + " 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 0 8 ( ! % " + " \" $ - 0 0 #0 %-H;W=3=&%T=7-B87( . . 8 ( ! % \" $ & " + " 0 0 !@ $%C=&EV90 #@ # & \" 0 !0 @ ! ! $ $ $ &)O;VP. " + " , 8 ( \"0( % \" $ ! 0 \" $ 0 X P !@ @ ) @ 4 ( " + " 0 $ ! ( 0 ! #@ %@! & \" ( !0 @ ! 0 $ !0 $ < ! " + " ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $@ & \" 0 !0 @ ! $@ $ " + "$ !( !3:&]W1G5L;%!A=&A!8W1I;VX . . 8 ( ! % \" $ & 0 0 !" + "@ $%C=&EV90 #@ # & \" 0 !0 @ ! ! $ $ $ &)O;VP. , 8 ( \"" + "0( % \" $ ! 0 \" $ 0 X P !@ @ ) @ 4 ( 0 $ ! " + " ( 0 ! #@ ' ! & \" ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&" + "%T=7, 5'EP90 %9A;'5E #@ $ & \" 0 !0 @ ! \"P $ $ L !&:6=U0 . 2 8 ( !@ % \" " + " $ # 0 ) & +Z]O;V]O>T_OKV]O;V][3^^O;V]O;WM/PX !( !@ @ & 4 ( 0 " + ", ! D 8 OKV]O;V][3^^O;V]O;WM/[Z]O;V]O>T_#@ ( ! & \" ( !0 @ ! 0 $" + " !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $@ & \" 0 !0 @ " + " ! %@ $ $ !8 !-97-S86=E3&]G075T;T]P96Y-;V1E . . 8 ( ! % \" $ " + " & 0 0 !@ $%C=&EV90 #@ $ & \" 0 !0 @ ! $ $ $ ! " + "!!=71O3W!E;DUO9&54>7!E#@ $@ & \" 0 !0 @ ! %@ $ $ !8 !F;W(@=V%R;B]F86E" + "L(&UE'1M9W( 4')O<&5R='E$8@!00!-" + "051,04(@87)R87D 5F%L=64 9&]U8FQE &)O;VP $ \" ! ! P 0 " + " ! ! $ $ 0 0 ! $ $ 0 ( ! " + " ! \" 0 \" $ \" 0 ( # ( 0" + " 4 & 0 $ 0 4 ' 0 , #@ '@ & \" $ !0 @ ! 0 " + " $ #@ $@ & \" T !0 @ % 0 $ !@ !0 #= @ $ ! 0 " + " . 8 $ 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U" + "7!E 5F%L=64 . 0 8 ( ! % \" $ / 0 0 #P %!O:6YT41B X !( !@ @ " + "- 4 ( !@ $ ! 8 8 W0( \" 0 ( # #@ #@ & \" 0 " + " !0 @ ! !P $ $ < !6:7-U86QS X ! !@ @ $ 4 ( 0 L ! " + " ! + 5&EM92!$;VUA:6X X P !@ @ ) @ 4 ( 0 $ ! ( 0 ! " + " #@ )@] & \" !$ 0 ! !@ &AA;F1L90 0 !$ !E>'1M9W(N4')O<&5R='E$8@ . " + "2#T 8 ( 0 % \" !8 ! 0 . . 4 8 ( \"0 % \" @% ! " + " 0 \" \" 4 $ 5 $ # ! H @ J , + # (!0 !E>'1M9W( 4')O<&5R='E$8@!00!" + "-051,04(@87)R87D 5F%L=64 ;7A!0!S=')I;F< ;65T&ES3&%B96QS5'EP90!!;&P 36%X:6UI>F5" + "!>&5S5'EP90!!=71O 0 ( $ $ # ! $ $ 0 " + "!, ! ! $ 0 0 ! @ $ $ 0 0 ! ! $ & 0 0 ! !P $" + " $ 0 @ ! ! $ ) 0 0 ! \"@ $ $ 0 P ! ! $ . 0 0 " + " ! #P $ $ 0 ! ! ! $ 1 0 0 ! $@ $ " + " $ ( ! ( 0 ( ! @ , @ ( ! P 0 " + " P ( ! ! 4 ! ( ! !0 8 !0 ( ! !@ < !@ ( ! " + " !P @ !P ( ! \" D \" ( ! \"0 H \"0 ( ! \"@ L " + " \"@ ( ! \"P P \"P ( ! # T # ( ! #0 X #0 ( " + " ! #@ \\ #@ ! !0 8 ! 0 ! !0 8 ! P " + "! !0 8 ! !0 ! !0 < \" ! !0 < \"0 ! !0 < " + " \"0 ! !0 < \"@ ! !0 8 ! \"P ! !0 L ! #0 " + " ! !0 P #0 ! !0 X #P ! !0 ! $0 ! !0 !( " + " $P ! !0 !0 %0 . > 8 ( 0 % \" $ ! 0 . " + " 2 8 ( #0 % \" 4 ! 0 & % -T\" 0 $ ! X !P " + "0 !@ @ \" 4 ( 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90" + " X !( !@ @ $ 4 ( 0 !< ! ! 7 1&ES<&QA>4QA>6]U=$1I;65N0 . 0 8 ( !@ % \" $ \" " + "0 ) $ ! \\#\\. 0 8 ( !@ % \" $ \" 0 ) " + " $ ! \\#\\. > , 8 ( @ % \" $ ! 0 % 0 !P $ < " + " 3F%M90 %-T871U7!E 5F%L=64 . 2 8 ( ! % \" $ 7 0 0 " + " %P $1I41E9F%U;'1S X X !@ @ $ 4 ( 0 8 ! ! & 0" + "6-T:79E . . 8 ( ! % \" $ ' 0 0 !P &UX07)R87D #@ $@\" & \"" + " ( !0 @ ! 0 $ !0 $ !$ ! =P %E,86)E;%)E86P 36EN64QI;4UA9P !" + "4:71L90 $QE9V5N9%9I%E,:6U296%L %E,86)E;%)E86P $UI;EE,:6U-86< $UA>%E,:6U-8" - "6< %1I=&QE $QE9V5N9%9I&5S0V]L;W( !!>&5S5&EC:T-O;&]R !0;&]T36%G4&" - "AA%E,:6U296%L %E,86)E;%)E86P $UI;EE,:6" - "U-86< $UA>%E,:6U-86< %1I=&QE $QE9V5N9%9I7!E 5F%L=64 . 0 8 ( ! " - " % \" $ / 0 0 #P %1I;65286YG949R86UE

4]F9G-E= . . 8 ( " - " ! % \" $ & 0 0 !@ $%C=&EV90 #@ #@ & \" 0 !0 @ ! " - " !@ $ $ 8 !S=')I;F< X P !@ @ $ 4 ( 0 $ ! ! 0 P " - " #@ &@! & \" ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 " - " %9A;'5E #@ $ & \" 0 !0 @ ! #P $ $ \\ !);G!U=%!R;V-E7!E 5F%L=64 . . 8 ( ! % \" $ ( 0 " - " 0 \" %!L;W14>7!E#@ #@ & \" 0 !0 @ ! !@ $ $ 8 !!8W1I=F4 " - " X X !@ @ $ 4 ( 0 8 ! ! & '1M9W(N4')O<&5R='E$8@ . < 8 ( #0 " - " % \" \\ ! 0 & / -T\" \"P $ ; ' !T > 'P \" A " - "(@ \", D )0 . 2 8 ( #0 % \" 4 ! 0 & % -T\" " - " 0 $ : X P !@ @ ) @ 4 ( 0 $ ! ( 0 ! #@ & ! & \"" - " ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ " - " $ & \" 0 !0 @ ! # $ $ P !91&%T841I0 . . 8 ( !@ % \" $ ! 0 ) \" " - " %1 #@ #@ & \" 8 !0 @ ! 0 $ \"0 @ !40 X !@ 0 !@ " - " @ \" 4 ( 0 $ ! 4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90 " - "X ! !@ @ $ 4 ( 0 P ! ! , 6$1A=&%$:7-P;&%Y X X !@ @ " - " $ 4 ( 0 8 ! ! & 06-T:79E . . 8 ( ! % \" $ " - " ' 0 0 !P &UX07)R87D #@ #@ & \" 8 !0 @ ! 0 $ \"0 @ " - " !90 X X !@ @ & 4 ( 0 $ ! D ( 64 . 4 $ 8 " - "( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 ." - " 0 8 ( ! % \" $ * 0 0 \"@ $5X<&%N9$]N;'D . . 8 (" - " ! % \" $ & 0 0 !@ $%C=&EV90 #@ # & \" 0 !0 @ !" - " ! $ $ $ &)O;VP. , 8 ( \"0( % \" $ ! 0 \" $ 0 X " - "P !@ @ ) @ 4 ( 0 $ ! ( 0 ! #@ % ! & \" ( !0 @ !" - " 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $ & \" 0 " - " !0 @ ! #@ $ $ X !!=71O41B " - " X !@ !@ @ - 4 ( \"P $ ! 8 L W0( ' 0 \"@ I " - "*@ \"L L +0 \"X #@ $@ & \" T !0 @ % 0 $ !@ !0 #" - "= @ $ ! )P . , 8 ( \"0( % \" $ ! 0 \" $ 0 X !8 0" + " D 8 ,E4P*JD3U#\\R53 JJ1/4/S)5,\"JI$]0_#@ , & \" 8 !0 @ & P $ " + " \"0 ) #P/P / _ #P/P Z#\\ #P/P \\#\\" + " / _ Z#\\ / _ \\#\\ Z#\\. , 8 " + " ( ! % \" 0 0 X H !@ @ ! 4 ( " + " ! X H !@ @ ! 4 ( ! X X !@ @ & 4 (" + " 0 $ ! D ( \\#\\. : 8 ( 0 % \" $ ! 0 " + ". . 8 ( ! % \" $ ' 0 0 !P $UO9&5L+S$ #@ # & \" D\" " + " !0 @ ! 0 $ @ ! $ . . 8 ( !@ % \" $ ! 0 " + ") \" / _#@ $ ' & \" ( !0 @ ! 0 $ !0 $ !@ ! R $ $UI;EE" + ",:6U296%L $UA>%E,:6U296%L %E,86)E;%)E86P $UI;EE,:6U-86< " + " $UA>%E,:6U-86< $QE9V5N9%9I&5S0V]L;W( !!>&5S5&EC:T-O;&]R !#;VQO&5S0V]L;W( !!>&5S5&EC:T-O;&]R !#;VQO7!E 5F%L=64 . 0 8 ( ! % \" $ ) 0 0 \"0 %1I;65" + "5;FET

0 . * 8 ( 0 % \" " + " 0 . * 8 ( 0 % \" 0 . 4 $ 8 ( @ % \"" + " $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 0 8 ( ! " + " % \" $ 0 0 0 $ %-H;W=!=71O5&EM95-P86X. . 8 ( ! % \" " + " $ & 0 0 !@ $%C=&EV90 #@ # & \" 0 !0 @ ! ! $ $ $" + " &)O;VP. , 8 ( \"0( % \" $ ! 0 \" $ 0 X P !@ @ ) @ " + " 4 ( 0 $ ! ( 0 ! #@ '@! & \" ( !0 @ ! 0 $ !0 $" + " < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ $ & \" 0 !0 @ ! #P " + " $ $ \\ !);G!U=%!R;V-E&ES3&%B96QS5'EP90 X P !@ @ $ 4 ( 0 , ! ! P!!;&P #@ &" + " ! & \" ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5" + "E #@ $ & \" 0 !0 @ ! # $ $ P !-87AI;6EZ94%X97, #@ #@ " + " & \" 0 !0 @ ! !@ $ $ 8 !!8W1I=F4 X ! !@ @ $ 4 " + " ( 0 ! ! ! 0 36%X:6UI>F5!>&5S5'EP90X P !@ @ $ 4 ( 0 0 " + "! ! ! !!=71O#@ \" ! & \" ( !0 @ ! 0 $ !0 $ D ! $@ &-L87-" + "S $-H:6QD41B X #P%@" + " !@ @ ! 4 ( %0 $ ! X H! !@ @ ) 4 ( ^ , $ ! " + " ( #X P 0 X \"P X *@! #@ @ Z ( /@# &5X=&UG<@!041B %!R;W!E0!686QU90!M>$%R7!E 5F%L=64 . 0 8 ( ! " + " % \" $ , 0 0 # %A$871A1&ES<&QA>0 . . 8 ( ! % \" " + " $ & 0 0 !@ $%C=&EV90 #@ #@ & \" 0 !0 @ ! !P $ $ " + " < !M>$%R'!A;F1/;FQY #@ #@ & \" 0 !0 " + "@ ! !@ $ $ 8 !!8W1I=F4 X P !@ @ $ 4 ( 0 0 ! ! " + "! !B;V]L#@ # & \" D\" !0 @ ! 0 $ @ ! $ . , 8 ( \"0( " + " % \" $ ! 0 \" $ 0 X !0 0 !@ @ \" 4 ( 0 $ ! " + "4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90 X ! !@ @ $ 4 ( 0 X " + " ! ! . 075T;W-C86QE6$%X:7, X X !@ @ $ 4 ( 0 8 ! ! " + " & 06-T:79E . , 8 ( ! % \" $ $ 0 0 0 8F]O; X P !@ @ " + ") @ 4 ( 0 $ ! ( 0 #@ # & \" D\" !0 @ ! 0 $ " + " @ ! . 4 $ 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T" + "871U7!E 5F%L=64 . 0 8 ( ! % \" $ * 0 0 \"@ $]N8V5!" + "=%-T;W . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ # & " + " \" 0 !0 @ ! ! $ $ $ &)O;VP. , 8 ( \"0( % \" $ !" + " 0 \" $ 0 X P !@ @ ) @ 4 ( 0 $ ! ( 0 ! #@ &@! & " + " \" ( !0 @ ! 0 $ !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E " + " #@ $ & \" 0 !0 @ ! #0 $ $ T !!=71O7!E 5F%L=64 . 0 8 ( ! % \" $ 0 0 0 $ " + " $%U=&]S8V%L95E!;F-H;W(. . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ " + "$@ & \" 0 !0 @ ! $0 $ $ !$ !!=71O41B X" + " !P !@ @ - 4 ( #P $ ! 8 \\ W0( + 0 ( # ! 4 " + " & !P @ ) \"@ L , X X !@ @ $ 4 ( 0 4 ! ! " + " % 5&]O;', . 0 8 ( ! % \" $ , 0 0 # $UE87-U'D ! @ 0 0 , $ " + " 0 0 ! \" $ $ 0 ! ! $ ! 0 0 ! @ $ $ 0 , " + " ! ! $ $ 0 0 ! !@ $ $ 0 < ! " + "! \" 0 \" $ \" 0 ( # ( \" 0 , $ , " + " \" 0 0 % 0 \" 0 4 & 4 \" 0 8 ' 8 \" 0 <" + " ( < 0 4 & < 0 4 & @ 0 4 " + " & D 0 4 & H 0 4 + 0 4 0 4 & P " + " 0 4 & T #@ '@ & \" $ !0 @ ! 0 $ #@ $@ &" + " \" T !0 @ % 0 $ !@ !0 #= @ $ ! 0 . 6 $ 8 ( " + " @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . " + " 0 8 ( ! % \" $ ) 0 0 \"0 %1H7!E 5F%L=64 . . 8 ( ! % \" $ ( 0 0 \" $YU;5!E86MS#@ " - " #@ & \" 0 !0 @ ! !@ $ $ 8 !!8W1I=F4 X X !@ @ $ " - " 4 ( 0 8 ! ! & 7!E 5F%L=64 . 0 8 ( ! % \" $ - 0 0" - " #0 $UI;E!E86M(96EG:'0 . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV9" - "0 #@ #@ & \" 0 !0 @ ! !@ $ $ 8 !S=')I;F< X P !@ @ $ " - " 4 ( 0 0 ! ! ! M26YF#@ $@! & \" ( !0 @ ! 0 $ " - " !0 $ < ! ' $YA;64 !3=&%T=7, 5'EP90 %9A;'5E #@ #@ & \" 0 !0 @ ! " - "\" $ $ @ !3:&]W5&5X= X X !@ @ $ 4 ( 0 8 ! ! & 0" - "6-T:79E . , 8 ( ! % \" $ $ 0 0 0 8F]O; X P !@ @ ) @ " - " 4 ( 0 $ ! ( 0 #@ # & \" D\" !0 @ ! 0 $ @" - " ! . : $ 8 ( @ % \" $ ! 0 % 0 !P $ < 3F%M90 %-T871U7!E 5F%L=64 . 0 8 ( ! % \" $ * 0 0 \"@ %1E>'1&;W)M870" - " . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ #@ & \" " - " 0 !0 @ ! !@ $ $ 8 !S=')I;F< X ! !@ @ $ 4 ( 0 " - " D ! ! ) )2XQ9BPE+C%F X !8 0 !@ @ \" 4 ( 0 $ ! " - "4 ! ' 0 !P !.86UE 4W1A='5S %1Y<&4 !686QU90 X ! !@ @ $ 4 ( 0 H " - " ! ! * 5&5X=%9A;'5E

'1M9W(N4')O<&5R='E$8@ . 8 8 ( #0 % \" L " - " ! 0 & + -T\" !P $ Q ,@ #, T -0 #8 W X !( !@ @ " - "- 4 ( !0 $ ! 8 4 W0( ! 0 # #@ \" \" & \" ( " - " !0 @ ! 0 $ !0 $ !X ! E@ $YA;64 $1E6QE #@ # & \" D\" !0 " - " @ ! 0 $ @ ! $ . , 8 ( !@ % \" 0 ) " - "X P !@ @ & 4 ( ! D #@ # & \" 8 !0 @" - " $ \"0 . , 8 ( !@ % \" 0 ) X" - " !0 !@ @ & 4 ( 0 0 ! D @ P>T $!O0 H'E # <" - "D . . 8 ( ! % \" $ ( 0 0 \" '5N9&]C:V5D#@ # \" & \" (" - " !0 @ ! 0 $ !0 $ \"H ! T@ $%L;&]W4V-O<&5#:&%N9V5S " - " $%L;&]W0FQO8VM#:&%N9V5S $ES4V-O<&5#9F=/;&0 " - " $ES3&%U;F-H:6YG '-I9W5T:6QS+D%P<&QI8V%T:6]N1&%T82Y!<'!L:6-A=&EO;D1A=&%?" - " X P !@ @ ) @ 4 ( 0 $ ! ( 0 ! #@ # & \" D\" " - " !0 @ ! 0 $ @ ! $ . , 8 ( \"0( % \" $ ! 0 \"" - " $ X P !@ @ ) @ 4 ( 0 $ ! ( 0 #@ #@ & \" ( " - " !0 @ ! 0 $ !0 $ $ ! X \"8 !@ @ ) 4 ( 0 &@ ! " - " ( !H %)30 . 6 8 ( @ % \" $ ! 0 % 0 !P $ . " - " 34-/4P &AA;F1L90 X #@ " + " $ & 0 0 !@ '-T7!E 5F%L=64 . 0 8 ( ! % \" $ / 0 0 #P $UI;E!E86M$:7-T8" + "6YC90 . . 8 ( ! % \" $ & 0 0 !@ $%C=&EV90 #@ #@ & \" " + " 0 !0 @ ! !@ $ $ 8 !S=')I;F< X P !@ @ $ 4 ( 0 $" + " ! ! 0 Q #@ %@! & \" ( !0 @ ! 0 $ !0 $ < ! ' $YA" + ";64 !3=&%T=7, 5'EP90 %9A;'5E #@ $ & \" 0 !0 @ ! #0 $ $ T " + " !-:6Y096%K2&5I9VAT #@ #@ & \" 0 !0 @ ! !@ $ $ 8 !!8W1I=F4 X " + " X !@ @ $ 4 ( 0 8 ! ! & 7!E 5F%L=64 . 0 8 ( ! % \" $ * 0" + " 0 \"@ %1E>'1686QU97, . . 8 ( ! % \" $ & 0 0 !@" + " $%C=&EV90 #@ #@ & \" 0 !0 @ ! !@ $ $ 8 !S=')I;F< X P !@ " + " @ $ 4 ( 0 ( ! ! @!X>0 #@ @! & \" ( !0 @ ! 0 " + " $ !0 $ D ! $@ &-L87-S $-H:6QD$ *!Y0 P') #@ #@ & " + "\" 0 !0 @ ! \" $ $ @ !U;F1O8VME9 X P @ !@ @ \" 4 ( " + " 0 $ ! 4 ! J 0 -( !!;&QO=U-C;W!E0VAA;F=E

#i&Asmh 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart1_ycYIpW7uLL3gXRMLAbVLtF.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart1_ycYIpW7uLL3gXRMLAbVLtF.mat deleted file mode 100644 index 880ddcb5dd1098807bb85cdb0b2595d06c14d3f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2921 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart2_jArXz9tmqVBg2EURlcro0B.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart2_jArXz9tmqVBg2EURlcro0B.mat deleted file mode 100644 index e7ff8b5171eecbab86560039c78d00001b09f6ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3727 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�G 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart3_4AIp75LcIllG7UOnkZHcRB.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart3_4AIp75LcIllG7UOnkZHcRB.mat deleted file mode 100644 index e5ce69cce4f5fe83dd8c709ba166f01ab6f800b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2807 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart5_ycYIpW7uLL3gXRMLAbVLtF.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart5_ycYIpW7uLL3gXRMLAbVLtF.mat deleted file mode 100644 index 9f385196be243198cc5271ab9ba94328db036235..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2922 zcma)6`9BnT7arNNUAkE&r5TkZj4@1hLiT;9tl1)F5#cfjA$yh-V=0LedWid%&P40MtCE%Jo*;jxXo?mNC0vKgKk=VJ|FB=T-6qC{Uf9A0 zZI97FxNVKY3tFkwE0xi6Bj8^n_XaVx8#18C)koijN;MVVu7vR#z9#%uW7)%N*Ice*t*wQ9)z53H!a9CtSt`la zs#%Z>YxAlYc}op1V*SGt8yj37w@Lb0LoO!f_Za`!>8j+BE+Sq1Q*dK6R_)DAlkrVY z1zoqEd{|W3*}2G}A!F(GUBzhU}uM^@0C z*2?V;+Wm4QIPuMX{M)}&j$xvnG%fmL(_!|4+XeWq7LAzT?oabG*$NDw`36^878!6@ zz<~QzkdXA+m{B&UexH$4YPd|`fpvnI9Y#I8EvFA7#|B^ea^f8Ceh7}G4SnbyZY}je zUvq4kzLFQ{5@emRD*18nXg&MOr}^RRH8+^~%eOb8?JRKwE8c1RG#gv-EwwY&UA^(nfnbmC^k-76l+GkNx7I)W)&uMv z*VXZd*nS&4f0k;u)!lL3#txqjX2f9B<&4Pd5bO(HR=66WD>ANr z#iP+Qv=a0Ft)Fz|N`k^>@q1tGxh`!~7}^;h6)`uACp_Ci*9BF% zi#K7tM$qc?9nX%)RZ;utZSy&G<&NEQ?Rt*gr`rXc5+vK-k3AukU7UJU zO^QM0Jo8Sn_b{WefFEv z+77Ax@p?dPeIFUmD>|;%Pdp z`BQY9yY!F;h&AF$S#XEN1gIMRC^k@ZJd~>;#4T_w>Oi%VxvC6*R4+h)n!^P?0Vd1(-GZ?q$DQ?9mxR+ zPN&Yt$sDbfK8E>vPc6kZIhL(iKA7uvNkOLB=2y6m9ADCk0^tK?g=B&kQdVS-%LFcD zt(;5G(LksS!POD^L6t%ycIn<_AtQE|A=WsX+zO#5E%(uP7Hf$+EsJ=FT9rj)qqN}OMifMt_Aedu zjX@_SCKc_MbwGNcm&>w7%cXY{aV=7_Cb$II`~$hDYV`6Yh&|3q%;J;QFb-*UM5pnN zVCr%90|ry5Db|k@tG(i#;*+xZT@a02meN0l`ZK7h#I{_P0yhmjy8vt~GcF$*7(*~n2X&V4|YYp6>_qgmaV6Tgc^hYiC|Kx!!s ztTzL=r(l`hO zR)5-bNXiPowV(Uz&AjdF=qG2*>=-Wo1OkG5q?{cyU-h<5Y zNHKea2B9KM@(_Bs>O#v5#+SUd~xki|5jqO*0bJOYVDG>~4|~k*Lq4LYMBHU_hS7#gx3R ze#6q1WJ4^EI<|dE^aB`0|ETdi;-T^=PY|;9FAI|n$^b1q5Z-2huOOZ$?&KTcIFZdO zWVycX6efVqYY6b~%S;6LtV}&O z!>R|OjU>0Hh|9DILplcL1A+=0?GnYxW@cx3+hyU7*{jBEJf{eHd`p+Nfzq88qM*b}bRUy~n|V5G^FHuWS2C&(}+R*6X$V z{NUz{JV{Pb$#B)}i9o`)lOzw36WId6avaOcI!F@AlG#(Qe!r-;FS;cnF7+94;Q(FjLVxgyM!r?t zS>?sFSi(~)sTVLiP%6uKsIhag%CsOYp&ubnyT04<+3;L1vKl(kKJT)|37d96Z!`R) z)eK0Q4jehw`}BSMrEflcRci;oPvu*%qDy9LzOKq?EV#w&H&Y)LTdFthkQhnDWlY;u p)w;L=Hb7x5K|=eLmXsgo2xeb7&4CWJdnGJ5Ck^e%;FC$T{{s5culxW2 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart6_q0bLWDmxnDxpaSZP3och4.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/chart6_q0bLWDmxnDxpaSZP3och4.mat deleted file mode 100644 index 41ceda1123df92a65c77c1302c0e7e7a7cc09102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2858 zcma)6=|2<-7q+h>i7aKiWy{vsnaL7G_M3_@wqz{~SsR8(U1jMaqt_r@DP!MdUmBri zBwNjx#Wpl%$YAXA&i%drzKt3~x=URL|sQ_NJ7+D*fFP|we%`JT5{qv1H==)k(J3NE%c(qoc;yGr!WUbOJ^{jg=zR$yO-8lj;Kf&-bZG$6odvww7NB!-i+FMntxU;H#DXG` zpw8Uogps4Ks3ShG+Q-;wQFRm4ZBRoJy|J6|tjjO&cT|SlmL99W9n$BDBV#gHZG3x? z`f?gb-lnEompq~{^J6;ZSL(NZBDZ`eP=*Je>T3E;u^_>!XObH6s$xv1VZhZhnkhZe zIbkE}qjb;fHUJfD^^D0z*vIfsrqNm>C=czpL}N$M-B$0Wk3qau7f`Kb41z{ZSA7`v zq-J=TXDfKm)}$oD(ip_H}&bzW}Q-d4f4u8{MkXRVWiJ_vg^H-2denTnd7I!^;Q_`iujj>45|{oWWnVe zLRr=g?{hA0x_^yM)gDZ$>o7N{D}wr{(ZN|=fh0&4RR>xc3aNimG}B?mZS+2JRs`a@ zcpw7tSPYjoo@W3pI&@LVKB8wZZjffQh!`C?-Dmz>kokJSLqB}D-yj69M()jUr#KEK zoqr^U7GU-){L~M}_pj9rX>nJ1Qh3O4-<=JF?clMr9#Mh}cY)NS=MAABH}=6#58Wf> z&c)6CTWiW)bqJx0(-DPKpks%RKc0K=82!uKMvu=a4lXLl1f!CV<;Cbd3(*@m_rXf> zzcqsK{@m?vBb@>G2J}~%4(%*hC@Gpr>3;IvtB-fERpl2k2rGcda;ID%KR&b5SC0@d zdi9>=?arP}A)An`@6B{tcKj}+HrRFS7sk}duy<{D>Zp`PT*RA2!jC6T{u(8kmG^#K z+K{=4ZC;JISth=7GdTInQkTb6++0AXCadRueos6$os}b$Ts3`Y?!kqxUdTN+`>w+& zm{Q~NyXF4=(JE90nd~W3C6|@PqF+3S8ULj~juW|+T~veOt+j8_sDkfIC5Ls688dVi z^(!K;;bND7h?7Yc@z_C*b(#G-SuEP!`Ka&K65e1HeH96{{C9nteXVI3G|6CLN6&@L zyn$y9>(PbYEzLL1SID?;1)o(}6W`7q_ug&F`7X5z+is%V=$f>vne8r^{1lns}|Dog@nppm4nCpRX2G|H(Yi6C?l?AgXf%YQaBxe;dLuSWYC}8#94zoL2x&*j%fe~#-?llOE86tlk!V!{3uoZC?nCwLp zIrBc#l(-86!U01uPn`#kx0R$A&Q*IkH=-2E36^R{MTle3e(rjmrUA*2bc&=+IxjQ3!NKHUauT^WJ<0t2IVq(}KixP) zEWAJEtt&Xc7B(%Bx*_X49k{fk2y2$vmDGoY0ycyv2_PBB<$NV7@ABE1S~oCWtbjV< zQsr>|i(y;XN(F>AH3<*=VOrYsa%*~~4fv2i_skAqz;+Jiao;`?m-ujp%7~WdTQhC` zJZ3SW`Pw$#TSQQ+OS7dT&xwAz8)~9z5H;bNZm1reepq8kj^O@yI5EFof%c!FHbynx z2oMhM-__MJko?<9>O;dvr_qN6H2Kv9U{Sae9prKVJxic_A;kV&(? z=Ue{ppvED_@#u=d<=HRtUBy+&ORr zd6Dci7XL1GFPpgghJs4>waEi}v0ksIXoWsv{Ecsafco8izyKD{)+7)mBa(*qkOjIW z(O5`cTtH+l-i*6EZaho;0 z3gZ(q!&cZwJ=r6&--6`hj!3{zPcx}T*N#g?bzX~sx|K=e1G7-pznt`!RC8E}()1UMBV6&Z|eA#?oD rYVm7j{Cifa665d!uw}+2@%S*H@Cu6MPHLTwC%DEo9E-954VwQ2YVn~p diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.c index dd051c0..eccedbb 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.c @@ -1,6 +1,7 @@ /* Include files */ #include "MuscleSpindle_sfun.h" +#include "MuscleSpindle_sfun_debug_macros.h" #include "c1_MuscleSpindle.h" #include "c2_MuscleSpindle.h" #include "c3_MuscleSpindle.h" @@ -80,20 +81,20 @@ unsigned int sf_MuscleSpindle_process_check_sum_call( int nlhs, mxArray * plhs[] mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char)); commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; if (!strcmp(commandName,"machine")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1108763250U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2041557885U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2760466800U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4254415435U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1545794978U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3565728260U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(790789815U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(38263849U); } else if (!strcmp(commandName,"exportedFcn")) { ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U); ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U); } else if (!strcmp(commandName,"makefile")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2787009714U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2983074703U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3089580986U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2791289632U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3327638175U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1431208774U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1185588925U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1874830706U); } else if (nrhs==3 && !strcmp(commandName,"chart")) { unsigned int chartFileNumber; chartFileNumber = (unsigned int)mxGetScalar(prhs[2]); @@ -140,18 +141,18 @@ unsigned int sf_MuscleSpindle_process_check_sum_call( int nlhs, mxArray * plhs[] ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0); } } else if (!strcmp(commandName,"target")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1764838350U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3410240878U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(118138738U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(243351119U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3564696471U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(678668628U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1090454852U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3896867807U); } else { return 0; } } else { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2635135688U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3882322299U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2060795262U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3032829189U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3987699269U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3338214368U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(719902230U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(149836584U); } return 1; @@ -189,7 +190,7 @@ unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], switch (chartFileNumber) { case 1: { - if (strcmp(aiChksum, "xDnnGj7T4ueVOH7NVCE1mD") == 0) { + if (strcmp(aiChksum, "ww8NqEKWGCNBxeBEMAhny") == 0) { extern mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void); plhs[0] = sf_c1_MuscleSpindle_get_autoinheritance_info(); break; @@ -201,7 +202,7 @@ unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], case 2: { - if (strcmp(aiChksum, "7Epm3D04SGhkoANuUOnVaF") == 0) { + if (strcmp(aiChksum, "8Dr9owGEF7LDFB9VDrdquF") == 0) { extern mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void); plhs[0] = sf_c2_MuscleSpindle_get_autoinheritance_info(); break; @@ -213,7 +214,7 @@ unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], case 3: { - if (strcmp(aiChksum, "Q7vnilCGC3xeaHVuEoVVfG") == 0) { + if (strcmp(aiChksum, "6MdPBYbz53whJT5GuBWJbE") == 0) { extern mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void); plhs[0] = sf_c3_MuscleSpindle_get_autoinheritance_info(); break; @@ -225,7 +226,7 @@ unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], case 4: { - if (strcmp(aiChksum, "Q7vnilCGC3xeaHVuEoVVfG") == 0) { + if (strcmp(aiChksum, "6MdPBYbz53whJT5GuBWJbE") == 0) { extern mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void); plhs[0] = sf_c4_MuscleSpindle_get_autoinheritance_info(); break; @@ -237,7 +238,7 @@ unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], case 5: { - if (strcmp(aiChksum, "xDnnGj7T4ueVOH7NVCE1mD") == 0) { + if (strcmp(aiChksum, "ww8NqEKWGCNBxeBEMAhny") == 0) { extern mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void); plhs[0] = sf_c5_MuscleSpindle_get_autoinheritance_info(); break; @@ -352,12 +353,87 @@ unsigned int sf_MuscleSpindle_get_eml_resolved_functions_info( int nlhs, mxArray } -void MuscleSpindle_debug_initialize(void) +unsigned int sf_MuscleSpindle_third_party_uses_info( int nlhs, mxArray * plhs[], + int nrhs, const mxArray * prhs[] ) +{ + char commandName[64]; + char tpChksum[64]; + if (nrhs<3 || !mxIsChar(prhs[0])) + return 0; + + /* Possible call to get the third_party_uses_info */ + mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); + commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; + mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char)); + tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\0'; + if (strcmp(commandName,"get_third_party_uses_info")) + return 0; + + { + unsigned int chartFileNumber; + chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); + switch (chartFileNumber) { + case 1: + { + if (strcmp(tpChksum, "nzeVWmC3UM9JgQUxVD8bGF") == 0) { + extern mxArray *sf_c1_MuscleSpindle_third_party_uses_info(void); + plhs[0] = sf_c1_MuscleSpindle_third_party_uses_info(); + break; + } + } + + case 2: + { + if (strcmp(tpChksum, "dkEDKYu5K2XI8jBbmLQ2HF") == 0) { + extern mxArray *sf_c2_MuscleSpindle_third_party_uses_info(void); + plhs[0] = sf_c2_MuscleSpindle_third_party_uses_info(); + break; + } + } + + case 3: + { + if (strcmp(tpChksum, "EIegXK4lrHvNN24BpctGtD") == 0) { + extern mxArray *sf_c3_MuscleSpindle_third_party_uses_info(void); + plhs[0] = sf_c3_MuscleSpindle_third_party_uses_info(); + break; + } + } + + case 4: + { + if (strcmp(tpChksum, "EIegXK4lrHvNN24BpctGtD") == 0) { + extern mxArray *sf_c4_MuscleSpindle_third_party_uses_info(void); + plhs[0] = sf_c4_MuscleSpindle_third_party_uses_info(); + break; + } + } + + case 5: + { + if (strcmp(tpChksum, "nzeVWmC3UM9JgQUxVD8bGF") == 0) { + extern mxArray *sf_c5_MuscleSpindle_third_party_uses_info(void); + plhs[0] = sf_c5_MuscleSpindle_third_party_uses_info(); + break; + } + } + + default: + plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); + } + } + + return 1; +} + +void MuscleSpindle_debug_initialize(struct SfDebugInstanceStruct* debugInstance) { - _MuscleSpindleMachineNumber_ = sf_debug_initialize_machine("MuscleSpindle", - "sfun",0,5,0,0,0); - sf_debug_set_machine_event_thresholds(_MuscleSpindleMachineNumber_,0,0); - sf_debug_set_machine_data_thresholds(_MuscleSpindleMachineNumber_,0); + _MuscleSpindleMachineNumber_ = sf_debug_initialize_machine(debugInstance, + "MuscleSpindle","sfun",0,5,0,0,0); + sf_debug_set_machine_event_thresholds(debugInstance, + _MuscleSpindleMachineNumber_,0,0); + sf_debug_set_machine_data_thresholds(debugInstance, + _MuscleSpindleMachineNumber_,0); } void MuscleSpindle_register_exported_symbols(SimStruct* S) diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h index ffcac95..5fb1006 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h @@ -13,6 +13,9 @@ #define rtIsNaN(X) ((int)mxIsNaN(X)) #define rtIsInf(X) ((int)mxIsInf(X)) +struct SfDebugInstanceStruct; +extern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct; + /* Type Definitions */ /* Named Constants */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mku b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mku deleted file mode 100644 index dd35e6b..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mku +++ /dev/null @@ -1,99 +0,0 @@ -#--------------------------- Tool Specifications ------------------------- -# -# Modify the following macros to reflect the tools you wish to use for -# compiling and linking your code. -# -CC = /Applications/MATLAB_R2012a.app/bin/mex -LD = $(CC) - -MACHINE = MuscleSpindle -TARGET = sfun -CHART_SRCS = \ - c1_MuscleSpindle.c\ - c2_MuscleSpindle.c\ - c3_MuscleSpindle.c\ - c4_MuscleSpindle.c\ - c5_MuscleSpindle.c -MACHINE_SRC = MuscleSpindle_sfun.c -MACHINE_REG = MuscleSpindle_sfun_registry.c -MEX_WRAPPER = -MAKEFILE = MuscleSpindle_sfun.mku -MATLAB_ROOT = /Applications/MATLAB_R2012a.app/toolbox/stateflow/stateflow/../../.. -BUILDARGS = -#------------------------------ Include/Lib Path ------------------------------ - -USER_INCLUDES = -AUX_INCLUDES = -MATLAB_INCLUDES = -I$(MATLAB_ROOT)/simulink/include \ - -I$(MATLAB_ROOT)/extern/include \ - -I/Applications/MATLAB_R2012a.app/stateflow/c/mex/include \ - -I/Applications/MATLAB_R2012a.app/stateflow/c/debugger/include - -DSP_INCLUDES = - -INCLUDE_PATH = $(MATLAB_INCLUDES) $(DSP_INCLUDES) $(COMPILER_INCLUDES) - -#----------------- Compiler and Linker Options -------------------------------- - -# Optimization Options -OPT_OPTS = -O - -# Parallel Options -PAR_OPTS = - -# General User Options -OPTS = - -CC_OPTS = $(OPT_OPTS) $(OPTS) $(PAR_OPTS) -CPP_REQ_DEFINES = -DMATLAB_MEX_FILE - -# Uncomment this line to move warning level to W4 -# cflags = $(cflags:W3=W4) -CFLAGS = $(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDE_PATH) - -LDFLAGS = - -AUXLDFLAGS = -#----------------------------- Source Files ----------------------------------- - -REQ_SRCS = $(MACHINE_SRC) $(MACHINE_REG) $(MEX_WRAPPER) $(CHART_SRCS) - -USER_ABS_OBJS = - -AUX_ABS_OBJS = -REQ_OBJS = $(REQ_SRCS:.cpp=.o) -REQ_OBJS2 = $(REQ_OBJS:.c=.o) -OBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) -OBJLIST_FILE = MuscleSpindle_sfun.mol -SFCLIB = /Applications/MATLAB_R2012a.app/stateflow/c/mex/lib/maci64/sfc_mex.a /Applications/MATLAB_R2012a.app/stateflow/c/debugger/lib/maci64/sfc_debug.a -AUX_LNK_OBJS = -USER_LIBS = -LINK_MACHINE_LIBS = -FIXEDPOINTLIB = -L/Applications/MATLAB_R2012a.app/bin/maci64 -lfixedpoint -UTLIB = -lut -EMLRTLIB = -lemlrt -MWMATHUTILLIB = -lmwmathutil -BLASLIB= -lmwblascompat32 -IPPLIB = -L/Applications/MATLAB_R2012a.app/bin/maci64 -lippmwipt -PARLIB = - MAPCSF = /Applications/MATLAB_R2012a.app/tools/maci64/mapcsf - # RUN_MAPCSF_ON_UNIX is defined only if MAPCSF exists on this platform. - ifneq ($(wildcard $(MAPCSF)),) # run MAPCSF if it exists on this platform - RUN_MAPCSF_ON_UNIX = /Applications/MATLAB_R2012a.app/tools/maci64/mapcsf $@ - endif - -#--------------------------------- Rules -------------------------------------- - -MEX_FILE_NAME = $(MACHINE)_$(TARGET).mexmaci64 - - $(MEX_FILE_NAME): $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(MEXLIB) - @echo ### Linking ... - $(CC) -silent LDFLAGS="\$$LDFLAGS $(AUXLDFLAGS)" -output $(MEX_FILE_NAME) $(OBJS) $(AUX_LNK_OBJS) $(USER_LIBS) $(LINK_MACHINE_LIBS) $(SFCLIB) $(FIXEDPOINTLIB) $(UTLIB) $(MWMATHUTILLIB) $(EMLRTLIB) $(BLASLIB) $(PARLIB) $(IPPLIB) - $(RUN_MAPCSF_ON_UNIX) - -%.o : %.c - $(CC) -c $(CFLAGS) $< - -%.o : %.cpp - $(CC) -c $(CFLAGS) $< - diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.o deleted file mode 100644 index 167be56626235a5cd9c306dcea28131bac8341cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7920 zcmcgxeQ;FO6~7_NhwZ`!R0QivRIGpmvLqU;S`(8cZ=D6AAjTQxW!ZhnF6`rkw6_lbeyPE(}7wT;%Kc!ikS3w?z=Dh_T@#v zKYAy3e|tXfx#!+<-@BVbXFnSp&sb40!v{KH^%#7VqN7bm?<2t|t^LQkpowhI!h(iR zMtv+X(PUXwT2=kKPA~U1F3;1(x3&rTH}dDe*WQVYttOU(wG$XkmV;?E6^XY9hAbEQ zYZrdr5%T^Y>2oveMYslu_*SLU!xY6^SF^k(&oJgC+;Rcs%4pUUA-+T`mWUg2tG}ek zQ;DGf{BD0rSZ+=QVv25Hop0ksI=@6rY!CdCziE>hn*{_J);07`Qk#a}IE66@*f$k4 zCP!g4pi^^+4iUQ+{TlQOZFfuBKlb-D&vVV##7)nKmU6d}uGBH4mYm?<_KiI^G&DqC z_xHGFw9^*>tImN_G3 z2a-PRKR)eke~w4z%Z-yXZ=a`o=)fJG(sq_A>z11YsKKA8qnaNGx@*ZMFu-Ye_)zO{V?aQ^zoWQ9sCD+{U?3uCa zrc&UZA`-c5VVtDTNi3~)P&sgygS*^DRF2qY{?5#Ae(kiWetL}h@r#24_4B;v$ZHO0 zzD_kVoS*DBMe3CNf}?7~zML0ZNG}5EbtvCE<9EkuByFKDw^28gUSq6j{=WtWz)eob zvtMScU0(Xq$6!k(dG=n$wr~IaQ=fv}FikI|%aPA~+(uo$<+TfZ^{^-39t^PUsgA=n zehs_Shz2oMe=@L!hHW)PgCN<{xZ5y)_>}nDBd*7M{@q8qioJ(3`-X#cA0<=b9{)E|FLNwLCdAomBp!+? zEZv+DZ)7csDl4(5oKn(>=sG1NLlRUYiFjI$#G4b0YQ3IV9jo#tV-9>R>pKQkfb^ z!G`8UjgBm8MGxG?idsvGN}S^-bfJ>wf=7qc8LT(8aim1eL8sQFl847Q=(TX7!T*2j zUrn)4JI{FPb?x)kr~S>_DE=!UH0NglrG=VR-$5DPTHNW_GB%53S?!LGYIoUp+8v#aK z0v{Hb5ZEa2c7YxsjW-*JtDk$apf3XAZsI11yaGf@-G2m;B+9KA7xX3w*iZR^MGHY9_9o84!j+>14!fl3P|H`0@Ao`K!oOA3#52%1k$)y z0cqT`*w1yKzXYO^+yg)_=wpKZ2v`gHeIQKShkyvd{aYZK`)PcjcFLaMBy;D0i$G_A zq`y}1TXc*`I(F6oX&zV;YVH$IE@f;b;S3y{RPU1*yN?ij=PuyYkP}`7(F;J56N2w- z1zrI;;ZGn^g`5z4XEpFj$O+w$-y-CM;5$ozC6E*19zMw_cm`w`^jkP}Xa{3wvd zCj{TQ3pf*U!fPOULC6WgceVp@!mT8{81gnC*%N~AYyjfkzmo7$i2OoM2)?rvI0bUT z$&geoqMopCl%*^4|Vgh z@=fg+irEEu6J7bxAmVaP;A57MCxt)M7?+m{g`kih7IMlf`7aUjMMAz^$UTs`P|(Kj zN>`E`bSn-`YEPn*eG?IAdxd?uh_4ZAMe=IQncB_B2gTnj2cMc!nQZ^b;#`VNcy6oh6uottL5%3^A6e}GX0hL4(cfv&-)qrNS@a*Y=s#)EzuuyMiDmxlEc8+f{i-GZ=PYt2 z7rgo7-94g40@26=O3Eryl~gPe52%R|l9bXCNkc3fujO)jLu^$dnr3n)9!&&7mO&Cp zH4=+F5TJX6ep`@Zt#t~1s7`FCNu>fCn0$U#xF2xEl)7HFbE>p1#^r#!Y*12Z3No%* z=M_>`Wm-%VXENMcnX+;7kPGLsSig`g$;4J+{wC8j?k&PbR@PxySqW;u96;q>|S?7QxVw6K|EG!leIv9y?bu<}CP zkWs}CFlB5cODp6px&+pTbd-*eL18`*7sdrkZOZ?8LIS#-6#)b&eE&ru(K xjlrk#Yb4 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h index 619b20d..736096f 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h @@ -3,109 +3,109 @@ extern unsigned int _MuscleSpindleMachineNumber_; #define _SFD_SET_DATA_VALUE_PTR(v1,v2)\ - sf_debug_set_instance_data_value_ptr(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL); + sf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL); #define _SFD_UNSET_DATA_VALUE_PTR(v1)\ - sf_debug_unset_instance_data_value_ptr(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1); + sf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1); #define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\ - sf_debug_set_instance_data_value_ptr(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3)); + sf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3)); #define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\ - sf_debug_data_range_error_wrapper_min_max(_MuscleSpindleMachineNumber_,\ + sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ dNum,(double)(dVal),(double)dMin,(double)dMax) #define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\ - sf_debug_data_range_error_wrapper_min(_MuscleSpindleMachineNumber_,\ + sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ dNum,(double)(dVal),(double)dMin) #define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\ - sf_debug_data_range_error_wrapper_max(_MuscleSpindleMachineNumber_,\ + sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ dNum,(double)(dVal),(double)dMax) #define _SFD_DATA_RANGE_CHECK(dVal,dNum)\ - sf_debug_data_range_wrapper(_MuscleSpindleMachineNumber_,\ + sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ dNum,(double)(dVal)) #define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\ - sf_debug_read_before_write_check(_MuscleSpindleMachineNumber_,\ + sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (unsigned int)(dNum),(bool)dVal) #define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_data_array_bounds_error_check(_MuscleSpindleMachineNumber_,\ + sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) #define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \ - sf_debug_data_runtime_size_mismatch_error_check(_MuscleSpindleMachineNumber_,\ + sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5)) #define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_eml_data_array_bounds_error_check(_MuscleSpindleMachineNumber_,\ + sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) #define _SFD_INTEGER_CHECK(v1,v2) \ - sf_debug_integer_check(_MuscleSpindleMachineNumber_,\ + sf_debug_integer_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(double)(v2)) #define _SFD_NOT_NAN_CHECK(v1,v2) \ - sf_debug_not_nan_check(_MuscleSpindleMachineNumber_,\ + sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(double)(v2)) #define _SFD_NON_NEGATIVE_CHECK(v1,v2) \ - sf_debug_non_negative_check(_MuscleSpindleMachineNumber_,\ + sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(double)(v2)) #define _SFD_CAST_TO_UINT8(v1) \ - sf_debug_cast_to_uint8_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_UINT16(v1) \ - sf_debug_cast_to_uint16_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_UINT32(v1) \ - sf_debug_cast_to_uint32_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_INT8(v1) \ - sf_debug_cast_to_int8_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_INT16(v1) \ - sf_debug_cast_to_int16_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_INT32(v1) \ - sf_debug_cast_to_int32_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) #define _SFD_CAST_TO_SINGLE(v1) \ - sf_debug_cast_to_real32_T(_MuscleSpindleMachineNumber_,\ + sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),0,0) -#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(_MuscleSpindleMachineNumber_,\ +#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ v1,v2) -#define _SFD_ANIMATE() sf_debug_animate(_MuscleSpindleMachineNumber_,\ +#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER) -#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(_MuscleSpindleMachineNumber_,\ +#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ CHART_OBJECT,v1,v2,v3,v4,\ @@ -114,65 +114,77 @@ CHART_OBJECT,v1,v2,v3,v4,\ #define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4) #define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4) #define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4) -#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(_MuscleSpindleMachineNumber_,\ +#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ v1,v2,\ v3,_sfTime_,0) -#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(_MuscleSpindleMachineNumber_,\ +#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ v1,v2,v3) -#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(_MuscleSpindleMachineNumber_,\ +#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ v1,v2,\ v3,_sfTime_,1) -#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(_MuscleSpindleMachineNumber_,\ +#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ CHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\ v4,NULL,_sfTime_,(unsigned int)(v5)) -#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(_MuscleSpindleMachineNumber_,\ +#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (unsigned int)(v1),(v2),STATE_OBJECT,(v4)) -#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(_MuscleSpindleMachineNumber_,\ +#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4)) -#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(_MuscleSpindleMachineNumber_,\ +#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(boolean_T)(v4)) #define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4)) #define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4)) -#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(_MuscleSpindleMachineNumber_,\ +#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ TRANSITION_OBJECT,(v1),0,((v2)!=0)) -#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4) cv_eval_testobjective(_MuscleSpindleMachineNumber_,\ +#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5) cv_eval_saturation(sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + (v1),(v2),(v3),(v4),(v5)) +#define CV_SATURATION_ACCUM(v1,v2,v3,v4) cv_saturation_accum(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + (v1),(v2),(v3),(v4)) +#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4) cv_eval_testobjective(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4)) /* Coverage Macros for MATLAB */ -#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(_MuscleSpindleMachineNumber_,\ +#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(int)(v5)) #define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0) #define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0)) +#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0)) +#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5)) #define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0)) #define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5)) #define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0)) #define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5)) #define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0)) #define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5)) -#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(_MuscleSpindleMachineNumber_,\ +#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(int)(v4)) #define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0) #define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0)) +#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0)) +#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4)) #define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0)) #define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4)) #define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0)) @@ -180,97 +192,109 @@ CHARTINSTANCE_INSTANCENUMBER,\ #define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0)) #define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4)) -#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_eml_init_script(\ +#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) + (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11)) -#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(\ +#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(\ +#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7)) -#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(\ +#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \ + _MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + (v1),(v2),(v3),(v4),(v5),(v6)) + +#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7)) -#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(\ +#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(\ +#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(\ +#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11)) -#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(\ +#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9)) -#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_script_init_script(\ +#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9)) + (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) -#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(\ +#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(\ +#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(\ +#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \ + _MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + (v1),(v2),(v3),(v4),(v5)) + +#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) -#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(\ +#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5)) -#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(\ +#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5)) -#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(\ +#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) -#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(\ +#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \ _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ @@ -278,29 +302,29 @@ CHARTINSTANCE_INSTANCENUMBER,\ #define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\ - sf_debug_set_chart_data_props(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (dataNumber),(dataScope),(isInputData),(isOutputData),(dataName)) #define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\ - sf_debug_set_chart_data_compiled_props(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ + sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ (dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn)) #define _SFD_STATE_INFO(v1,v2,v3)\ - sf_debug_set_chart_state_info(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) + sf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) #define _SFD_CH_SUBSTATE_INDEX(v1,v2)\ - sf_debug_set_chart_substate_index(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) + sf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) #define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\ - sf_debug_set_chart_state_substate_index(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) + sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) #define _SFD_ST_SUBSTATE_COUNT(v1,v2)\ - sf_debug_set_chart_state_substate_count(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) + sf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) #define _SFD_STATE_COV_WTS(v1,v2,v3,v4)\ - sf_debug_set_instance_state_coverage_weights(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) + sf_debug_set_instance_state_coverage_weights(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) #define _SFD_STATE_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) \ - sf_debug_set_chart_state_coverage_maps(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_chart_state_coverage_maps(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) #define _SFD_TRANS_COV_WTS(v1,v2,v3,v4,v5) \ - sf_debug_set_instance_transition_coverage_weights(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ + sf_debug_set_instance_transition_coverage_weights(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5)) #define _SFD_TRANS_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13) \ - sf_debug_set_chart_transition_coverage_maps(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_chart_transition_coverage_maps(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (v1),\ (v2),(v3),(v4),\ (v5),(v6),(v7),\ @@ -308,47 +332,93 @@ CHARTINSTANCE_INSTANCENUMBER,\ (v11),(v12),(v13)) #define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_data_with_change_event_for_chart(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (v1),(v2)) #define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_entry_event_for_chart(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (v1),(v2)) #define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_exit_event_for_chart(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ (v1),(v2)) #define _SFD_EVENT_SCOPE(v1,v2)\ - sf_debug_set_chart_event_scope(_MuscleSpindleMachineNumber_,\ + sf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) #define _SFD_CH_SUBSTATE_COUNT(v1) \ - sf_debug_set_chart_substate_count(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) + sf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) #define _SFD_CH_SUBSTATE_DECOMP(v1) \ - sf_debug_set_chart_decomposition(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) + sf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) #define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\ - sf_debug_cv_init_chart(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) #define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\ - sf_debug_cv_init_state(_MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ + sf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8)) +#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\ + sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + TRANSITION_OBJECT,(v1),(v2),(v3),(v4)) + +#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\ + sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ + CHARTINSTANCE_CHARTNUMBER,\ + CHARTINSTANCE_INSTANCENUMBER,\ + STATE_OBJECT, (v1),(v2),(v3),(v4)) + #define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(_MuscleSpindleMachineNumber_,\ + sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ TRANSITION_OBJECT,(v1),(v2),(v3),(v4)) #define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(_MuscleSpindleMachineNumber_,\ + sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ STATE_OBJECT, (v1),(v2),(v3),(v4)) #define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\ - sf_debug_cv_init_trans(_MuscleSpindleMachineNumber_,\ + sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ CHARTINSTANCE_CHARTNUMBER,\ CHARTINSTANCE_INSTANCENUMBER,\ (v1),(v2),(v3),(v4),(v5),(v6)) #endif +#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1) +#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4) +#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct) +#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) +#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) +#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5) +#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6) +#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5) +#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6) +#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) +#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1) +#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0) +#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct) +#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0) +#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1) +#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2) +#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) +#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) +#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) +#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4) +#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0) +#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct) +#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct) +#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct) +#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0) diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c index 79a5e8b..4c7c525 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c @@ -1,5 +1,9 @@ #include "MuscleSpindle_sfun.h" #include "sfcdebug.h" + +struct SfDebugInstanceStruct; +struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL; + #define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL unsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs, @@ -43,6 +47,37 @@ unsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int return 0; } +unsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray * + plhs[], int nrhs, const mxArray * prhs[] ) +{ + extern unsigned int sf_MuscleSpindle_third_party_uses_info( int nlhs, mxArray * + plhs[], int nrhs, const mxArray * prhs[] ); + char commandName[64]; + char machineName[128]; + if (nrhs < 4) { + return 0; + } + + if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) + return 0; + mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); + commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; + if (strcmp(commandName,"get_third_party_uses_info")) + return 0; + mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); + machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; + if (strcmp(machineName, "MuscleSpindle") == 0) { + const mxArray *newRhs[3] = { NULL, NULL, NULL }; + + newRhs[0] = prhs[0]; + newRhs[1] = prhs[2]; + newRhs[2] = prhs[3]; + return sf_MuscleSpindle_third_party_uses_info(nlhs,plhs,3,newRhs); + } + + return 0; +} + unsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] ) { @@ -92,12 +127,18 @@ unsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const return(1); } -extern unsigned int sf_debug_api( int nlhs, mxArray * plhs[], int nrhs, const - mxArray * prhs[] ); +extern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance, + int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] ); +static unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs, + const mxArray * prhs[] ) +{ + return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs); +} + static unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[]) { - if (sf_debug_api(nlhs,plhs,nrhs,prhs)) + if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs)) return 1; if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs)) return 1; @@ -105,17 +146,18 @@ static unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[], return 1; if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs)) return 1; + if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs)) + return 1; if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs)) return 1; mexErrMsgTxt("Unsuccessful command."); return 0; } -static unsigned int sfMachineGlobalTerminatorCallable = 0; -static unsigned int sfMachineGlobalInitializerCallable = 1; +static unsigned int sfGlobalMdlStartCallCounts = 0; unsigned int sf_machine_global_initializer_called(void) { - return(!sfMachineGlobalInitializerCallable); + return(sfGlobalMdlStartCallCounts > 0); } extern unsigned int sf_MuscleSpindle_method_dispatcher(SimStruct *S, unsigned @@ -135,11 +177,11 @@ unsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const extern void MuscleSpindle_terminator(void); void sf_machine_global_terminator(void) { - if (sfMachineGlobalTerminatorCallable) { - sfMachineGlobalTerminatorCallable = 0; - sfMachineGlobalInitializerCallable = 1; + sfGlobalMdlStartCallCounts--; + if (sfGlobalMdlStartCallCounts == 0) { MuscleSpindle_terminator(); - sf_debug_terminate(); + sf_debug_terminate(sfGlobalDebugInstanceStruct); + sfGlobalDebugInstanceStruct = NULL; } return; @@ -147,7 +189,7 @@ void sf_machine_global_terminator(void) extern void MuscleSpindle_initializer(void); extern void MuscleSpindle_register_exported_symbols(SimStruct* S); -extern void MuscleSpindle_debug_initialize(void); +extern void MuscleSpindle_debug_initialize(struct SfDebugInstanceStruct*); void sf_register_machine_exported_symbols(SimStruct* S) { MuscleSpindle_register_exported_symbols(S); @@ -161,15 +203,15 @@ bool callCustomFcn(char initFlag) void sf_machine_global_initializer(SimStruct* S) { bool simModeIsRTWGen = sim_mode_is_rtw_gen(S); - if (sfMachineGlobalInitializerCallable) { - sfMachineGlobalInitializerCallable = 0; - sfMachineGlobalTerminatorCallable = 1; + sfGlobalMdlStartCallCounts++; + if (sfGlobalMdlStartCallCounts == 1) { if (simModeIsRTWGen) { sf_register_machine_exported_symbols(S); } + sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct(); if (!simModeIsRTWGen) { - MuscleSpindle_debug_initialize(); + MuscleSpindle_debug_initialize(sfGlobalDebugInstanceStruct); } MuscleSpindle_initializer(); diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.o deleted file mode 100644 index fc35e9594796c9ee5b9d048785e924a80f0044a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34256 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c index 82fa112..8f0576e 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c @@ -1,12 +1,14 @@ /* Include files */ -#include "blascompat32.h" +#include +#include "blas.h" #include "MuscleSpindle_sfun.h" #include "c1_MuscleSpindle.h" #include "mwmathutil.h" #define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) #define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) #include "MuscleSpindle_sfun_debug_macros.h" +#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); /* Type Definitions */ @@ -40,6 +42,8 @@ static void finalize_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance); static void initSimStructsc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance); +static void registerMessagesc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct + *chartInstance); static void init_script_number_translation(uint32_T c1_machineNumber, uint32_T c1_chartNumber); static const mxArray *c1_sf_marshallOut(void *chartInstanceVoid, void *c1_inData); @@ -49,7 +53,8 @@ static real_T c1_b_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId); static void c1_sf_marshallIn(void *chartInstanceVoid, const mxArray *c1_mxArrayInData, const char_T *c1_varName, void *c1_outData); -static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[14]); +static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[17]); +static void c1_eml_scalar_eg(SFc1_MuscleSpindleInstanceStruct *chartInstance); static void c1_eml_error(SFc1_MuscleSpindleInstanceStruct *chartInstance); static const mxArray *c1_b_sf_marshallOut(void *chartInstanceVoid, void *c1_inData); @@ -230,30 +235,36 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) real_T c1_c_b; real_T c1_e_a; real_T c1_d_b; + real_T c1_f_a; + real_T c1_e_b; real_T c1_ak; real_T c1_bk; real_T c1_m_x; real_T c1_n_x; - real_T c1_c; - real_T c1_f_a; - real_T c1_e_b; - real_T c1_p_y; real_T c1_g_a; real_T c1_f_b; - real_T c1_q_y; + real_T c1_ar; + real_T c1_br; + real_T c1_c; real_T c1_h_a; real_T c1_g_b; - real_T c1_r_y; + real_T c1_p_y; real_T c1_i_a; real_T c1_h_b; - real_T c1_s_y; + real_T c1_q_y; real_T c1_j_a; real_T c1_i_b; + real_T c1_r_y; + real_T c1_k_a; + real_T c1_j_b; + real_T c1_s_y; + real_T c1_l_a; + real_T c1_k_b; real_T *c1_b_Gamma; real_T *c1_b_Lpr0; real_T *c1_b_Kpr; real_T *c1_b_R; - real_T *c1_k_a; + real_T *c1_m_a; real_T *c1_b_Beta; real_T *c1_b_C; real_T *c1_b_M; @@ -269,7 +280,7 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) c1_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); c1_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); c1_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c1_k_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); + c1_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); c1_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); c1_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); c1_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); @@ -294,7 +305,7 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) _SFD_DATA_RANGE_CHECK(*c1_b_M, 8U); _SFD_DATA_RANGE_CHECK(*c1_b_C, 9U); _SFD_DATA_RANGE_CHECK(*c1_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c1_k_a, 11U); + _SFD_DATA_RANGE_CHECK(*c1_m_a, 11U); _SFD_DATA_RANGE_CHECK(*c1_b_R, 12U); _SFD_DATA_RANGE_CHECK(*c1_b_Kpr, 13U); _SFD_DATA_RANGE_CHECK(*c1_b_Lpr0, 14U); @@ -311,7 +322,7 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) c1_h_hoistedGlobal = *c1_b_M; c1_i_hoistedGlobal = *c1_b_C; c1_j_hoistedGlobal = *c1_b_Beta; - c1_k_hoistedGlobal = *c1_k_a; + c1_k_hoistedGlobal = *c1_m_a; c1_l_hoistedGlobal = *c1_b_R; c1_m_hoistedGlobal = *c1_b_Kpr; c1_n_hoistedGlobal = *c1_b_Lpr0; @@ -331,30 +342,30 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) c1_Kpr = c1_m_hoistedGlobal; c1_Lpr0 = c1_n_hoistedGlobal; c1_Gamma = c1_o_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 19U, 19U, c1_debug_family_names, + _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c1_debug_family_names, c1_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c1_LTerm, 0U, c1_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_LTerm, 0U, c1_sf_marshallOut, c1_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c1_nargin, 1U, c1_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_nargin, 1U, c1_sf_marshallOut, c1_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c1_nargout, 2U, c1_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_nargout, 2U, c1_sf_marshallOut, c1_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c1_dT, 3U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_T, 4U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_L, 5U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_dL, 6U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_ddL, 7U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Lsr0, 8U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Ksr, 9U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_M, 10U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_C, 11U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Beta, 12U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_a, 13U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_R, 14U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Kpr, 15U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Lpr0, 16U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c1_Gamma, 17U, c1_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c1_ddT, 18U, c1_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_dT, 3U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_T, 4U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_L, 5U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_dL, 6U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_ddL, 7U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Lsr0, 8U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Ksr, 9U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_M, 10U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_C, 11U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Beta, 12U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_a, 13U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_R, 14U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Kpr, 15U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Lpr0, 16U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Gamma, 17U, c1_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_ddT, 18U, c1_sf_marshallOut, c1_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c1_sfEvent, 3); @@ -404,8 +415,11 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) c1_c_b = c1_a; c1_e_a = c1_d_a; c1_d_b = c1_c_b; - c1_ak = c1_e_a; - c1_bk = c1_d_b; + c1_f_a = c1_e_a; + c1_e_b = c1_d_b; + c1_eml_scalar_eg(chartInstance); + c1_ak = c1_f_a; + c1_bk = c1_e_b; if (c1_ak < 0.0) { c1_m_x = c1_bk; c1_n_x = c1_m_x; @@ -415,27 +429,32 @@ static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) } } - c1_c = muDoubleScalarPower(c1_ak, c1_bk); - c1_f_a = c1_k_y; - c1_e_b = c1_c; - c1_p_y = c1_f_a * c1_e_b; - c1_g_a = c1_p_y; - c1_f_b = c1_LTerm - c1_R; - c1_q_y = c1_g_a * c1_f_b; - c1_h_a = c1_Kpr; - c1_g_b = c1_LTerm - c1_Lpr0; - c1_r_y = c1_h_a * c1_g_b; - c1_i_a = c1_M; - c1_h_b = c1_ddL; - c1_s_y = c1_i_a * c1_h_b; - c1_j_a = c1_f_y; - c1_i_b = (((c1_q_y + c1_r_y) + c1_s_y) + c1_Gamma) - c1_T; - c1_ddT = c1_j_a * c1_i_b; + c1_g_a = c1_ak; + c1_f_b = c1_bk; + c1_eml_scalar_eg(chartInstance); + c1_ar = c1_g_a; + c1_br = c1_f_b; + c1_c = muDoubleScalarPower(c1_ar, c1_br); + c1_h_a = c1_k_y; + c1_g_b = c1_c; + c1_p_y = c1_h_a * c1_g_b; + c1_i_a = c1_p_y; + c1_h_b = c1_LTerm - c1_R; + c1_q_y = c1_i_a * c1_h_b; + c1_j_a = c1_Kpr; + c1_i_b = c1_LTerm - c1_Lpr0; + c1_r_y = c1_j_a * c1_i_b; + c1_k_a = c1_M; + c1_j_b = c1_ddL; + c1_s_y = c1_k_a * c1_j_b; + c1_l_a = c1_f_y; + c1_k_b = (((c1_q_y + c1_r_y) + c1_s_y) + c1_Gamma) - c1_T; + c1_ddT = c1_l_a * c1_k_b; _SFD_EML_CALL(0U, chartInstance->c1_sfEvent, -5); - sf_debug_symbol_scope_pop(); + _SFD_SYMBOL_SCOPE_POP(); *c1_b_ddT = c1_ddT; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c1_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, + _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); } @@ -444,6 +463,11 @@ static void initSimStructsc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct { } +static void registerMessagesc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct + *chartInstance) +{ +} + static void init_script_number_translation(uint32_T c1_machineNumber, uint32_T c1_chartNumber) { @@ -509,15 +533,15 @@ static void c1_sf_marshallIn(void *chartInstanceVoid, const mxArray const mxArray *sf_c1_MuscleSpindle_get_eml_resolved_functions_info(void) { const mxArray *c1_nameCaptureInfo; - c1_ResolvedFunctionInfo c1_info[14]; + c1_ResolvedFunctionInfo c1_info[17]; const mxArray *c1_m0 = NULL; int32_T c1_i0; c1_ResolvedFunctionInfo *c1_r0; c1_nameCaptureInfo = NULL; c1_nameCaptureInfo = NULL; c1_info_helper(c1_info); - sf_mex_assign(&c1_m0, sf_mex_createstruct("nameCaptureInfo", 1, 14), FALSE); - for (c1_i0 = 0; c1_i0 < 14; c1_i0++) { + sf_mex_assign(&c1_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); + for (c1_i0 = 0; c1_i0 < 17; c1_i0++) { c1_r0 = &c1_info[c1_i0]; sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", c1_r0->context, 15, 0U, 0U, 0U, 2, 1, strlen(c1_r0->context)), "context", "nameCaptureInfo", @@ -545,156 +569,180 @@ const mxArray *sf_c1_MuscleSpindle_get_eml_resolved_functions_info(void) return c1_nameCaptureInfo; } -static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[14]) +static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[17]) { c1_info[0].context = ""; c1_info[0].name = "mrdivide"; c1_info[0].dominantType = "double"; c1_info[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c1_info[0].fileTimeLo = 1325156538U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; + c1_info[0].fileTimeLo = 1357947948U; c1_info[0].fileTimeHi = 0U; - c1_info[0].mFileTimeLo = 1319762366U; + c1_info[0].mFileTimeLo = 1319726366U; c1_info[0].mFileTimeHi = 0U; c1_info[1].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; c1_info[1].name = "rdivide"; c1_info[1].dominantType = "double"; c1_info[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c1_info[1].fileTimeLo = 1286851244U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c1_info[1].fileTimeLo = 1346506788U; c1_info[1].fileTimeHi = 0U; c1_info[1].mFileTimeLo = 0U; c1_info[1].mFileTimeHi = 0U; - c1_info[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c1_info[2].name = "eml_div"; + c1_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c1_info[2].name = "eml_scalexp_compatible"; c1_info[2].dominantType = "double"; c1_info[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - c1_info[2].fileTimeLo = 1313380210U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; + c1_info[2].fileTimeLo = 1286815196U; c1_info[2].fileTimeHi = 0U; c1_info[2].mFileTimeLo = 0U; c1_info[2].mFileTimeHi = 0U; - c1_info[3].context = ""; - c1_info[3].name = "mtimes"; + c1_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c1_info[3].name = "eml_div"; c1_info[3].dominantType = "double"; c1_info[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - c1_info[3].fileTimeLo = 1289552092U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; + c1_info[3].fileTimeLo = 1313344210U; c1_info[3].fileTimeHi = 0U; c1_info[3].mFileTimeLo = 0U; c1_info[3].mFileTimeHi = 0U; c1_info[4].context = ""; - c1_info[4].name = "sign"; + c1_info[4].name = "mtimes"; c1_info[4].dominantType = "double"; - c1_info[4].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c1_info[4].fileTimeLo = 1286851150U; + c1_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; + c1_info[4].fileTimeLo = 1289516092U; c1_info[4].fileTimeHi = 0U; c1_info[4].mFileTimeLo = 0U; c1_info[4].mFileTimeHi = 0U; - c1_info[5].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c1_info[5].name = "eml_scalar_sign"; + c1_info[5].context = ""; + c1_info[5].name = "sign"; c1_info[5].dominantType = "double"; - c1_info[5].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c1_info[5].fileTimeLo = 1307683638U; + c1_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c1_info[5].fileTimeLo = 1354364464U; c1_info[5].fileTimeHi = 0U; c1_info[5].mFileTimeLo = 0U; c1_info[5].mFileTimeHi = 0U; - c1_info[6].context = ""; - c1_info[6].name = "abs"; + c1_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c1_info[6].name = "eml_scalar_sign"; c1_info[6].dominantType = "double"; c1_info[6].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c1_info[6].fileTimeLo = 1286851094U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; + c1_info[6].fileTimeLo = 1354364464U; c1_info[6].fileTimeHi = 0U; c1_info[6].mFileTimeLo = 0U; c1_info[6].mFileTimeHi = 0U; - c1_info[7].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c1_info[7].name = "eml_scalar_abs"; + c1_info[7].context = ""; + c1_info[7].name = "abs"; c1_info[7].dominantType = "double"; - c1_info[7].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c1_info[7].fileTimeLo = 1286851112U; + c1_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c1_info[7].fileTimeLo = 1343826766U; c1_info[7].fileTimeHi = 0U; c1_info[7].mFileTimeLo = 0U; c1_info[7].mFileTimeHi = 0U; - c1_info[8].context = ""; - c1_info[8].name = "mpower"; + c1_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c1_info[8].name = "eml_scalar_abs"; c1_info[8].dominantType = "double"; c1_info[8].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c1_info[8].fileTimeLo = 1286851242U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; + c1_info[8].fileTimeLo = 1286815112U; c1_info[8].fileTimeHi = 0U; c1_info[8].mFileTimeLo = 0U; c1_info[8].mFileTimeHi = 0U; - c1_info[9].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c1_info[9].name = "power"; + c1_info[9].context = ""; + c1_info[9].name = "mpower"; c1_info[9].dominantType = "double"; - c1_info[9].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[9].fileTimeLo = 1307683640U; + c1_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c1_info[9].fileTimeLo = 1286815242U; c1_info[9].fileTimeHi = 0U; c1_info[9].mFileTimeLo = 0U; c1_info[9].mFileTimeHi = 0U; - c1_info[10].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[10].name = "eml_scalar_eg"; + c1_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c1_info[10].name = "power"; c1_info[10].dominantType = "double"; - c1_info[10].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c1_info[10].fileTimeLo = 1286851196U; + c1_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; + c1_info[10].fileTimeLo = 1348188330U; c1_info[10].fileTimeHi = 0U; c1_info[10].mFileTimeLo = 0U; c1_info[10].mFileTimeHi = 0U; c1_info[11].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[11].name = "eml_scalexp_alloc"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c1_info[11].name = "eml_scalar_eg"; c1_info[11].dominantType = "double"; c1_info[11].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c1_info[11].fileTimeLo = 1286851196U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c1_info[11].fileTimeLo = 1286815196U; c1_info[11].fileTimeHi = 0U; c1_info[11].mFileTimeLo = 0U; c1_info[11].mFileTimeHi = 0U; c1_info[12].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[12].name = "eml_scalar_floor"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c1_info[12].name = "eml_scalexp_alloc"; c1_info[12].dominantType = "double"; c1_info[12].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c1_info[12].fileTimeLo = 1286851126U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; + c1_info[12].fileTimeLo = 1352421260U; c1_info[12].fileTimeHi = 0U; c1_info[12].mFileTimeLo = 0U; c1_info[12].mFileTimeHi = 0U; c1_info[13].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[13].name = "eml_error"; - c1_info[13].dominantType = "char"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c1_info[13].name = "floor"; + c1_info[13].dominantType = "double"; c1_info[13].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_error.m"; - c1_info[13].fileTimeLo = 1305350400U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c1_info[13].fileTimeLo = 1343826780U; c1_info[13].fileTimeHi = 0U; c1_info[13].mFileTimeLo = 0U; c1_info[13].mFileTimeHi = 0U; + c1_info[14].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c1_info[14].name = "eml_scalar_floor"; + c1_info[14].dominantType = "double"; + c1_info[14].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; + c1_info[14].fileTimeLo = 1286815126U; + c1_info[14].fileTimeHi = 0U; + c1_info[14].mFileTimeLo = 0U; + c1_info[14].mFileTimeHi = 0U; + c1_info[15].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c1_info[15].name = "eml_error"; + c1_info[15].dominantType = "char"; + c1_info[15].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; + c1_info[15].fileTimeLo = 1343826758U; + c1_info[15].fileTimeHi = 0U; + c1_info[15].mFileTimeLo = 0U; + c1_info[15].mFileTimeHi = 0U; + c1_info[16].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; + c1_info[16].name = "eml_scalar_eg"; + c1_info[16].dominantType = "double"; + c1_info[16].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c1_info[16].fileTimeLo = 1286815196U; + c1_info[16].fileTimeHi = 0U; + c1_info[16].mFileTimeLo = 0U; + c1_info[16].mFileTimeHi = 0U; +} + +static void c1_eml_scalar_eg(SFc1_MuscleSpindleInstanceStruct *chartInstance) +{ } static void c1_eml_error(SFc1_MuscleSpindleInstanceStruct *chartInstance) { int32_T c1_i1; - static char_T c1_varargin_1[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', - 'o', 'l', 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', - 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' }; + static char_T c1_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', + 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', + 'n', 'E', 'r', 'r', 'o', 'r' }; char_T c1_u[31]; const mxArray *c1_y = NULL; for (c1_i1 = 0; c1_i1 < 31; c1_i1++) { - c1_u[c1_i1] = c1_varargin_1[c1_i1]; + c1_u[c1_i1] = c1_cv0[c1_i1]; } c1_y = NULL; @@ -781,12 +829,32 @@ static void init_dsm_address_info(SFc1_MuscleSpindleInstanceStruct } /* SFunction Glue Code */ +#ifdef utFree +#undef utFree +#endif + +#ifdef utMalloc +#undef utMalloc +#endif + +#ifdef __cplusplus + +extern "C" void *utMalloc(size_t size); +extern "C" void utFree(void*); + +#else + +extern void *utMalloc(size_t size); +extern void utFree(void*); + +#endif + void sf_c1_MuscleSpindle_get_check_sum(mxArray *plhs[]) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1354727709U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2102368257U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2131688995U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1523311011U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3759668626U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1485165160U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3860467207U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4026735211U); } mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void) @@ -798,7 +866,7 @@ mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void) autoinheritanceFields); { - mxArray *mxChecksum = mxCreateString("xDnnGj7T4ueVOH7NVCE1mD"); + mxArray *mxChecksum = mxCreateString("ww8NqEKWGCNBxeBEMAhny"); mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); } @@ -1132,6 +1200,12 @@ mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void) return(mxAutoinheritanceInfo); } +mxArray *sf_c1_MuscleSpindle_third_party_uses_info(void) +{ + mxArray * mxcell3p = mxCreateCellMatrix(1,0); + return(mxcell3p); +} + static const mxArray *sf_get_sim_state_info_c1_MuscleSpindle(void) { const char *infoFields[] = { "chartChecksum", "varInfo" }; @@ -1161,7 +1235,8 @@ static void chart_debug_initialization(SimStruct *S, unsigned int { unsigned int chartAlreadyPresent; chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, 1, 1, 1, @@ -1180,8 +1255,10 @@ static void chart_debug_initialization(SimStruct *S, unsigned int init_script_number_translation(_MuscleSpindleMachineNumber_, chartInstance->chartNumber); sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, + chartInstance->chartNumber,1); + sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, chartInstance->chartNumber, 0, 0, @@ -1216,7 +1293,7 @@ static void chart_debug_initialization(SimStruct *S, unsigned int _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); + _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,340); _SFD_TRANS_COV_WTS(0,0,0,1,0); if (chartAlreadyPresent==0) { @@ -1312,15 +1389,16 @@ static void chart_debug_initialization(SimStruct *S, unsigned int } } } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); + sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_,chartInstance->chartNumber, + chartInstance->instanceNumber); } } } -static const char* sf_get_instance_specialization() +static const char* sf_get_instance_specialization(void) { - return "ycYIpW7uLL3gXRMLAbVLtF"; + return "nzeVWmC3UM9JgQUxVD8bGF"; } static void sf_opaque_initialize_c1_MuscleSpindle(void *chartInstanceVar) @@ -1415,15 +1493,14 @@ static void sf_opaque_terminate_c1_MuscleSpindle(void *chartInstanceVar) SimStruct *S = ((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { sf_clear_rtw_identifier(S); + unload_MuscleSpindle_optimization_info(); } finalize_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); + utFree((void *)chartInstanceVar); ssSetUserData(S,NULL); } - - unload_MuscleSpindle_optimization_info(); } static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) @@ -1463,6 +1540,7 @@ static void mdlSetWorkWidths_c1_MuscleSpindle(SimStruct *S) ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, sf_get_instance_specialization(),infoStruct,1, "gatewayCannotBeInlinedMultipleTimes")); + sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,1); if (chartIsInlinable) { ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); @@ -1485,18 +1563,33 @@ static void mdlSetWorkWidths_c1_MuscleSpindle(SimStruct *S) infoStruct,1,1); } + { + unsigned int outPortIdx; + for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { + ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); + } + } + + { + unsigned int inPortIdx; + for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { + ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); + } + } + sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,1); ssSetHasSubFunctions(S,!(chartIsInlinable)); } else { } ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(1930901454U)); - ssSetChecksum1(S,(1384310163U)); - ssSetChecksum2(S,(3717849801U)); - ssSetChecksum3(S,(2631616217U)); + ssSetChecksum0(S,(1887359987U)); + ssSetChecksum1(S,(2978979302U)); + ssSetChecksum2(S,(216772070U)); + ssSetChecksum3(S,(2826531006U)); ssSetmdlDerivatives(S, NULL); ssSetExplicitFCSSCtrl(S,1); + ssSupportsMultipleExecInstances(S,1); } static void mdlRTW_c1_MuscleSpindle(SimStruct *S) @@ -1509,7 +1602,7 @@ static void mdlRTW_c1_MuscleSpindle(SimStruct *S) static void mdlStart_c1_MuscleSpindle(SimStruct *S) { SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)malloc(sizeof + chartInstance = (SFc1_MuscleSpindleInstanceStruct *)utMalloc(sizeof (SFc1_MuscleSpindleInstanceStruct)); memset(chartInstance, 0, sizeof(SFc1_MuscleSpindleInstanceStruct)); if (chartInstance==NULL) { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h index 5928c23..84adb74 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h @@ -7,6 +7,9 @@ #include "rtwtypes.h" /* Type Definitions */ +#ifndef typedef_c1_ResolvedFunctionInfo +#define typedef_c1_ResolvedFunctionInfo + typedef struct { const char * context; const char * name; @@ -18,17 +21,24 @@ typedef struct { uint32_T mFileTimeHi; } c1_ResolvedFunctionInfo; +#endif /*typedef_c1_ResolvedFunctionInfo*/ + +#ifndef typedef_SFc1_MuscleSpindleInstanceStruct +#define typedef_SFc1_MuscleSpindleInstanceStruct + typedef struct { - int32_T c1_sfEvent; - boolean_T c1_isStable; - boolean_T c1_doneDoubleBufferReInit; - uint8_T c1_is_active_c1_MuscleSpindle; SimStruct *S; ChartInfoStruct chartInfo; uint32_T chartNumber; uint32_T instanceNumber; + int32_T c1_sfEvent; + boolean_T c1_isStable; + boolean_T c1_doneDoubleBufferReInit; + uint8_T c1_is_active_c1_MuscleSpindle; } SFc1_MuscleSpindleInstanceStruct; +#endif /*typedef_SFc1_MuscleSpindleInstanceStruct*/ + /* Named Constants */ /* Variable Declarations */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.o deleted file mode 100644 index b764624a277b5e11c3a22c30bc12109295958d8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35928 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 F{|~i{Be(zn diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c index 73e6e47..626bee9 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c @@ -1,12 +1,14 @@ /* Include files */ -#include "blascompat32.h" +#include +#include "blas.h" #include "MuscleSpindle_sfun.h" #include "c2_MuscleSpindle.h" #include "mwmathutil.h" #define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) #define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) #include "MuscleSpindle_sfun_debug_macros.h" +#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); /* Type Definitions */ @@ -40,6 +42,8 @@ static void finalize_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance); static void initSimStructsc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance); +static void registerMessagesc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct + *chartInstance); static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T c2_chartNumber); static const mxArray *c2_sf_marshallOut(void *chartInstanceVoid, void *c2_inData); @@ -49,7 +53,8 @@ static real_T c2_b_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData); -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[14]); +static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[17]); +static void c2_eml_scalar_eg(SFc2_MuscleSpindleInstanceStruct *chartInstance); static void c2_eml_error(SFc2_MuscleSpindleInstanceStruct *chartInstance); static const mxArray *c2_b_sf_marshallOut(void *chartInstanceVoid, void *c2_inData); @@ -230,30 +235,36 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) real_T c2_c_b; real_T c2_e_a; real_T c2_d_b; + real_T c2_f_a; + real_T c2_e_b; real_T c2_ak; real_T c2_bk; real_T c2_m_x; real_T c2_n_x; - real_T c2_c; - real_T c2_f_a; - real_T c2_e_b; - real_T c2_p_y; real_T c2_g_a; real_T c2_f_b; - real_T c2_q_y; + real_T c2_ar; + real_T c2_br; + real_T c2_c; real_T c2_h_a; real_T c2_g_b; - real_T c2_r_y; + real_T c2_p_y; real_T c2_i_a; real_T c2_h_b; - real_T c2_s_y; + real_T c2_q_y; real_T c2_j_a; real_T c2_i_b; + real_T c2_r_y; + real_T c2_k_a; + real_T c2_j_b; + real_T c2_s_y; + real_T c2_l_a; + real_T c2_k_b; real_T *c2_b_Gamma; real_T *c2_b_Lpr0; real_T *c2_b_Kpr; real_T *c2_b_R; - real_T *c2_k_a; + real_T *c2_m_a; real_T *c2_b_Beta; real_T *c2_b_C; real_T *c2_b_M; @@ -269,7 +280,7 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) c2_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); c2_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); c2_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c2_k_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); + c2_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); c2_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); c2_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); c2_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); @@ -294,7 +305,7 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) _SFD_DATA_RANGE_CHECK(*c2_b_M, 8U); _SFD_DATA_RANGE_CHECK(*c2_b_C, 9U); _SFD_DATA_RANGE_CHECK(*c2_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c2_k_a, 11U); + _SFD_DATA_RANGE_CHECK(*c2_m_a, 11U); _SFD_DATA_RANGE_CHECK(*c2_b_R, 12U); _SFD_DATA_RANGE_CHECK(*c2_b_Kpr, 13U); _SFD_DATA_RANGE_CHECK(*c2_b_Lpr0, 14U); @@ -311,7 +322,7 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) c2_h_hoistedGlobal = *c2_b_M; c2_i_hoistedGlobal = *c2_b_C; c2_j_hoistedGlobal = *c2_b_Beta; - c2_k_hoistedGlobal = *c2_k_a; + c2_k_hoistedGlobal = *c2_m_a; c2_l_hoistedGlobal = *c2_b_R; c2_m_hoistedGlobal = *c2_b_Kpr; c2_n_hoistedGlobal = *c2_b_Lpr0; @@ -331,30 +342,30 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) c2_Kpr = c2_m_hoistedGlobal; c2_Lpr0 = c2_n_hoistedGlobal; c2_Gamma = c2_o_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 19U, 19U, c2_debug_family_names, + _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c2_debug_family_names, c2_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c2_LTerm, 0U, c2_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_LTerm, 0U, c2_sf_marshallOut, c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c2_nargin, 1U, c2_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargin, 1U, c2_sf_marshallOut, c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c2_nargout, 2U, c2_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargout, 2U, c2_sf_marshallOut, c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c2_dT, 3U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_T, 4U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_L, 5U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_dL, 6U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_ddL, 7U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Lsr0, 8U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Ksr, 9U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_M, 10U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_C, 11U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Beta, 12U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_a, 13U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_R, 14U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Kpr, 15U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Lpr0, 16U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Gamma, 17U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c2_ddT, 18U, c2_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_dT, 3U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_T, 4U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_L, 5U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_dL, 6U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_ddL, 7U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Lsr0, 8U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Ksr, 9U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_M, 10U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_C, 11U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Beta, 12U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_a, 13U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_R, 14U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Kpr, 15U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Lpr0, 16U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Gamma, 17U, c2_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_ddT, 18U, c2_sf_marshallOut, c2_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 3); @@ -404,8 +415,11 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) c2_c_b = c2_a; c2_e_a = c2_d_a; c2_d_b = c2_c_b; - c2_ak = c2_e_a; - c2_bk = c2_d_b; + c2_f_a = c2_e_a; + c2_e_b = c2_d_b; + c2_eml_scalar_eg(chartInstance); + c2_ak = c2_f_a; + c2_bk = c2_e_b; if (c2_ak < 0.0) { c2_m_x = c2_bk; c2_n_x = c2_m_x; @@ -415,27 +429,32 @@ static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) } } - c2_c = muDoubleScalarPower(c2_ak, c2_bk); - c2_f_a = c2_k_y; - c2_e_b = c2_c; - c2_p_y = c2_f_a * c2_e_b; - c2_g_a = c2_p_y; - c2_f_b = c2_LTerm - c2_R; - c2_q_y = c2_g_a * c2_f_b; - c2_h_a = c2_Kpr; - c2_g_b = c2_LTerm - c2_Lpr0; - c2_r_y = c2_h_a * c2_g_b; - c2_i_a = c2_M; - c2_h_b = c2_ddL; - c2_s_y = c2_i_a * c2_h_b; - c2_j_a = c2_f_y; - c2_i_b = (((c2_q_y + c2_r_y) + c2_s_y) + c2_Gamma) - c2_T; - c2_ddT = c2_j_a * c2_i_b; + c2_g_a = c2_ak; + c2_f_b = c2_bk; + c2_eml_scalar_eg(chartInstance); + c2_ar = c2_g_a; + c2_br = c2_f_b; + c2_c = muDoubleScalarPower(c2_ar, c2_br); + c2_h_a = c2_k_y; + c2_g_b = c2_c; + c2_p_y = c2_h_a * c2_g_b; + c2_i_a = c2_p_y; + c2_h_b = c2_LTerm - c2_R; + c2_q_y = c2_i_a * c2_h_b; + c2_j_a = c2_Kpr; + c2_i_b = c2_LTerm - c2_Lpr0; + c2_r_y = c2_j_a * c2_i_b; + c2_k_a = c2_M; + c2_j_b = c2_ddL; + c2_s_y = c2_k_a * c2_j_b; + c2_l_a = c2_f_y; + c2_k_b = (((c2_q_y + c2_r_y) + c2_s_y) + c2_Gamma) - c2_T; + c2_ddT = c2_l_a * c2_k_b; _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, -5); - sf_debug_symbol_scope_pop(); + _SFD_SYMBOL_SCOPE_POP(); *c2_b_ddT = c2_ddT; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c2_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, + _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); } @@ -444,6 +463,11 @@ static void initSimStructsc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct { } +static void registerMessagesc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct + *chartInstance) +{ +} + static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T c2_chartNumber) { @@ -509,15 +533,15 @@ static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray const mxArray *sf_c2_MuscleSpindle_get_eml_resolved_functions_info(void) { const mxArray *c2_nameCaptureInfo; - c2_ResolvedFunctionInfo c2_info[14]; + c2_ResolvedFunctionInfo c2_info[17]; const mxArray *c2_m0 = NULL; int32_T c2_i0; c2_ResolvedFunctionInfo *c2_r0; c2_nameCaptureInfo = NULL; c2_nameCaptureInfo = NULL; c2_info_helper(c2_info); - sf_mex_assign(&c2_m0, sf_mex_createstruct("nameCaptureInfo", 1, 14), FALSE); - for (c2_i0 = 0; c2_i0 < 14; c2_i0++) { + sf_mex_assign(&c2_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); + for (c2_i0 = 0; c2_i0 < 17; c2_i0++) { c2_r0 = &c2_info[c2_i0]; sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->context, 15, 0U, 0U, 0U, 2, 1, strlen(c2_r0->context)), "context", "nameCaptureInfo", @@ -545,156 +569,180 @@ const mxArray *sf_c2_MuscleSpindle_get_eml_resolved_functions_info(void) return c2_nameCaptureInfo; } -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[14]) +static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[17]) { c2_info[0].context = ""; c2_info[0].name = "mrdivide"; c2_info[0].dominantType = "double"; c2_info[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c2_info[0].fileTimeLo = 1325156538U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; + c2_info[0].fileTimeLo = 1357947948U; c2_info[0].fileTimeHi = 0U; - c2_info[0].mFileTimeLo = 1319762366U; + c2_info[0].mFileTimeLo = 1319726366U; c2_info[0].mFileTimeHi = 0U; c2_info[1].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; c2_info[1].name = "rdivide"; c2_info[1].dominantType = "double"; c2_info[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[1].fileTimeLo = 1286851244U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c2_info[1].fileTimeLo = 1346506788U; c2_info[1].fileTimeHi = 0U; c2_info[1].mFileTimeLo = 0U; c2_info[1].mFileTimeHi = 0U; - c2_info[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[2].name = "eml_div"; + c2_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c2_info[2].name = "eml_scalexp_compatible"; c2_info[2].dominantType = "double"; c2_info[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - c2_info[2].fileTimeLo = 1313380210U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; + c2_info[2].fileTimeLo = 1286815196U; c2_info[2].fileTimeHi = 0U; c2_info[2].mFileTimeLo = 0U; c2_info[2].mFileTimeHi = 0U; - c2_info[3].context = ""; - c2_info[3].name = "mtimes"; + c2_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c2_info[3].name = "eml_div"; c2_info[3].dominantType = "double"; c2_info[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - c2_info[3].fileTimeLo = 1289552092U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; + c2_info[3].fileTimeLo = 1313344210U; c2_info[3].fileTimeHi = 0U; c2_info[3].mFileTimeLo = 0U; c2_info[3].mFileTimeHi = 0U; c2_info[4].context = ""; - c2_info[4].name = "sign"; + c2_info[4].name = "mtimes"; c2_info[4].dominantType = "double"; - c2_info[4].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[4].fileTimeLo = 1286851150U; + c2_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; + c2_info[4].fileTimeLo = 1289516092U; c2_info[4].fileTimeHi = 0U; c2_info[4].mFileTimeLo = 0U; c2_info[4].mFileTimeHi = 0U; - c2_info[5].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[5].name = "eml_scalar_sign"; + c2_info[5].context = ""; + c2_info[5].name = "sign"; c2_info[5].dominantType = "double"; - c2_info[5].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c2_info[5].fileTimeLo = 1307683638U; + c2_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c2_info[5].fileTimeLo = 1354364464U; c2_info[5].fileTimeHi = 0U; c2_info[5].mFileTimeLo = 0U; c2_info[5].mFileTimeHi = 0U; - c2_info[6].context = ""; - c2_info[6].name = "abs"; + c2_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c2_info[6].name = "eml_scalar_sign"; c2_info[6].dominantType = "double"; c2_info[6].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[6].fileTimeLo = 1286851094U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; + c2_info[6].fileTimeLo = 1354364464U; c2_info[6].fileTimeHi = 0U; c2_info[6].mFileTimeLo = 0U; c2_info[6].mFileTimeHi = 0U; - c2_info[7].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[7].name = "eml_scalar_abs"; + c2_info[7].context = ""; + c2_info[7].name = "abs"; c2_info[7].dominantType = "double"; - c2_info[7].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c2_info[7].fileTimeLo = 1286851112U; + c2_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c2_info[7].fileTimeLo = 1343826766U; c2_info[7].fileTimeHi = 0U; c2_info[7].mFileTimeLo = 0U; c2_info[7].mFileTimeHi = 0U; - c2_info[8].context = ""; - c2_info[8].name = "mpower"; + c2_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c2_info[8].name = "eml_scalar_abs"; c2_info[8].dominantType = "double"; c2_info[8].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[8].fileTimeLo = 1286851242U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; + c2_info[8].fileTimeLo = 1286815112U; c2_info[8].fileTimeHi = 0U; c2_info[8].mFileTimeLo = 0U; c2_info[8].mFileTimeHi = 0U; - c2_info[9].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[9].name = "power"; + c2_info[9].context = ""; + c2_info[9].name = "mpower"; c2_info[9].dominantType = "double"; - c2_info[9].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[9].fileTimeLo = 1307683640U; + c2_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c2_info[9].fileTimeLo = 1286815242U; c2_info[9].fileTimeHi = 0U; c2_info[9].mFileTimeLo = 0U; c2_info[9].mFileTimeHi = 0U; - c2_info[10].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[10].name = "eml_scalar_eg"; + c2_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c2_info[10].name = "power"; c2_info[10].dominantType = "double"; - c2_info[10].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c2_info[10].fileTimeLo = 1286851196U; + c2_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; + c2_info[10].fileTimeLo = 1348188330U; c2_info[10].fileTimeHi = 0U; c2_info[10].mFileTimeLo = 0U; c2_info[10].mFileTimeHi = 0U; c2_info[11].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[11].name = "eml_scalexp_alloc"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c2_info[11].name = "eml_scalar_eg"; c2_info[11].dominantType = "double"; c2_info[11].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c2_info[11].fileTimeLo = 1286851196U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c2_info[11].fileTimeLo = 1286815196U; c2_info[11].fileTimeHi = 0U; c2_info[11].mFileTimeLo = 0U; c2_info[11].mFileTimeHi = 0U; c2_info[12].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[12].name = "eml_scalar_floor"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c2_info[12].name = "eml_scalexp_alloc"; c2_info[12].dominantType = "double"; c2_info[12].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c2_info[12].fileTimeLo = 1286851126U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; + c2_info[12].fileTimeLo = 1352421260U; c2_info[12].fileTimeHi = 0U; c2_info[12].mFileTimeLo = 0U; c2_info[12].mFileTimeHi = 0U; c2_info[13].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[13].name = "eml_error"; - c2_info[13].dominantType = "char"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c2_info[13].name = "floor"; + c2_info[13].dominantType = "double"; c2_info[13].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_error.m"; - c2_info[13].fileTimeLo = 1305350400U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c2_info[13].fileTimeLo = 1343826780U; c2_info[13].fileTimeHi = 0U; c2_info[13].mFileTimeLo = 0U; c2_info[13].mFileTimeHi = 0U; + c2_info[14].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c2_info[14].name = "eml_scalar_floor"; + c2_info[14].dominantType = "double"; + c2_info[14].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; + c2_info[14].fileTimeLo = 1286815126U; + c2_info[14].fileTimeHi = 0U; + c2_info[14].mFileTimeLo = 0U; + c2_info[14].mFileTimeHi = 0U; + c2_info[15].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c2_info[15].name = "eml_error"; + c2_info[15].dominantType = "char"; + c2_info[15].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; + c2_info[15].fileTimeLo = 1343826758U; + c2_info[15].fileTimeHi = 0U; + c2_info[15].mFileTimeLo = 0U; + c2_info[15].mFileTimeHi = 0U; + c2_info[16].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; + c2_info[16].name = "eml_scalar_eg"; + c2_info[16].dominantType = "double"; + c2_info[16].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c2_info[16].fileTimeLo = 1286815196U; + c2_info[16].fileTimeHi = 0U; + c2_info[16].mFileTimeLo = 0U; + c2_info[16].mFileTimeHi = 0U; +} + +static void c2_eml_scalar_eg(SFc2_MuscleSpindleInstanceStruct *chartInstance) +{ } static void c2_eml_error(SFc2_MuscleSpindleInstanceStruct *chartInstance) { int32_T c2_i1; - static char_T c2_varargin_1[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', - 'o', 'l', 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', - 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' }; + static char_T c2_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', + 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', + 'n', 'E', 'r', 'r', 'o', 'r' }; char_T c2_u[31]; const mxArray *c2_y = NULL; for (c2_i1 = 0; c2_i1 < 31; c2_i1++) { - c2_u[c2_i1] = c2_varargin_1[c2_i1]; + c2_u[c2_i1] = c2_cv0[c2_i1]; } c2_y = NULL; @@ -781,12 +829,32 @@ static void init_dsm_address_info(SFc2_MuscleSpindleInstanceStruct } /* SFunction Glue Code */ +#ifdef utFree +#undef utFree +#endif + +#ifdef utMalloc +#undef utMalloc +#endif + +#ifdef __cplusplus + +extern "C" void *utMalloc(size_t size); +extern "C" void utFree(void*); + +#else + +extern void *utMalloc(size_t size); +extern void utFree(void*); + +#endif + void sf_c2_MuscleSpindle_get_check_sum(mxArray *plhs[]) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1647964782U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3482713306U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2656741442U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(614443288U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3012444427U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3880677165U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2476074965U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(941600096U); } mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void) @@ -798,7 +866,7 @@ mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void) autoinheritanceFields); { - mxArray *mxChecksum = mxCreateString("7Epm3D04SGhkoANuUOnVaF"); + mxArray *mxChecksum = mxCreateString("8Dr9owGEF7LDFB9VDrdquF"); mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); } @@ -1132,6 +1200,12 @@ mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void) return(mxAutoinheritanceInfo); } +mxArray *sf_c2_MuscleSpindle_third_party_uses_info(void) +{ + mxArray * mxcell3p = mxCreateCellMatrix(1,0); + return(mxcell3p); +} + static const mxArray *sf_get_sim_state_info_c2_MuscleSpindle(void) { const char *infoFields[] = { "chartChecksum", "varInfo" }; @@ -1161,7 +1235,8 @@ static void chart_debug_initialization(SimStruct *S, unsigned int { unsigned int chartAlreadyPresent; chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, 2, 1, 1, @@ -1180,8 +1255,10 @@ static void chart_debug_initialization(SimStruct *S, unsigned int init_script_number_translation(_MuscleSpindleMachineNumber_, chartInstance->chartNumber); sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, + chartInstance->chartNumber,1); + sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, chartInstance->chartNumber, 0, 0, @@ -1216,7 +1293,7 @@ static void chart_debug_initialization(SimStruct *S, unsigned int _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); + _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,341); _SFD_TRANS_COV_WTS(0,0,0,1,0); if (chartAlreadyPresent==0) { @@ -1312,15 +1389,16 @@ static void chart_debug_initialization(SimStruct *S, unsigned int } } } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); + sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_,chartInstance->chartNumber, + chartInstance->instanceNumber); } } } -static const char* sf_get_instance_specialization() +static const char* sf_get_instance_specialization(void) { - return "vS4hkj9wASYLpg5pFEfJZG"; + return "dkEDKYu5K2XI8jBbmLQ2HF"; } static void sf_opaque_initialize_c2_MuscleSpindle(void *chartInstanceVar) @@ -1415,15 +1493,14 @@ static void sf_opaque_terminate_c2_MuscleSpindle(void *chartInstanceVar) SimStruct *S = ((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { sf_clear_rtw_identifier(S); + unload_MuscleSpindle_optimization_info(); } finalize_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); + utFree((void *)chartInstanceVar); ssSetUserData(S,NULL); } - - unload_MuscleSpindle_optimization_info(); } static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) @@ -1463,6 +1540,7 @@ static void mdlSetWorkWidths_c2_MuscleSpindle(SimStruct *S) ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, sf_get_instance_specialization(),infoStruct,2, "gatewayCannotBeInlinedMultipleTimes")); + sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,2); if (chartIsInlinable) { ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); @@ -1485,18 +1563,33 @@ static void mdlSetWorkWidths_c2_MuscleSpindle(SimStruct *S) infoStruct,2,1); } + { + unsigned int outPortIdx; + for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { + ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); + } + } + + { + unsigned int inPortIdx; + for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { + ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); + } + } + sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,2); ssSetHasSubFunctions(S,!(chartIsInlinable)); } else { } ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(654543777U)); - ssSetChecksum1(S,(1984327007U)); - ssSetChecksum2(S,(1865630177U)); - ssSetChecksum3(S,(335866748U)); + ssSetChecksum0(S,(1664659505U)); + ssSetChecksum1(S,(223035732U)); + ssSetChecksum2(S,(782984642U)); + ssSetChecksum3(S,(4178786634U)); ssSetmdlDerivatives(S, NULL); ssSetExplicitFCSSCtrl(S,1); + ssSupportsMultipleExecInstances(S,1); } static void mdlRTW_c2_MuscleSpindle(SimStruct *S) @@ -1509,7 +1602,7 @@ static void mdlRTW_c2_MuscleSpindle(SimStruct *S) static void mdlStart_c2_MuscleSpindle(SimStruct *S) { SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)malloc(sizeof + chartInstance = (SFc2_MuscleSpindleInstanceStruct *)utMalloc(sizeof (SFc2_MuscleSpindleInstanceStruct)); memset(chartInstance, 0, sizeof(SFc2_MuscleSpindleInstanceStruct)); if (chartInstance==NULL) { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h index 9caebee..0f39594 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h @@ -7,6 +7,9 @@ #include "rtwtypes.h" /* Type Definitions */ +#ifndef typedef_c2_ResolvedFunctionInfo +#define typedef_c2_ResolvedFunctionInfo + typedef struct { const char * context; const char * name; @@ -18,17 +21,24 @@ typedef struct { uint32_T mFileTimeHi; } c2_ResolvedFunctionInfo; +#endif /*typedef_c2_ResolvedFunctionInfo*/ + +#ifndef typedef_SFc2_MuscleSpindleInstanceStruct +#define typedef_SFc2_MuscleSpindleInstanceStruct + typedef struct { - int32_T c2_sfEvent; - boolean_T c2_isStable; - boolean_T c2_doneDoubleBufferReInit; - uint8_T c2_is_active_c2_MuscleSpindle; SimStruct *S; ChartInfoStruct chartInfo; uint32_T chartNumber; uint32_T instanceNumber; + int32_T c2_sfEvent; + boolean_T c2_isStable; + boolean_T c2_doneDoubleBufferReInit; + uint8_T c2_is_active_c2_MuscleSpindle; } SFc2_MuscleSpindleInstanceStruct; +#endif /*typedef_SFc2_MuscleSpindleInstanceStruct*/ + /* Named Constants */ /* Variable Declarations */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.o deleted file mode 100644 index 64b342d9ab964a6c10ceb02e46847fa3f70497b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35928 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c index cbfe4b8..3dad632 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c @@ -1,11 +1,13 @@ /* Include files */ -#include "blascompat32.h" +#include +#include "blas.h" #include "MuscleSpindle_sfun.h" #include "c3_MuscleSpindle.h" #define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) #define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) #include "MuscleSpindle_sfun_debug_macros.h" +#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); /* Type Definitions */ @@ -39,6 +41,8 @@ static void finalize_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct static void sf_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance); static void initSimStructsc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance); +static void registerMessagesc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct + *chartInstance); static void init_script_number_translation(uint32_T c3_machineNumber, uint32_T c3_chartNumber); static const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData); @@ -274,29 +278,29 @@ static void sf_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance) c3_Lpr0 = c3_h_hoistedGlobal; c3_LprN = c3_i_hoistedGlobal; c3_L = c3_j_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 16U, 16U, c3_debug_family_names, + _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c3_debug_family_names, c3_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c3_term1, 0U, c3_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term1, 0U, c3_sf_marshallOut, c3_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c3_term2, 1U, c3_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term2, 1U, c3_sf_marshallOut, c3_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c3_term, 2U, c3_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term, 2U, c3_sf_marshallOut, c3_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c3_nargin, 3U, c3_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 3U, c3_sf_marshallOut, c3_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c3_nargout, 4U, c3_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 4U, c3_sf_marshallOut, c3_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c3_Gsnd, 5U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_T, 6U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_Ksr, 7U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_X, 8U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_Lsnd, 9U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_Lsr0, 10U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_LsrN, 11U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_Lpr0, 12U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_LprN, 13U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c3_L, 14U, c3_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c3_ScndryAffrntCntrbtn, 15U, + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Gsnd, 5U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_T, 6U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Ksr, 7U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_X, 8U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lsnd, 9U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lsr0, 10U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_LsrN, 11U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lpr0, 12U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_LprN, 13U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c3_L, 14U, c3_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_ScndryAffrntCntrbtn, 15U, c3_sf_marshallOut, c3_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 3); @@ -348,10 +352,10 @@ static void sf_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance) c3_e_b = c3_term; c3_ScndryAffrntCntrbtn = c3_e_a * c3_e_b; _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -9); - sf_debug_symbol_scope_pop(); + _SFD_SYMBOL_SCOPE_POP(); *c3_b_ScndryAffrntCntrbtn = c3_ScndryAffrntCntrbtn; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, + _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); } @@ -360,6 +364,11 @@ static void initSimStructsc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct { } +static void registerMessagesc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct + *chartInstance) +{ +} + static void init_script_number_translation(uint32_T c3_machineNumber, uint32_T c3_chartNumber) { @@ -428,54 +437,64 @@ static void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray const mxArray *sf_c3_MuscleSpindle_get_eml_resolved_functions_info(void) { const mxArray *c3_nameCaptureInfo; - c3_ResolvedFunctionInfo c3_info[4]; - c3_ResolvedFunctionInfo (*c3_b_info)[4]; + c3_ResolvedFunctionInfo c3_info[5]; + c3_ResolvedFunctionInfo (*c3_b_info)[5]; const mxArray *c3_m0 = NULL; int32_T c3_i0; c3_ResolvedFunctionInfo *c3_r0; c3_nameCaptureInfo = NULL; c3_nameCaptureInfo = NULL; - c3_b_info = (c3_ResolvedFunctionInfo (*)[4])c3_info; + c3_b_info = (c3_ResolvedFunctionInfo (*)[5])c3_info; (*c3_b_info)[0].context = ""; (*c3_b_info)[0].name = "mrdivide"; (*c3_b_info)[0].dominantType = "double"; (*c3_b_info)[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c3_b_info)[0].fileTimeLo = 1325156538U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; + (*c3_b_info)[0].fileTimeLo = 1357947948U; (*c3_b_info)[0].fileTimeHi = 0U; - (*c3_b_info)[0].mFileTimeLo = 1319762366U; + (*c3_b_info)[0].mFileTimeLo = 1319726366U; (*c3_b_info)[0].mFileTimeHi = 0U; (*c3_b_info)[1].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; (*c3_b_info)[1].name = "rdivide"; (*c3_b_info)[1].dominantType = "double"; (*c3_b_info)[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c3_b_info)[1].fileTimeLo = 1286851244U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c3_b_info)[1].fileTimeLo = 1346506788U; (*c3_b_info)[1].fileTimeHi = 0U; (*c3_b_info)[1].mFileTimeLo = 0U; (*c3_b_info)[1].mFileTimeHi = 0U; (*c3_b_info)[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c3_b_info)[2].name = "eml_div"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c3_b_info)[2].name = "eml_scalexp_compatible"; (*c3_b_info)[2].dominantType = "double"; (*c3_b_info)[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - (*c3_b_info)[2].fileTimeLo = 1313380210U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; + (*c3_b_info)[2].fileTimeLo = 1286815196U; (*c3_b_info)[2].fileTimeHi = 0U; (*c3_b_info)[2].mFileTimeLo = 0U; (*c3_b_info)[2].mFileTimeHi = 0U; - (*c3_b_info)[3].context = ""; - (*c3_b_info)[3].name = "mtimes"; + (*c3_b_info)[3].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c3_b_info)[3].name = "eml_div"; (*c3_b_info)[3].dominantType = "double"; (*c3_b_info)[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - (*c3_b_info)[3].fileTimeLo = 1289552092U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; + (*c3_b_info)[3].fileTimeLo = 1313344210U; (*c3_b_info)[3].fileTimeHi = 0U; (*c3_b_info)[3].mFileTimeLo = 0U; (*c3_b_info)[3].mFileTimeHi = 0U; - sf_mex_assign(&c3_m0, sf_mex_createstruct("nameCaptureInfo", 1, 4), FALSE); - for (c3_i0 = 0; c3_i0 < 4; c3_i0++) { + (*c3_b_info)[4].context = ""; + (*c3_b_info)[4].name = "mtimes"; + (*c3_b_info)[4].dominantType = "double"; + (*c3_b_info)[4].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; + (*c3_b_info)[4].fileTimeLo = 1289516092U; + (*c3_b_info)[4].fileTimeHi = 0U; + (*c3_b_info)[4].mFileTimeLo = 0U; + (*c3_b_info)[4].mFileTimeHi = 0U; + sf_mex_assign(&c3_m0, sf_mex_createstruct("nameCaptureInfo", 1, 5), FALSE); + for (c3_i0 = 0; c3_i0 < 5; c3_i0++) { c3_r0 = &c3_info[c3_i0]; sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", c3_r0->context, 15, 0U, 0U, 0U, 2, 1, strlen(c3_r0->context)), "context", "nameCaptureInfo", @@ -581,12 +600,32 @@ static void init_dsm_address_info(SFc3_MuscleSpindleInstanceStruct } /* SFunction Glue Code */ +#ifdef utFree +#undef utFree +#endif + +#ifdef utMalloc +#undef utMalloc +#endif + +#ifdef __cplusplus + +extern "C" void *utMalloc(size_t size); +extern "C" void utFree(void*); + +#else + +extern void *utMalloc(size_t size); +extern void utFree(void*); + +#endif + void sf_c3_MuscleSpindle_get_check_sum(mxArray *plhs[]) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3638660298U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2400816865U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1468737207U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1381295768U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2927169710U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3875967505U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2948318806U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2847105181U); } mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void) @@ -598,7 +637,7 @@ mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void) autoinheritanceFields); { - mxArray *mxChecksum = mxCreateString("Q7vnilCGC3xeaHVuEoVVfG"); + mxArray *mxChecksum = mxCreateString("6MdPBYbz53whJT5GuBWJbE"); mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); } @@ -837,6 +876,12 @@ mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void) return(mxAutoinheritanceInfo); } +mxArray *sf_c3_MuscleSpindle_third_party_uses_info(void) +{ + mxArray * mxcell3p = mxCreateCellMatrix(1,0); + return(mxcell3p); +} + static const mxArray *sf_get_sim_state_info_c3_MuscleSpindle(void) { const char *infoFields[] = { "chartChecksum", "varInfo" }; @@ -866,7 +911,8 @@ static void chart_debug_initialization(SimStruct *S, unsigned int { unsigned int chartAlreadyPresent; chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, 3, 1, 1, @@ -885,8 +931,10 @@ static void chart_debug_initialization(SimStruct *S, unsigned int init_script_number_translation(_MuscleSpindleMachineNumber_, chartInstance->chartNumber); sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, + chartInstance->chartNumber,1); + sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, chartInstance->chartNumber, 0, 0, @@ -916,7 +964,7 @@ static void chart_debug_initialization(SimStruct *S, unsigned int _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); + _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,372); _SFD_TRANS_COV_WTS(0,0,0,1,0); if (chartAlreadyPresent==0) { @@ -988,15 +1036,16 @@ static void chart_debug_initialization(SimStruct *S, unsigned int } } } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); + sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_,chartInstance->chartNumber, + chartInstance->instanceNumber); } } } -static const char* sf_get_instance_specialization() +static const char* sf_get_instance_specialization(void) { - return "4AIp75LcIllG7UOnkZHcRB"; + return "EIegXK4lrHvNN24BpctGtD"; } static void sf_opaque_initialize_c3_MuscleSpindle(void *chartInstanceVar) @@ -1091,15 +1140,14 @@ static void sf_opaque_terminate_c3_MuscleSpindle(void *chartInstanceVar) SimStruct *S = ((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { sf_clear_rtw_identifier(S); + unload_MuscleSpindle_optimization_info(); } finalize_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); + utFree((void *)chartInstanceVar); ssSetUserData(S,NULL); } - - unload_MuscleSpindle_optimization_info(); } static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) @@ -1139,6 +1187,7 @@ static void mdlSetWorkWidths_c3_MuscleSpindle(SimStruct *S) ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, sf_get_instance_specialization(),infoStruct,3, "gatewayCannotBeInlinedMultipleTimes")); + sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3); if (chartIsInlinable) { ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); @@ -1156,18 +1205,33 @@ static void mdlSetWorkWidths_c3_MuscleSpindle(SimStruct *S) infoStruct,3,1); } + { + unsigned int outPortIdx; + for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { + ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); + } + } + + { + unsigned int inPortIdx; + for (inPortIdx=0; inPortIdx < 10; ++inPortIdx) { + ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); + } + } + sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3); ssSetHasSubFunctions(S,!(chartIsInlinable)); } else { } ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(3572149463U)); - ssSetChecksum1(S,(3582085775U)); - ssSetChecksum2(S,(4270967315U)); - ssSetChecksum3(S,(610484590U)); + ssSetChecksum0(S,(3271247123U)); + ssSetChecksum1(S,(2205023528U)); + ssSetChecksum2(S,(1044813094U)); + ssSetChecksum3(S,(4222593174U)); ssSetmdlDerivatives(S, NULL); ssSetExplicitFCSSCtrl(S,1); + ssSupportsMultipleExecInstances(S,1); } static void mdlRTW_c3_MuscleSpindle(SimStruct *S) @@ -1180,7 +1244,7 @@ static void mdlRTW_c3_MuscleSpindle(SimStruct *S) static void mdlStart_c3_MuscleSpindle(SimStruct *S) { SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)malloc(sizeof + chartInstance = (SFc3_MuscleSpindleInstanceStruct *)utMalloc(sizeof (SFc3_MuscleSpindleInstanceStruct)); memset(chartInstance, 0, sizeof(SFc3_MuscleSpindleInstanceStruct)); if (chartInstance==NULL) { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h index f9f8c44..1832b82 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h @@ -7,6 +7,9 @@ #include "rtwtypes.h" /* Type Definitions */ +#ifndef typedef_c3_ResolvedFunctionInfo +#define typedef_c3_ResolvedFunctionInfo + typedef struct { const char * context; const char * name; @@ -18,17 +21,24 @@ typedef struct { uint32_T mFileTimeHi; } c3_ResolvedFunctionInfo; +#endif /*typedef_c3_ResolvedFunctionInfo*/ + +#ifndef typedef_SFc3_MuscleSpindleInstanceStruct +#define typedef_SFc3_MuscleSpindleInstanceStruct + typedef struct { - int32_T c3_sfEvent; - boolean_T c3_isStable; - boolean_T c3_doneDoubleBufferReInit; - uint8_T c3_is_active_c3_MuscleSpindle; SimStruct *S; ChartInfoStruct chartInfo; uint32_T chartNumber; uint32_T instanceNumber; + int32_T c3_sfEvent; + boolean_T c3_isStable; + boolean_T c3_doneDoubleBufferReInit; + uint8_T c3_is_active_c3_MuscleSpindle; } SFc3_MuscleSpindleInstanceStruct; +#endif /*typedef_SFc3_MuscleSpindleInstanceStruct*/ + /* Named Constants */ /* Variable Declarations */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.o deleted file mode 100644 index b3ac5173f4a1b482d73e94f930d5af42811ed66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28048 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 +#include "blas.h" #include "MuscleSpindle_sfun.h" #include "c4_MuscleSpindle.h" #define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) #define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) #include "MuscleSpindle_sfun_debug_macros.h" +#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); /* Type Definitions */ @@ -39,6 +41,8 @@ static void finalize_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct static void sf_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance); static void initSimStructsc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance); +static void registerMessagesc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct + *chartInstance); static void init_script_number_translation(uint32_T c4_machineNumber, uint32_T c4_chartNumber); static const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData); @@ -274,29 +278,29 @@ static void sf_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance) c4_Lpr0 = c4_h_hoistedGlobal; c4_LprN = c4_i_hoistedGlobal; c4_L = c4_j_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 16U, 16U, c4_debug_family_names, + _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names, c4_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c4_term1, 0U, c4_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term1, 0U, c4_sf_marshallOut, c4_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c4_term2, 1U, c4_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term2, 1U, c4_sf_marshallOut, c4_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c4_term, 2U, c4_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term, 2U, c4_sf_marshallOut, c4_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c4_nargin, 3U, c4_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 3U, c4_sf_marshallOut, c4_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c4_nargout, 4U, c4_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 4U, c4_sf_marshallOut, c4_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c4_Gsnd, 5U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_T, 6U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_Ksr, 7U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_X, 8U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_Lsnd, 9U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_Lsr0, 10U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_LsrN, 11U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_Lpr0, 12U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_LprN, 13U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c4_L, 14U, c4_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c4_ScndryAffrntCntrbtn, 15U, + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Gsnd, 5U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_T, 6U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Ksr, 7U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_X, 8U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lsnd, 9U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lsr0, 10U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_LsrN, 11U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lpr0, 12U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_LprN, 13U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c4_L, 14U, c4_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_ScndryAffrntCntrbtn, 15U, c4_sf_marshallOut, c4_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3); @@ -348,10 +352,10 @@ static void sf_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance) c4_e_b = c4_term; c4_ScndryAffrntCntrbtn = c4_e_a * c4_e_b; _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -9); - sf_debug_symbol_scope_pop(); + _SFD_SYMBOL_SCOPE_POP(); *c4_b_ScndryAffrntCntrbtn = c4_ScndryAffrntCntrbtn; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 3U, chartInstance->c4_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, + _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); } @@ -360,6 +364,11 @@ static void initSimStructsc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct { } +static void registerMessagesc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct + *chartInstance) +{ +} + static void init_script_number_translation(uint32_T c4_machineNumber, uint32_T c4_chartNumber) { @@ -428,54 +437,64 @@ static void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray const mxArray *sf_c4_MuscleSpindle_get_eml_resolved_functions_info(void) { const mxArray *c4_nameCaptureInfo; - c4_ResolvedFunctionInfo c4_info[4]; - c4_ResolvedFunctionInfo (*c4_b_info)[4]; + c4_ResolvedFunctionInfo c4_info[5]; + c4_ResolvedFunctionInfo (*c4_b_info)[5]; const mxArray *c4_m0 = NULL; int32_T c4_i0; c4_ResolvedFunctionInfo *c4_r0; c4_nameCaptureInfo = NULL; c4_nameCaptureInfo = NULL; - c4_b_info = (c4_ResolvedFunctionInfo (*)[4])c4_info; + c4_b_info = (c4_ResolvedFunctionInfo (*)[5])c4_info; (*c4_b_info)[0].context = ""; (*c4_b_info)[0].name = "mrdivide"; (*c4_b_info)[0].dominantType = "double"; (*c4_b_info)[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c4_b_info)[0].fileTimeLo = 1325156538U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; + (*c4_b_info)[0].fileTimeLo = 1357947948U; (*c4_b_info)[0].fileTimeHi = 0U; - (*c4_b_info)[0].mFileTimeLo = 1319762366U; + (*c4_b_info)[0].mFileTimeLo = 1319726366U; (*c4_b_info)[0].mFileTimeHi = 0U; (*c4_b_info)[1].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; (*c4_b_info)[1].name = "rdivide"; (*c4_b_info)[1].dominantType = "double"; (*c4_b_info)[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c4_b_info)[1].fileTimeLo = 1286851244U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c4_b_info)[1].fileTimeLo = 1346506788U; (*c4_b_info)[1].fileTimeHi = 0U; (*c4_b_info)[1].mFileTimeLo = 0U; (*c4_b_info)[1].mFileTimeHi = 0U; (*c4_b_info)[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c4_b_info)[2].name = "eml_div"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c4_b_info)[2].name = "eml_scalexp_compatible"; (*c4_b_info)[2].dominantType = "double"; (*c4_b_info)[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - (*c4_b_info)[2].fileTimeLo = 1313380210U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; + (*c4_b_info)[2].fileTimeLo = 1286815196U; (*c4_b_info)[2].fileTimeHi = 0U; (*c4_b_info)[2].mFileTimeLo = 0U; (*c4_b_info)[2].mFileTimeHi = 0U; - (*c4_b_info)[3].context = ""; - (*c4_b_info)[3].name = "mtimes"; + (*c4_b_info)[3].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + (*c4_b_info)[3].name = "eml_div"; (*c4_b_info)[3].dominantType = "double"; (*c4_b_info)[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - (*c4_b_info)[3].fileTimeLo = 1289552092U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; + (*c4_b_info)[3].fileTimeLo = 1313344210U; (*c4_b_info)[3].fileTimeHi = 0U; (*c4_b_info)[3].mFileTimeLo = 0U; (*c4_b_info)[3].mFileTimeHi = 0U; - sf_mex_assign(&c4_m0, sf_mex_createstruct("nameCaptureInfo", 1, 4), FALSE); - for (c4_i0 = 0; c4_i0 < 4; c4_i0++) { + (*c4_b_info)[4].context = ""; + (*c4_b_info)[4].name = "mtimes"; + (*c4_b_info)[4].dominantType = "double"; + (*c4_b_info)[4].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; + (*c4_b_info)[4].fileTimeLo = 1289516092U; + (*c4_b_info)[4].fileTimeHi = 0U; + (*c4_b_info)[4].mFileTimeLo = 0U; + (*c4_b_info)[4].mFileTimeHi = 0U; + sf_mex_assign(&c4_m0, sf_mex_createstruct("nameCaptureInfo", 1, 5), FALSE); + for (c4_i0 = 0; c4_i0 < 5; c4_i0++) { c4_r0 = &c4_info[c4_i0]; sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", c4_r0->context, 15, 0U, 0U, 0U, 2, 1, strlen(c4_r0->context)), "context", "nameCaptureInfo", @@ -581,12 +600,32 @@ static void init_dsm_address_info(SFc4_MuscleSpindleInstanceStruct } /* SFunction Glue Code */ +#ifdef utFree +#undef utFree +#endif + +#ifdef utMalloc +#undef utMalloc +#endif + +#ifdef __cplusplus + +extern "C" void *utMalloc(size_t size); +extern "C" void utFree(void*); + +#else + +extern void *utMalloc(size_t size); +extern void utFree(void*); + +#endif + void sf_c4_MuscleSpindle_get_check_sum(mxArray *plhs[]) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3638660298U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2400816865U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1468737207U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1381295768U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2927169710U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3875967505U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2948318806U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2847105181U); } mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void) @@ -598,7 +637,7 @@ mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void) autoinheritanceFields); { - mxArray *mxChecksum = mxCreateString("Q7vnilCGC3xeaHVuEoVVfG"); + mxArray *mxChecksum = mxCreateString("6MdPBYbz53whJT5GuBWJbE"); mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); } @@ -837,6 +876,12 @@ mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void) return(mxAutoinheritanceInfo); } +mxArray *sf_c4_MuscleSpindle_third_party_uses_info(void) +{ + mxArray * mxcell3p = mxCreateCellMatrix(1,0); + return(mxcell3p); +} + static const mxArray *sf_get_sim_state_info_c4_MuscleSpindle(void) { const char *infoFields[] = { "chartChecksum", "varInfo" }; @@ -866,7 +911,8 @@ static void chart_debug_initialization(SimStruct *S, unsigned int { unsigned int chartAlreadyPresent; chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, 4, 1, 1, @@ -885,8 +931,10 @@ static void chart_debug_initialization(SimStruct *S, unsigned int init_script_number_translation(_MuscleSpindleMachineNumber_, chartInstance->chartNumber); sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, + chartInstance->chartNumber,1); + sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, chartInstance->chartNumber, 0, 0, @@ -916,7 +964,7 @@ static void chart_debug_initialization(SimStruct *S, unsigned int _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); + _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,372); _SFD_TRANS_COV_WTS(0,0,0,1,0); if (chartAlreadyPresent==0) { @@ -988,15 +1036,16 @@ static void chart_debug_initialization(SimStruct *S, unsigned int } } } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); + sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_,chartInstance->chartNumber, + chartInstance->instanceNumber); } } } -static const char* sf_get_instance_specialization() +static const char* sf_get_instance_specialization(void) { - return "4AIp75LcIllG7UOnkZHcRB"; + return "EIegXK4lrHvNN24BpctGtD"; } static void sf_opaque_initialize_c4_MuscleSpindle(void *chartInstanceVar) @@ -1091,15 +1140,14 @@ static void sf_opaque_terminate_c4_MuscleSpindle(void *chartInstanceVar) SimStruct *S = ((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { sf_clear_rtw_identifier(S); + unload_MuscleSpindle_optimization_info(); } finalize_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); + utFree((void *)chartInstanceVar); ssSetUserData(S,NULL); } - - unload_MuscleSpindle_optimization_info(); } static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) @@ -1139,6 +1187,7 @@ static void mdlSetWorkWidths_c4_MuscleSpindle(SimStruct *S) ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, sf_get_instance_specialization(),infoStruct,4, "gatewayCannotBeInlinedMultipleTimes")); + sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4); if (chartIsInlinable) { ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); @@ -1156,18 +1205,33 @@ static void mdlSetWorkWidths_c4_MuscleSpindle(SimStruct *S) infoStruct,4,1); } + { + unsigned int outPortIdx; + for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { + ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); + } + } + + { + unsigned int inPortIdx; + for (inPortIdx=0; inPortIdx < 10; ++inPortIdx) { + ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); + } + } + sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4); ssSetHasSubFunctions(S,!(chartIsInlinable)); } else { } ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(3572149463U)); - ssSetChecksum1(S,(3582085775U)); - ssSetChecksum2(S,(4270967315U)); - ssSetChecksum3(S,(610484590U)); + ssSetChecksum0(S,(3271247123U)); + ssSetChecksum1(S,(2205023528U)); + ssSetChecksum2(S,(1044813094U)); + ssSetChecksum3(S,(4222593174U)); ssSetmdlDerivatives(S, NULL); ssSetExplicitFCSSCtrl(S,1); + ssSupportsMultipleExecInstances(S,1); } static void mdlRTW_c4_MuscleSpindle(SimStruct *S) @@ -1180,7 +1244,7 @@ static void mdlRTW_c4_MuscleSpindle(SimStruct *S) static void mdlStart_c4_MuscleSpindle(SimStruct *S) { SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)malloc(sizeof + chartInstance = (SFc4_MuscleSpindleInstanceStruct *)utMalloc(sizeof (SFc4_MuscleSpindleInstanceStruct)); memset(chartInstance, 0, sizeof(SFc4_MuscleSpindleInstanceStruct)); if (chartInstance==NULL) { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h index ec3318c..7424d99 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h @@ -7,6 +7,9 @@ #include "rtwtypes.h" /* Type Definitions */ +#ifndef typedef_c4_ResolvedFunctionInfo +#define typedef_c4_ResolvedFunctionInfo + typedef struct { const char * context; const char * name; @@ -18,17 +21,24 @@ typedef struct { uint32_T mFileTimeHi; } c4_ResolvedFunctionInfo; +#endif /*typedef_c4_ResolvedFunctionInfo*/ + +#ifndef typedef_SFc4_MuscleSpindleInstanceStruct +#define typedef_SFc4_MuscleSpindleInstanceStruct + typedef struct { - int32_T c4_sfEvent; - boolean_T c4_isStable; - boolean_T c4_doneDoubleBufferReInit; - uint8_T c4_is_active_c4_MuscleSpindle; SimStruct *S; ChartInfoStruct chartInfo; uint32_T chartNumber; uint32_T instanceNumber; + int32_T c4_sfEvent; + boolean_T c4_isStable; + boolean_T c4_doneDoubleBufferReInit; + uint8_T c4_is_active_c4_MuscleSpindle; } SFc4_MuscleSpindleInstanceStruct; +#endif /*typedef_SFc4_MuscleSpindleInstanceStruct*/ + /* Named Constants */ /* Variable Declarations */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.o deleted file mode 100644 index 8cee69dd42ffadc5733c707ec886199c93a42482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28048 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 N*JfPkzF6NH{|~ws_=o@i diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c index e5d2233..2e9c426 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c @@ -1,12 +1,14 @@ /* Include files */ -#include "blascompat32.h" +#include +#include "blas.h" #include "MuscleSpindle_sfun.h" #include "c5_MuscleSpindle.h" #include "mwmathutil.h" #define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) #define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) #include "MuscleSpindle_sfun_debug_macros.h" +#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); /* Type Definitions */ @@ -40,6 +42,8 @@ static void finalize_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance); static void initSimStructsc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance); +static void registerMessagesc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct + *chartInstance); static void init_script_number_translation(uint32_T c5_machineNumber, uint32_T c5_chartNumber); static const mxArray *c5_sf_marshallOut(void *chartInstanceVoid, void *c5_inData); @@ -49,7 +53,8 @@ static real_T c5_b_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId); static void c5_sf_marshallIn(void *chartInstanceVoid, const mxArray *c5_mxArrayInData, const char_T *c5_varName, void *c5_outData); -static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[14]); +static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[17]); +static void c5_eml_scalar_eg(SFc5_MuscleSpindleInstanceStruct *chartInstance); static void c5_eml_error(SFc5_MuscleSpindleInstanceStruct *chartInstance); static const mxArray *c5_b_sf_marshallOut(void *chartInstanceVoid, void *c5_inData); @@ -230,30 +235,36 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) real_T c5_c_b; real_T c5_e_a; real_T c5_d_b; + real_T c5_f_a; + real_T c5_e_b; real_T c5_ak; real_T c5_bk; real_T c5_m_x; real_T c5_n_x; - real_T c5_c; - real_T c5_f_a; - real_T c5_e_b; - real_T c5_p_y; real_T c5_g_a; real_T c5_f_b; - real_T c5_q_y; + real_T c5_ar; + real_T c5_br; + real_T c5_c; real_T c5_h_a; real_T c5_g_b; - real_T c5_r_y; + real_T c5_p_y; real_T c5_i_a; real_T c5_h_b; - real_T c5_s_y; + real_T c5_q_y; real_T c5_j_a; real_T c5_i_b; + real_T c5_r_y; + real_T c5_k_a; + real_T c5_j_b; + real_T c5_s_y; + real_T c5_l_a; + real_T c5_k_b; real_T *c5_b_Gamma; real_T *c5_b_Lpr0; real_T *c5_b_Kpr; real_T *c5_b_R; - real_T *c5_k_a; + real_T *c5_m_a; real_T *c5_b_Beta; real_T *c5_b_C; real_T *c5_b_M; @@ -269,7 +280,7 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) c5_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); c5_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); c5_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c5_k_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); + c5_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); c5_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); c5_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); c5_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); @@ -294,7 +305,7 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) _SFD_DATA_RANGE_CHECK(*c5_b_M, 8U); _SFD_DATA_RANGE_CHECK(*c5_b_C, 9U); _SFD_DATA_RANGE_CHECK(*c5_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c5_k_a, 11U); + _SFD_DATA_RANGE_CHECK(*c5_m_a, 11U); _SFD_DATA_RANGE_CHECK(*c5_b_R, 12U); _SFD_DATA_RANGE_CHECK(*c5_b_Kpr, 13U); _SFD_DATA_RANGE_CHECK(*c5_b_Lpr0, 14U); @@ -311,7 +322,7 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) c5_h_hoistedGlobal = *c5_b_M; c5_i_hoistedGlobal = *c5_b_C; c5_j_hoistedGlobal = *c5_b_Beta; - c5_k_hoistedGlobal = *c5_k_a; + c5_k_hoistedGlobal = *c5_m_a; c5_l_hoistedGlobal = *c5_b_R; c5_m_hoistedGlobal = *c5_b_Kpr; c5_n_hoistedGlobal = *c5_b_Lpr0; @@ -331,30 +342,30 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) c5_Kpr = c5_m_hoistedGlobal; c5_Lpr0 = c5_n_hoistedGlobal; c5_Gamma = c5_o_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 19U, 19U, c5_debug_family_names, + _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c5_debug_family_names, c5_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c5_LTerm, 0U, c5_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_LTerm, 0U, c5_sf_marshallOut, c5_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c5_nargin, 1U, c5_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_nargin, 1U, c5_sf_marshallOut, c5_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c5_nargout, 2U, c5_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_nargout, 2U, c5_sf_marshallOut, c5_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c5_dT, 3U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_T, 4U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_L, 5U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_dL, 6U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_ddL, 7U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Lsr0, 8U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Ksr, 9U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_M, 10U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_C, 11U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Beta, 12U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_a, 13U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_R, 14U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Kpr, 15U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Lpr0, 16U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c5_Gamma, 17U, c5_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c5_ddT, 18U, c5_sf_marshallOut, + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_dT, 3U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_T, 4U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_L, 5U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_dL, 6U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_ddL, 7U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Lsr0, 8U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Ksr, 9U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_M, 10U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_C, 11U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Beta, 12U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_a, 13U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_R, 14U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Kpr, 15U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Lpr0, 16U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Gamma, 17U, c5_sf_marshallOut); + _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_ddT, 18U, c5_sf_marshallOut, c5_sf_marshallIn); CV_EML_FCN(0, 0); _SFD_EML_CALL(0U, chartInstance->c5_sfEvent, 3); @@ -404,8 +415,11 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) c5_c_b = c5_a; c5_e_a = c5_d_a; c5_d_b = c5_c_b; - c5_ak = c5_e_a; - c5_bk = c5_d_b; + c5_f_a = c5_e_a; + c5_e_b = c5_d_b; + c5_eml_scalar_eg(chartInstance); + c5_ak = c5_f_a; + c5_bk = c5_e_b; if (c5_ak < 0.0) { c5_m_x = c5_bk; c5_n_x = c5_m_x; @@ -415,27 +429,32 @@ static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) } } - c5_c = muDoubleScalarPower(c5_ak, c5_bk); - c5_f_a = c5_k_y; - c5_e_b = c5_c; - c5_p_y = c5_f_a * c5_e_b; - c5_g_a = c5_p_y; - c5_f_b = c5_LTerm - c5_R; - c5_q_y = c5_g_a * c5_f_b; - c5_h_a = c5_Kpr; - c5_g_b = c5_LTerm - c5_Lpr0; - c5_r_y = c5_h_a * c5_g_b; - c5_i_a = c5_M; - c5_h_b = c5_ddL; - c5_s_y = c5_i_a * c5_h_b; - c5_j_a = c5_f_y; - c5_i_b = (((c5_q_y + c5_r_y) + c5_s_y) + c5_Gamma) - c5_T; - c5_ddT = c5_j_a * c5_i_b; + c5_g_a = c5_ak; + c5_f_b = c5_bk; + c5_eml_scalar_eg(chartInstance); + c5_ar = c5_g_a; + c5_br = c5_f_b; + c5_c = muDoubleScalarPower(c5_ar, c5_br); + c5_h_a = c5_k_y; + c5_g_b = c5_c; + c5_p_y = c5_h_a * c5_g_b; + c5_i_a = c5_p_y; + c5_h_b = c5_LTerm - c5_R; + c5_q_y = c5_i_a * c5_h_b; + c5_j_a = c5_Kpr; + c5_i_b = c5_LTerm - c5_Lpr0; + c5_r_y = c5_j_a * c5_i_b; + c5_k_a = c5_M; + c5_j_b = c5_ddL; + c5_s_y = c5_k_a * c5_j_b; + c5_l_a = c5_f_y; + c5_k_b = (((c5_q_y + c5_r_y) + c5_s_y) + c5_Gamma) - c5_T; + c5_ddT = c5_l_a * c5_k_b; _SFD_EML_CALL(0U, chartInstance->c5_sfEvent, -5); - sf_debug_symbol_scope_pop(); + _SFD_SYMBOL_SCOPE_POP(); *c5_b_ddT = c5_ddT; _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 4U, chartInstance->c5_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, + _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, chartInstance->chartNumber, chartInstance->instanceNumber); } @@ -444,6 +463,11 @@ static void initSimStructsc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct { } +static void registerMessagesc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct + *chartInstance) +{ +} + static void init_script_number_translation(uint32_T c5_machineNumber, uint32_T c5_chartNumber) { @@ -509,15 +533,15 @@ static void c5_sf_marshallIn(void *chartInstanceVoid, const mxArray const mxArray *sf_c5_MuscleSpindle_get_eml_resolved_functions_info(void) { const mxArray *c5_nameCaptureInfo; - c5_ResolvedFunctionInfo c5_info[14]; + c5_ResolvedFunctionInfo c5_info[17]; const mxArray *c5_m0 = NULL; int32_T c5_i0; c5_ResolvedFunctionInfo *c5_r0; c5_nameCaptureInfo = NULL; c5_nameCaptureInfo = NULL; c5_info_helper(c5_info); - sf_mex_assign(&c5_m0, sf_mex_createstruct("nameCaptureInfo", 1, 14), FALSE); - for (c5_i0 = 0; c5_i0 < 14; c5_i0++) { + sf_mex_assign(&c5_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); + for (c5_i0 = 0; c5_i0 < 17; c5_i0++) { c5_r0 = &c5_info[c5_i0]; sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", c5_r0->context, 15, 0U, 0U, 0U, 2, 1, strlen(c5_r0->context)), "context", "nameCaptureInfo", @@ -545,156 +569,180 @@ const mxArray *sf_c5_MuscleSpindle_get_eml_resolved_functions_info(void) return c5_nameCaptureInfo; } -static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[14]) +static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[17]) { c5_info[0].context = ""; c5_info[0].name = "mrdivide"; c5_info[0].dominantType = "double"; c5_info[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c5_info[0].fileTimeLo = 1325156538U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; + c5_info[0].fileTimeLo = 1357947948U; c5_info[0].fileTimeHi = 0U; - c5_info[0].mFileTimeLo = 1319762366U; + c5_info[0].mFileTimeLo = 1319726366U; c5_info[0].mFileTimeHi = 0U; c5_info[1].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; c5_info[1].name = "rdivide"; c5_info[1].dominantType = "double"; c5_info[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c5_info[1].fileTimeLo = 1286851244U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c5_info[1].fileTimeLo = 1346506788U; c5_info[1].fileTimeHi = 0U; c5_info[1].mFileTimeLo = 0U; c5_info[1].mFileTimeHi = 0U; - c5_info[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c5_info[2].name = "eml_div"; + c5_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c5_info[2].name = "eml_scalexp_compatible"; c5_info[2].dominantType = "double"; c5_info[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - c5_info[2].fileTimeLo = 1313380210U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; + c5_info[2].fileTimeLo = 1286815196U; c5_info[2].fileTimeHi = 0U; c5_info[2].mFileTimeLo = 0U; c5_info[2].mFileTimeHi = 0U; - c5_info[3].context = ""; - c5_info[3].name = "mtimes"; + c5_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; + c5_info[3].name = "eml_div"; c5_info[3].dominantType = "double"; c5_info[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - c5_info[3].fileTimeLo = 1289552092U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; + c5_info[3].fileTimeLo = 1313344210U; c5_info[3].fileTimeHi = 0U; c5_info[3].mFileTimeLo = 0U; c5_info[3].mFileTimeHi = 0U; c5_info[4].context = ""; - c5_info[4].name = "sign"; + c5_info[4].name = "mtimes"; c5_info[4].dominantType = "double"; - c5_info[4].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c5_info[4].fileTimeLo = 1286851150U; + c5_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; + c5_info[4].fileTimeLo = 1289516092U; c5_info[4].fileTimeHi = 0U; c5_info[4].mFileTimeLo = 0U; c5_info[4].mFileTimeHi = 0U; - c5_info[5].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c5_info[5].name = "eml_scalar_sign"; + c5_info[5].context = ""; + c5_info[5].name = "sign"; c5_info[5].dominantType = "double"; - c5_info[5].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c5_info[5].fileTimeLo = 1307683638U; + c5_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c5_info[5].fileTimeLo = 1354364464U; c5_info[5].fileTimeHi = 0U; c5_info[5].mFileTimeLo = 0U; c5_info[5].mFileTimeHi = 0U; - c5_info[6].context = ""; - c5_info[6].name = "abs"; + c5_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; + c5_info[6].name = "eml_scalar_sign"; c5_info[6].dominantType = "double"; c5_info[6].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c5_info[6].fileTimeLo = 1286851094U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; + c5_info[6].fileTimeLo = 1354364464U; c5_info[6].fileTimeHi = 0U; c5_info[6].mFileTimeLo = 0U; c5_info[6].mFileTimeHi = 0U; - c5_info[7].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c5_info[7].name = "eml_scalar_abs"; + c5_info[7].context = ""; + c5_info[7].name = "abs"; c5_info[7].dominantType = "double"; - c5_info[7].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c5_info[7].fileTimeLo = 1286851112U; + c5_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c5_info[7].fileTimeLo = 1343826766U; c5_info[7].fileTimeHi = 0U; c5_info[7].mFileTimeLo = 0U; c5_info[7].mFileTimeHi = 0U; - c5_info[8].context = ""; - c5_info[8].name = "mpower"; + c5_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; + c5_info[8].name = "eml_scalar_abs"; c5_info[8].dominantType = "double"; c5_info[8].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c5_info[8].fileTimeLo = 1286851242U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; + c5_info[8].fileTimeLo = 1286815112U; c5_info[8].fileTimeHi = 0U; c5_info[8].mFileTimeLo = 0U; c5_info[8].mFileTimeHi = 0U; - c5_info[9].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c5_info[9].name = "power"; + c5_info[9].context = ""; + c5_info[9].name = "mpower"; c5_info[9].dominantType = "double"; - c5_info[9].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[9].fileTimeLo = 1307683640U; + c5_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c5_info[9].fileTimeLo = 1286815242U; c5_info[9].fileTimeHi = 0U; c5_info[9].mFileTimeLo = 0U; c5_info[9].mFileTimeHi = 0U; - c5_info[10].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[10].name = "eml_scalar_eg"; + c5_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; + c5_info[10].name = "power"; c5_info[10].dominantType = "double"; - c5_info[10].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c5_info[10].fileTimeLo = 1286851196U; + c5_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; + c5_info[10].fileTimeLo = 1348188330U; c5_info[10].fileTimeHi = 0U; c5_info[10].mFileTimeLo = 0U; c5_info[10].mFileTimeHi = 0U; c5_info[11].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[11].name = "eml_scalexp_alloc"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c5_info[11].name = "eml_scalar_eg"; c5_info[11].dominantType = "double"; c5_info[11].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c5_info[11].fileTimeLo = 1286851196U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c5_info[11].fileTimeLo = 1286815196U; c5_info[11].fileTimeHi = 0U; c5_info[11].mFileTimeLo = 0U; c5_info[11].mFileTimeHi = 0U; c5_info[12].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[12].name = "eml_scalar_floor"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c5_info[12].name = "eml_scalexp_alloc"; c5_info[12].dominantType = "double"; c5_info[12].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c5_info[12].fileTimeLo = 1286851126U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; + c5_info[12].fileTimeLo = 1352421260U; c5_info[12].fileTimeHi = 0U; c5_info[12].mFileTimeLo = 0U; c5_info[12].mFileTimeHi = 0U; c5_info[13].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[13].name = "eml_error"; - c5_info[13].dominantType = "char"; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c5_info[13].name = "floor"; + c5_info[13].dominantType = "double"; c5_info[13].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_error.m"; - c5_info[13].fileTimeLo = 1305350400U; + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c5_info[13].fileTimeLo = 1343826780U; c5_info[13].fileTimeHi = 0U; c5_info[13].mFileTimeLo = 0U; c5_info[13].mFileTimeHi = 0U; + c5_info[14].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; + c5_info[14].name = "eml_scalar_floor"; + c5_info[14].dominantType = "double"; + c5_info[14].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; + c5_info[14].fileTimeLo = 1286815126U; + c5_info[14].fileTimeHi = 0U; + c5_info[14].mFileTimeLo = 0U; + c5_info[14].mFileTimeHi = 0U; + c5_info[15].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; + c5_info[15].name = "eml_error"; + c5_info[15].dominantType = "char"; + c5_info[15].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; + c5_info[15].fileTimeLo = 1343826758U; + c5_info[15].fileTimeHi = 0U; + c5_info[15].mFileTimeLo = 0U; + c5_info[15].mFileTimeHi = 0U; + c5_info[16].context = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; + c5_info[16].name = "eml_scalar_eg"; + c5_info[16].dominantType = "double"; + c5_info[16].resolved = + "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; + c5_info[16].fileTimeLo = 1286815196U; + c5_info[16].fileTimeHi = 0U; + c5_info[16].mFileTimeLo = 0U; + c5_info[16].mFileTimeHi = 0U; +} + +static void c5_eml_scalar_eg(SFc5_MuscleSpindleInstanceStruct *chartInstance) +{ } static void c5_eml_error(SFc5_MuscleSpindleInstanceStruct *chartInstance) { int32_T c5_i1; - static char_T c5_varargin_1[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', - 'o', 'l', 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', - 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' }; + static char_T c5_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', + 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', + 'n', 'E', 'r', 'r', 'o', 'r' }; char_T c5_u[31]; const mxArray *c5_y = NULL; for (c5_i1 = 0; c5_i1 < 31; c5_i1++) { - c5_u[c5_i1] = c5_varargin_1[c5_i1]; + c5_u[c5_i1] = c5_cv0[c5_i1]; } c5_y = NULL; @@ -781,12 +829,32 @@ static void init_dsm_address_info(SFc5_MuscleSpindleInstanceStruct } /* SFunction Glue Code */ +#ifdef utFree +#undef utFree +#endif + +#ifdef utMalloc +#undef utMalloc +#endif + +#ifdef __cplusplus + +extern "C" void *utMalloc(size_t size); +extern "C" void utFree(void*); + +#else + +extern void *utMalloc(size_t size); +extern void utFree(void*); + +#endif + void sf_c5_MuscleSpindle_get_check_sum(mxArray *plhs[]) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1354727709U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2102368257U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2131688995U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1523311011U); + ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3759668626U); + ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1485165160U); + ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3860467207U); + ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4026735211U); } mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void) @@ -798,7 +866,7 @@ mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void) autoinheritanceFields); { - mxArray *mxChecksum = mxCreateString("xDnnGj7T4ueVOH7NVCE1mD"); + mxArray *mxChecksum = mxCreateString("ww8NqEKWGCNBxeBEMAhny"); mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); } @@ -1132,6 +1200,12 @@ mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void) return(mxAutoinheritanceInfo); } +mxArray *sf_c5_MuscleSpindle_third_party_uses_info(void) +{ + mxArray * mxcell3p = mxCreateCellMatrix(1,0); + return(mxcell3p); +} + static const mxArray *sf_get_sim_state_info_c5_MuscleSpindle(void) { const char *infoFields[] = { "chartChecksum", "varInfo" }; @@ -1161,7 +1235,8 @@ static void chart_debug_initialization(SimStruct *S, unsigned int { unsigned int chartAlreadyPresent; chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, 5, 1, 1, @@ -1180,8 +1255,10 @@ static void chart_debug_initialization(SimStruct *S, unsigned int init_script_number_translation(_MuscleSpindleMachineNumber_, chartInstance->chartNumber); sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, + (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, + chartInstance->chartNumber,1); + sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_, chartInstance->chartNumber, 0, 0, @@ -1216,7 +1293,7 @@ static void chart_debug_initialization(SimStruct *S, unsigned int _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); + _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,340); _SFD_TRANS_COV_WTS(0,0,0,1,0); if (chartAlreadyPresent==0) { @@ -1312,15 +1389,16 @@ static void chart_debug_initialization(SimStruct *S, unsigned int } } } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); + sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, + _MuscleSpindleMachineNumber_,chartInstance->chartNumber, + chartInstance->instanceNumber); } } } -static const char* sf_get_instance_specialization() +static const char* sf_get_instance_specialization(void) { - return "ycYIpW7uLL3gXRMLAbVLtF"; + return "nzeVWmC3UM9JgQUxVD8bGF"; } static void sf_opaque_initialize_c5_MuscleSpindle(void *chartInstanceVar) @@ -1415,15 +1493,14 @@ static void sf_opaque_terminate_c5_MuscleSpindle(void *chartInstanceVar) SimStruct *S = ((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { sf_clear_rtw_identifier(S); + unload_MuscleSpindle_optimization_info(); } finalize_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); + utFree((void *)chartInstanceVar); ssSetUserData(S,NULL); } - - unload_MuscleSpindle_optimization_info(); } static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) @@ -1463,6 +1540,7 @@ static void mdlSetWorkWidths_c5_MuscleSpindle(SimStruct *S) ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, sf_get_instance_specialization(),infoStruct,5, "gatewayCannotBeInlinedMultipleTimes")); + sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,5); if (chartIsInlinable) { ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); @@ -1485,18 +1563,33 @@ static void mdlSetWorkWidths_c5_MuscleSpindle(SimStruct *S) infoStruct,5,1); } + { + unsigned int outPortIdx; + for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { + ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); + } + } + + { + unsigned int inPortIdx; + for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { + ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); + } + } + sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,5); ssSetHasSubFunctions(S,!(chartIsInlinable)); } else { } ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(1930901454U)); - ssSetChecksum1(S,(1384310163U)); - ssSetChecksum2(S,(3717849801U)); - ssSetChecksum3(S,(2631616217U)); + ssSetChecksum0(S,(1887359987U)); + ssSetChecksum1(S,(2978979302U)); + ssSetChecksum2(S,(216772070U)); + ssSetChecksum3(S,(2826531006U)); ssSetmdlDerivatives(S, NULL); ssSetExplicitFCSSCtrl(S,1); + ssSupportsMultipleExecInstances(S,1); } static void mdlRTW_c5_MuscleSpindle(SimStruct *S) @@ -1509,7 +1602,7 @@ static void mdlRTW_c5_MuscleSpindle(SimStruct *S) static void mdlStart_c5_MuscleSpindle(SimStruct *S) { SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)malloc(sizeof + chartInstance = (SFc5_MuscleSpindleInstanceStruct *)utMalloc(sizeof (SFc5_MuscleSpindleInstanceStruct)); memset(chartInstance, 0, sizeof(SFc5_MuscleSpindleInstanceStruct)); if (chartInstance==NULL) { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h index 2d77e7b..475440c 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h @@ -7,6 +7,9 @@ #include "rtwtypes.h" /* Type Definitions */ +#ifndef typedef_c5_ResolvedFunctionInfo +#define typedef_c5_ResolvedFunctionInfo + typedef struct { const char * context; const char * name; @@ -18,17 +21,24 @@ typedef struct { uint32_T mFileTimeHi; } c5_ResolvedFunctionInfo; +#endif /*typedef_c5_ResolvedFunctionInfo*/ + +#ifndef typedef_SFc5_MuscleSpindleInstanceStruct +#define typedef_SFc5_MuscleSpindleInstanceStruct + typedef struct { - int32_T c5_sfEvent; - boolean_T c5_isStable; - boolean_T c5_doneDoubleBufferReInit; - uint8_T c5_is_active_c5_MuscleSpindle; SimStruct *S; ChartInfoStruct chartInfo; uint32_T chartNumber; uint32_T instanceNumber; + int32_T c5_sfEvent; + boolean_T c5_isStable; + boolean_T c5_doneDoubleBufferReInit; + uint8_T c5_is_active_c5_MuscleSpindle; } SFc5_MuscleSpindleInstanceStruct; +#endif /*typedef_SFc5_MuscleSpindleInstanceStruct*/ + /* Named Constants */ /* Variable Declarations */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.o deleted file mode 100644 index 182d621c1627bdad0ec815005b6426dbbbf05568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35928 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 MTjoUf$=cTVf9(k*oB#j- diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.c deleted file mode 100644 index d72344e..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.c +++ /dev/null @@ -1,1500 +0,0 @@ -/* Include files */ - -#include "blascompat32.h" -#include "MuscleSpindle_sfun.h" -#include "c6_MuscleSpindle.h" -#include "mwmathutil.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c6_debug_family_names[16] = { "nargin", "nargout", "L", "dL", - "ddL", "Lsr0", "Ksr", "M", "C", "Beta", "a", "R", "Kpr", "Lpr0", "Gamma", "T0" -}; - -/* Function Declarations */ -static void initialize_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance); -static void c6_update_debugger_state_c6_MuscleSpindle - (SFc6_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c6_MuscleSpindle - (SFc6_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_st); -static void finalize_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c6_machineNumber, uint32_T - c6_chartNumber); -static const mxArray *c6_sf_marshallOut(void *chartInstanceVoid, void *c6_inData); -static real_T c6_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_T0, const char_T *c6_identifier); -static real_T c6_b_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId); -static void c6_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c6_mxArrayInData, const char_T *c6_varName, void *c6_outData); -static void c6_info_helper(c6_ResolvedFunctionInfo c6_info[14]); -static real_T c6_mpower(SFc6_MuscleSpindleInstanceStruct *chartInstance, real_T - c6_a, real_T c6_b); -static void c6_eml_error(SFc6_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *c6_b_sf_marshallOut(void *chartInstanceVoid, void - *c6_inData); -static int32_T c6_c_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId); -static void c6_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c6_mxArrayInData, const char_T *c6_varName, void *c6_outData); -static uint8_T c6_d_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_b_is_active_c6_MuscleSpindle, const char_T - *c6_identifier); -static uint8_T c6_e_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId); -static void init_dsm_address_info(SFc6_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c6_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c6_is_active_c6_MuscleSpindle = 0U; -} - -static void initialize_params_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c6_update_debugger_state_c6_MuscleSpindle - (SFc6_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c6_MuscleSpindle - (SFc6_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c6_st; - const mxArray *c6_y = NULL; - real_T c6_hoistedGlobal; - real_T c6_u; - const mxArray *c6_b_y = NULL; - uint8_T c6_b_hoistedGlobal; - uint8_T c6_b_u; - const mxArray *c6_c_y = NULL; - real_T *c6_T0; - c6_T0 = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c6_st = NULL; - c6_st = NULL; - c6_y = NULL; - sf_mex_assign(&c6_y, sf_mex_createcellarray(2), FALSE); - c6_hoistedGlobal = *c6_T0; - c6_u = c6_hoistedGlobal; - c6_b_y = NULL; - sf_mex_assign(&c6_b_y, sf_mex_create("y", &c6_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c6_y, 0, c6_b_y); - c6_b_hoistedGlobal = chartInstance->c6_is_active_c6_MuscleSpindle; - c6_b_u = c6_b_hoistedGlobal; - c6_c_y = NULL; - sf_mex_assign(&c6_c_y, sf_mex_create("y", &c6_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c6_y, 1, c6_c_y); - sf_mex_assign(&c6_st, c6_y, FALSE); - return c6_st; -} - -static void set_sim_state_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_st) -{ - const mxArray *c6_u; - real_T *c6_T0; - c6_T0 = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c6_doneDoubleBufferReInit = TRUE; - c6_u = sf_mex_dup(c6_st); - *c6_T0 = c6_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c6_u, 0)), - "T0"); - chartInstance->c6_is_active_c6_MuscleSpindle = c6_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c6_u, 1)), - "is_active_c6_MuscleSpindle"); - sf_mex_destroy(&c6_u); - c6_update_debugger_state_c6_MuscleSpindle(chartInstance); - sf_mex_destroy(&c6_st); -} - -static void finalize_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c6_hoistedGlobal; - real_T c6_b_hoistedGlobal; - real_T c6_c_hoistedGlobal; - real_T c6_d_hoistedGlobal; - real_T c6_e_hoistedGlobal; - real_T c6_f_hoistedGlobal; - real_T c6_g_hoistedGlobal; - real_T c6_h_hoistedGlobal; - real_T c6_i_hoistedGlobal; - real_T c6_j_hoistedGlobal; - real_T c6_k_hoistedGlobal; - real_T c6_l_hoistedGlobal; - real_T c6_m_hoistedGlobal; - real_T c6_L; - real_T c6_dL; - real_T c6_ddL; - real_T c6_Lsr0; - real_T c6_Ksr; - real_T c6_M; - real_T c6_C; - real_T c6_Beta; - real_T c6_a; - real_T c6_R; - real_T c6_Kpr; - real_T c6_Lpr0; - real_T c6_Gamma; - uint32_T c6_debug_family_var_map[16]; - real_T c6_nargin = 13.0; - real_T c6_nargout = 1.0; - real_T c6_T0; - real_T c6_b_a; - real_T c6_b; - real_T c6_y; - real_T c6_x; - real_T c6_b_x; - real_T c6_c_a; - real_T c6_b_b; - real_T c6_b_y; - real_T c6_c_x; - real_T c6_d_x; - real_T c6_c_y; - real_T c6_d_a; - real_T c6_c_b; - real_T c6_d_y; - real_T c6_e_a; - real_T c6_d_b; - real_T c6_e_y; - real_T c6_f_a; - real_T c6_e_b; - real_T c6_f_y; - real_T c6_g_a; - real_T c6_f_b; - real_T c6_g_y; - real_T c6_h_a; - real_T c6_g_b; - real_T c6_h_y; - real_T c6_e_x; - real_T c6_f_x; - real_T c6_i_a; - real_T c6_h_b; - real_T c6_i_y; - real_T c6_g_x; - real_T c6_h_x; - real_T c6_j_y; - real_T c6_j_a; - real_T c6_i_b; - real_T c6_k_y; - real_T c6_A; - real_T c6_B; - real_T c6_i_x; - real_T c6_l_y; - real_T c6_j_x; - real_T c6_m_y; - real_T c6_n_y; - real_T c6_b_A; - real_T c6_b_B; - real_T c6_k_x; - real_T c6_o_y; - real_T c6_l_x; - real_T c6_p_y; - real_T *c6_b_Gamma; - real_T *c6_b_Lpr0; - real_T *c6_b_Kpr; - real_T *c6_b_R; - real_T *c6_k_a; - real_T *c6_b_Beta; - real_T *c6_b_C; - real_T *c6_b_M; - real_T *c6_b_Ksr; - real_T *c6_b_Lsr0; - real_T *c6_b_ddL; - real_T *c6_b_dL; - real_T *c6_b_L; - real_T *c6_b_T0; - c6_b_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c6_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c6_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c6_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c6_k_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c6_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c6_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c6_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c6_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c6_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c6_b_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c6_b_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c6_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - c6_b_T0 = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 5U, chartInstance->c6_sfEvent); - _SFD_DATA_RANGE_CHECK(*c6_b_T0, 0U); - _SFD_DATA_RANGE_CHECK(*c6_b_L, 1U); - _SFD_DATA_RANGE_CHECK(*c6_b_dL, 2U); - _SFD_DATA_RANGE_CHECK(*c6_b_ddL, 3U); - _SFD_DATA_RANGE_CHECK(*c6_b_Lsr0, 4U); - _SFD_DATA_RANGE_CHECK(*c6_b_Ksr, 5U); - _SFD_DATA_RANGE_CHECK(*c6_b_M, 6U); - _SFD_DATA_RANGE_CHECK(*c6_b_C, 7U); - _SFD_DATA_RANGE_CHECK(*c6_b_Beta, 8U); - _SFD_DATA_RANGE_CHECK(*c6_k_a, 9U); - _SFD_DATA_RANGE_CHECK(*c6_b_R, 10U); - _SFD_DATA_RANGE_CHECK(*c6_b_Kpr, 11U); - _SFD_DATA_RANGE_CHECK(*c6_b_Lpr0, 12U); - _SFD_DATA_RANGE_CHECK(*c6_b_Gamma, 13U); - chartInstance->c6_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 5U, chartInstance->c6_sfEvent); - c6_hoistedGlobal = *c6_b_L; - c6_b_hoistedGlobal = *c6_b_dL; - c6_c_hoistedGlobal = *c6_b_ddL; - c6_d_hoistedGlobal = *c6_b_Lsr0; - c6_e_hoistedGlobal = *c6_b_Ksr; - c6_f_hoistedGlobal = *c6_b_M; - c6_g_hoistedGlobal = *c6_b_C; - c6_h_hoistedGlobal = *c6_b_Beta; - c6_i_hoistedGlobal = *c6_k_a; - c6_j_hoistedGlobal = *c6_b_R; - c6_k_hoistedGlobal = *c6_b_Kpr; - c6_l_hoistedGlobal = *c6_b_Lpr0; - c6_m_hoistedGlobal = *c6_b_Gamma; - c6_L = c6_hoistedGlobal; - c6_dL = c6_b_hoistedGlobal; - c6_ddL = c6_c_hoistedGlobal; - c6_Lsr0 = c6_d_hoistedGlobal; - c6_Ksr = c6_e_hoistedGlobal; - c6_M = c6_f_hoistedGlobal; - c6_C = c6_g_hoistedGlobal; - c6_Beta = c6_h_hoistedGlobal; - c6_a = c6_i_hoistedGlobal; - c6_R = c6_j_hoistedGlobal; - c6_Kpr = c6_k_hoistedGlobal; - c6_Lpr0 = c6_l_hoistedGlobal; - c6_Gamma = c6_m_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 16U, 16U, c6_debug_family_names, - c6_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c6_nargin, 0U, c6_sf_marshallOut, - c6_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c6_nargout, 1U, c6_sf_marshallOut, - c6_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c6_L, 2U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_dL, 3U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_ddL, 4U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Lsr0, 5U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Ksr, 6U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_M, 7U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_C, 8U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Beta, 9U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_a, 10U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_R, 11U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Kpr, 12U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Lpr0, 13U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c6_Gamma, 14U, c6_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c6_T0, 15U, c6_sf_marshallOut, - c6_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 4); - c6_b_a = c6_C; - c6_b = c6_Beta; - c6_y = c6_b_a * c6_b; - c6_x = c6_dL; - c6_b_x = c6_x; - c6_b_x = muDoubleScalarSign(c6_b_x); - c6_c_a = c6_y; - c6_b_b = c6_b_x; - c6_b_y = c6_c_a * c6_b_b; - c6_c_x = c6_dL; - c6_d_x = c6_c_x; - c6_c_y = muDoubleScalarAbs(c6_d_x); - c6_d_a = c6_b_y; - c6_c_b = c6_mpower(chartInstance, c6_c_y, c6_a); - c6_d_y = c6_d_a * c6_c_b; - c6_e_a = c6_d_y; - c6_d_b = (c6_L - c6_Lsr0) - c6_R; - c6_e_y = c6_e_a * c6_d_b; - c6_f_a = c6_Kpr; - c6_e_b = (c6_L - c6_Lsr0) - c6_Lpr0; - c6_f_y = c6_f_a * c6_e_b; - c6_g_a = c6_M; - c6_f_b = c6_ddL; - c6_g_y = c6_g_a * c6_f_b; - c6_h_a = c6_C; - c6_g_b = c6_Beta; - c6_h_y = c6_h_a * c6_g_b; - c6_e_x = c6_dL; - c6_f_x = c6_e_x; - c6_f_x = muDoubleScalarSign(c6_f_x); - c6_i_a = c6_h_y; - c6_h_b = c6_f_x; - c6_i_y = c6_i_a * c6_h_b; - c6_g_x = c6_dL; - c6_h_x = c6_g_x; - c6_j_y = muDoubleScalarAbs(c6_h_x); - c6_j_a = c6_i_y; - c6_i_b = c6_mpower(chartInstance, c6_j_y, c6_a); - c6_k_y = c6_j_a * c6_i_b; - c6_A = c6_Kpr; - c6_B = c6_Ksr; - c6_i_x = c6_A; - c6_l_y = c6_B; - c6_j_x = c6_i_x; - c6_m_y = c6_l_y; - c6_n_y = c6_j_x / c6_m_y; - c6_b_A = ((c6_e_y + c6_f_y) + c6_g_y) + c6_Gamma; - c6_b_B = (c6_k_y + c6_n_y) + 1.0; - c6_k_x = c6_b_A; - c6_o_y = c6_b_B; - c6_l_x = c6_k_x; - c6_p_y = c6_o_y; - c6_T0 = c6_l_x / c6_p_y; - _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, -4); - sf_debug_symbol_scope_pop(); - *c6_b_T0 = c6_T0; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 5U, chartInstance->c6_sfEvent); - sf_debug_check_for_state_inconsistency(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc6_MuscleSpindle(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c6_machineNumber, uint32_T - c6_chartNumber) -{ -} - -static const mxArray *c6_sf_marshallOut(void *chartInstanceVoid, void *c6_inData) -{ - const mxArray *c6_mxArrayOutData = NULL; - real_T c6_u; - const mxArray *c6_y = NULL; - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c6_mxArrayOutData = NULL; - c6_u = *(real_T *)c6_inData; - c6_y = NULL; - sf_mex_assign(&c6_y, sf_mex_create("y", &c6_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c6_mxArrayOutData, c6_y, FALSE); - return c6_mxArrayOutData; -} - -static real_T c6_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_T0, const char_T *c6_identifier) -{ - real_T c6_y; - emlrtMsgIdentifier c6_thisId; - c6_thisId.fIdentifier = c6_identifier; - c6_thisId.fParent = NULL; - c6_y = c6_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c6_T0), &c6_thisId); - sf_mex_destroy(&c6_T0); - return c6_y; -} - -static real_T c6_b_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId) -{ - real_T c6_y; - real_T c6_d0; - sf_mex_import(c6_parentId, sf_mex_dup(c6_u), &c6_d0, 1, 0, 0U, 0, 0U, 0); - c6_y = c6_d0; - sf_mex_destroy(&c6_u); - return c6_y; -} - -static void c6_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c6_mxArrayInData, const char_T *c6_varName, void *c6_outData) -{ - const mxArray *c6_T0; - const char_T *c6_identifier; - emlrtMsgIdentifier c6_thisId; - real_T c6_y; - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c6_T0 = sf_mex_dup(c6_mxArrayInData); - c6_identifier = c6_varName; - c6_thisId.fIdentifier = c6_identifier; - c6_thisId.fParent = NULL; - c6_y = c6_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c6_T0), &c6_thisId); - sf_mex_destroy(&c6_T0); - *(real_T *)c6_outData = c6_y; - sf_mex_destroy(&c6_mxArrayInData); -} - -const mxArray *sf_c6_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c6_nameCaptureInfo; - c6_ResolvedFunctionInfo c6_info[14]; - const mxArray *c6_m0 = NULL; - int32_T c6_i0; - c6_ResolvedFunctionInfo *c6_r0; - c6_nameCaptureInfo = NULL; - c6_nameCaptureInfo = NULL; - c6_info_helper(c6_info); - sf_mex_assign(&c6_m0, sf_mex_createstruct("nameCaptureInfo", 1, 14), FALSE); - for (c6_i0 = 0; c6_i0 < 14; c6_i0++) { - c6_r0 = &c6_info[c6_i0]; - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", c6_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c6_r0->context)), "context", "nameCaptureInfo", - c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", c6_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c6_r0->name)), "name", "nameCaptureInfo", c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", c6_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c6_r0->dominantType)), "dominantType", - "nameCaptureInfo", c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", c6_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c6_r0->resolved)), "resolved", "nameCaptureInfo", - c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", &c6_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", &c6_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", &c6_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c6_i0); - sf_mex_addfield(c6_m0, sf_mex_create("nameCaptureInfo", &c6_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c6_i0); - } - - sf_mex_assign(&c6_nameCaptureInfo, c6_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c6_nameCaptureInfo); - return c6_nameCaptureInfo; -} - -static void c6_info_helper(c6_ResolvedFunctionInfo c6_info[14]) -{ - c6_info[0].context = ""; - c6_info[0].name = "mtimes"; - c6_info[0].dominantType = "double"; - c6_info[0].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mtimes.m"; - c6_info[0].fileTimeLo = 1289552092U; - c6_info[0].fileTimeHi = 0U; - c6_info[0].mFileTimeLo = 0U; - c6_info[0].mFileTimeHi = 0U; - c6_info[1].context = ""; - c6_info[1].name = "sign"; - c6_info[1].dominantType = "double"; - c6_info[1].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c6_info[1].fileTimeLo = 1286851150U; - c6_info[1].fileTimeHi = 0U; - c6_info[1].mFileTimeLo = 0U; - c6_info[1].mFileTimeHi = 0U; - c6_info[2].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/sign.m"; - c6_info[2].name = "eml_scalar_sign"; - c6_info[2].dominantType = "double"; - c6_info[2].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c6_info[2].fileTimeLo = 1307683638U; - c6_info[2].fileTimeHi = 0U; - c6_info[2].mFileTimeLo = 0U; - c6_info[2].mFileTimeHi = 0U; - c6_info[3].context = ""; - c6_info[3].name = "abs"; - c6_info[3].dominantType = "double"; - c6_info[3].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c6_info[3].fileTimeLo = 1286851094U; - c6_info[3].fileTimeHi = 0U; - c6_info[3].mFileTimeLo = 0U; - c6_info[3].mFileTimeHi = 0U; - c6_info[4].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/abs.m"; - c6_info[4].name = "eml_scalar_abs"; - c6_info[4].dominantType = "double"; - c6_info[4].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c6_info[4].fileTimeLo = 1286851112U; - c6_info[4].fileTimeHi = 0U; - c6_info[4].mFileTimeLo = 0U; - c6_info[4].mFileTimeHi = 0U; - c6_info[5].context = ""; - c6_info[5].name = "mpower"; - c6_info[5].dominantType = "double"; - c6_info[5].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c6_info[5].fileTimeLo = 1286851242U; - c6_info[5].fileTimeHi = 0U; - c6_info[5].mFileTimeLo = 0U; - c6_info[5].mFileTimeHi = 0U; - c6_info[6].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mpower.m"; - c6_info[6].name = "power"; - c6_info[6].dominantType = "double"; - c6_info[6].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c6_info[6].fileTimeLo = 1307683640U; - c6_info[6].fileTimeHi = 0U; - c6_info[6].mFileTimeLo = 0U; - c6_info[6].mFileTimeHi = 0U; - c6_info[7].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c6_info[7].name = "eml_scalar_eg"; - c6_info[7].dominantType = "double"; - c6_info[7].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c6_info[7].fileTimeLo = 1286851196U; - c6_info[7].fileTimeHi = 0U; - c6_info[7].mFileTimeLo = 0U; - c6_info[7].mFileTimeHi = 0U; - c6_info[8].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c6_info[8].name = "eml_scalexp_alloc"; - c6_info[8].dominantType = "double"; - c6_info[8].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c6_info[8].fileTimeLo = 1286851196U; - c6_info[8].fileTimeHi = 0U; - c6_info[8].mFileTimeLo = 0U; - c6_info[8].mFileTimeHi = 0U; - c6_info[9].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c6_info[9].name = "eml_scalar_floor"; - c6_info[9].dominantType = "double"; - c6_info[9].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c6_info[9].fileTimeLo = 1286851126U; - c6_info[9].fileTimeHi = 0U; - c6_info[9].mFileTimeLo = 0U; - c6_info[9].mFileTimeHi = 0U; - c6_info[10].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/power.m"; - c6_info[10].name = "eml_error"; - c6_info[10].dominantType = "char"; - c6_info[10].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_error.m"; - c6_info[10].fileTimeLo = 1305350400U; - c6_info[10].fileTimeHi = 0U; - c6_info[10].mFileTimeLo = 0U; - c6_info[10].mFileTimeHi = 0U; - c6_info[11].context = ""; - c6_info[11].name = "mrdivide"; - c6_info[11].dominantType = "double"; - c6_info[11].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c6_info[11].fileTimeLo = 1325156538U; - c6_info[11].fileTimeHi = 0U; - c6_info[11].mFileTimeLo = 1319762366U; - c6_info[11].mFileTimeHi = 0U; - c6_info[12].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c6_info[12].name = "rdivide"; - c6_info[12].dominantType = "double"; - c6_info[12].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c6_info[12].fileTimeLo = 1286851244U; - c6_info[12].fileTimeHi = 0U; - c6_info[12].mFileTimeLo = 0U; - c6_info[12].mFileTimeHi = 0U; - c6_info[13].context = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/ops/rdivide.m"; - c6_info[13].name = "eml_div"; - c6_info[13].dominantType = "double"; - c6_info[13].resolved = - "[ILXE]/Applications/MATLAB_R2012a.app/toolbox/eml/lib/matlab/eml/eml_div.m"; - c6_info[13].fileTimeLo = 1313380210U; - c6_info[13].fileTimeHi = 0U; - c6_info[13].mFileTimeLo = 0U; - c6_info[13].mFileTimeHi = 0U; -} - -static real_T c6_mpower(SFc6_MuscleSpindleInstanceStruct *chartInstance, real_T - c6_a, real_T c6_b) -{ - real_T c6_b_a; - real_T c6_b_b; - real_T c6_ak; - real_T c6_bk; - real_T c6_x; - real_T c6_b_x; - c6_b_a = c6_a; - c6_b_b = c6_b; - c6_ak = c6_b_a; - c6_bk = c6_b_b; - if (c6_ak < 0.0) { - c6_x = c6_bk; - c6_b_x = c6_x; - c6_b_x = muDoubleScalarFloor(c6_b_x); - if (c6_b_x != c6_bk) { - c6_eml_error(chartInstance); - } - } - - return muDoubleScalarPower(c6_ak, c6_bk); -} - -static void c6_eml_error(SFc6_MuscleSpindleInstanceStruct *chartInstance) -{ - int32_T c6_i1; - static char_T c6_varargin_1[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', - 'o', 'l', 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', - 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' }; - - char_T c6_u[31]; - const mxArray *c6_y = NULL; - for (c6_i1 = 0; c6_i1 < 31; c6_i1++) { - c6_u[c6_i1] = c6_varargin_1[c6_i1]; - } - - c6_y = NULL; - sf_mex_assign(&c6_y, sf_mex_create("y", c6_u, 10, 0U, 1U, 0U, 2, 1, 31), FALSE); - sf_mex_call_debug("error", 0U, 1U, 14, sf_mex_call_debug("message", 1U, 1U, 14, - c6_y)); -} - -static const mxArray *c6_b_sf_marshallOut(void *chartInstanceVoid, void - *c6_inData) -{ - const mxArray *c6_mxArrayOutData = NULL; - int32_T c6_u; - const mxArray *c6_y = NULL; - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c6_mxArrayOutData = NULL; - c6_u = *(int32_T *)c6_inData; - c6_y = NULL; - sf_mex_assign(&c6_y, sf_mex_create("y", &c6_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c6_mxArrayOutData, c6_y, FALSE); - return c6_mxArrayOutData; -} - -static int32_T c6_c_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId) -{ - int32_T c6_y; - int32_T c6_i2; - sf_mex_import(c6_parentId, sf_mex_dup(c6_u), &c6_i2, 1, 6, 0U, 0, 0U, 0); - c6_y = c6_i2; - sf_mex_destroy(&c6_u); - return c6_y; -} - -static void c6_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c6_mxArrayInData, const char_T *c6_varName, void *c6_outData) -{ - const mxArray *c6_b_sfEvent; - const char_T *c6_identifier; - emlrtMsgIdentifier c6_thisId; - int32_T c6_y; - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c6_b_sfEvent = sf_mex_dup(c6_mxArrayInData); - c6_identifier = c6_varName; - c6_thisId.fIdentifier = c6_identifier; - c6_thisId.fParent = NULL; - c6_y = c6_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c6_b_sfEvent), - &c6_thisId); - sf_mex_destroy(&c6_b_sfEvent); - *(int32_T *)c6_outData = c6_y; - sf_mex_destroy(&c6_mxArrayInData); -} - -static uint8_T c6_d_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_b_is_active_c6_MuscleSpindle, const char_T - *c6_identifier) -{ - uint8_T c6_y; - emlrtMsgIdentifier c6_thisId; - c6_thisId.fIdentifier = c6_identifier; - c6_thisId.fParent = NULL; - c6_y = c6_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c6_b_is_active_c6_MuscleSpindle), &c6_thisId); - sf_mex_destroy(&c6_b_is_active_c6_MuscleSpindle); - return c6_y; -} - -static uint8_T c6_e_emlrt_marshallIn(SFc6_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c6_u, const emlrtMsgIdentifier *c6_parentId) -{ - uint8_T c6_y; - uint8_T c6_u0; - sf_mex_import(c6_parentId, sf_mex_dup(c6_u), &c6_u0, 1, 3, 0U, 0, 0U, 0); - c6_y = c6_u0; - sf_mex_destroy(&c6_u); - return c6_y; -} - -static void init_dsm_address_info(SFc6_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -void sf_c6_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(938013965U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3446924524U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1555899280U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(668937475U); -} - -mxArray *sf_c6_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("tmXCbYZfjKH4frOh5GgQ4"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,10,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,10,"type",mxType); - } - - mxSetField(mxData,10,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,11,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,11,"type",mxType); - } - - mxSetField(mxData,11,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,12,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,12,"type",mxType); - } - - mxSetField(mxData,12,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -static const mxArray *sf_get_sim_state_info_c6_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[13],T\"T0\",},{M[8],M[0],T\"is_active_c6_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c6_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (_MuscleSpindleMachineNumber_, - 6, - 1, - 1, - 14, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (_MuscleSpindleMachineNumber_,chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,2,0,1,"T0"); - _SFD_SET_DATA_PROPS(1,1,1,0,"L"); - _SFD_SET_DATA_PROPS(2,1,1,0,"dL"); - _SFD_SET_DATA_PROPS(3,1,1,0,"ddL"); - _SFD_SET_DATA_PROPS(4,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(6,1,1,0,"M"); - _SFD_SET_DATA_PROPS(7,1,1,0,"C"); - _SFD_SET_DATA_PROPS(8,1,1,0,"Beta"); - _SFD_SET_DATA_PROPS(9,1,1,0,"a"); - _SFD_SET_DATA_PROPS(10,1,1,0,"R"); - _SFD_SET_DATA_PROPS(11,1,1,0,"Kpr"); - _SFD_SET_DATA_PROPS(12,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(13,1,1,0,"Gamma"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,346); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)c6_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c6_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c6_T0; - real_T *c6_L; - real_T *c6_dL; - real_T *c6_ddL; - real_T *c6_Lsr0; - real_T *c6_Ksr; - real_T *c6_M; - real_T *c6_C; - real_T *c6_Beta; - real_T *c6_a; - real_T *c6_R; - real_T *c6_Kpr; - real_T *c6_Lpr0; - real_T *c6_Gamma; - c6_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c6_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c6_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c6_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c6_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c6_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c6_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c6_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c6_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c6_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c6_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c6_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c6_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - c6_T0 = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - _SFD_SET_DATA_VALUE_PTR(0U, c6_T0); - _SFD_SET_DATA_VALUE_PTR(1U, c6_L); - _SFD_SET_DATA_VALUE_PTR(2U, c6_dL); - _SFD_SET_DATA_VALUE_PTR(3U, c6_ddL); - _SFD_SET_DATA_VALUE_PTR(4U, c6_Lsr0); - _SFD_SET_DATA_VALUE_PTR(5U, c6_Ksr); - _SFD_SET_DATA_VALUE_PTR(6U, c6_M); - _SFD_SET_DATA_VALUE_PTR(7U, c6_C); - _SFD_SET_DATA_VALUE_PTR(8U, c6_Beta); - _SFD_SET_DATA_VALUE_PTR(9U, c6_a); - _SFD_SET_DATA_VALUE_PTR(10U, c6_R); - _SFD_SET_DATA_VALUE_PTR(11U, c6_Kpr); - _SFD_SET_DATA_VALUE_PTR(12U, c6_Lpr0); - _SFD_SET_DATA_VALUE_PTR(13U, c6_Gamma); - } - } - } else { - sf_debug_reset_current_state_configuration(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization() -{ - return "q0bLWDmxnDxpaSZP3och4"; -} - -static void sf_opaque_initialize_c6_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc6_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c6_MuscleSpindle(void *chartInstanceVar) -{ - enable_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c6_MuscleSpindle(void *chartInstanceVar) -{ - disable_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c6_MuscleSpindle(void *chartInstanceVar) -{ - sf_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c6_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c6_MuscleSpindle - ((SFc6_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c6_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c6_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c6_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c6_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c6_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c6_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c6_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c6_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc6_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - } - - finalize_c6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) - chartInstanceVar); - free((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } - - unload_MuscleSpindle_optimization_info(); -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc6_MuscleSpindle((SFc6_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c6_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c6_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 6); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,6,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,6, - "gatewayCannotBeInlinedMultipleTimes")); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,6,13); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,6,1); - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,6); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(2736793953U)); - ssSetChecksum1(S,(2266369597U)); - ssSetChecksum2(S,(369080983U)); - ssSetChecksum3(S,(1669966295U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); -} - -static void mdlRTW_c6_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c6_MuscleSpindle(SimStruct *S) -{ - SFc6_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc6_MuscleSpindleInstanceStruct *)malloc(sizeof - (SFc6_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc6_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c6_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c6_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c6_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c6_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c6_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c6_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c6_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c6_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c6_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c6_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c6_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c6_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c6_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c6_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c6_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c6_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.h deleted file mode 100644 index 300ba71..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef __c6_MuscleSpindle_h__ -#define __c6_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c6_ResolvedFunctionInfo; - -typedef struct { - int32_T c6_sfEvent; - boolean_T c6_isStable; - boolean_T c6_doneDoubleBufferReInit; - uint8_T c6_is_active_c6_MuscleSpindle; - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; -} SFc6_MuscleSpindleInstanceStruct; - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c6_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c6_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c6_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.o b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c6_MuscleSpindle.o deleted file mode 100644 index e4e85ea132533dc3c4c963ea88e8412386cfb534..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33820 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 diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h index 2985441..7476dec 100644 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h +++ b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h @@ -4,7 +4,7 @@ #include "tmwtypes.h" /* This ID is used to detect inclusion of an incompatible rtwtypes.h */ -#define RTWTYPES_ID_C08S16I32L64N64F1 +#define RTWTYPES_ID_C08S16I32L32N32F1 #include "simstruc_types.h" #ifndef POINTER_T @@ -17,37 +17,6 @@ #ifndef FALSE # define FALSE (0U) #endif - #ifndef MAT_FILE - # define MAT_FILE 0 - #endif -#ifndef INT64_T -#define INT64_T -typedef long int64_T; -#endif -#ifndef UINT64_T -#define UINT64_T -typedef unsigned 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 /* * MultiWord supporting definitions @@ -60,7 +29,51 @@ typedef long int long_T; typedef struct { - uint64_T chunks[2]; + uint32_T chunks[2]; +} int64m_T; + +typedef struct { + int64m_T re; + int64m_T im; +} cint64m_T; + + + +typedef struct { + uint32_T chunks[2]; +} uint64m_T; + +typedef struct { + uint64m_T re; + uint64m_T im; +} cuint64m_T; + + + +typedef struct { + uint32_T chunks[3]; +} int96m_T; + +typedef struct { + int96m_T re; + int96m_T im; +} cint96m_T; + + + +typedef struct { + uint32_T chunks[3]; +} uint96m_T; + +typedef struct { + uint96m_T re; + uint96m_T im; +} cuint96m_T; + + + +typedef struct { + uint32_T chunks[4]; } int128m_T; typedef struct { @@ -71,7 +84,7 @@ typedef struct { typedef struct { - uint64_T chunks[2]; + uint32_T chunks[4]; } uint128m_T; typedef struct { @@ -82,7 +95,29 @@ typedef struct { typedef struct { - uint64_T chunks[3]; + uint32_T chunks[5]; +} int160m_T; + +typedef struct { + int160m_T re; + int160m_T im; +} cint160m_T; + + + +typedef struct { + uint32_T chunks[5]; +} uint160m_T; + +typedef struct { + uint160m_T re; + uint160m_T im; +} cuint160m_T; + + + +typedef struct { + uint32_T chunks[6]; } int192m_T; typedef struct { @@ -93,7 +128,7 @@ typedef struct { typedef struct { - uint64_T chunks[3]; + uint32_T chunks[6]; } uint192m_T; typedef struct { @@ -104,7 +139,29 @@ typedef struct { typedef struct { - uint64_T chunks[4]; + uint32_T chunks[7]; +} int224m_T; + +typedef struct { + int224m_T re; + int224m_T im; +} cint224m_T; + + + +typedef struct { + uint32_T chunks[7]; +} uint224m_T; + +typedef struct { + uint224m_T re; + uint224m_T im; +} cuint224m_T; + + + +typedef struct { + uint32_T chunks[8]; } int256m_T; typedef struct { @@ -115,7 +172,7 @@ typedef struct { typedef struct { - uint64_T chunks[4]; + uint32_T chunks[8]; } uint256m_T; typedef struct { @@ -126,7 +183,29 @@ typedef struct { typedef struct { - uint64_T chunks[5]; + uint32_T chunks[9]; +} int288m_T; + +typedef struct { + int288m_T re; + int288m_T im; +} cint288m_T; + + + +typedef struct { + uint32_T chunks[9]; +} uint288m_T; + +typedef struct { + uint288m_T re; + uint288m_T im; +} cuint288m_T; + + + +typedef struct { + uint32_T chunks[10]; } int320m_T; typedef struct { @@ -137,7 +216,7 @@ typedef struct { typedef struct { - uint64_T chunks[5]; + uint32_T chunks[10]; } uint320m_T; typedef struct { @@ -148,7 +227,29 @@ typedef struct { typedef struct { - uint64_T chunks[6]; + uint32_T chunks[11]; +} int352m_T; + +typedef struct { + int352m_T re; + int352m_T im; +} cint352m_T; + + + +typedef struct { + uint32_T chunks[11]; +} uint352m_T; + +typedef struct { + uint352m_T re; + uint352m_T im; +} cuint352m_T; + + + +typedef struct { + uint32_T chunks[12]; } int384m_T; typedef struct { @@ -159,7 +260,7 @@ typedef struct { typedef struct { - uint64_T chunks[6]; + uint32_T chunks[12]; } uint384m_T; typedef struct { @@ -170,7 +271,29 @@ typedef struct { typedef struct { - uint64_T chunks[7]; + uint32_T chunks[13]; +} int416m_T; + +typedef struct { + int416m_T re; + int416m_T im; +} cint416m_T; + + + +typedef struct { + uint32_T chunks[13]; +} uint416m_T; + +typedef struct { + uint416m_T re; + uint416m_T im; +} cuint416m_T; + + + +typedef struct { + uint32_T chunks[14]; } int448m_T; typedef struct { @@ -181,7 +304,7 @@ typedef struct { typedef struct { - uint64_T chunks[7]; + uint32_T chunks[14]; } uint448m_T; typedef struct { @@ -192,7 +315,29 @@ typedef struct { typedef struct { - uint64_T chunks[8]; + uint32_T chunks[15]; +} int480m_T; + +typedef struct { + int480m_T re; + int480m_T im; +} cint480m_T; + + + +typedef struct { + uint32_T chunks[15]; +} uint480m_T; + +typedef struct { + uint480m_T re; + uint480m_T im; +} cuint480m_T; + + + +typedef struct { + uint32_T chunks[16]; } int512m_T; typedef struct { @@ -203,7 +348,7 @@ typedef struct { typedef struct { - uint64_T chunks[8]; + uint32_T chunks[16]; } uint512m_T; typedef struct { @@ -214,7 +359,29 @@ typedef struct { typedef struct { - uint64_T chunks[9]; + uint32_T chunks[17]; +} int544m_T; + +typedef struct { + int544m_T re; + int544m_T im; +} cint544m_T; + + + +typedef struct { + uint32_T chunks[17]; +} uint544m_T; + +typedef struct { + uint544m_T re; + uint544m_T im; +} cuint544m_T; + + + +typedef struct { + uint32_T chunks[18]; } int576m_T; typedef struct { @@ -225,7 +392,7 @@ typedef struct { typedef struct { - uint64_T chunks[9]; + uint32_T chunks[18]; } uint576m_T; typedef struct { @@ -236,7 +403,29 @@ typedef struct { typedef struct { - uint64_T chunks[10]; + uint32_T chunks[19]; +} int608m_T; + +typedef struct { + int608m_T re; + int608m_T im; +} cint608m_T; + + + +typedef struct { + uint32_T chunks[19]; +} uint608m_T; + +typedef struct { + uint608m_T re; + uint608m_T im; +} cuint608m_T; + + + +typedef struct { + uint32_T chunks[20]; } int640m_T; typedef struct { @@ -247,7 +436,7 @@ typedef struct { typedef struct { - uint64_T chunks[10]; + uint32_T chunks[20]; } uint640m_T; typedef struct { @@ -258,7 +447,29 @@ typedef struct { typedef struct { - uint64_T chunks[11]; + uint32_T chunks[21]; +} int672m_T; + +typedef struct { + int672m_T re; + int672m_T im; +} cint672m_T; + + + +typedef struct { + uint32_T chunks[21]; +} uint672m_T; + +typedef struct { + uint672m_T re; + uint672m_T im; +} cuint672m_T; + + + +typedef struct { + uint32_T chunks[22]; } int704m_T; typedef struct { @@ -269,7 +480,7 @@ typedef struct { typedef struct { - uint64_T chunks[11]; + uint32_T chunks[22]; } uint704m_T; typedef struct { @@ -280,7 +491,29 @@ typedef struct { typedef struct { - uint64_T chunks[12]; + uint32_T chunks[23]; +} int736m_T; + +typedef struct { + int736m_T re; + int736m_T im; +} cint736m_T; + + + +typedef struct { + uint32_T chunks[23]; +} uint736m_T; + +typedef struct { + uint736m_T re; + uint736m_T im; +} cuint736m_T; + + + +typedef struct { + uint32_T chunks[24]; } int768m_T; typedef struct { @@ -291,7 +524,7 @@ typedef struct { typedef struct { - uint64_T chunks[12]; + uint32_T chunks[24]; } uint768m_T; typedef struct { @@ -302,7 +535,29 @@ typedef struct { typedef struct { - uint64_T chunks[13]; + uint32_T chunks[25]; +} int800m_T; + +typedef struct { + int800m_T re; + int800m_T im; +} cint800m_T; + + + +typedef struct { + uint32_T chunks[25]; +} uint800m_T; + +typedef struct { + uint800m_T re; + uint800m_T im; +} cuint800m_T; + + + +typedef struct { + uint32_T chunks[26]; } int832m_T; typedef struct { @@ -313,7 +568,7 @@ typedef struct { typedef struct { - uint64_T chunks[13]; + uint32_T chunks[26]; } uint832m_T; typedef struct { @@ -324,7 +579,29 @@ typedef struct { typedef struct { - uint64_T chunks[14]; + uint32_T chunks[27]; +} int864m_T; + +typedef struct { + int864m_T re; + int864m_T im; +} cint864m_T; + + + +typedef struct { + uint32_T chunks[27]; +} uint864m_T; + +typedef struct { + uint864m_T re; + uint864m_T im; +} cuint864m_T; + + + +typedef struct { + uint32_T chunks[28]; } int896m_T; typedef struct { @@ -335,7 +612,7 @@ typedef struct { typedef struct { - uint64_T chunks[14]; + uint32_T chunks[28]; } uint896m_T; typedef struct { @@ -346,7 +623,29 @@ typedef struct { typedef struct { - uint64_T chunks[15]; + uint32_T chunks[29]; +} int928m_T; + +typedef struct { + int928m_T re; + int928m_T im; +} cint928m_T; + + + +typedef struct { + uint32_T chunks[29]; +} uint928m_T; + +typedef struct { + uint928m_T re; + uint928m_T im; +} cuint928m_T; + + + +typedef struct { + uint32_T chunks[30]; } int960m_T; typedef struct { @@ -357,7 +656,7 @@ typedef struct { typedef struct { - uint64_T chunks[15]; + uint32_T chunks[30]; } uint960m_T; typedef struct { @@ -368,7 +667,29 @@ typedef struct { typedef struct { - uint64_T chunks[16]; + uint32_T chunks[31]; +} int992m_T; + +typedef struct { + int992m_T re; + int992m_T im; +} cint992m_T; + + + +typedef struct { + uint32_T chunks[31]; +} uint992m_T; + +typedef struct { + uint992m_T re; + uint992m_T im; +} cuint992m_T; + + + +typedef struct { + uint32_T chunks[32]; } int1024m_T; typedef struct { @@ -379,7 +700,7 @@ typedef struct { typedef struct { - uint64_T chunks[16]; + uint32_T chunks[32]; } uint1024m_T; typedef struct { diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypeschksum.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypeschksum.mat index bd6af8c8ad93aacb1210a00d16d126b519185960..b556809967681d16d4d73c0cb9115307370b9db1 100644 GIT binary patch delta 1042 zcmV+t1nv8<2+;_TA1zQrS4mDbG%O%Pa%Ew3Wn>_4ZaN@Tb!8w*b#5RqG9WQEIx;mn zG&UeIFflceQ6rIH1(9?Re=Gq20C=3eliO;8KoEwVK|c0Qos9a;*|qDgsaV z@1DR#6c=?m+!Xhh>N8UXt2CN2nG~JC2}sDgw%`o`z$U(LXqnWIe}AMU`B+pvh2%B5 zS(LtpSkty7e20A^lxIzhORR0{1nf<2*glYILsKvrWUE^2u%VRuF6H1O_nF5rDVK-& z*1`kZq5Bb6M*xge+(YT_@E3pK=)ZQ<`*7o)oN;1q(!yN~y1Bl7{^y>j_VX{kXf2%H zGEc8?W0k$2pp2Vze{k0|F3)WyWr+DpfMWi-qt9)lPnJI;N5OV?4@=Xv&8ab`L>e=S z;#56Nb^i@(u3#_^0001?0001Zoa19)V7S1vHRO{oP@=)mJKlQ+!cWe5PD1;8NkRYVUC z)z5u#gqw(lj8xs+Ncz#0aGT#BBW7qS#n^b_{Xww^jCwye9y{bIwFt{#EwP`{tJSzm zntHRVgZAp3xSc5P0ETh;0l&V=6TV(DryAwHdJr?Be@^3F#p(^kf@vGwIPtuygKIP{ ztun1fQIA(oZ;!O!QZ=cBrLrG8o~w$#;^k`y*e2GkL*xp2f+%>)z$P;ve_Q z^n)?1FZSU=bPoUk0Qvv`0C=43QQJxbK@3gnS}K&{o4?^V)Ls}UDmw!{ue;fH=xk=0 z%R~Jte}AyhXxDaaSMbpX1BZ~4oFpV;0C>Lw7_c8Q`f#x8ChoN`Vt8FeqiG|kw1>I` z?wb6LA;Z=nT$o&E4vVGDv!E>9}Xo_z%0~sEo#(>u&l#{{cS#)a#u0uj|$g;Jfb2PCED# Md;V6p2WG)b++8E;*Z=?k delta 1008 zcmVWFT*DIv_@JX&^*pV;~?mATcpIG&VXh zF(5K9F*1=+BavVRk#rD$836zQc%0Rf|4PF^49C+^hoX#ue+zv9!6%S)tGYpzu@(mY zSJ!h5w3l+dPV{+w5Yx5L9}Ek{e++~pxqR{s;cfzKCcv1FbM_IGc2>nk!!OyRK!qQH z600Pw>P)zZCjy^iXj|4Y$%tZPbK&uLky(I>ak$Cb;JR8!v9R05)<}2 zsP{JhWp8lYt8vT^;idyQYaloKCwhO$U5xrU;{<1(&@&s{l%rRnsNiNj+*OM!V;8lK zMfonF(qH%Vx#{$ODdHy~g~HwK{j=@6_S{-hrmY1fY0e*o?|%UIm{mIu0001r0001Z zoa19)U~ph!U|<8%96$_Yf&nX(&xnNifH)(uD5X5HDAgskASb^Pq>hDwA1a>-#Lhqk zexLvpQg!|d>xSs*+KSr=PIr;?1)Tb~+^f^$V4*+z`D?kqb008U&004NLol$K{12GVt zEo)JK6!9Wc5D(C9p)I(uu=Tg-?xdu|OqgtNdjpT=u}s_*i->{)kNL=(-5z^?1ICSd(38p{8Rw4vZ=Ynd8=Wv?nRJC8&dQ zEM39R&QPB?$9sADxoFZmki|X~4*&oF0RaF2c%1D~+iJrw4AnwbHW+0OgZ;+7q3Z=h zcOf?HIZKq()RBWP58c;KrQVvZ9qeVWhaHe*9qGtI9s?r>7_qxx%V3A|6rT<3ip}dT z8cl0|L5GrStnQjD!x)1Di@F(W{ZQVN%#84QPN!Qx| diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/info/binfo.mat b/MATLAB/slprj/_sfprj/Test/_self/sfun/info/binfo.mat deleted file mode 100644 index e97f41709fc295c02e0d58f9330407e25b9b9cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1556 zcma)+YdF&j0LJGsDl}?Za{K32?rfF0Y-=nk3}G&bny8rDP+3d49VwSMC%1!5Pm(M` zF=x3YxlhXVEYdVH&821`$*G>F@8|vUd!P6H_I`Msu^vuXTi~FH8Q_fdFb=*z3Niv* zNoQh$BgkP^fP)j>8+phGup%$I{u-qrIv0JdLj#Qj8l9mNaMg7LFG;O|bAyD7U*` zhM3foqIZ|^2cd=Gk38h}1lqf!he25Ku zg>q)3s+_fnzJn{VPD|gK-qTgULL}=l+7ILYh?0#bv5i1$}g|P zsNXWP>b4S^3nUhpgxFlZY!xa(W12EBn|sbFOS8!`f+)k(*2TCyn~AH+ z@++8Pel7cc(ywK4(}u)-nDA|`hzBWHl)UQ#dEI}rGirqL!beLO#<+0Q>w_J`emCwe z%F_haiLq~z z2({{paSqy7N7&E6YCp}0P+1uSI#~MmR8l2BIw(8sINA=~v9*jP`m_jc$_OwKYP2p& z*jvI%ZX>wOFdKY_PCQt}==YwlM8z_AtkMyym z&hFcLZEEehdLi+FK-^Vj>c3cMv}mbFvV^Ve^7XPmMB%LT zCijb56Fl;7t8ZkW6lCV+&xev0!zTRmuH^QG*fyO?-zJ&_giCkDs{Xw(ZUG zJd$Q5tSZO)r%9y@BUZj=*cR&!r@9;TTW1MH^r1{qeri*Az6C0W-FAQ#RYcD>gBbdf zU|Lc3vLW{U!{dSk0LGva1c`JxW~tpOO# z6dmwA6ZsR==2dD9m)bnW{ar&ZM}=CgPu&aymL|;`Ny2p_;xWf1oBRU$U?0lfs$LmzSW$El%cY&W$j{}-1PGu zy|%+EomTF}T}#>1;WXG>WdhH3AmtJ>Br{DAr)(LG7@AM4j?OLo0$dan@j{S2sq!RaY?njoBrMevY=0m>)+%Yk`0)W zqb8Ut$Oe$wV5^b=Q@wSTKOslGfLtZYHMjl@OZtCx-^)$wZ5%SKFKKYzlnO90I+$_w z6Alfrjy1+`0y*}{V#>f$V_20lt@_s%fq|z_Pl1SsWVW16`K*#{w#5wVLp@9ad1g6l z$^*;ht>QR95ZFef?ao0<>~DcvzODn_J{#)nM5461Mmx>*`^sM^5KClo;?mF0l(MAm yp+Q+JmD2FU3cfTEtT=MR?w62gbBGJ3@*cyp+9vs*LC0{RqfSSt^BmV;+L*W$w diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat b/MATLAB/slprj/_sfprj/Test/_self/sfun/info/chart2_ycYIpW7uLL3gXRMLAbVLtF.mat deleted file mode 100644 index 6ab109b546026ab03e790ab1a61566bf4aa47666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2904 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 && mxIsChar(prhs[1])) { - mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (!strcmp(commandName,"machine")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2933174313U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(198279908U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3553485220U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1988037514U); - } else if (!strcmp(commandName,"exportedFcn")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U); - } else if (!strcmp(commandName,"makefile")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3370743223U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3146124266U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1417329333U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(560607392U); - } else if (nrhs==3 && !strcmp(commandName,"chart")) { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[2]); - switch (chartFileNumber) { - case 2: - { - extern void sf_c2_Test_get_check_sum(mxArray *plhs[]); - sf_c2_Test_get_check_sum(plhs); - break; - } - - default: - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0); - } - } else if (!strcmp(commandName,"target")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3564696471U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(678668628U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1090454852U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3896867807U); - } else { - return 0; - } - } else { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1644685351U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3978965350U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(275422323U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(166835566U); - } - - return 1; - -#else - - return 0; - -#endif - -} - -unsigned int sf_Test_autoinheritance_info( int nlhs, mxArray * plhs[], int nrhs, - const mxArray * prhs[] ) -{ - -#ifdef MATLAB_MEX_FILE - - char commandName[32]; - char aiChksum[64]; - if (nrhs<3 || !mxIsChar(prhs[0]) ) - return 0; - - /* Possible call to get the autoinheritance_info */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_autoinheritance_info")) - return 0; - mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char)); - aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\0'; - - { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); - switch (chartFileNumber) { - case 2: - { - if (strcmp(aiChksum, "xDnnGj7T4ueVOH7NVCE1mD") == 0) { - extern mxArray *sf_c2_Test_get_autoinheritance_info(void); - plhs[0] = sf_c2_Test_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - default: - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - } - } - - return 1; - -#else - - return 0; - -#endif - -} - -unsigned int sf_Test_get_eml_resolved_functions_info( int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[] ) -{ - -#ifdef MATLAB_MEX_FILE - - char commandName[64]; - if (nrhs<2 || !mxIsChar(prhs[0])) - return 0; - - /* Possible call to get the get_eml_resolved_functions_info */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_eml_resolved_functions_info")) - return 0; - - { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); - switch (chartFileNumber) { - case 2: - { - extern const mxArray *sf_c2_Test_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c2_Test_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - default: - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - } - } - - return 1; - -#else - - return 0; - -#endif - -} - -void Test_debug_initialize(void) -{ - _TestMachineNumber_ = sf_debug_initialize_machine("Test","sfun",0,1,0,0,0); - sf_debug_set_machine_event_thresholds(_TestMachineNumber_,0,0); - sf_debug_set_machine_data_thresholds(_TestMachineNumber_,0); -} - -void Test_register_exported_symbols(SimStruct* S) -{ -} - -static mxArray* sRtwOptimizationInfoStruct= NULL; -mxArray* load_Test_optimization_info(void) -{ - if (sRtwOptimizationInfoStruct==NULL) { - sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info("Test", "Test"); - mexMakeArrayPersistent(sRtwOptimizationInfoStruct); - } - - return(sRtwOptimizationInfoStruct); -} - -void unload_Test_optimization_info(void) -{ - if (sRtwOptimizationInfoStruct!=NULL) { - mxDestroyArray(sRtwOptimizationInfoStruct); - sRtwOptimizationInfoStruct = NULL; - } -} diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.h b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.h deleted file mode 100644 index 67a0266..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef __Test_sfun_h__ -#define __Test_sfun_h__ - -/* Include files */ -#define S_FUNCTION_NAME sf_sfun -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" -#include "sfcdebug.h" -#define rtInf (mxGetInf()) -#define rtMinusInf (-(mxGetInf())) -#define rtNaN (mxGetNaN()) -#define rtIsNaN(X) ((int)mxIsNaN(X)) -#define rtIsInf(X) ((int)mxIsInf(X)) - -/* Type Definitions */ - -/* Named Constants */ - -/* Variable Declarations */ -extern uint32_T _TestMachineNumber_; -extern real_T _sfTime_; - -/* Variable Definitions */ - -/* Function Declarations */ -extern void Test_initializer(void); -extern void Test_terminator(void); - -/* Function Definitions */ - -/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and - free it immediately in mdlStart. Given that this is machine-wide as - opposed to chart specific, we use NULL check to make sure it gets loaded - and unloaded once per machine even though the methods mdlSetWorkWidths/mdlStart - are chart/instance specific. The following methods abstract this out. */ -extern mxArray* load_Test_optimization_info(void); -extern void unload_Test_optimization_info(void); - -#endif diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mku b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mku deleted file mode 100644 index 65c684d..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mku +++ /dev/null @@ -1,95 +0,0 @@ -#--------------------------- Tool Specifications ------------------------- -# -# Modify the following macros to reflect the tools you wish to use for -# compiling and linking your code. -# -CC = /usr/local/MATLAB/R2012a/bin/mex -LD = $(CC) - -MACHINE = Test -TARGET = sfun -CHART_SRCS = \ - c2_Test.c -MACHINE_SRC = Test_sfun.c -MACHINE_REG = Test_sfun_registry.c -MEX_WRAPPER = -MAKEFILE = Test_sfun.mku -MATLAB_ROOT = /usr/local/MATLAB/R2012a/toolbox/stateflow/stateflow/../../.. -BUILDARGS = -#------------------------------ Include/Lib Path ------------------------------ - -USER_INCLUDES = -AUX_INCLUDES = -MATLAB_INCLUDES = -I$(MATLAB_ROOT)/simulink/include \ - -I$(MATLAB_ROOT)/extern/include \ - -I/usr/local/MATLAB/R2012a/stateflow/c/mex/include \ - -I/usr/local/MATLAB/R2012a/stateflow/c/debugger/include - -DSP_INCLUDES = - -INCLUDE_PATH = $(MATLAB_INCLUDES) $(DSP_INCLUDES) $(COMPILER_INCLUDES) - -#----------------- Compiler and Linker Options -------------------------------- - -# Optimization Options -OPT_OPTS = -O - -# Parallel Options -PAR_OPTS = - -# General User Options -OPTS = - -CC_OPTS = $(OPT_OPTS) $(OPTS) $(PAR_OPTS) -CPP_REQ_DEFINES = -DMATLAB_MEX_FILE - -# Uncomment this line to move warning level to W4 -# cflags = $(cflags:W3=W4) -CFLAGS = $(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDE_PATH) - -LDFLAGS = - -AUXLDFLAGS = -#----------------------------- Source Files ----------------------------------- - -REQ_SRCS = $(MACHINE_SRC) $(MACHINE_REG) $(MEX_WRAPPER) $(CHART_SRCS) - -USER_ABS_OBJS = - -AUX_ABS_OBJS = -REQ_OBJS = $(REQ_SRCS:.cpp=.o) -REQ_OBJS2 = $(REQ_OBJS:.c=.o) -OBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) -OBJLIST_FILE = Test_sfun.mol -SFCLIB = /usr/local/MATLAB/R2012a/stateflow/c/mex/lib/glnx86/sfc_mex.a /usr/local/MATLAB/R2012a/stateflow/c/debugger/lib/glnx86/sfc_debug.a -AUX_LNK_OBJS = -USER_LIBS = -LINK_MACHINE_LIBS = -FIXEDPOINTLIB = -L/usr/local/MATLAB/R2012a/bin/glnx86 -lfixedpoint -UTLIB = -lut -EMLRTLIB = -lemlrt -MWMATHUTILLIB = -lmwmathutil -BLASLIB= -lmwblascompat32 -IPPLIB = -L/usr/local/MATLAB/R2012a/bin/glnx86 -lippmwipt -PARLIB = - MAPCSF = /usr/local/MATLAB/R2012a/tools/glnx86/mapcsf - # RUN_MAPCSF_ON_UNIX is defined only if MAPCSF exists on this platform. - ifneq ($(wildcard $(MAPCSF)),) # run MAPCSF if it exists on this platform - RUN_MAPCSF_ON_UNIX = /usr/local/MATLAB/R2012a/tools/glnx86/mapcsf $@ - endif - -#--------------------------------- Rules -------------------------------------- - -MEX_FILE_NAME = $(MACHINE)_$(TARGET).mexglx - - $(MEX_FILE_NAME): $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(MEXLIB) - @echo ### Linking ... - $(CC) -silent LDFLAGS="\$$LDFLAGS $(AUXLDFLAGS)" -output $(MEX_FILE_NAME) $(OBJS) $(AUX_LNK_OBJS) $(USER_LIBS) $(LINK_MACHINE_LIBS) $(SFCLIB) $(FIXEDPOINTLIB) $(UTLIB) $(MWMATHUTILLIB) $(EMLRTLIB) $(BLASLIB) $(PARLIB) $(IPPLIB) - $(RUN_MAPCSF_ON_UNIX) - -%.o : %.c - $(CC) -c $(CFLAGS) $< - -%.o : %.cpp - $(CC) -c $(CFLAGS) $< - diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mol b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mol deleted file mode 100644 index 1869693..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.mol +++ /dev/null @@ -1,3 +0,0 @@ -c2_Test.obj -Test_sfun_registry.obj -Test_sfun.obj diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.o b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun.o deleted file mode 100644 index 579e8a9407324230ede88ce13bfcb147fa9ce740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6816 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 diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_debug_macros.h b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_debug_macros.h deleted file mode 100644 index 5c2c509..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_debug_macros.h +++ /dev/null @@ -1,354 +0,0 @@ -#ifndef __SF_DEBUG_MACROS_H__ -#define __SF_DEBUG_MACROS_H__ - -extern unsigned int _TestMachineNumber_; -#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\ - sf_debug_set_instance_data_value_ptr(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL); -#define _SFD_UNSET_DATA_VALUE_PTR(v1)\ - sf_debug_unset_instance_data_value_ptr(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1); -#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\ - sf_debug_set_instance_data_value_ptr(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3)); -#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\ - sf_debug_data_range_error_wrapper_min_max(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMin,(double)dMax) -#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\ - sf_debug_data_range_error_wrapper_min(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMin) -#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\ - sf_debug_data_range_error_wrapper_max(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMax) -#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\ - sf_debug_data_range_wrapper(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal)) -#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\ - sf_debug_read_before_write_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (unsigned int)(dNum),(bool)dVal) -#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_data_array_bounds_error_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) -#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \ - sf_debug_data_runtime_size_mismatch_error_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5)) -#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_eml_data_array_bounds_error_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) -#define _SFD_INTEGER_CHECK(v1,v2) \ - sf_debug_integer_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_NOT_NAN_CHECK(v1,v2) \ - sf_debug_not_nan_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \ - sf_debug_non_negative_check(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_CAST_TO_UINT8(v1) \ - sf_debug_cast_to_uint8_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_UINT16(v1) \ - sf_debug_cast_to_uint16_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_UINT32(v1) \ - sf_debug_cast_to_uint32_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT8(v1) \ - sf_debug_cast_to_int8_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT16(v1) \ - sf_debug_cast_to_int16_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT32(v1) \ - sf_debug_cast_to_int32_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_SINGLE(v1) \ - sf_debug_cast_to_real32_T(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2) -#define _SFD_ANIMATE() sf_debug_animate(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER) -#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -CHART_OBJECT,v1,v2,v3,v4,\ -0,NULL,_sfTime_,1) -#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4) -#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4) -#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4) -#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4) -#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2,\ -v3,_sfTime_,0) -#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(_TestMachineNumber_,\ -v1,v2,v3) -#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2,\ -v3,_sfTime_,1) -#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -CHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\ -v4,NULL,_sfTime_,(unsigned int)(v5)) -#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -(unsigned int)(v1),(v2),STATE_OBJECT,(v4)) -#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(_TestMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4)) -#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(boolean_T)(v4)) -#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4)) -#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4)) -#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - TRANSITION_OBJECT,(v1),0,((v2)!=0)) -#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4) cv_eval_testobjective(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4)) - -/* Coverage Macros for MATLAB */ -#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(int)(v5)) -#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0) -#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5)) -#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5)) -#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5)) -#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(int)(v4)) -#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0) -#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4)) -#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4)) -#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4)) - -#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_eml_init_script(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) - -#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7)) - -#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7)) - -#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11)) - -#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9)) - -#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_script_init_script(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9)) - -#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) - -#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) - -#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) - -#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(\ - _TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8)) - - -#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\ - sf_debug_set_chart_data_props(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (dataNumber),(dataScope),(isInputData),(isOutputData),(dataName)) -#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\ - sf_debug_set_chart_data_compiled_props(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ - (dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn)) -#define _SFD_STATE_INFO(v1,v2,v3)\ - sf_debug_set_chart_state_info(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) -#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\ - sf_debug_set_chart_substate_index(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) -#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\ - sf_debug_set_chart_state_substate_index(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) -#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\ - sf_debug_set_chart_state_substate_count(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) -#define _SFD_STATE_COV_WTS(v1,v2,v3,v4)\ - sf_debug_set_instance_state_coverage_weights(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) -#define _SFD_STATE_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) \ - sf_debug_set_chart_state_coverage_maps(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) -#define _SFD_TRANS_COV_WTS(v1,v2,v3,v4,v5) \ - sf_debug_set_instance_transition_coverage_weights(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) -#define _SFD_TRANS_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13) \ - sf_debug_set_chart_transition_coverage_maps(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),\ - (v2),(v3),(v4),\ - (v5),(v6),(v7),\ - (v8),(v9),(v10),\ - (v11),(v12),(v13)) - -#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_data_with_change_event_for_chart(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_entry_event_for_chart(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_exit_event_for_chart(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_EVENT_SCOPE(v1,v2)\ - sf_debug_set_chart_event_scope(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) - -#define _SFD_CH_SUBSTATE_COUNT(v1) \ - sf_debug_set_chart_substate_count(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) -#define _SFD_CH_SUBSTATE_DECOMP(v1) \ - sf_debug_set_chart_decomposition(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) - -#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\ - sf_debug_cv_init_chart(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\ - sf_debug_cv_init_state(_TestMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8)) - -#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - TRANSITION_OBJECT,(v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - STATE_OBJECT, (v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\ - sf_debug_cv_init_trans(_TestMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) -#endif - diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.c b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.c deleted file mode 100644 index 679a1df..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.c +++ /dev/null @@ -1,283 +0,0 @@ -#include "Test_sfun.h" -#include "sfcdebug.h" -#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL - -unsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs, - const mxArray * prhs[] ) -{ - extern unsigned int sf_Test_process_check_sum_call( int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[] ); - if (sf_Test_process_check_sum_call(nlhs,plhs,nrhs,prhs)) - return 1; - return 0; -} - -unsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int - nrhs, const mxArray * prhs[] ) -{ - extern unsigned int sf_Test_autoinheritance_info( int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[] ); - char commandName[64]; - char machineName[128]; - if (nrhs < 4) { - return 0; - } - - if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) - return 0; - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_autoinheritance_info")) - return 0; - mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); - machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; - if (strcmp(machineName, "Test") == 0) { - const mxArray *newRhs[3] = { NULL, NULL, NULL }; - - newRhs[0] = prhs[0]; - newRhs[1] = prhs[2]; - newRhs[2] = prhs[3]; - return sf_Test_autoinheritance_info(nlhs,plhs,3,newRhs); - } - - return 0; -} - -unsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray * - plhs[], int nrhs, const mxArray * prhs[] ) -{ - extern unsigned int sf_Test_get_eml_resolved_functions_info( int nlhs, mxArray - * plhs[], int nrhs, const mxArray * prhs[] ); - char commandName[64]; - char machineName[128]; - if (nrhs < 3) { - return 0; - } - - if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) - return 0; - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_eml_resolved_functions_info")) - return 0; - mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); - machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; - if (strcmp(machineName, "Test") == 0) { - const mxArray *newRhs[2] = { NULL, NULL }; - - newRhs[0] = prhs[0]; - newRhs[1] = prhs[2]; - return sf_Test_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs); - } - - return 0; -} - -unsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const - mxArray * prhs[] ) -{ - char commandName[20]; - if (nrhs<1 || !mxIsChar(prhs[0]) ) - return 0; - - /* Possible call to get the checksum */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"sf_mex_unlock")) - return 0; - while (mexIsLocked()) { - mexUnlock(); - } - - return(1); -} - -extern unsigned int sf_debug_api( int nlhs, mxArray * plhs[], int nrhs, const - mxArray * prhs[] ); -static unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[]) -{ - if (sf_debug_api(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs)) - return 1; - mexErrMsgTxt("Unsuccessful command."); - return 0; -} - -static unsigned int sfMachineGlobalTerminatorCallable = 0; -static unsigned int sfMachineGlobalInitializerCallable = 1; -unsigned int sf_machine_global_initializer_called(void) -{ - return(!sfMachineGlobalInitializerCallable); -} - -extern unsigned int sf_Test_method_dispatcher(SimStruct *S, unsigned int - chartFileNumber, const char* specsCksum, int_T method, void *data); -unsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const - char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T - method, void *data) -{ - if (!strcmp(machineName,"Test")) { - return(sf_Test_method_dispatcher(simstructPtr,chartFileNumber,specsCksum, - method,data)); - } - - return 0; -} - -extern void Test_terminator(void); -void sf_machine_global_terminator(void) -{ - if (sfMachineGlobalTerminatorCallable) { - sfMachineGlobalTerminatorCallable = 0; - sfMachineGlobalInitializerCallable = 1; - Test_terminator(); - sf_debug_terminate(); - } - - return; -} - -extern void Test_initializer(void); -extern void Test_register_exported_symbols(SimStruct* S); -extern void Test_debug_initialize(void); -void sf_register_machine_exported_symbols(SimStruct* S) -{ - Test_register_exported_symbols(S); -} - -bool callCustomFcn(char initFlag) -{ - return false; -} - -void sf_machine_global_initializer(SimStruct* S) -{ - bool simModeIsRTWGen = sim_mode_is_rtw_gen(S); - if (sfMachineGlobalInitializerCallable) { - sfMachineGlobalInitializerCallable = 0; - sfMachineGlobalTerminatorCallable = 1; - if (simModeIsRTWGen) { - sf_register_machine_exported_symbols(S); - } - - if (!simModeIsRTWGen) { - Test_debug_initialize(); - } - - Test_initializer(); - } - - return; -} - -#define PROCESS_MEX_SFUNCTION_EVERY_CALL - -unsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T - nrhs, const mxArray *prhs[]); - -#include "simulink.c" /* MEX-file interface mechanism */ - -static void sf_machine_load_sfunction_ptrs(SimStruct *S) -{ - ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes); - ssSetmdlInitializeConditions(S,__mdlInitializeConditions); - ssSetmdlOutputs(S,__mdlOutputs); - ssSetmdlTerminate(S,__mdlTerminate); - ssSetmdlRTW(S,__mdlRTW); - ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths); - -#if defined(MDL_HASSIMULATIONCONTEXTIO) - - ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO); - -#endif - -#if defined(MDL_START) - - ssSetmdlStart(S,__mdlStart); - -#endif - -#if defined(RTW_GENERATED_ENABLE) - - ssSetRTWGeneratedEnable(S,__mdlEnable); - -#endif - -#if defined(RTW_GENERATED_DISABLE) - - ssSetRTWGeneratedDisable(S,__mdlDisable); - -#endif - -#if defined(MDL_ENABLE) - - ssSetmdlEnable(S,__mdlEnable); - -#endif - -#if defined(MDL_DISABLE) - - ssSetmdlDisable(S,__mdlDisable); - -#endif - -#if defined(MDL_SIM_STATUS_CHANGE) - - ssSetmdlSimStatusChange(S,__mdlSimStatusChange); - -#endif - -#if defined(MDL_EXT_MODE_EXEC) - - ssSetmdlExtModeExec(S,__mdlExtModeExec); - -#endif - -#if defined(MDL_UPDATE) - - ssSetmdlUpdate(S,__mdlUpdate); - -#endif - -#if defined(MDL_PROCESS_PARAMETERS) - - ssSetmdlProcessParameters(S,__mdlProcessParameters); - -#endif - -#if defined(MDL_ZERO_CROSSINGS) - - ssSetmdlZeroCrossings(S,__mdlZeroCrossings); - -#endif - -#if defined(MDL_DERIVATIVES) - - ssSetmdlDerivatives(S,__mdlDerivatives); - -#endif - -} - -unsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T - nrhs, const mxArray *prhs[]) -{ - if (nlhs < 0) { - SimStruct *S = (SimStruct *)plhs[_LHS_SS]; - int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG])); - if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) { - sf_machine_load_sfunction_ptrs(S); - } - } - - return 0; -} diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.o b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/Test_sfun_registry.o deleted file mode 100644 index 5582357307d8a68238dd8ada400a5e5c74dbc9cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28708 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 H6e0c#HHgNP diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.c b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.c deleted file mode 100644 index 3b3d7ee..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.c +++ /dev/null @@ -1,1547 +0,0 @@ -/* Include files */ - -#include "blascompat32.h" -#include "Test_sfun.h" -#include "c2_Test.h" -#include "mwmathutil.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "Test_sfun_debug_macros.h" - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c2_debug_family_names[19] = { "LTerm", "nargin", "nargout", - "dT", "T", "L", "dL", "ddL", "Lsr0", "Ksr", "M", "C", "Beta", "a", "R", "Kpr", - "Lpr0", "Gamma", "ddT" }; - -/* Function Declarations */ -static void initialize_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void initialize_params_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void enable_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void disable_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void c2_update_debugger_state_c2_Test(SFc2_TestInstanceStruct - *chartInstance); -static const mxArray *get_sim_state_c2_Test(SFc2_TestInstanceStruct - *chartInstance); -static void set_sim_state_c2_Test(SFc2_TestInstanceStruct *chartInstance, const - mxArray *c2_st); -static void finalize_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void sf_c2_Test(SFc2_TestInstanceStruct *chartInstance); -static void initSimStructsc2_Test(SFc2_TestInstanceStruct *chartInstance); -static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T - c2_chartNumber); -static const mxArray *c2_sf_marshallOut(void *chartInstanceVoid, void *c2_inData); -static real_T c2_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, const - mxArray *c2_ddT, const char_T *c2_identifier); -static real_T c2_b_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData); -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[14]); -static void c2_eml_error(SFc2_TestInstanceStruct *chartInstance); -static const mxArray *c2_b_sf_marshallOut(void *chartInstanceVoid, void - *c2_inData); -static int32_T c2_c_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void c2_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData); -static uint8_T c2_d_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_b_is_active_c2_Test, const char_T *c2_identifier); -static uint8_T c2_e_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void init_dsm_address_info(SFc2_TestInstanceStruct *chartInstance); - -/* Function Definitions */ -static void initialize_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ - chartInstance->c2_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c2_is_active_c2_Test = 0U; -} - -static void initialize_params_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ -} - -static void enable_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c2_update_debugger_state_c2_Test(SFc2_TestInstanceStruct - *chartInstance) -{ -} - -static const mxArray *get_sim_state_c2_Test(SFc2_TestInstanceStruct - *chartInstance) -{ - const mxArray *c2_st; - const mxArray *c2_y = NULL; - real_T c2_hoistedGlobal; - real_T c2_u; - const mxArray *c2_b_y = NULL; - uint8_T c2_b_hoistedGlobal; - uint8_T c2_b_u; - const mxArray *c2_c_y = NULL; - real_T *c2_ddT; - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_st = NULL; - c2_st = NULL; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_createcellarray(2), FALSE); - c2_hoistedGlobal = *c2_ddT; - c2_u = c2_hoistedGlobal; - c2_b_y = NULL; - sf_mex_assign(&c2_b_y, sf_mex_create("y", &c2_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c2_y, 0, c2_b_y); - c2_b_hoistedGlobal = chartInstance->c2_is_active_c2_Test; - c2_b_u = c2_b_hoistedGlobal; - c2_c_y = NULL; - sf_mex_assign(&c2_c_y, sf_mex_create("y", &c2_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c2_y, 1, c2_c_y); - sf_mex_assign(&c2_st, c2_y, FALSE); - return c2_st; -} - -static void set_sim_state_c2_Test(SFc2_TestInstanceStruct *chartInstance, const - mxArray *c2_st) -{ - const mxArray *c2_u; - real_T *c2_ddT; - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c2_doneDoubleBufferReInit = TRUE; - c2_u = sf_mex_dup(c2_st); - *c2_ddT = c2_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c2_u, 0)), - "ddT"); - chartInstance->c2_is_active_c2_Test = c2_d_emlrt_marshallIn(chartInstance, - sf_mex_dup(sf_mex_getcell(c2_u, 1)), "is_active_c2_Test"); - sf_mex_destroy(&c2_u); - c2_update_debugger_state_c2_Test(chartInstance); - sf_mex_destroy(&c2_st); -} - -static void finalize_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ -} - -static void sf_c2_Test(SFc2_TestInstanceStruct *chartInstance) -{ - real_T c2_hoistedGlobal; - real_T c2_b_hoistedGlobal; - real_T c2_c_hoistedGlobal; - real_T c2_d_hoistedGlobal; - real_T c2_e_hoistedGlobal; - real_T c2_f_hoistedGlobal; - real_T c2_g_hoistedGlobal; - real_T c2_h_hoistedGlobal; - real_T c2_i_hoistedGlobal; - real_T c2_j_hoistedGlobal; - real_T c2_k_hoistedGlobal; - real_T c2_l_hoistedGlobal; - real_T c2_m_hoistedGlobal; - real_T c2_n_hoistedGlobal; - real_T c2_o_hoistedGlobal; - real_T c2_dT; - real_T c2_T; - real_T c2_L; - real_T c2_dL; - real_T c2_ddL; - real_T c2_Lsr0; - real_T c2_Ksr; - real_T c2_M; - real_T c2_C; - real_T c2_Beta; - real_T c2_a; - real_T c2_R; - real_T c2_Kpr; - real_T c2_Lpr0; - real_T c2_Gamma; - uint32_T c2_debug_family_var_map[19]; - real_T c2_LTerm; - real_T c2_nargin = 15.0; - real_T c2_nargout = 1.0; - real_T c2_ddT; - real_T c2_A; - real_T c2_B; - real_T c2_x; - real_T c2_y; - real_T c2_b_x; - real_T c2_b_y; - real_T c2_c_y; - real_T c2_b_A; - real_T c2_b_B; - real_T c2_c_x; - real_T c2_d_y; - real_T c2_d_x; - real_T c2_e_y; - real_T c2_f_y; - real_T c2_b_a; - real_T c2_b; - real_T c2_g_y; - real_T c2_c_A; - real_T c2_c_B; - real_T c2_e_x; - real_T c2_h_y; - real_T c2_f_x; - real_T c2_i_y; - real_T c2_j_y; - real_T c2_g_x; - real_T c2_h_x; - real_T c2_c_a; - real_T c2_b_b; - real_T c2_k_y; - real_T c2_d_A; - real_T c2_d_B; - real_T c2_i_x; - real_T c2_l_y; - real_T c2_j_x; - real_T c2_m_y; - real_T c2_n_y; - real_T c2_k_x; - real_T c2_l_x; - real_T c2_o_y; - real_T c2_d_a; - real_T c2_c_b; - real_T c2_e_a; - real_T c2_d_b; - real_T c2_ak; - real_T c2_bk; - real_T c2_m_x; - real_T c2_n_x; - real_T c2_c; - real_T c2_f_a; - real_T c2_e_b; - real_T c2_p_y; - real_T c2_g_a; - real_T c2_f_b; - real_T c2_q_y; - real_T c2_h_a; - real_T c2_g_b; - real_T c2_r_y; - real_T c2_i_a; - real_T c2_h_b; - real_T c2_s_y; - real_T c2_j_a; - real_T c2_i_b; - real_T *c2_b_Gamma; - real_T *c2_b_Lpr0; - real_T *c2_b_Kpr; - real_T *c2_b_R; - real_T *c2_k_a; - real_T *c2_b_Beta; - real_T *c2_b_C; - real_T *c2_b_M; - real_T *c2_b_Ksr; - real_T *c2_b_Lsr0; - real_T *c2_b_ddL; - real_T *c2_b_dL; - real_T *c2_b_L; - real_T *c2_b_T; - real_T *c2_b_dT; - real_T *c2_b_ddT; - c2_b_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c2_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c2_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c2_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c2_k_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c2_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c2_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c2_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c2_b_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c2_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c2_b_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c2_b_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c2_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c2_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c2_b_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c2_sfEvent); - _SFD_DATA_RANGE_CHECK(*c2_b_dT, 0U); - _SFD_DATA_RANGE_CHECK(*c2_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c2_b_L, 2U); - _SFD_DATA_RANGE_CHECK(*c2_b_dL, 3U); - _SFD_DATA_RANGE_CHECK(*c2_b_ddL, 4U); - _SFD_DATA_RANGE_CHECK(*c2_b_Lsr0, 5U); - _SFD_DATA_RANGE_CHECK(*c2_b_Ksr, 6U); - _SFD_DATA_RANGE_CHECK(*c2_b_ddT, 7U); - _SFD_DATA_RANGE_CHECK(*c2_b_M, 8U); - _SFD_DATA_RANGE_CHECK(*c2_b_C, 9U); - _SFD_DATA_RANGE_CHECK(*c2_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c2_k_a, 11U); - _SFD_DATA_RANGE_CHECK(*c2_b_R, 12U); - _SFD_DATA_RANGE_CHECK(*c2_b_Kpr, 13U); - _SFD_DATA_RANGE_CHECK(*c2_b_Lpr0, 14U); - _SFD_DATA_RANGE_CHECK(*c2_b_Gamma, 15U); - chartInstance->c2_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent); - c2_hoistedGlobal = *c2_b_dT; - c2_b_hoistedGlobal = *c2_b_T; - c2_c_hoistedGlobal = *c2_b_L; - c2_d_hoistedGlobal = *c2_b_dL; - c2_e_hoistedGlobal = *c2_b_ddL; - c2_f_hoistedGlobal = *c2_b_Lsr0; - c2_g_hoistedGlobal = *c2_b_Ksr; - c2_h_hoistedGlobal = *c2_b_M; - c2_i_hoistedGlobal = *c2_b_C; - c2_j_hoistedGlobal = *c2_b_Beta; - c2_k_hoistedGlobal = *c2_k_a; - c2_l_hoistedGlobal = *c2_b_R; - c2_m_hoistedGlobal = *c2_b_Kpr; - c2_n_hoistedGlobal = *c2_b_Lpr0; - c2_o_hoistedGlobal = *c2_b_Gamma; - c2_dT = c2_hoistedGlobal; - c2_T = c2_b_hoistedGlobal; - c2_L = c2_c_hoistedGlobal; - c2_dL = c2_d_hoistedGlobal; - c2_ddL = c2_e_hoistedGlobal; - c2_Lsr0 = c2_f_hoistedGlobal; - c2_Ksr = c2_g_hoistedGlobal; - c2_M = c2_h_hoistedGlobal; - c2_C = c2_i_hoistedGlobal; - c2_Beta = c2_j_hoistedGlobal; - c2_a = c2_k_hoistedGlobal; - c2_R = c2_l_hoistedGlobal; - c2_Kpr = c2_m_hoistedGlobal; - c2_Lpr0 = c2_n_hoistedGlobal; - c2_Gamma = c2_o_hoistedGlobal; - sf_debug_symbol_scope_push_eml(0U, 19U, 19U, c2_debug_family_names, - c2_debug_family_var_map); - sf_debug_symbol_scope_add_eml_importable(&c2_LTerm, 0U, c2_sf_marshallOut, - c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c2_nargin, 1U, c2_sf_marshallOut, - c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml_importable(&c2_nargout, 2U, c2_sf_marshallOut, - c2_sf_marshallIn); - sf_debug_symbol_scope_add_eml(&c2_dT, 3U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_T, 4U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_L, 5U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_dL, 6U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_ddL, 7U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Lsr0, 8U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Ksr, 9U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_M, 10U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_C, 11U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Beta, 12U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_a, 13U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_R, 14U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Kpr, 15U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Lpr0, 16U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml(&c2_Gamma, 17U, c2_sf_marshallOut); - sf_debug_symbol_scope_add_eml_importable(&c2_ddT, 18U, c2_sf_marshallOut, - c2_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 3); - c2_A = c2_T; - c2_B = c2_Ksr; - c2_x = c2_A; - c2_y = c2_B; - c2_b_x = c2_x; - c2_b_y = c2_y; - c2_c_y = c2_b_x / c2_b_y; - c2_LTerm = (c2_L - c2_Lsr0) - c2_c_y; - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 5); - c2_b_A = c2_Ksr; - c2_b_B = c2_M; - c2_c_x = c2_b_A; - c2_d_y = c2_b_B; - c2_d_x = c2_c_x; - c2_e_y = c2_d_y; - c2_f_y = c2_d_x / c2_e_y; - c2_b_a = c2_C; - c2_b = c2_Beta; - c2_g_y = c2_b_a * c2_b; - c2_c_A = c2_dT; - c2_c_B = c2_Ksr; - c2_e_x = c2_c_A; - c2_h_y = c2_c_B; - c2_f_x = c2_e_x; - c2_i_y = c2_h_y; - c2_j_y = c2_f_x / c2_i_y; - c2_g_x = c2_dL - c2_j_y; - c2_h_x = c2_g_x; - c2_h_x = muDoubleScalarSign(c2_h_x); - c2_c_a = c2_g_y; - c2_b_b = c2_h_x; - c2_k_y = c2_c_a * c2_b_b; - c2_d_A = c2_dT; - c2_d_B = c2_Ksr; - c2_i_x = c2_d_A; - c2_l_y = c2_d_B; - c2_j_x = c2_i_x; - c2_m_y = c2_l_y; - c2_n_y = c2_j_x / c2_m_y; - c2_k_x = c2_dL - c2_n_y; - c2_l_x = c2_k_x; - c2_o_y = muDoubleScalarAbs(c2_l_x); - c2_d_a = c2_o_y; - c2_c_b = c2_a; - c2_e_a = c2_d_a; - c2_d_b = c2_c_b; - c2_ak = c2_e_a; - c2_bk = c2_d_b; - if (c2_ak < 0.0) { - c2_m_x = c2_bk; - c2_n_x = c2_m_x; - c2_n_x = muDoubleScalarFloor(c2_n_x); - if (c2_n_x != c2_bk) { - c2_eml_error(chartInstance); - } - } - - c2_c = muDoubleScalarPower(c2_ak, c2_bk); - c2_f_a = c2_k_y; - c2_e_b = c2_c; - c2_p_y = c2_f_a * c2_e_b; - c2_g_a = c2_p_y; - c2_f_b = c2_LTerm - c2_R; - c2_q_y = c2_g_a * c2_f_b; - c2_h_a = c2_Kpr; - c2_g_b = c2_LTerm - c2_Lpr0; - c2_r_y = c2_h_a * c2_g_b; - c2_i_a = c2_M; - c2_h_b = c2_ddL; - c2_s_y = c2_i_a * c2_h_b; - c2_j_a = c2_f_y; - c2_i_b = (((c2_q_y + c2_r_y) + c2_s_y) + c2_Gamma) - c2_T; - c2_ddT = c2_j_a * c2_i_b; - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, -5); - sf_debug_symbol_scope_pop(); - *c2_b_ddT = c2_ddT; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent); - sf_debug_check_for_state_inconsistency(_TestMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc2_Test(SFc2_TestInstanceStruct *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T - c2_chartNumber) -{ -} - -static const mxArray *c2_sf_marshallOut(void *chartInstanceVoid, void *c2_inData) -{ - const mxArray *c2_mxArrayOutData = NULL; - real_T c2_u; - const mxArray *c2_y = NULL; - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *)chartInstanceVoid; - c2_mxArrayOutData = NULL; - c2_u = *(real_T *)c2_inData; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", &c2_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c2_mxArrayOutData, c2_y, FALSE); - return c2_mxArrayOutData; -} - -static real_T c2_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, const - mxArray *c2_ddT, const char_T *c2_identifier) -{ - real_T c2_y; - emlrtMsgIdentifier c2_thisId; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_ddT), &c2_thisId); - sf_mex_destroy(&c2_ddT); - return c2_y; -} - -static real_T c2_b_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - real_T c2_y; - real_T c2_d0; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_d0, 1, 0, 0U, 0, 0U, 0); - c2_y = c2_d0; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData) -{ - const mxArray *c2_ddT; - const char_T *c2_identifier; - emlrtMsgIdentifier c2_thisId; - real_T c2_y; - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *)chartInstanceVoid; - c2_ddT = sf_mex_dup(c2_mxArrayInData); - c2_identifier = c2_varName; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_ddT), &c2_thisId); - sf_mex_destroy(&c2_ddT); - *(real_T *)c2_outData = c2_y; - sf_mex_destroy(&c2_mxArrayInData); -} - -const mxArray *sf_c2_Test_get_eml_resolved_functions_info(void) -{ - const mxArray *c2_nameCaptureInfo; - c2_ResolvedFunctionInfo c2_info[14]; - const mxArray *c2_m0 = NULL; - int32_T c2_i0; - c2_ResolvedFunctionInfo *c2_r0; - c2_nameCaptureInfo = NULL; - c2_nameCaptureInfo = NULL; - c2_info_helper(c2_info); - sf_mex_assign(&c2_m0, sf_mex_createstruct("nameCaptureInfo", 1, 14), FALSE); - for (c2_i0 = 0; c2_i0 < 14; c2_i0++) { - c2_r0 = &c2_info[c2_i0]; - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c2_r0->context)), "context", "nameCaptureInfo", - c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c2_r0->name)), "name", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c2_r0->dominantType)), "dominantType", - "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c2_r0->resolved)), "resolved", "nameCaptureInfo", - c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c2_i0); - } - - sf_mex_assign(&c2_nameCaptureInfo, c2_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c2_nameCaptureInfo); - return c2_nameCaptureInfo; -} - -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[14]) -{ - c2_info[0].context = ""; - c2_info[0].name = "mrdivide"; - c2_info[0].dominantType = "double"; - c2_info[0].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c2_info[0].fileTimeLo = 1325156538U; - c2_info[0].fileTimeHi = 0U; - c2_info[0].mFileTimeLo = 1319762366U; - c2_info[0].mFileTimeHi = 0U; - c2_info[1].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c2_info[1].name = "rdivide"; - c2_info[1].dominantType = "double"; - c2_info[1].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[1].fileTimeLo = 1286851244U; - c2_info[1].fileTimeHi = 0U; - c2_info[1].mFileTimeLo = 0U; - c2_info[1].mFileTimeHi = 0U; - c2_info[2].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[2].name = "eml_div"; - c2_info[2].dominantType = "double"; - c2_info[2].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/eml/eml_div.m"; - c2_info[2].fileTimeLo = 1313380210U; - c2_info[2].fileTimeHi = 0U; - c2_info[2].mFileTimeLo = 0U; - c2_info[2].mFileTimeHi = 0U; - c2_info[3].context = ""; - c2_info[3].name = "mtimes"; - c2_info[3].dominantType = "double"; - c2_info[3].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/mtimes.m"; - c2_info[3].fileTimeLo = 1289552092U; - c2_info[3].fileTimeHi = 0U; - c2_info[3].mFileTimeLo = 0U; - c2_info[3].mFileTimeHi = 0U; - c2_info[4].context = ""; - c2_info[4].name = "sign"; - c2_info[4].dominantType = "double"; - c2_info[4].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[4].fileTimeLo = 1286851150U; - c2_info[4].fileTimeHi = 0U; - c2_info[4].mFileTimeLo = 0U; - c2_info[4].mFileTimeHi = 0U; - c2_info[5].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[5].name = "eml_scalar_sign"; - c2_info[5].dominantType = "double"; - c2_info[5].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c2_info[5].fileTimeLo = 1307683638U; - c2_info[5].fileTimeHi = 0U; - c2_info[5].mFileTimeLo = 0U; - c2_info[5].mFileTimeHi = 0U; - c2_info[6].context = ""; - c2_info[6].name = "abs"; - c2_info[6].dominantType = "double"; - c2_info[6].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[6].fileTimeLo = 1286851094U; - c2_info[6].fileTimeHi = 0U; - c2_info[6].mFileTimeLo = 0U; - c2_info[6].mFileTimeHi = 0U; - c2_info[7].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[7].name = "eml_scalar_abs"; - c2_info[7].dominantType = "double"; - c2_info[7].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c2_info[7].fileTimeLo = 1286851112U; - c2_info[7].fileTimeHi = 0U; - c2_info[7].mFileTimeLo = 0U; - c2_info[7].mFileTimeHi = 0U; - c2_info[8].context = ""; - c2_info[8].name = "mpower"; - c2_info[8].dominantType = "double"; - c2_info[8].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[8].fileTimeLo = 1286851242U; - c2_info[8].fileTimeHi = 0U; - c2_info[8].mFileTimeLo = 0U; - c2_info[8].mFileTimeHi = 0U; - c2_info[9].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[9].name = "power"; - c2_info[9].dominantType = "double"; - c2_info[9].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[9].fileTimeLo = 1307683640U; - c2_info[9].fileTimeHi = 0U; - c2_info[9].mFileTimeLo = 0U; - c2_info[9].mFileTimeHi = 0U; - c2_info[10].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[10].name = "eml_scalar_eg"; - c2_info[10].dominantType = "double"; - c2_info[10].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c2_info[10].fileTimeLo = 1286851196U; - c2_info[10].fileTimeHi = 0U; - c2_info[10].mFileTimeLo = 0U; - c2_info[10].mFileTimeHi = 0U; - c2_info[11].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[11].name = "eml_scalexp_alloc"; - c2_info[11].dominantType = "double"; - c2_info[11].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c2_info[11].fileTimeLo = 1286851196U; - c2_info[11].fileTimeHi = 0U; - c2_info[11].mFileTimeLo = 0U; - c2_info[11].mFileTimeHi = 0U; - c2_info[12].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[12].name = "eml_scalar_floor"; - c2_info[12].dominantType = "double"; - c2_info[12].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c2_info[12].fileTimeLo = 1286851126U; - c2_info[12].fileTimeHi = 0U; - c2_info[12].mFileTimeLo = 0U; - c2_info[12].mFileTimeHi = 0U; - c2_info[13].context = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[13].name = "eml_error"; - c2_info[13].dominantType = "char"; - c2_info[13].resolved = - "[ILXE]/usr/local/MATLAB/R2012a/toolbox/eml/lib/matlab/eml/eml_error.m"; - c2_info[13].fileTimeLo = 1305350400U; - c2_info[13].fileTimeHi = 0U; - c2_info[13].mFileTimeLo = 0U; - c2_info[13].mFileTimeHi = 0U; -} - -static void c2_eml_error(SFc2_TestInstanceStruct *chartInstance) -{ - int32_T c2_i1; - static char_T c2_varargin_1[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', - 'o', 'l', 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', - 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' }; - - char_T c2_u[31]; - const mxArray *c2_y = NULL; - for (c2_i1 = 0; c2_i1 < 31; c2_i1++) { - c2_u[c2_i1] = c2_varargin_1[c2_i1]; - } - - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", c2_u, 10, 0U, 1U, 0U, 2, 1, 31), FALSE); - sf_mex_call_debug("error", 0U, 1U, 14, sf_mex_call_debug("message", 1U, 1U, 14, - c2_y)); -} - -static const mxArray *c2_b_sf_marshallOut(void *chartInstanceVoid, void - *c2_inData) -{ - const mxArray *c2_mxArrayOutData = NULL; - int32_T c2_u; - const mxArray *c2_y = NULL; - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *)chartInstanceVoid; - c2_mxArrayOutData = NULL; - c2_u = *(int32_T *)c2_inData; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", &c2_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c2_mxArrayOutData, c2_y, FALSE); - return c2_mxArrayOutData; -} - -static int32_T c2_c_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - int32_T c2_y; - int32_T c2_i2; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_i2, 1, 6, 0U, 0, 0U, 0); - c2_y = c2_i2; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void c2_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData) -{ - const mxArray *c2_b_sfEvent; - const char_T *c2_identifier; - emlrtMsgIdentifier c2_thisId; - int32_T c2_y; - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *)chartInstanceVoid; - c2_b_sfEvent = sf_mex_dup(c2_mxArrayInData); - c2_identifier = c2_varName; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_b_sfEvent), - &c2_thisId); - sf_mex_destroy(&c2_b_sfEvent); - *(int32_T *)c2_outData = c2_y; - sf_mex_destroy(&c2_mxArrayInData); -} - -static uint8_T c2_d_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_b_is_active_c2_Test, const char_T *c2_identifier) -{ - uint8_T c2_y; - emlrtMsgIdentifier c2_thisId; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_b_is_active_c2_Test), - &c2_thisId); - sf_mex_destroy(&c2_b_is_active_c2_Test); - return c2_y; -} - -static uint8_T c2_e_emlrt_marshallIn(SFc2_TestInstanceStruct *chartInstance, - const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - uint8_T c2_y; - uint8_T c2_u0; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_u0, 1, 3, 0U, 0, 0U, 0); - c2_y = c2_u0; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void init_dsm_address_info(SFc2_TestInstanceStruct *chartInstance) -{ -} - -/* SFunction Glue Code */ -void sf_c2_Test_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1354727709U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2102368257U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2131688995U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1523311011U); -} - -mxArray *sf_c2_Test_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("xDnnGj7T4ueVOH7NVCE1mD"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,15,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,10,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,10,"type",mxType); - } - - mxSetField(mxData,10,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,11,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,11,"type",mxType); - } - - mxSetField(mxData,11,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,12,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,12,"type",mxType); - } - - mxSetField(mxData,12,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,13,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,13,"type",mxType); - } - - mxSetField(mxData,13,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,14,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,14,"type",mxType); - } - - mxSetField(mxData,14,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -static const mxArray *sf_get_sim_state_info_c2_Test(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ddT\",},{M[8],M[0],T\"is_active_c2_Test\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c2_Test_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart(_TestMachineNumber_, - 2, - 1, - 1, - 16, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_TestMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting(_TestMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(_TestMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"dT"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"L"); - _SFD_SET_DATA_PROPS(3,1,1,0,"dL"); - _SFD_SET_DATA_PROPS(4,1,1,0,"ddL"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(7,2,0,1,"ddT"); - _SFD_SET_DATA_PROPS(8,1,1,0,"M"); - _SFD_SET_DATA_PROPS(9,1,1,0,"C"); - _SFD_SET_DATA_PROPS(10,1,1,0,"Beta"); - _SFD_SET_DATA_PROPS(11,1,1,0,"a"); - _SFD_SET_DATA_PROPS(12,1,1,0,"R"); - _SFD_SET_DATA_PROPS(13,1,1,0,"Kpr"); - _SFD_SET_DATA_PROPS(14,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(15,1,1,0,"Gamma"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,340); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)c2_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c2_dT; - real_T *c2_T; - real_T *c2_L; - real_T *c2_dL; - real_T *c2_ddL; - real_T *c2_Lsr0; - real_T *c2_Ksr; - real_T *c2_ddT; - real_T *c2_M; - real_T *c2_C; - real_T *c2_Beta; - real_T *c2_a; - real_T *c2_R; - real_T *c2_Kpr; - real_T *c2_Lpr0; - real_T *c2_Gamma; - c2_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c2_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c2_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c2_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c2_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c2_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c2_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c2_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c2_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c2_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c2_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c2_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c2_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c2_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c2_dT); - _SFD_SET_DATA_VALUE_PTR(1U, c2_T); - _SFD_SET_DATA_VALUE_PTR(2U, c2_L); - _SFD_SET_DATA_VALUE_PTR(3U, c2_dL); - _SFD_SET_DATA_VALUE_PTR(4U, c2_ddL); - _SFD_SET_DATA_VALUE_PTR(5U, c2_Lsr0); - _SFD_SET_DATA_VALUE_PTR(6U, c2_Ksr); - _SFD_SET_DATA_VALUE_PTR(7U, c2_ddT); - _SFD_SET_DATA_VALUE_PTR(8U, c2_M); - _SFD_SET_DATA_VALUE_PTR(9U, c2_C); - _SFD_SET_DATA_VALUE_PTR(10U, c2_Beta); - _SFD_SET_DATA_VALUE_PTR(11U, c2_a); - _SFD_SET_DATA_VALUE_PTR(12U, c2_R); - _SFD_SET_DATA_VALUE_PTR(13U, c2_Kpr); - _SFD_SET_DATA_VALUE_PTR(14U, c2_Lpr0); - _SFD_SET_DATA_VALUE_PTR(15U, c2_Gamma); - } - } - } else { - sf_debug_reset_current_state_configuration(_TestMachineNumber_, - chartInstance->chartNumber,chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization() -{ - return "ycYIpW7uLL3gXRMLAbVLtF"; -} - -static void sf_opaque_initialize_c2_Test(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc2_TestInstanceStruct*) chartInstanceVar)->S,0); - initialize_params_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); - initialize_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_enable_c2_Test(void *chartInstanceVar) -{ - enable_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c2_Test(void *chartInstanceVar) -{ - disable_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c2_Test(void *chartInstanceVar) -{ - sf_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c2_Test(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c2_Test((SFc2_TestInstanceStruct*) - chartInfo->chartInstance); /* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c2_Test();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c2_Test(SimStruct* S, const mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c2_Test();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c2_Test((SFc2_TestInstanceStruct*)chartInfo->chartInstance, - mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c2_Test(SimStruct* S) -{ - return sf_internal_get_sim_state_c2_Test(S); -} - -static void sf_opaque_set_sim_state_c2_Test(SimStruct* S, const mxArray *st) -{ - sf_internal_set_sim_state_c2_Test(S, st); -} - -static void sf_opaque_terminate_c2_Test(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc2_TestInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - } - - finalize_c2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); - free((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } - - unload_Test_optimization_info(); -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc2_Test((SFc2_TestInstanceStruct*) chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c2_Test(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c2_Test(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_Test_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 2); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,2,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,2, - "gatewayCannotBeInlinedMultipleTimes")); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 13, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 14, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,2,15); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,2,1); - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,2); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(45549497U)); - ssSetChecksum1(S,(3189690874U)); - ssSetChecksum2(S,(1835768395U)); - ssSetChecksum3(S,(1069739204U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); -} - -static void mdlRTW_c2_Test(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c2_Test(SimStruct *S) -{ - SFc2_TestInstanceStruct *chartInstance; - chartInstance = (SFc2_TestInstanceStruct *)malloc(sizeof - (SFc2_TestInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc2_TestInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c2_Test; - chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c2_Test; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c2_Test; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c2_Test; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c2_Test; - chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c2_Test; - chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c2_Test; - chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c2_Test; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c2_Test; - chartInstance->chartInfo.mdlStart = mdlStart_c2_Test; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c2_Test; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c2_Test_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c2_Test(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c2_Test(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c2_Test(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c2_Test_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.h b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.h deleted file mode 100644 index 0b70c27..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __c2_Test_h__ -#define __c2_Test_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c2_ResolvedFunctionInfo; - -typedef struct { - int32_T c2_sfEvent; - boolean_T c2_isStable; - boolean_T c2_doneDoubleBufferReInit; - uint8_T c2_is_active_c2_Test; - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; -} SFc2_TestInstanceStruct; - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c2_Test_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c2_Test_get_check_sum(mxArray *plhs[]); -extern void c2_Test_method_dispatcher(SimStruct *S, int_T method, void *data); - -#endif diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.o b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/c2_Test.o deleted file mode 100644 index e838c01abd6b1c570fc419af30f986b0da819d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35852 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 Sqj9^&H;88nagcbH5dRD0KOmL> diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypes.h b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypes.h deleted file mode 100644 index 2e96ede..0000000 --- a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypes.h +++ /dev/null @@ -1,714 +0,0 @@ - -#ifndef __RTWTYPES_H__ - #define __RTWTYPES_H__ - #include "tmwtypes.h" - -/* This ID is used to detect inclusion of an incompatible rtwtypes.h */ -#define RTWTYPES_ID_C08S16I32L32N32F1 - - #include "simstruc_types.h" - #ifndef POINTER_T - # define POINTER_T - typedef void * pointer_T; - #endif - #ifndef TRUE - # define TRUE (1U) - #endif - #ifndef FALSE - # define FALSE (0U) - #endif - #ifndef MAT_FILE - # define MAT_FILE 0 - #endif - -/* - * MultiWord supporting definitions - */ -typedef long int long_T; - -/* - * MultiWord types - */ - - -typedef struct { - uint32_T chunks[2]; -} int64m_T; - -typedef struct { - int64m_T re; - int64m_T im; -} cint64m_T; - - - -typedef struct { - uint32_T chunks[2]; -} uint64m_T; - -typedef struct { - uint64m_T re; - uint64m_T im; -} cuint64m_T; - - - -typedef struct { - uint32_T chunks[3]; -} int96m_T; - -typedef struct { - int96m_T re; - int96m_T im; -} cint96m_T; - - - -typedef struct { - uint32_T chunks[3]; -} uint96m_T; - -typedef struct { - uint96m_T re; - uint96m_T im; -} cuint96m_T; - - - -typedef struct { - uint32_T chunks[4]; -} int128m_T; - -typedef struct { - int128m_T re; - int128m_T im; -} cint128m_T; - - - -typedef struct { - uint32_T chunks[4]; -} uint128m_T; - -typedef struct { - uint128m_T re; - uint128m_T im; -} cuint128m_T; - - - -typedef struct { - uint32_T chunks[5]; -} int160m_T; - -typedef struct { - int160m_T re; - int160m_T im; -} cint160m_T; - - - -typedef struct { - uint32_T chunks[5]; -} uint160m_T; - -typedef struct { - uint160m_T re; - uint160m_T im; -} cuint160m_T; - - - -typedef struct { - uint32_T chunks[6]; -} int192m_T; - -typedef struct { - int192m_T re; - int192m_T im; -} cint192m_T; - - - -typedef struct { - uint32_T chunks[6]; -} uint192m_T; - -typedef struct { - uint192m_T re; - uint192m_T im; -} cuint192m_T; - - - -typedef struct { - uint32_T chunks[7]; -} int224m_T; - -typedef struct { - int224m_T re; - int224m_T im; -} cint224m_T; - - - -typedef struct { - uint32_T chunks[7]; -} uint224m_T; - -typedef struct { - uint224m_T re; - uint224m_T im; -} cuint224m_T; - - - -typedef struct { - uint32_T chunks[8]; -} int256m_T; - -typedef struct { - int256m_T re; - int256m_T im; -} cint256m_T; - - - -typedef struct { - uint32_T chunks[8]; -} uint256m_T; - -typedef struct { - uint256m_T re; - uint256m_T im; -} cuint256m_T; - - - -typedef struct { - uint32_T chunks[9]; -} int288m_T; - -typedef struct { - int288m_T re; - int288m_T im; -} cint288m_T; - - - -typedef struct { - uint32_T chunks[9]; -} uint288m_T; - -typedef struct { - uint288m_T re; - uint288m_T im; -} cuint288m_T; - - - -typedef struct { - uint32_T chunks[10]; -} int320m_T; - -typedef struct { - int320m_T re; - int320m_T im; -} cint320m_T; - - - -typedef struct { - uint32_T chunks[10]; -} uint320m_T; - -typedef struct { - uint320m_T re; - uint320m_T im; -} cuint320m_T; - - - -typedef struct { - uint32_T chunks[11]; -} int352m_T; - -typedef struct { - int352m_T re; - int352m_T im; -} cint352m_T; - - - -typedef struct { - uint32_T chunks[11]; -} uint352m_T; - -typedef struct { - uint352m_T re; - uint352m_T im; -} cuint352m_T; - - - -typedef struct { - uint32_T chunks[12]; -} int384m_T; - -typedef struct { - int384m_T re; - int384m_T im; -} cint384m_T; - - - -typedef struct { - uint32_T chunks[12]; -} uint384m_T; - -typedef struct { - uint384m_T re; - uint384m_T im; -} cuint384m_T; - - - -typedef struct { - uint32_T chunks[13]; -} int416m_T; - -typedef struct { - int416m_T re; - int416m_T im; -} cint416m_T; - - - -typedef struct { - uint32_T chunks[13]; -} uint416m_T; - -typedef struct { - uint416m_T re; - uint416m_T im; -} cuint416m_T; - - - -typedef struct { - uint32_T chunks[14]; -} int448m_T; - -typedef struct { - int448m_T re; - int448m_T im; -} cint448m_T; - - - -typedef struct { - uint32_T chunks[14]; -} uint448m_T; - -typedef struct { - uint448m_T re; - uint448m_T im; -} cuint448m_T; - - - -typedef struct { - uint32_T chunks[15]; -} int480m_T; - -typedef struct { - int480m_T re; - int480m_T im; -} cint480m_T; - - - -typedef struct { - uint32_T chunks[15]; -} uint480m_T; - -typedef struct { - uint480m_T re; - uint480m_T im; -} cuint480m_T; - - - -typedef struct { - uint32_T chunks[16]; -} int512m_T; - -typedef struct { - int512m_T re; - int512m_T im; -} cint512m_T; - - - -typedef struct { - uint32_T chunks[16]; -} uint512m_T; - -typedef struct { - uint512m_T re; - uint512m_T im; -} cuint512m_T; - - - -typedef struct { - uint32_T chunks[17]; -} int544m_T; - -typedef struct { - int544m_T re; - int544m_T im; -} cint544m_T; - - - -typedef struct { - uint32_T chunks[17]; -} uint544m_T; - -typedef struct { - uint544m_T re; - uint544m_T im; -} cuint544m_T; - - - -typedef struct { - uint32_T chunks[18]; -} int576m_T; - -typedef struct { - int576m_T re; - int576m_T im; -} cint576m_T; - - - -typedef struct { - uint32_T chunks[18]; -} uint576m_T; - -typedef struct { - uint576m_T re; - uint576m_T im; -} cuint576m_T; - - - -typedef struct { - uint32_T chunks[19]; -} int608m_T; - -typedef struct { - int608m_T re; - int608m_T im; -} cint608m_T; - - - -typedef struct { - uint32_T chunks[19]; -} uint608m_T; - -typedef struct { - uint608m_T re; - uint608m_T im; -} cuint608m_T; - - - -typedef struct { - uint32_T chunks[20]; -} int640m_T; - -typedef struct { - int640m_T re; - int640m_T im; -} cint640m_T; - - - -typedef struct { - uint32_T chunks[20]; -} uint640m_T; - -typedef struct { - uint640m_T re; - uint640m_T im; -} cuint640m_T; - - - -typedef struct { - uint32_T chunks[21]; -} int672m_T; - -typedef struct { - int672m_T re; - int672m_T im; -} cint672m_T; - - - -typedef struct { - uint32_T chunks[21]; -} uint672m_T; - -typedef struct { - uint672m_T re; - uint672m_T im; -} cuint672m_T; - - - -typedef struct { - uint32_T chunks[22]; -} int704m_T; - -typedef struct { - int704m_T re; - int704m_T im; -} cint704m_T; - - - -typedef struct { - uint32_T chunks[22]; -} uint704m_T; - -typedef struct { - uint704m_T re; - uint704m_T im; -} cuint704m_T; - - - -typedef struct { - uint32_T chunks[23]; -} int736m_T; - -typedef struct { - int736m_T re; - int736m_T im; -} cint736m_T; - - - -typedef struct { - uint32_T chunks[23]; -} uint736m_T; - -typedef struct { - uint736m_T re; - uint736m_T im; -} cuint736m_T; - - - -typedef struct { - uint32_T chunks[24]; -} int768m_T; - -typedef struct { - int768m_T re; - int768m_T im; -} cint768m_T; - - - -typedef struct { - uint32_T chunks[24]; -} uint768m_T; - -typedef struct { - uint768m_T re; - uint768m_T im; -} cuint768m_T; - - - -typedef struct { - uint32_T chunks[25]; -} int800m_T; - -typedef struct { - int800m_T re; - int800m_T im; -} cint800m_T; - - - -typedef struct { - uint32_T chunks[25]; -} uint800m_T; - -typedef struct { - uint800m_T re; - uint800m_T im; -} cuint800m_T; - - - -typedef struct { - uint32_T chunks[26]; -} int832m_T; - -typedef struct { - int832m_T re; - int832m_T im; -} cint832m_T; - - - -typedef struct { - uint32_T chunks[26]; -} uint832m_T; - -typedef struct { - uint832m_T re; - uint832m_T im; -} cuint832m_T; - - - -typedef struct { - uint32_T chunks[27]; -} int864m_T; - -typedef struct { - int864m_T re; - int864m_T im; -} cint864m_T; - - - -typedef struct { - uint32_T chunks[27]; -} uint864m_T; - -typedef struct { - uint864m_T re; - uint864m_T im; -} cuint864m_T; - - - -typedef struct { - uint32_T chunks[28]; -} int896m_T; - -typedef struct { - int896m_T re; - int896m_T im; -} cint896m_T; - - - -typedef struct { - uint32_T chunks[28]; -} uint896m_T; - -typedef struct { - uint896m_T re; - uint896m_T im; -} cuint896m_T; - - - -typedef struct { - uint32_T chunks[29]; -} int928m_T; - -typedef struct { - int928m_T re; - int928m_T im; -} cint928m_T; - - - -typedef struct { - uint32_T chunks[29]; -} uint928m_T; - -typedef struct { - uint928m_T re; - uint928m_T im; -} cuint928m_T; - - - -typedef struct { - uint32_T chunks[30]; -} int960m_T; - -typedef struct { - int960m_T re; - int960m_T im; -} cint960m_T; - - - -typedef struct { - uint32_T chunks[30]; -} uint960m_T; - -typedef struct { - uint960m_T re; - uint960m_T im; -} cuint960m_T; - - - -typedef struct { - uint32_T chunks[31]; -} int992m_T; - -typedef struct { - int992m_T re; - int992m_T im; -} cint992m_T; - - - -typedef struct { - uint32_T chunks[31]; -} uint992m_T; - -typedef struct { - uint992m_T re; - uint992m_T im; -} cuint992m_T; - - - -typedef struct { - uint32_T chunks[32]; -} int1024m_T; - -typedef struct { - int1024m_T re; - int1024m_T im; -} cint1024m_T; - - - -typedef struct { - uint32_T chunks[32]; -} uint1024m_T; - -typedef struct { - uint1024m_T re; - uint1024m_T im; -} cuint1024m_T; - -#endif /* __RTWTYPES_H__ */ diff --git a/MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypeschksum.mat b/MATLAB/slprj/_sfprj/Test/_self/sfun/src/rtwtypeschksum.mat deleted file mode 100644 index 3050f3f0ecc12832a3a2eaf0cbed0475aea54f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1064 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i?A@$QE)CwO)N=GQOM7; zQV1zcRq)F%Q!p}DFf_6^vHc6bzJu-7?xMYZUn;*Vcwcv_H_&;b&s$?T>9jiM z!#tK8wF49Sy{|EN?Osu{cwu&!$chiz0XsY{X`OGm{i^Q#tinUl^L#whLsdU0tt_$L zCNP(wLHp=7;p)EB3nzW8x5Jh!PU2`U z)1KLVVY=!M6(=s1w675c@zy&Q^ZvS@x%p_vSB9_m+V;QU?W;EJ`&hi=w$~|98oG#}K{h#VTcemf%L-mf0U1s0= z*Kd1&D>z%vIQMMIq-TEufBa*}l?b^F3Z5#ExedfrprZ=$I#dXE3Z`7_#{u4Z!>U#T&(wfw&MVaI&NH}-BDEG&Pq zoVc>wz~zf&K!Q9&iI27d$VJbYnXR|%huw;_eIZ- zxh0w96utd<&Hwds)9bqzO-VY~npieD(#WTc;loUZFUtH%RTr-LnyaVp=+?NYwKqEA zsQoSxxm~}PcermV)(v5smb_X+OR+fShJ*E_p6x8BPgzcz@bRGJDrw(+>pq`i`Fn2D z+?Nj++dh6__S<*KzUHZ{dFlPLKTfebnf>Zzd44GGuxZ*+quD*~tX2v#bL({4KC>RL zv33UemJysh-v-{!I&8pm)hWzOB9*`S@3DOgU$Z)wE1JEr^qz9%%EV@U{=3)xm)@JT zPWDaehIZKrsj@FmILR?9vrBB;op3s#{jVx91vsT`}uv~59d&|!mo&x6^w$2HEk{GDr z$QTDrcpZ&?bYb|gjKmq`En%lMj diff --git a/MATLAB/slprj/grt/ContinuousDetectIncrease/tmwinternal/minfo_mdlref.mat b/MATLAB/slprj/grt/ContinuousDetectIncrease/tmwinternal/minfo_mdlref.mat deleted file mode 100644 index 3f8c5923395116ed72c8b42f69ef989e899a54f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUCjK~zjZLLfCRFd$7qR4ry{Y-KDUP;6mzW^ZzBIv`C!LrFF?EFeR2Wnpw> zWFT*DIv`hNWFSOkV<0gyATcvKG%-3dIUq7HF)|<^ARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(B00000000000ZB~{000041pokeob6d#PvkZf_P~~I zS6YPHs%oXGqAOL}z6`@axjeNn!>CAHR)pQ{8}cNcj2Fj_YzLNq(4W(PxINBgE+KY? z>r$x}Q8<(D93LNlJ~?(45kkv9BD4Va=WxxTtbLKojfv|8T$B%lr)A>n0{0C4l0W|m z0Fp4Q=>>U%_3%{eaDONyDz``kgdO3CTzfJJdPk(9g1a!8r4uqxE>J9mCcY-Yp##l@ zj4(S4oYoYrLzwPn0gW8rVXPjsn@|>XsjRXX1#BNC#Tfw<;d9c70w)GhbwK+P%PS{{ z`z#64`L%b+C_m3^QDQ|+fqDsJRW<`EVd`q2X`JA>lTro9s9S-)-~$?ZM0bY7KUYcQ z1ikm(VQH~-ie*SN^yejm0sUC*lafBns@3HYs3RnC0}F;YE%gn^(^$L6qD7pplYQ>n zgP?|3lE4#*^og={n}K#I2TEC8%Rp~6Wokd8R*$lBKx0WdB8nlJ4#&r!1L4u;-Uwk&1>KLp+sWiH0|52b82Jy=FoJzX#-)Ge^45K_?_;K;MXP4gU%` z%|WX6PEIoh*e&TS9bz6PIJ7NkMb}eLT87DJ#mkv_+;eG+msK3u>?17U9}L<9hR1 z{`+LTS=>!q%H?KrCH*t{f7a-KU(z?SSp$?OB2ispib2TUl3+zh+T!d|0fuV}^Z|Ksl;-$M5JEaR7E)HC?GDZM##B%bE@Z;Jn` zX52rc>3A90ww}(QCV<+Zi6`uTtg+uM**CIcvHY+SO1)z1$@*Z*g@@w9ZS|^nWIUZ^ z9$uCDdo@#>#(q7t{ria5LXF-eownk@(*&8*7V|!06fBe_+ z_rasD=BD)~&&@Ku#)FNgf$Za{;@do$D{(ZwZzs%*MsW?N^ zSMgYoLg@WtFFn&j0oK^lLZ**}Is7PKsn8P%AJ5NY`;!XhfW-(|@ix*b*MYP6^JOkC zj{U*D`M8GeFQ2_cZoP$^A^!qA{CMUM0000s0001Zoa19)VDJE9HX!DJ(jdSJ<--6Y k5DNowW?ou;a7j^Va*1<(URq{)aB2xyo(ZZB0M@MtK~bv78UO$Q diff --git a/MATLAB/slprj/grt/MuscleSpindle/tmwinternal/minfo_mdlref.mat b/MATLAB/slprj/grt/MuscleSpindle/tmwinternal/minfo_mdlref.mat deleted file mode 100644 index 20e4632a50282dbd217cf8003e5a6b8544fd6b26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1515 zcmV zWFT*DIv`hNWFSOkV<0gyATcvKG%-3dIUq7HF)|<^ARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(B00000000000ZB~{0000b1pokeoYh%dZ`(E$W}Ga$ z01bj|SobgteHqZbIL@U_^H#@>u>f&WL}~Mw(G)GSp-6$GlI9=mXY6O~aX({k-JveN zs1g;YNtzHAi7;0CWg{8Dkdh!Eur7C z`@aG}QH~9}pl`4loyfKzBdJiah0>?|5Qp@WJJXmKl*gnMfl;jtc?{}EMcu%hAx=vJ3-Sy$F0vRICG%uo zkm@Ap5mwaqWUL6)Rc=$zE)zhh%Ft5KTf?~CPpQ>oyqM5P(T)rw$fhIk3FttQ8W8j_ z=9Sb;`&BXD@|H#GMull64OK%-s<;_&Il#92Ls@NUOgcwM2vTW>m+Au<1hithL&50M z$XzdBat`W2%3OL^+R!j1d&$71?x2L71jfbA6y&kc3BrjB4_{FKbVLPI*;8!UXQnC^ zfzgd2-_F2^CAL>SyT?rriExhz%BNIJ2&H~i!qLctTt!d}#Cdf_2~Y)Asv(177gU3U z!A$5w384WH=3tK$mq^V5fgzt-^4P!%+5sgc3(HJE;kr+c1b3AC40KE*4)hJFFz{EZ zSq?J2cYKmEpxTm2%OMs)jDxC)5NqfVwTBD0J>J(QM`=ob!N|kKqk`~&Xp>=UgFIe@yZ3T{3XtLj2 z%C1lEH}kV?tC`$vt|dRK|GGy1NkQMr{a6#|e#C^I6e(-xj~Y8a6zo`eyScvAY&Ewx zcb+{z-e|3F;NQpn`Y>g0p~T+8)b;E5|GD7b%62X@5zAP2som7VDx@gZ)Y^OQ@SnG7 z|Bo%+$Bu8I>iiY)tJl=C_{NN010BkT+5dU*b$t5?&F0I>GxPimHYl)>Y2wu0pEdTH z1$$Q3JW}u10%g`_EU&rz+{HNGRIiL5d7O3meOmDMv^pPmV(&Kcv0S6qxMjWj81K3~ ze_znEGBETkebhRO?Xy;MG_m*4=KW*G-v*DqZOrNw*W*U^?=JdNT=(nh%OaZQ+aiM5 ze6M<%g`btby8Y<#jK5Uww>$eUx9+aq6yse4&5s`+7Eg-!o5uATx%0n@X7g{4x0)VE zf_e7rqd&+0m((lk@3h`3{OjD%-$JH0s`0l~$gh>F_B|%NWcGEIz&#z&`x9g`a&x$X>r#yMNDVcO{eUx$L?9O-;U@74l`}z3rWy_Qv|oM(;(pwb|Nx zxx2T%)9dzjw|eWXSDPEw?q7~L^EMr4{+{6wO^+`$a}`YlC8gOv@{)IQ$j1hIMylkt zv@dURSR(XfEGE3T?|2fyz96zfx>+1+6?uA{c)muHam?bu#C{w^w^u)(Ah+If#*qI3 z)lznl4*&oFHUIzsc%0*7U|{e7Vm2V=fYKnq3gyE9BM=J%ab{jxesD=qX>y5keqLH; RdT?q9Se^;04gl7z2tklp+X(;w diff --git a/MATLAB/slprj/grt/MuscleSpindleTest/tmwinternal/minfo.mat b/MATLAB/slprj/grt/MuscleSpindleTest/tmwinternal/minfo.mat deleted file mode 100644 index 16d90b6022f345ee083ca778e28cc7928aeb8b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1517 zcmV zWFT*DIv`hNWFSOkV<0gyATcvKG%-3dIUq7HF)|<^ARr(hARr(hARr(hARr(hARr(h zARr(hARr(hARr(hARr(hARr(B00000000000ZB~{0000d1pokeoYh%bZ{s!)W{#!@ zkigv*MPFL%LknzQ96P>}w>Wl;28feIl-)co7>TyIp-6$GlI9=u=k*_LhdO*H66GA5 z-4GD$k-j-NoEZ+KErigozag{%zu&>NisJE2La)qSKfp!#NH|)Cu1<05=+ET&?*Nd5 zVNI{eTdXJNqRZWhkSIHR;SqL%eRAi?Jm@`l2ctZ=C3+ZDv z^sLepEkhV}%YdeacNr@O9fXv5eJb-L`W`!iMX`DS`S^8xizFxkYO(bx`L1B*de+%A?}q5eJkj~ zd5>j*taB{KM1wvj9F6Ed`8Fx(!m1XUJO%ZHBz9mLAy!G32IOe0ZNZ{N5ar1ccZ;2% zCRh^B5utR6DpDJR4k(9^Dl{zyz0;Jbqd2q%lw}5oLQq-oGuOhVvFv%Ewdi}9Egq&pOhJ_+pg z0+REx93=IPbE`D*<6zHOxL6&Ou=BCDMQ03hsBZ<~NQHy1iFYv}9IEUEHqoc&DwYeY z8-l;BhPx)Po&4;c4mEPQeN9lBQlaY-;uSd@O|;Ks0L6e`6?@c$P=TFlM4{M?i$Ppt z%GHSg(*OuLIB>IDq@rVv!JkU7P{R(|112dl+sv52eUF@SW-0dx=!^sm!q+EU!(Sm6 zW00!Dv-3CtiY4i|9AZ8W@wg}vLIqQYlImy@ID%d0u3{1e_V&S5?y%n~3Ewz&hd8i; zqFUgDmnuT%tDRs4W>d^!p3-d!-<5Vpzp@a z4Ac!ZbYfnVJFWr~p;1#(aO5@cp>J7t_N~xiIa3a*vU7qS6puM&3^ud4}#(>&LZW9VVGchqivzIv6lcMUi{eR|$FdraQk$F6;3 z_kRT~`rlmd6gd_yX31GbJx2eRLO|dHU)Z{~B7cKz`hYjNHD{ zF>P!AhMHGY9JB4{7*~ZecEbOdeE1Um@_p9rzd1hJcaQk~di4Fn&_Bb)r|$u#Ul*ow z_bu}<{L7w~9y+hd%Khe*_SNRs_n0}vce$5*3rJq07`c^u%1!&8KeF?S&f)2fgcgR; z^R~o)uQUELbZw`7*s0eW?QU(a)v9%N>y5#n+1snPTg`)dbMR2Pd+koQQS0}28aut+ zcE8zZ)OTC0dcE82w>$NNnvwf2D)vh{=KYec{|TCpBN+NNm=RJ4eRS$X@A8m`HFmU+ z(PLp=`lPUk7>JP1;_tcbi3syz$q;c" - LastModifiedBy "oli" - ModifiedDateFormat "%" - LastModifiedDate "Mon Dec 02 14:04:33 2013" - RTWModifiedTimeStamp 307893862 - ModelVersionFormat "1.%" - ConfigurationManager "None" - SampleTimeColors off - SampleTimeAnnotations off - LibraryLinkDisplay "disabled" - WideLines off - ShowLineDimensions off - ShowPortDataTypes off - ShowDesignRanges off - ShowLoopsOnError on - IgnoreBidirectionalLines off - ShowStorageClass off - ShowTestPointIcons on - ShowSignalResolutionIcons on - ShowViewerIcons on - SortedOrder off - ExecutionContextIcon off - ShowLinearizationAnnotations on - BlockNameDataTip off - BlockParametersDataTip off - BlockDescriptionStringDataTip off - ToolBar on - StatusBar on - BrowserShowLibraryLinks off - BrowserLookUnderMasks off - SimulationMode "normal" - LinearizationMsg "none" - Profile off - ParamWorkspaceSource "MATLABWorkspace" - AccelSystemTargetFile "accel.tlc" - AccelTemplateMakefile "accel_default_tmf" - AccelMakeCommand "make_rtw" - TryForcingSFcnDF off - Object { - $PropName "DataLoggingOverride" - $ObjectID 1 - $ClassName "Simulink.SimulationData.ModelLoggingInfo" - model_ "ContinuousDetectIncrease" - overrideMode_ [0.0] - Array { - Type "Cell" - Dimension 1 - Cell "ContinuousDetectIncrease" - PropName "logAsSpecifiedByModels_" - } - Array { - Type "Cell" - Dimension 1 - Cell [] - PropName "logAsSpecifiedByModelsSSIDs_" - } - } - RecordCoverage off - CovPath "/" - CovSaveName "covdata" - CovMetricSettings "dw" - CovNameIncrementing off - CovHtmlReporting on - CovForceBlockReductionOff on - covSaveCumulativeToWorkspaceVar on - CovSaveSingleToWorkspaceVar on - CovCumulativeVarName "covCumulativeData" - CovCumulativeReport off - CovReportOnPause on - CovModelRefEnable "Off" - CovExternalEMLEnable off - ExtModeBatchMode off - ExtModeEnableFloating on - ExtModeTrigType "manual" - ExtModeTrigMode "normal" - ExtModeTrigPort "1" - ExtModeTrigElement "any" - ExtModeTrigDuration 1000 - ExtModeTrigDurationFloating "auto" - ExtModeTrigHoldOff 0 - ExtModeTrigDelay 0 - ExtModeTrigDirection "rising" - ExtModeTrigLevel 0 - ExtModeArchiveMode "off" - ExtModeAutoIncOneShot off - ExtModeIncDirWhenArm off - ExtModeAddSuffixToVar off - ExtModeWriteAllDataToWs off - ExtModeArmWhenConnect on - ExtModeSkipDownloadWhenConnect off - ExtModeLogAll on - ExtModeAutoUpdateStatusClock on - BufferReuse off - ShowModelReferenceBlockVersion off - ShowModelReferenceBlockIO off - Array { - Type "Handle" - Dimension 1 - Simulink.ConfigSet { - $ObjectID 2 - Version "1.12.0" - Array { - Type "Handle" - Dimension 8 - Simulink.SolverCC { - $ObjectID 3 - Version "1.12.0" - StartTime "0.0" - StopTime "10.0" - AbsTol "auto" - FixedStep "1e-3" - InitialStep "auto" - MaxNumMinSteps "-1" - MaxOrder 5 - ZcThreshold "auto" - ConsecutiveZCsStepRelTol "10*128*eps" - MaxConsecutiveZCs "1000" - ExtrapolationOrder 4 - NumberNewtonIterations 1 - MaxStep "auto" - MinStep "auto" - MaxConsecutiveMinStep "1" - RelTol "1e-3" - SolverMode "Auto" - EnableConcurrentExecution off - ConcurrentTasks off - Solver "ode3" - SolverName "ode3" - SolverJacobianMethodControl "auto" - ShapePreserveControl "DisableAll" - ZeroCrossControl "UseLocalSettings" - ZeroCrossAlgorithm "Nonadaptive" - AlgebraicLoopSolver "TrustRegion" - SolverResetMethod "Fast" - PositivePriorityOrder off - AutoInsertRateTranBlk off - SampleTimeConstraint "Unconstrained" - InsertRTBMode "Whenever possible" - } - Simulink.DataIOCC { - $ObjectID 4 - Version "1.12.0" - Decimation "1" - ExternalInput "[t, u]" - FinalStateName "xFinal" - InitialState "xInitial" - LimitDataPoints on - MaxDataPoints "1000" - LoadExternalInput off - LoadInitialState off - SaveFinalState off - SaveCompleteFinalSimState off - SaveFormat "Array" - SignalLoggingSaveFormat "ModelDataLogs" - SaveOutput on - SaveState off - SignalLogging on - DSMLogging on - InspectSignalLogs off - SaveTime on - ReturnWorkspaceOutputs off - StateSaveName "xout" - TimeSaveName "tout" - OutputSaveName "yout" - SignalLoggingName "logsout" - DSMLoggingName "dsmout" - OutputOption "RefineOutputTimes" - OutputTimes "[]" - ReturnWorkspaceOutputsName "out" - Refine "1" - } - Simulink.OptimizationCC { - $ObjectID 5 - Version "1.12.0" - Array { - Type "Cell" - Dimension 8 - Cell "BooleansAsBitfields" - Cell "PassReuseOutputArgsAs" - Cell "PassReuseOutputArgsThreshold" - Cell "ZeroExternalMemoryAtStartup" - Cell "ZeroInternalMemoryAtStartup" - Cell "OptimizeModelRefInitCode" - Cell "NoFixptDivByZeroProtection" - Cell "UseSpecifiedMinMax" - PropName "DisabledProps" - } - BlockReduction off - BooleanDataType on - ConditionallyExecuteInputs on - InlineParams on - UseIntDivNetSlope off - UseFloatMulNetSlope off - UseSpecifiedMinMax off - InlineInvariantSignals off - OptimizeBlockIOStorage on - BufferReuse off - EnhancedBackFolding off - StrengthReduction off - ExpressionFolding on - BooleansAsBitfields off - BitfieldContainerType "uint_T" - EnableMemcpy on - MemcpyThreshold 64 - PassReuseOutputArgsAs "Structure reference" - ExpressionDepthLimit 2147483647 - FoldNonRolledExpr on - LocalBlockOutputs on - RollThreshold 5 - SystemCodeInlineAuto off - StateBitsets off - DataBitsets off - UseTempVars off - ZeroExternalMemoryAtStartup on - ZeroInternalMemoryAtStartup on - InitFltsAndDblsToZero off - NoFixptDivByZeroProtection off - EfficientFloat2IntCast off - EfficientMapNaN2IntZero on - OptimizeModelRefInitCode off - LifeSpan "inf" - MaxStackSize "Inherit from target" - BufferReusableBoundary on - SimCompilerOptimization "Off" - AccelVerboseBuild off - ParallelExecutionInRapidAccelerator on - } - Simulink.DebuggingCC { - $ObjectID 6 - Version "1.12.0" - RTPrefix "error" - ConsistencyChecking "none" - ArrayBoundsChecking "none" - SignalInfNanChecking "none" - SignalRangeChecking "none" - ReadBeforeWriteMsg "UseLocalSettings" - WriteAfterWriteMsg "UseLocalSettings" - WriteAfterReadMsg "UseLocalSettings" - AlgebraicLoopMsg "none" - ArtificialAlgebraicLoopMsg "warning" - SaveWithDisabledLinksMsg "warning" - SaveWithParameterizedLinksMsg "warning" - CheckSSInitialOutputMsg on - UnderspecifiedInitializationDetection "Classic" - MergeDetectMultiDrivingBlocksExec "none" - CheckExecutionContextPreStartOutputMsg off - CheckExecutionContextRuntimeOutputMsg off - SignalResolutionControl "UseLocalSettings" - BlockPriorityViolationMsg "warning" - MinStepSizeMsg "warning" - TimeAdjustmentMsg "none" - MaxConsecutiveZCsMsg "error" - MaskedZcDiagnostic "warning" - IgnoredZcDiagnostic "warning" - SolverPrmCheckMsg "none" - InheritedTsInSrcMsg "warning" - DiscreteInheritContinuousMsg "warning" - MultiTaskDSMMsg "error" - MultiTaskCondExecSysMsg "error" - MultiTaskRateTransMsg "error" - SingleTaskRateTransMsg "none" - TasksWithSamePriorityMsg "warning" - SigSpecEnsureSampleTimeMsg "warning" - CheckMatrixSingularityMsg "none" - IntegerOverflowMsg "warning" - Int32ToFloatConvMsg "warning" - ParameterDowncastMsg "error" - ParameterOverflowMsg "error" - ParameterUnderflowMsg "none" - ParameterPrecisionLossMsg "warning" - ParameterTunabilityLossMsg "warning" - FixptConstUnderflowMsg "none" - FixptConstOverflowMsg "none" - FixptConstPrecisionLossMsg "none" - UnderSpecifiedDataTypeMsg "none" - UnnecessaryDatatypeConvMsg "none" - VectorMatrixConversionMsg "none" - InvalidFcnCallConnMsg "error" - FcnCallInpInsideContextMsg "Enable All" - SignalLabelMismatchMsg "none" - UnconnectedInputMsg "none" - UnconnectedOutputMsg "none" - UnconnectedLineMsg "none" - SFcnCompatibilityMsg "none" - FrameProcessingCompatibilityMsg "warning" - UniqueDataStoreMsg "none" - BusObjectLabelMismatch "warning" - RootOutportRequireBusObject "warning" - AssertControl "UseLocalSettings" - EnableOverflowDetection off - ModelReferenceIOMsg "none" - ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" - ModelReferenceVersionMismatchMessage "none" - ModelReferenceIOMismatchMessage "none" - ModelReferenceCSMismatchMessage "none" - UnknownTsInhSupMsg "warning" - ModelReferenceDataLoggingMessage "warning" - ModelReferenceSymbolNameMessage "warning" - ModelReferenceExtraNoncontSigs "error" - StateNameClashWarn "warning" - SimStateInterfaceChecksumMismatchMsg "warning" - SimStateOlderReleaseMsg "error" - InitInArrayFormatMsg "warning" - StrictBusMsg "ErrorLevel1" - BusNameAdapt "WarnAndRepair" - NonBusSignalsTreatedAsBus "none" - LoggingUnavailableSignals "error" - BlockIODiagnostic "none" - SFUnusedDataAndEventsDiag "warning" - SFUnexpectedBacktrackingDiag "warning" - SFInvalidInputDataAccessInChartInitDiag "warning" - SFNoUnconditionalDefaultTransitionDiag "warning" - SFTransitionOutsideNaturalParentDiag "warning" - SFUnconditionalTransitionShadowingDiag "warning" - } - Simulink.HardwareCC { - $ObjectID 7 - Version "1.12.0" - ProdBitPerChar 8 - ProdBitPerShort 16 - ProdBitPerInt 32 - ProdBitPerLong 32 - ProdBitPerFloat 32 - ProdBitPerDouble 64 - ProdBitPerPointer 32 - ProdLargestAtomicInteger "Char" - ProdLargestAtomicFloat "None" - ProdIntDivRoundTo "Undefined" - ProdEndianess "Unspecified" - ProdWordSize 32 - ProdShiftRightIntArith on - ProdHWDeviceType "32-bit Generic" - TargetBitPerChar 8 - TargetBitPerShort 16 - TargetBitPerInt 32 - TargetBitPerLong 32 - TargetBitPerFloat 32 - TargetBitPerDouble 64 - TargetBitPerPointer 32 - TargetLargestAtomicInteger "Char" - TargetLargestAtomicFloat "None" - TargetShiftRightIntArith on - TargetIntDivRoundTo "Undefined" - TargetEndianess "Unspecified" - TargetWordSize 32 - TargetTypeEmulationWarnSuppressLevel 0 - TargetPreprocMaxBitsSint 32 - TargetPreprocMaxBitsUint 32 - TargetHWDeviceType "Specified" - TargetUnknown off - ProdEqTarget on - } - Simulink.ModelReferenceCC { - $ObjectID 8 - Version "1.12.0" - UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" - CheckModelReferenceTargetMessage "error" - EnableParallelModelReferenceBuilds off - ParallelModelReferenceErrorOnInvalidPool on - ParallelModelReferenceMATLABWorkerInit "None" - ModelReferenceNumInstancesAllowed "Multi" - PropagateVarSize "Infer from blocks in model" - ModelReferencePassRootInputsByReference on - ModelReferenceMinAlgLoopOccurrences off - PropagateSignalLabelsOutOfModel off - SupportModelReferenceSimTargetCustomCode off - } - Simulink.SFSimCC { - $ObjectID 9 - Version "1.12.0" - SFSimEnableDebug on - SFSimOverflowDetection on - SFSimEcho on - SimBlas on - SimCtrlC on - SimExtrinsic on - SimIntegrity on - SimUseLocalCustomCode off - SimParseCustomCode on - SimBuildMode "sf_incremental_build" - } - Simulink.RTWCC { - $BackupClass "Simulink.RTWCC" - $ObjectID 10 - Version "1.12.0" - Array { - Type "Cell" - Dimension 9 - Cell "IncludeHyperlinkInReport" - Cell "GenerateTraceInfo" - Cell "GenerateTraceReport" - Cell "GenerateTraceReportSl" - Cell "GenerateTraceReportSf" - Cell "GenerateTraceReportEml" - Cell "GenerateWebview" - Cell "GenerateCodeMetricsReport" - Cell "GenerateCodeReplacementReport" - PropName "DisabledProps" - } - SystemTargetFile "grt.tlc" - GenCodeOnly off - MakeCommand "make_rtw" - GenerateMakefile on - TemplateMakefile "grt_default_tmf" - GenerateReport off - SaveLog off - RTWVerbose on - RetainRTWFile off - ProfileTLC off - TLCDebug off - TLCCoverage off - TLCAssert off - ProcessScriptMode "Default" - ConfigurationMode "Optimized" - ConfigAtBuild off - RTWUseLocalCustomCode off - RTWUseSimCustomCode off - IncludeHyperlinkInReport off - LaunchReport off - TargetLang "C" - IncludeBusHierarchyInRTWFileBlockHierarchyMap off - IncludeERTFirstTime off - GenerateTraceInfo off - GenerateTraceReport off - GenerateTraceReportSl off - GenerateTraceReportSf off - GenerateTraceReportEml off - GenerateCodeInfo off - GenerateWebview off - GenerateCodeMetricsReport off - GenerateCodeReplacementReport off - RTWCompilerOptimization "Off" - CheckMdlBeforeBuild "Off" - CustomRebuildMode "OnUpdate" - Array { - Type "Handle" - Dimension 2 - Simulink.CodeAppCC { - $ObjectID 11 - Version "1.12.0" - Array { - Type "Cell" - Dimension 21 - Cell "IgnoreCustomStorageClasses" - Cell "IgnoreTestpoints" - Cell "InsertBlockDesc" - Cell "InsertPolySpaceComments" - Cell "SFDataObjDesc" - Cell "MATLABFcnDesc" - Cell "SimulinkDataObjDesc" - Cell "DefineNamingRule" - Cell "SignalNamingRule" - Cell "ParamNamingRule" - Cell "InlinedPrmAccess" - Cell "CustomSymbolStr" - Cell "CustomSymbolStrGlobalVar" - Cell "CustomSymbolStrType" - Cell "CustomSymbolStrField" - Cell "CustomSymbolStrFcn" - Cell "CustomSymbolStrFcnArg" - Cell "CustomSymbolStrBlkIO" - Cell "CustomSymbolStrTmpVar" - Cell "CustomSymbolStrMacro" - Cell "ReqsInCode" - PropName "DisabledProps" - } - ForceParamTrailComments off - GenerateComments on - IgnoreCustomStorageClasses on - IgnoreTestpoints off - IncHierarchyInIds off - MaxIdLength 31 - PreserveName off - PreserveNameWithParent off - ShowEliminatedStatement off - IncAutoGenComments off - SimulinkDataObjDesc off - SFDataObjDesc off - MATLABFcnDesc off - IncDataTypeInIds off - MangleLength 1 - CustomSymbolStrGlobalVar "$R$N$M" - CustomSymbolStrType "$N$R$M" - CustomSymbolStrField "$N$M" - CustomSymbolStrFcn "$R$N$M$F" - CustomSymbolStrFcnArg "rt$I$N$M" - CustomSymbolStrBlkIO "rtb_$N$M" - CustomSymbolStrTmpVar "$N$M" - CustomSymbolStrMacro "$R$N$M" - DefineNamingRule "None" - ParamNamingRule "None" - SignalNamingRule "None" - InsertBlockDesc off - InsertPolySpaceComments off - SimulinkBlockComments on - MATLABSourceComments off - EnableCustomComments off - InlinedPrmAccess "Literals" - ReqsInCode off - UseSimReservedNames off - } - Simulink.GRTTargetCC { - $BackupClass "Simulink.TargetCC" - $ObjectID 12 - Version "1.12.0" - Array { - Type "Cell" - Dimension 16 - Cell "GeneratePreprocessorConditionals" - Cell "IncludeMdlTerminateFcn" - Cell "CombineOutputUpdateFcns" - Cell "SuppressErrorStatus" - Cell "ERTCustomFileBanners" - Cell "GenerateSampleERTMain" - Cell "GenerateTestInterfaces" - Cell "ModelStepFunctionPrototypeControlCompliant" - Cell "CPPClassGenCompliant" - Cell "MultiInstanceERTCode" - Cell "PurelyIntegerCode" - Cell "SupportComplex" - Cell "SupportAbsoluteTime" - Cell "SupportContinuousTime" - Cell "SupportNonInlinedSFcns" - Cell "PortableWordSizes" - PropName "DisabledProps" - } - TargetFcnLib "ansi_tfl_table_tmw.mat" - TargetLibSuffix "" - TargetPreCompLibLocation "" - CodeReplacementLibrary "ANSI_C" - UtilityFuncGeneration "Auto" - ERTMultiwordTypeDef "System defined" - CodeExecutionProfiling off - ERTMultiwordLength 256 - MultiwordLength 2048 - GenerateFullHeader on - GenerateSampleERTMain off - GenerateTestInterfaces off - IsPILTarget off - ModelReferenceCompliant on - ParMdlRefBuildCompliant on - CompOptLevelCompliant on - ConcurrentExecutionCompliant on - IncludeMdlTerminateFcn on - GeneratePreprocessorConditionals "Disable all" - CombineOutputUpdateFcns on - CombineSignalStateStructs off - SuppressErrorStatus off - ERTFirstTimeCompliant off - IncludeFileDelimiter "Auto" - ERTCustomFileBanners off - SupportAbsoluteTime on - LogVarNameModifier "rt_" - MatFileLogging on - MultiInstanceERTCode off - SupportNonFinite on - SupportComplex on - PurelyIntegerCode off - SupportContinuousTime on - SupportNonInlinedSFcns on - SupportVariableSizeSignals off - EnableShiftOperators on - ParenthesesLevel "Nominal" - PortableWordSizes off - ModelStepFunctionPrototypeControlCompliant off - CPPClassGenCompliant off - AutosarCompliant off - GRTInterface off - UseMalloc off - ExtMode off - ExtModeStaticAlloc off - ExtModeTesting off - ExtModeStaticAllocSize 1000000 - ExtModeTransport 0 - ExtModeMexFile "ext_comm" - ExtModeIntrfLevel "Level1" - RTWCAPISignals off - RTWCAPIParams off - RTWCAPIStates off - RTWCAPIRootIO off - GenerateASAP2 off - } - PropName "Components" - } - } - PropName "Components" - } - Name "Configuration" - CurrentDlgPage "Solver" - ConfigPrmDlgPosition [ 200, 85, 1080, 715 ] - } - PropName "ConfigurationSets" - } - Simulink.ConfigSet { - $PropName "ActiveConfigurationSet" - $ObjectID 2 - } - ExplicitPartitioning off - BlockDefaults { - ForegroundColor "black" - BackgroundColor "white" - DropShadow off - NamePlacement "normal" - FontName "Helvetica" - FontSize 10 - FontWeight "normal" - FontAngle "normal" - ShowName on - BlockRotation 0 - BlockMirror off - } - AnnotationDefaults { - HorizontalAlignment "center" - VerticalAlignment "middle" - ForegroundColor "black" - BackgroundColor "white" - DropShadow off - FontName "Helvetica" - FontSize 10 - FontWeight "normal" - FontAngle "normal" - UseDisplayTextAsClickCallback off - } - LineDefaults { - FontName "Helvetica" - FontSize 9 - FontWeight "normal" - FontAngle "normal" - } - BlockParameterDefaults { - Block { - BlockType Inport - Port "1" - OutputFunctionCall off - OutMin "[]" - OutMax "[]" - OutDataTypeStr "Inherit: auto" - LockScale off - BusOutputAsStruct off - PortDimensions "-1" - VarSizeSig "Inherit" - SampleTime "-1" - SignalType "auto" - SamplingMode "auto" - LatchByDelayingOutsideSignal off - LatchInputForFeedbackSignals off - Interpolate on - } - Block { - BlockType Memory - X0 "0" - InheritSampleTime off - LinearizeMemory off - LinearizeAsDelay off - StateMustResolveToSignalObject off - RTWStateStorageClass "Auto" - } - Block { - BlockType Outport - Port "1" - OutMin "[]" - OutMax "[]" - OutDataTypeStr "Inherit: auto" - LockScale off - BusOutputAsStruct off - PortDimensions "-1" - VarSizeSig "Inherit" - SampleTime "-1" - SignalType "auto" - SamplingMode "auto" - SourceOfInitialOutputValue "Dialog" - OutputWhenDisabled "held" - InitialOutput "[]" - } - Block { - BlockType RelationalOperator - Operator ">=" - InputSameDT on - OutDataTypeStr "Inherit: Logical (see Configuration Parameters: Optimization)" - ZeroCross on - SampleTime "-1" - } - } - System { - Name "ContinuousDetectIncrease" - Location [586, 387, 1166, 647] - Open off - ModelBrowserVisibility off - ModelBrowserWidth 200 - ScreenColor "white" - PaperOrientation "landscape" - PaperPositionMode "auto" - PaperType "usletter" - PaperUnits "inches" - TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] - TiledPageScale 1 - ShowPageBoundaries off - ZoomFactor "100" - ReportName "simulink-default.rpt" - SIDHighWatermark "12" - Block { - BlockType Inport - Name "U" - SID "1" - Position [15, 53, 45, 67] - ZOrder -1 - FontName "Arial" - IconDisplay "Port number" - } - Block { - BlockType RelationalOperator - Name "FixPt\nRelational\nOperator" - SID "3" - Ports [2, 1] - Position [210, 13, 245, 77] - ZOrder -3 - Operator ">" - InputSameDT off - OutDataTypeStr "fixdt(0, 8)" - ZeroCross off - } - Block { - BlockType Memory - Name "Memory" - SID "7" - Position [120, 45, 150, 75] - ZOrder -13 - LinearizeAsDelay on - Port { - PortNumber 1 - Name "U(k-1)" - RTWStorageClass "Auto" - DataLoggingNameMode "SignalName" - } - } - Block { - BlockType Outport - Name "Y" - SID "4" - Position [360, 38, 390, 52] - ZOrder -4 - FontName "Arial" - IconDisplay "Port number" - InitialOutput "0" - } - Line { - SrcBlock "FixPt\nRelational\nOperator" - SrcPort 1 - DstBlock "Y" - DstPort 1 - } - Line { - Name "U(k-1)" - FontName "Arial" - FontSize 10 - Labels [0, 0] - SrcBlock "Memory" - SrcPort 1 - DstBlock "FixPt\nRelational\nOperator" - DstPort 2 - } - Line { - SrcBlock "U" - SrcPort 1 - Points [40, 0] - Branch { - DstBlock "Memory" - DstPort 1 - } - Branch { - Points [0, -30] - DstBlock "FixPt\nRelational\nOperator" - DstPort 1 - } - } - Annotation { - SID "5" - Name "Edge" - Position [268, 55] - } - Annotation { - SID "6" - Name "U(k)" - Position [60, 68] - } - Annotation { - SID "9" - Position [262, 214] - } - } -} diff --git a/MATLAB/slprj/sim/ContinuousDetectIncrease/tmwinternal/ContinuousDetectIncrease1.mdl b/MATLAB/slprj/sim/ContinuousDetectIncrease/tmwinternal/ContinuousDetectIncrease1.mdl deleted file mode 100644 index 1e7ea7d..0000000 --- a/MATLAB/slprj/sim/ContinuousDetectIncrease/tmwinternal/ContinuousDetectIncrease1.mdl +++ /dev/null @@ -1,826 +0,0 @@ -Model { - Name "ContinuousDetectIncrease" - Version 7.9 - MdlSubVersion 0 - GraphicalInterface { - NumRootInports 1 - Inport { - BusObject "" - Name "U" - } - NumRootOutports 1 - Outport { - BusObject "" - BusOutputAsStruct "off" - Name "Y" - } - ParameterArgumentNames "" - ComputedModelVersion "1.21" - NumModelReferences 0 - NumTestPointedSignals 0 - } - SavedCharacterEncoding "ISO-8859-1" - SaveDefaultBlockParams on - ScopeRefreshTime 0.035000 - OverrideScopeRefreshTime on - DisableAllScopes off - DataTypeOverride "UseLocalSettings" - DataTypeOverrideAppliesTo "AllNumericTypes" - MinMaxOverflowLogging "UseLocalSettings" - MinMaxOverflowArchiveMode "Overwrite" - FPTRunName "Run 1" - MaxMDLFileLineLength 120 - Created "Tue Dec 04 15:17:20 2012" - Creator "oli" - UpdateHistory "UpdateHistoryNever" - ModifiedByFormat "%" - LastModifiedBy "oli" - ModifiedDateFormat "%" - LastModifiedDate "Mon Dec 02 14:04:33 2013" - RTWModifiedTimeStamp 307893862 - ModelVersionFormat "1.%" - ConfigurationManager "None" - SampleTimeColors off - SampleTimeAnnotations off - LibraryLinkDisplay "disabled" - WideLines off - ShowLineDimensions off - ShowPortDataTypes off - ShowDesignRanges off - ShowLoopsOnError on - IgnoreBidirectionalLines off - ShowStorageClass off - ShowTestPointIcons on - ShowSignalResolutionIcons on - ShowViewerIcons on - SortedOrder off - ExecutionContextIcon off - ShowLinearizationAnnotations on - BlockNameDataTip off - BlockParametersDataTip off - BlockDescriptionStringDataTip off - ToolBar on - StatusBar on - BrowserShowLibraryLinks off - BrowserLookUnderMasks off - SimulationMode "normal" - LinearizationMsg "none" - Profile off - ParamWorkspaceSource "MATLABWorkspace" - AccelSystemTargetFile "accel.tlc" - AccelTemplateMakefile "accel_default_tmf" - AccelMakeCommand "make_rtw" - TryForcingSFcnDF off - Object { - $PropName "DataLoggingOverride" - $ObjectID 1 - $ClassName "Simulink.SimulationData.ModelLoggingInfo" - model_ "ContinuousDetectIncrease" - overrideMode_ [0.0] - Array { - Type "Cell" - Dimension 1 - Cell "ContinuousDetectIncrease" - PropName "logAsSpecifiedByModels_" - } - Array { - Type "Cell" - Dimension 1 - Cell [] - PropName "logAsSpecifiedByModelsSSIDs_" - } - } - RecordCoverage off - CovPath "/" - CovSaveName "covdata" - CovMetricSettings "dw" - CovNameIncrementing off - CovHtmlReporting on - CovForceBlockReductionOff on - covSaveCumulativeToWorkspaceVar on - CovSaveSingleToWorkspaceVar on - CovCumulativeVarName "covCumulativeData" - CovCumulativeReport off - CovReportOnPause on - CovModelRefEnable "Off" - CovExternalEMLEnable off - ExtModeBatchMode off - ExtModeEnableFloating on - ExtModeTrigType "manual" - ExtModeTrigMode "normal" - ExtModeTrigPort "1" - ExtModeTrigElement "any" - ExtModeTrigDuration 1000 - ExtModeTrigDurationFloating "auto" - ExtModeTrigHoldOff 0 - ExtModeTrigDelay 0 - ExtModeTrigDirection "rising" - ExtModeTrigLevel 0 - ExtModeArchiveMode "off" - ExtModeAutoIncOneShot off - ExtModeIncDirWhenArm off - ExtModeAddSuffixToVar off - ExtModeWriteAllDataToWs off - ExtModeArmWhenConnect on - ExtModeSkipDownloadWhenConnect off - ExtModeLogAll on - ExtModeAutoUpdateStatusClock on - BufferReuse off - ShowModelReferenceBlockVersion off - ShowModelReferenceBlockIO off - Array { - Type "Handle" - Dimension 1 - Simulink.ConfigSet { - $ObjectID 2 - Version "1.12.0" - Array { - Type "Handle" - Dimension 8 - Simulink.SolverCC { - $ObjectID 3 - Version "1.12.0" - StartTime "0.0" - StopTime "10.0" - AbsTol "auto" - FixedStep "1e-3" - InitialStep "auto" - MaxNumMinSteps "-1" - MaxOrder 5 - ZcThreshold "auto" - ConsecutiveZCsStepRelTol "10*128*eps" - MaxConsecutiveZCs "1000" - ExtrapolationOrder 4 - NumberNewtonIterations 1 - MaxStep "auto" - MinStep "auto" - MaxConsecutiveMinStep "1" - RelTol "1e-3" - SolverMode "Auto" - EnableConcurrentExecution off - ConcurrentTasks off - Solver "ode3" - SolverName "ode3" - SolverJacobianMethodControl "auto" - ShapePreserveControl "DisableAll" - ZeroCrossControl "UseLocalSettings" - ZeroCrossAlgorithm "Nonadaptive" - AlgebraicLoopSolver "TrustRegion" - SolverResetMethod "Fast" - PositivePriorityOrder off - AutoInsertRateTranBlk off - SampleTimeConstraint "Unconstrained" - InsertRTBMode "Whenever possible" - } - Simulink.DataIOCC { - $ObjectID 4 - Version "1.12.0" - Decimation "1" - ExternalInput "[t, u]" - FinalStateName "xFinal" - InitialState "xInitial" - LimitDataPoints on - MaxDataPoints "1000" - LoadExternalInput off - LoadInitialState off - SaveFinalState off - SaveCompleteFinalSimState off - SaveFormat "Array" - SignalLoggingSaveFormat "ModelDataLogs" - SaveOutput on - SaveState off - SignalLogging on - DSMLogging on - InspectSignalLogs off - SaveTime on - ReturnWorkspaceOutputs off - StateSaveName "xout" - TimeSaveName "tout" - OutputSaveName "yout" - SignalLoggingName "logsout" - DSMLoggingName "dsmout" - OutputOption "RefineOutputTimes" - OutputTimes "[]" - ReturnWorkspaceOutputsName "out" - Refine "1" - } - Simulink.OptimizationCC { - $ObjectID 5 - Version "1.12.0" - Array { - Type "Cell" - Dimension 8 - Cell "BooleansAsBitfields" - Cell "PassReuseOutputArgsAs" - Cell "PassReuseOutputArgsThreshold" - Cell "ZeroExternalMemoryAtStartup" - Cell "ZeroInternalMemoryAtStartup" - Cell "OptimizeModelRefInitCode" - Cell "NoFixptDivByZeroProtection" - Cell "UseSpecifiedMinMax" - PropName "DisabledProps" - } - BlockReduction off - BooleanDataType on - ConditionallyExecuteInputs on - InlineParams on - UseIntDivNetSlope off - UseFloatMulNetSlope off - UseSpecifiedMinMax off - InlineInvariantSignals off - OptimizeBlockIOStorage on - BufferReuse off - EnhancedBackFolding off - StrengthReduction off - ExpressionFolding on - BooleansAsBitfields off - BitfieldContainerType "uint_T" - EnableMemcpy on - MemcpyThreshold 64 - PassReuseOutputArgsAs "Structure reference" - ExpressionDepthLimit 2147483647 - FoldNonRolledExpr on - LocalBlockOutputs on - RollThreshold 5 - SystemCodeInlineAuto off - StateBitsets off - DataBitsets off - UseTempVars off - ZeroExternalMemoryAtStartup on - ZeroInternalMemoryAtStartup on - InitFltsAndDblsToZero off - NoFixptDivByZeroProtection off - EfficientFloat2IntCast off - EfficientMapNaN2IntZero on - OptimizeModelRefInitCode off - LifeSpan "inf" - MaxStackSize "Inherit from target" - BufferReusableBoundary on - SimCompilerOptimization "Off" - AccelVerboseBuild off - ParallelExecutionInRapidAccelerator on - } - Simulink.DebuggingCC { - $ObjectID 6 - Version "1.12.0" - RTPrefix "error" - ConsistencyChecking "none" - ArrayBoundsChecking "none" - SignalInfNanChecking "none" - SignalRangeChecking "none" - ReadBeforeWriteMsg "UseLocalSettings" - WriteAfterWriteMsg "UseLocalSettings" - WriteAfterReadMsg "UseLocalSettings" - AlgebraicLoopMsg "none" - ArtificialAlgebraicLoopMsg "warning" - SaveWithDisabledLinksMsg "warning" - SaveWithParameterizedLinksMsg "warning" - CheckSSInitialOutputMsg on - UnderspecifiedInitializationDetection "Classic" - MergeDetectMultiDrivingBlocksExec "none" - CheckExecutionContextPreStartOutputMsg off - CheckExecutionContextRuntimeOutputMsg off - SignalResolutionControl "UseLocalSettings" - BlockPriorityViolationMsg "warning" - MinStepSizeMsg "warning" - TimeAdjustmentMsg "none" - MaxConsecutiveZCsMsg "error" - MaskedZcDiagnostic "warning" - IgnoredZcDiagnostic "warning" - SolverPrmCheckMsg "none" - InheritedTsInSrcMsg "warning" - DiscreteInheritContinuousMsg "warning" - MultiTaskDSMMsg "error" - MultiTaskCondExecSysMsg "error" - MultiTaskRateTransMsg "error" - SingleTaskRateTransMsg "none" - TasksWithSamePriorityMsg "warning" - SigSpecEnsureSampleTimeMsg "warning" - CheckMatrixSingularityMsg "none" - IntegerOverflowMsg "warning" - Int32ToFloatConvMsg "warning" - ParameterDowncastMsg "error" - ParameterOverflowMsg "error" - ParameterUnderflowMsg "none" - ParameterPrecisionLossMsg "warning" - ParameterTunabilityLossMsg "warning" - FixptConstUnderflowMsg "none" - FixptConstOverflowMsg "none" - FixptConstPrecisionLossMsg "none" - UnderSpecifiedDataTypeMsg "none" - UnnecessaryDatatypeConvMsg "none" - VectorMatrixConversionMsg "none" - InvalidFcnCallConnMsg "error" - FcnCallInpInsideContextMsg "Enable All" - SignalLabelMismatchMsg "none" - UnconnectedInputMsg "none" - UnconnectedOutputMsg "none" - UnconnectedLineMsg "none" - SFcnCompatibilityMsg "none" - FrameProcessingCompatibilityMsg "warning" - UniqueDataStoreMsg "none" - BusObjectLabelMismatch "warning" - RootOutportRequireBusObject "warning" - AssertControl "UseLocalSettings" - EnableOverflowDetection off - ModelReferenceIOMsg "none" - ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" - ModelReferenceVersionMismatchMessage "none" - ModelReferenceIOMismatchMessage "none" - ModelReferenceCSMismatchMessage "none" - UnknownTsInhSupMsg "warning" - ModelReferenceDataLoggingMessage "warning" - ModelReferenceSymbolNameMessage "warning" - ModelReferenceExtraNoncontSigs "error" - StateNameClashWarn "warning" - SimStateInterfaceChecksumMismatchMsg "warning" - SimStateOlderReleaseMsg "error" - InitInArrayFormatMsg "warning" - StrictBusMsg "ErrorLevel1" - BusNameAdapt "WarnAndRepair" - NonBusSignalsTreatedAsBus "none" - LoggingUnavailableSignals "error" - BlockIODiagnostic "none" - SFUnusedDataAndEventsDiag "warning" - SFUnexpectedBacktrackingDiag "warning" - SFInvalidInputDataAccessInChartInitDiag "warning" - SFNoUnconditionalDefaultTransitionDiag "warning" - SFTransitionOutsideNaturalParentDiag "warning" - SFUnconditionalTransitionShadowingDiag "warning" - } - Simulink.HardwareCC { - $ObjectID 7 - Version "1.12.0" - ProdBitPerChar 8 - ProdBitPerShort 16 - ProdBitPerInt 32 - ProdBitPerLong 32 - ProdBitPerFloat 32 - ProdBitPerDouble 64 - ProdBitPerPointer 32 - ProdLargestAtomicInteger "Char" - ProdLargestAtomicFloat "None" - ProdIntDivRoundTo "Undefined" - ProdEndianess "Unspecified" - ProdWordSize 32 - ProdShiftRightIntArith on - ProdHWDeviceType "32-bit Generic" - TargetBitPerChar 8 - TargetBitPerShort 16 - TargetBitPerInt 32 - TargetBitPerLong 32 - TargetBitPerFloat 32 - TargetBitPerDouble 64 - TargetBitPerPointer 32 - TargetLargestAtomicInteger "Char" - TargetLargestAtomicFloat "None" - TargetShiftRightIntArith on - TargetIntDivRoundTo "Undefined" - TargetEndianess "Unspecified" - TargetWordSize 32 - TargetTypeEmulationWarnSuppressLevel 0 - TargetPreprocMaxBitsSint 32 - TargetPreprocMaxBitsUint 32 - TargetHWDeviceType "Specified" - TargetUnknown off - ProdEqTarget on - } - Simulink.ModelReferenceCC { - $ObjectID 8 - Version "1.12.0" - UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" - CheckModelReferenceTargetMessage "error" - EnableParallelModelReferenceBuilds off - ParallelModelReferenceErrorOnInvalidPool on - ParallelModelReferenceMATLABWorkerInit "None" - ModelReferenceNumInstancesAllowed "Multi" - PropagateVarSize "Infer from blocks in model" - ModelReferencePassRootInputsByReference on - ModelReferenceMinAlgLoopOccurrences off - PropagateSignalLabelsOutOfModel off - SupportModelReferenceSimTargetCustomCode off - } - Simulink.SFSimCC { - $ObjectID 9 - Version "1.12.0" - SFSimEnableDebug on - SFSimOverflowDetection on - SFSimEcho on - SimBlas on - SimCtrlC on - SimExtrinsic on - SimIntegrity on - SimUseLocalCustomCode off - SimParseCustomCode on - SimBuildMode "sf_incremental_build" - } - Simulink.RTWCC { - $BackupClass "Simulink.RTWCC" - $ObjectID 10 - Version "1.12.0" - Array { - Type "Cell" - Dimension 9 - Cell "IncludeHyperlinkInReport" - Cell "GenerateTraceInfo" - Cell "GenerateTraceReport" - Cell "GenerateTraceReportSl" - Cell "GenerateTraceReportSf" - Cell "GenerateTraceReportEml" - Cell "GenerateWebview" - Cell "GenerateCodeMetricsReport" - Cell "GenerateCodeReplacementReport" - PropName "DisabledProps" - } - SystemTargetFile "grt.tlc" - GenCodeOnly off - MakeCommand "make_rtw" - GenerateMakefile on - TemplateMakefile "grt_default_tmf" - GenerateReport off - SaveLog off - RTWVerbose on - RetainRTWFile off - ProfileTLC off - TLCDebug off - TLCCoverage off - TLCAssert off - ProcessScriptMode "Default" - ConfigurationMode "Optimized" - ConfigAtBuild off - RTWUseLocalCustomCode off - RTWUseSimCustomCode off - IncludeHyperlinkInReport off - LaunchReport off - TargetLang "C" - IncludeBusHierarchyInRTWFileBlockHierarchyMap off - IncludeERTFirstTime off - GenerateTraceInfo off - GenerateTraceReport off - GenerateTraceReportSl off - GenerateTraceReportSf off - GenerateTraceReportEml off - GenerateCodeInfo off - GenerateWebview off - GenerateCodeMetricsReport off - GenerateCodeReplacementReport off - RTWCompilerOptimization "Off" - CheckMdlBeforeBuild "Off" - CustomRebuildMode "OnUpdate" - Array { - Type "Handle" - Dimension 2 - Simulink.CodeAppCC { - $ObjectID 11 - Version "1.12.0" - Array { - Type "Cell" - Dimension 21 - Cell "IgnoreCustomStorageClasses" - Cell "IgnoreTestpoints" - Cell "InsertBlockDesc" - Cell "InsertPolySpaceComments" - Cell "SFDataObjDesc" - Cell "MATLABFcnDesc" - Cell "SimulinkDataObjDesc" - Cell "DefineNamingRule" - Cell "SignalNamingRule" - Cell "ParamNamingRule" - Cell "InlinedPrmAccess" - Cell "CustomSymbolStr" - Cell "CustomSymbolStrGlobalVar" - Cell "CustomSymbolStrType" - Cell "CustomSymbolStrField" - Cell "CustomSymbolStrFcn" - Cell "CustomSymbolStrFcnArg" - Cell "CustomSymbolStrBlkIO" - Cell "CustomSymbolStrTmpVar" - Cell "CustomSymbolStrMacro" - Cell "ReqsInCode" - PropName "DisabledProps" - } - ForceParamTrailComments off - GenerateComments on - IgnoreCustomStorageClasses on - IgnoreTestpoints off - IncHierarchyInIds off - MaxIdLength 31 - PreserveName off - PreserveNameWithParent off - ShowEliminatedStatement off - IncAutoGenComments off - SimulinkDataObjDesc off - SFDataObjDesc off - MATLABFcnDesc off - IncDataTypeInIds off - MangleLength 1 - CustomSymbolStrGlobalVar "$R$N$M" - CustomSymbolStrType "$N$R$M" - CustomSymbolStrField "$N$M" - CustomSymbolStrFcn "$R$N$M$F" - CustomSymbolStrFcnArg "rt$I$N$M" - CustomSymbolStrBlkIO "rtb_$N$M" - CustomSymbolStrTmpVar "$N$M" - CustomSymbolStrMacro "$R$N$M" - DefineNamingRule "None" - ParamNamingRule "None" - SignalNamingRule "None" - InsertBlockDesc off - InsertPolySpaceComments off - SimulinkBlockComments on - MATLABSourceComments off - EnableCustomComments off - InlinedPrmAccess "Literals" - ReqsInCode off - UseSimReservedNames off - } - Simulink.GRTTargetCC { - $BackupClass "Simulink.TargetCC" - $ObjectID 12 - Version "1.12.0" - Array { - Type "Cell" - Dimension 16 - Cell "GeneratePreprocessorConditionals" - Cell "IncludeMdlTerminateFcn" - Cell "CombineOutputUpdateFcns" - Cell "SuppressErrorStatus" - Cell "ERTCustomFileBanners" - Cell "GenerateSampleERTMain" - Cell "GenerateTestInterfaces" - Cell "ModelStepFunctionPrototypeControlCompliant" - Cell "CPPClassGenCompliant" - Cell "MultiInstanceERTCode" - Cell "PurelyIntegerCode" - Cell "SupportComplex" - Cell "SupportAbsoluteTime" - Cell "SupportContinuousTime" - Cell "SupportNonInlinedSFcns" - Cell "PortableWordSizes" - PropName "DisabledProps" - } - TargetFcnLib "ansi_tfl_table_tmw.mat" - TargetLibSuffix "" - TargetPreCompLibLocation "" - CodeReplacementLibrary "ANSI_C" - UtilityFuncGeneration "Auto" - ERTMultiwordTypeDef "System defined" - CodeExecutionProfiling off - ERTMultiwordLength 256 - MultiwordLength 2048 - GenerateFullHeader on - GenerateSampleERTMain off - GenerateTestInterfaces off - IsPILTarget off - ModelReferenceCompliant on - ParMdlRefBuildCompliant on - CompOptLevelCompliant on - ConcurrentExecutionCompliant on - IncludeMdlTerminateFcn on - GeneratePreprocessorConditionals "Disable all" - CombineOutputUpdateFcns on - CombineSignalStateStructs off - SuppressErrorStatus off - ERTFirstTimeCompliant off - IncludeFileDelimiter "Auto" - ERTCustomFileBanners off - SupportAbsoluteTime on - LogVarNameModifier "rt_" - MatFileLogging on - MultiInstanceERTCode off - SupportNonFinite on - SupportComplex on - PurelyIntegerCode off - SupportContinuousTime on - SupportNonInlinedSFcns on - SupportVariableSizeSignals off - EnableShiftOperators on - ParenthesesLevel "Nominal" - PortableWordSizes off - ModelStepFunctionPrototypeControlCompliant off - CPPClassGenCompliant off - AutosarCompliant off - GRTInterface off - UseMalloc off - ExtMode off - ExtModeStaticAlloc off - ExtModeTesting off - ExtModeStaticAllocSize 1000000 - ExtModeTransport 0 - ExtModeMexFile "ext_comm" - ExtModeIntrfLevel "Level1" - RTWCAPISignals off - RTWCAPIParams off - RTWCAPIStates off - RTWCAPIRootIO off - GenerateASAP2 off - } - PropName "Components" - } - } - PropName "Components" - } - Name "Configuration" - CurrentDlgPage "Solver" - ConfigPrmDlgPosition [ 200, 85, 1080, 715 ] - } - PropName "ConfigurationSets" - } - Simulink.ConfigSet { - $PropName "ActiveConfigurationSet" - $ObjectID 2 - } - ExplicitPartitioning off - BlockDefaults { - ForegroundColor "black" - BackgroundColor "white" - DropShadow off - NamePlacement "normal" - FontName "Helvetica" - FontSize 10 - FontWeight "normal" - FontAngle "normal" - ShowName on - BlockRotation 0 - BlockMirror off - } - AnnotationDefaults { - HorizontalAlignment "center" - VerticalAlignment "middle" - ForegroundColor "black" - BackgroundColor "white" - DropShadow off - FontName "Helvetica" - FontSize 10 - FontWeight "normal" - FontAngle "normal" - UseDisplayTextAsClickCallback off - } - LineDefaults { - FontName "Helvetica" - FontSize 9 - FontWeight "normal" - FontAngle "normal" - } - BlockParameterDefaults { - Block { - BlockType Inport - Port "1" - OutputFunctionCall off - OutMin "[]" - OutMax "[]" - OutDataTypeStr "Inherit: auto" - LockScale off - BusOutputAsStruct off - PortDimensions "-1" - VarSizeSig "Inherit" - SampleTime "-1" - SignalType "auto" - SamplingMode "auto" - LatchByDelayingOutsideSignal off - LatchInputForFeedbackSignals off - Interpolate on - } - Block { - BlockType Memory - X0 "0" - InheritSampleTime off - LinearizeMemory off - LinearizeAsDelay off - StateMustResolveToSignalObject off - RTWStateStorageClass "Auto" - } - Block { - BlockType Outport - Port "1" - OutMin "[]" - OutMax "[]" - OutDataTypeStr "Inherit: auto" - LockScale off - BusOutputAsStruct off - PortDimensions "-1" - VarSizeSig "Inherit" - SampleTime "-1" - SignalType "auto" - SamplingMode "auto" - SourceOfInitialOutputValue "Dialog" - OutputWhenDisabled "held" - InitialOutput "[]" - } - Block { - BlockType RelationalOperator - Operator ">=" - InputSameDT on - OutDataTypeStr "Inherit: Logical (see Configuration Parameters: Optimization)" - ZeroCross on - SampleTime "-1" - } - } - System { - Name "ContinuousDetectIncrease" - Location [586, 387, 1166, 647] - Open off - ModelBrowserVisibility off - ModelBrowserWidth 200 - ScreenColor "white" - PaperOrientation "landscape" - PaperPositionMode "auto" - PaperType "usletter" - PaperUnits "inches" - TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] - TiledPageScale 1 - ShowPageBoundaries off - ZoomFactor "100" - ReportName "simulink-default.rpt" - SIDHighWatermark "12" - Block { - BlockType Inport - Name "U" - SID "1" - Position [15, 53, 45, 67] - ZOrder -1 - FontName "Arial" - IconDisplay "Port number" - } - Block { - BlockType RelationalOperator - Name "FixPt\nRelational\nOperator" - SID "3" - Ports [2, 1] - Position [210, 13, 245, 77] - ZOrder -3 - Operator ">" - InputSameDT off - OutDataTypeStr "fixdt(0, 8)" - ZeroCross off - } - Block { - BlockType Memory - Name "Memory" - SID "7" - Position [120, 45, 150, 75] - ZOrder -13 - LinearizeAsDelay on - Port { - PortNumber 1 - Name "U(k-1)" - RTWStorageClass "Auto" - DataLoggingNameMode "SignalName" - } - } - Block { - BlockType Outport - Name "Y" - SID "4" - Position [360, 38, 390, 52] - ZOrder -4 - FontName "Arial" - IconDisplay "Port number" - InitialOutput "0" - } - Line { - SrcBlock "FixPt\nRelational\nOperator" - SrcPort 1 - DstBlock "Y" - DstPort 1 - } - Line { - Name "U(k-1)" - FontName "Arial" - FontSize 10 - Labels [0, 0] - SrcBlock "Memory" - SrcPort 1 - DstBlock "FixPt\nRelational\nOperator" - DstPort 2 - } - Line { - SrcBlock "U" - SrcPort 1 - Points [40, 0] - Branch { - DstBlock "Memory" - DstPort 1 - } - Branch { - Points [0, -30] - DstBlock "FixPt\nRelational\nOperator" - DstPort 1 - } - } - Annotation { - SID "5" - Name "Edge" - Position [268, 55] - } - Annotation { - SID "6" - Name "U(k)" - Position [60, 68] - } - Annotation { - SID "9" - Position [262, 214] - } - } -} diff --git a/MATLAB/slprj/sl_proj.tmw b/MATLAB/slprj/sl_proj.tmw index 9d074fa..da846d4 100644 --- a/MATLAB/slprj/sl_proj.tmw +++ b/MATLAB/slprj/sl_proj.tmw @@ -1,2 +1,2 @@ Simulink Coder project marker file. Please don't change it. -slprjVersion: 7.9_34 \ No newline at end of file +slprjVersion: 8.1_44_002 \ No newline at end of file From 98c66763584831af178ecca7c9719c405e5b3332 Mon Sep 17 00:00:00 2001 From: Dimitar Stanev Date: Fri, 12 Jun 2015 11:19:53 +0300 Subject: [PATCH 2/3] Clean-up --- MATLAB/.SimulinkProject/Project.xml | 2 - .../ProjectData.type.Info.xml | 2 - .../FileClassCategory.type.Category.xml | 2 - .../artifact.type.Label.xml | 2 - .../convenience.type.Label.xml | 2 - .../derived.type.Label.xml | 2 - .../design.type.Label.xml | 2 - .../none.type.Label.xml | 2 - .../other.type.Label.xml | 2 - .../ReviewCategory.type.Category.xml | 2 - .../approved.type.Label.xml | 2 - .../needMoreInfo.type.Label.xml | 2 - .../rejected.type.Label.xml | 2 - .../toReview.type.Label.xml | 2 - MATLAB/MuscleSpindle_sfun.mexmaci64 | Bin 389504 -> 0 bytes MATLAB/Test_sfun.mexglx | Bin 309660 -> 0 bytes MATLAB/Test_sfun.mexmaci64 | Bin 318200 -> 0 bytes .../MuscleSpindle/_self/sfun/info/binfo.mat | Bin 4349 -> 0 bytes .../_self/sfun/src/MuscleSpindle_sfun.c | 461 ----- .../_self/sfun/src/MuscleSpindle_sfun.h | 43 - .../_self/sfun/src/MuscleSpindle_sfun.mol | 7 - .../src/MuscleSpindle_sfun_debug_macros.h | 424 ----- .../sfun/src/MuscleSpindle_sfun_registry.c | 325 ---- .../_self/sfun/src/c1_MuscleSpindle.c | 1669 ----------------- .../_self/sfun/src/c1_MuscleSpindle.h | 56 - .../_self/sfun/src/c2_MuscleSpindle.c | 1669 ----------------- .../_self/sfun/src/c2_MuscleSpindle.h | 56 - .../_self/sfun/src/c3_MuscleSpindle.c | 1311 ------------- .../_self/sfun/src/c3_MuscleSpindle.h | 56 - .../_self/sfun/src/c4_MuscleSpindle.c | 1311 ------------- .../_self/sfun/src/c4_MuscleSpindle.h | 56 - .../_self/sfun/src/c5_MuscleSpindle.c | 1669 ----------------- .../_self/sfun/src/c5_MuscleSpindle.h | 56 - .../MuscleSpindle/_self/sfun/src/rtwtypes.h | 711 ------- .../_self/sfun/src/rtwtypeschksum.mat | Bin 1105 -> 0 bytes MATLAB/slprj/sl_proj.tmw | 2 - 36 files changed, 9910 deletions(-) delete mode 100644 MATLAB/.SimulinkProject/Project.xml delete mode 100644 MATLAB/.SimulinkProject/ProjectData.type.Info.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/artifact.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/convenience.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/derived.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/design.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/none.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/other.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/approved.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/needMoreInfo.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/rejected.type.Label.xml delete mode 100644 MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/toReview.type.Label.xml delete mode 100755 MATLAB/MuscleSpindle_sfun.mexmaci64 delete mode 100755 MATLAB/Test_sfun.mexglx delete mode 100755 MATLAB/Test_sfun.mexmaci64 delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/info/binfo.mat delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mol delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h delete mode 100644 MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypeschksum.mat delete mode 100644 MATLAB/slprj/sl_proj.tmw diff --git a/MATLAB/.SimulinkProject/Project.xml b/MATLAB/.SimulinkProject/Project.xml deleted file mode 100644 index 8e4d50a..0000000 --- a/MATLAB/.SimulinkProject/Project.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/ProjectData.type.Info.xml b/MATLAB/.SimulinkProject/ProjectData.type.Info.xml deleted file mode 100644 index e3cdde3..0000000 --- a/MATLAB/.SimulinkProject/ProjectData.type.Info.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category.xml deleted file mode 100644 index b8e836d..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/artifact.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/artifact.type.Label.xml deleted file mode 100644 index 4e305c2..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/artifact.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/convenience.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/convenience.type.Label.xml deleted file mode 100644 index 28b95ee..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/convenience.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/derived.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/derived.type.Label.xml deleted file mode 100644 index af6bb77..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/derived.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/design.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/design.type.Label.xml deleted file mode 100644 index e1b779c..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/design.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/none.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/none.type.Label.xml deleted file mode 100644 index ca9a463..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/none.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/other.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/other.type.Label.xml deleted file mode 100644 index 3008d40..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/FileClassCategory.type.Category/other.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category.xml b/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category.xml deleted file mode 100644 index c6d62e1..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/approved.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/approved.type.Label.xml deleted file mode 100644 index 388805b..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/approved.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/needMoreInfo.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/needMoreInfo.type.Label.xml deleted file mode 100644 index 3adca14..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/needMoreInfo.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/rejected.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/rejected.type.Label.xml deleted file mode 100644 index 1247424..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/rejected.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/toReview.type.Label.xml b/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/toReview.type.Label.xml deleted file mode 100644 index 3bffe75..0000000 --- a/MATLAB/.SimulinkProject/Root.type.Categories/ReviewCategory.type.Category/toReview.type.Label.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/MATLAB/MuscleSpindle_sfun.mexmaci64 b/MATLAB/MuscleSpindle_sfun.mexmaci64 deleted file mode 100755 index 2bb71966591473f903c4f2bc1b66d1a408c0f681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389504 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 SznPb*!?k5l2xY8f;I9dN#hC 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 ~Q}Sj`yC)zrcwUFm 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 Q1**&qr^?S+g|$R~|EielDF6Tf diff --git a/MATLAB/Test_sfun.mexglx b/MATLAB/Test_sfun.mexglx deleted file mode 100755 index 0cd45579dbf4859f9f6f13755b4f30bb036c8d21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309660 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

VMB4*Vzd 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

i>lpHasRCH+@{$_!KCq5}y=AI=k%ydh(0?ko zM$b~t5w(jyFjU(__yT&L4uyNhw&S2frwqLOlmN*PA6I2o2)_Vc||zgE$0bhUkX@keX?~15ebo z+$tP=;NZ3Lya1^x+VD0xqb(WE90~geM8U{=FhPZ&yEiK3%pPdUt_xZ!;iUhu$i9R}^?7j-G z0bgMRCaBSXrWU*$nl|oOdt=OwO#2u_UtP<0F5;bbFEyn9^A3c+D>q5K9wS%KlB(nl z{P4m1drTL2*&W(k4;ApPdiaHVb3bOfJU9B~WXd=PGLTF$ol7{K*Wg@%4Q^q`?6?A9 z%{|3fEj4gJ>jM1`BY#3f{+k%273k$SU8y;uMVe^w(+fFLKH5aqJz9GyB(ugf#sjpR z6C^Ku5gy}7kde4C10%Md`Apf=B}=B{HaMlO<#LFDCGiL_DP(eoNDG|@Z}&)EJ6(d_ zebjhF$c_M+?faK()ROHJQQ-arhg_1^BEdQ_xE#}aU@Dj*4B9fm;A+r0%8ylLxn^i` z6NzD*M_>s;90W1mj%fQFCzKRt*sT~&*_-OJj? zPG4~Mg7$n*<$VkA1<&zQuPiEP&ri7WDsNePeo}RHWp#UgvbSu(?DqVW%D@7DdwyzJ zb=jP`?fKqwai)$Dp2_w?7z+2F7hpS}9#}yGJQ(2V0uKhpz%2c{oS{C8SQuy%F0*wl z&ym_(!}$O!{={tr@mQktS|+`Eb+1K(dUd0vu4S(D$^Zp<;o@L`M4#Ovy>ig2GcUgL zwq6{Q@_L=;9C#XBp(#^Ai5Am&$O=Vr?Il7yI!xS|m(+Qi%}?b_@3QikX^~=?Y56go zq|QA4n0Gw5@cQZNFbq!5r*-Cap%x$IVPgUt@%wUkbgAX85gX;Y&bUX5(BN^-Yvn#7-B; z25DcgT{fDs6P3H5ZIiekKb;8iGV4BX7a1 zJKA$R6=mKz?K$yfcLeTi&q=s*-U5ImufNjUo|9ZPZ$VXiPDVyZK9yedUcv89UaW?>vJX)_oeP`B9a&hmN1Lavv6< z2dCh~7bRl9nsW4rfKB?D#rz-nraOuj zL(Xl9%NwAgQtP3kdcGZefkLs*o79^a!Y;fYj6wxVq3P1N#QKX+(Vc~VLND`fb-)Vz zlED<(XOBkkgkG@8#o3?nVYX`SwfB7tyW%YsZf)^x5?I<8I_tr$u9bEjaMDP@jHzo` zd7gwAj>waCEUe7FnKQbtWe>bZt{qmR|=0~ z$ODJ4Kmx4U(Es2A);RI;rQ`kOJ+Sn{mnJOn-|k$A(}c2hPgcXWKl&$Z(mt2M&(S*418Wds4++It*-x%wYPzfs<__AH^~AKBO5em)KpPXK~PaqiJ+q80#>5< zvTCactyYbKRm=)10hYT7SucyRB#H`(m1=CUqVf_1G!V)LOEm&&B8iDK#Tz$jL<&e1 z{?Bvf-rc*KP2k)AkI#qf+<7^3=FB-~&YXF(Q2Qh7iAWE!Pj#ZH&|^c!a^bB$U?@%v%ih z!dxM!Ei}B#xj5{8nxH2OXejFnkQ;uNC1fbtejI;|yv5w#U=LS!${1_yF3!rOP3b!h ziUM;VIb--GqM*@_HnfEV{q=rOxNy14cNgGcSsLhBHYMFVFcECH1E^%Qjh4!}9Z;}Y z3Y%vJiZ8$@+{lw(R_Z#YQf0#UOabmPzuYpj5nFF{ZF!23w=^ZM((qRDq;1~X+>d9Z zVOMFcwsuB-P{Y>YDxzT&!uzwuHDi>(x5dw@VC-Y`o)yE?P* z2q{vms^8bOniO5DLftjFd246BYytY=Qp)`DTy2@>sUQXnYlC)!L~pduzKd_t;b8+yzu1Ck37|RgG62MWC?7^`=a7nLaILb(qijdRCvLhu<#M**J3KNYEx=qzK-qQt z1nlg|axF9{)>h89loyddSCStC0vy_7$Y;V&z_ymddZS1coJ-shA$tg8Mu1(-#X@Gu zaX)HFhI6)M?5{^(!u}<~@6gu^d%vey^R?7>=u4kF4`VZ zt9g<|#!-wT(8`{b8OP81@l0QzO@VGL$a5w%p~{V7u9CSDiMY!TVg+ex4;eA1eqd#G z>FWqL#g`o_VqvnhrKds5DiAF!%V=yet{8-VntL&FN#0n#p~#2zM3fKdr`a+77N`7C=Si<5WZDXbO?%ycZZMMCK#6xIt$7H zSVZI$GOdevrL#}>Vz^J77Q_aZTLu31vz4t4;+~HNioo@Es>q2Ten=mn2n)oQT2wl)6LBm2_IQ7UNGPeTtEpmGlurrd8657J0Z5dv9Ek`zx_A$Q8M(k~+UM za(g8YU_@@N_S&3Caeh;hUP!k#AMEC(fNQUsWKv?7f&VI;JZ1GD5 z;7R6Qh!ozxI*YSHPG+}aU^=KDNbyZ-eHz(CNn(@#yZ}Dn@!VGj52mbP;3S{^bqYM7 zL5w!OC5Eph<-?$Fxq(rsFhhiIU%{%MFi53%ml)oLln($J~WKc-B{)PLl9nWyMDR0+EF;bbhkwAGEz9SpV}K%W`jOlfe? zYX5dVS&W*D(K7GPxGk*7#U zJn%WMzHpakm3NmMjc6gz$t_Lech*m4?9P(R*4q_agl>q2Mq4m1CCpxg=_$JC2;m(a zg_05t?Zc)-Hg&KA-oFqB{Q4)uFB|B!Za@am?Vey}>#A6AsRe2XK^-krdk#^N^OL~Y zF}?wSz&M2QNDKxKhg*=xTj0(kxC{aJD@2t>&Q1nT@H$782FSkA(D4?SiwWi!0h5L( zwC~&`aGDBD!OH}U1_%^zL1=32+J;oL&z7H!_*C-q zE{i3RpFbg9t}C`*1$BCC(zQ?KoTs7;Lmo7@R79L*76BM40K0d^gL4|0?B zUsQhX@w~ScM~-$jX**F(X0)2_omBHJlrC|WY80RBKor_Nw99%tD;?FmjuMJAFCmnS zG;^$Ku3&2{`F%vyb8(mT#M&}4TFGUdRC2mi$<;CXdk|&O|B@v2MCH-5YAclf4y^%1 z+ksJ1wdP}llC@?v;z=}VO;q2$f>_Y)qOR(RR`O`Hl1ZIZB6k^~lB?JnrB|*(*2u6V z@T2nEL8teM*29&XWQ}R#_=$S1jMY<*sQ(k6RiJ<(*^3AztEJeg<#N_SKJ!hr`sKo8 z?TPZUlg}a}rH;tuNh*lMSx)D6GTI)OXuON5Q!|*>f_4h*rURa-R~u#XOKpu%l^&U( zSGgm{7dt_v1e0hnVVq{y5OcWT zvicW-i)Rk472s2A;e#t4#@DqjL1evzo<|50kFAN?-X?7?6Xzhxv(gb0nbyR-k%v92 zXzT3ITKIL>4vDGcx{s zlKS%;TE1`*FQ$ul`~u6NfpgH7qoe5@SVdY5?x(aOK9qfJG4TXPkXzl4wd;k8U9ocpJHO)Oztb82)mSR?SHFL< ztYmyzwDqw#Iv25Whv|N;MVPBF(a;ZO&NvA?myVqpyqykHh3(c<;X&4!u(lkVhkSG{ zs~n3e;lc~<26fGQFt>2BFCbz9z?r*vr*G*`c#f4L>DN2VB7v0Zgp>nFp}fqZy)*g< zpN9%7j4XdJYYs#tx83&xHUrH(F*I@ooKwrfE|L>slw0fj;XUZ=xWSw_gv2o=IBY$e z^S0%TjQ^ z71oAQgIBx5Y;!cZx1*dYk?Tt@=#Og6_C{1MD{GcFN=~TbW=yLwh5u$_(%~57(aZM< zH8fwQkX{_=xtoo^VW0T{X7|YuWe-dHpXW?Z;vA^x&~IH66}{p(L)xWXJB8THIt z1%fKE1mhHyA!o?g!$ybZA`D)4uQEc64!Ykes+ySt_XvH%R4`z5L*>Hy%(+BaPK(a` zz)B3QtDrw)IF9v3A?9Rfib(j{4h}RDB8m5f7RZXbhbTfKKa8aC!JQ zQW$LM(Ayk4MBLykf3?4lxC$Dztj6(GvkG%u1tZ9a&8P>C<2e21Llc}7eSz%+mhEl$ zMVYbe`fx=2T7ALiSYAhLcl4-krs?~8dgfeDgEF9JV#SX>p+>C=14Uy_xOE~D)K`7Z zoYouhRbRLh3mZFSVS^d#CpR~Z|FC{CV?Ts7SK>aQ^_(Nj$D2Tp1m5T9qQrbg9=r|B zO*z-2>Q>syi5ZY8bAp{vT)^v|p!-(w7$xRYfOh0O1wfHU5>r`6Ar^1|r4~7Z?x!Nx zC&`moQ{)_y_zW^%82iJz)ls|1s-7CuM_|7syXd(lBqR*#N>!po<^gn(zk2F%;I_1Kpg4o$r{>%)?b2! z;QJyI@Dp7JVe)P;P=HDb0^kcIo&P8Fnx%)@;dEH$(R{Cb25;an|eYL*O#dSNM?V>?h) z>ul6&<+_}@S__1Wron7M8eFJ28;pTiU|dNUl7x+2Vm0pD7u3oGRA4xv6yo~TC1Gtb zixMksR&d31fHJs-GK=zT6!9Av8Qu~@TWnqjl6l_T#DzF5kcOo)Yx$Qrzl8cy_6Z6n z8&YpVh8Ze@wm8Mm%2Ko?=!St>*)Xki%G0e&Z4}CazPVhR)ykxPZLX>utI=Dzs-Z3B zGGDvthY1ON3I9377F#cX9P&qpLPdeOP_ZieCN5QP65MhTV_t0)XAgE-JTF>&jw((o zpwu&GB1xnzfMP>wTd{FdIo6CqUTpBoFncy2%Pr0mthew4tBx(?vbkEOaNW>-{_5HA zcPL{OjS#_s$wQ$b`Jq)o*+r<(IpfMQKL9uTt4E_Kh>)&!JIhLeRpOBxM~S!WQ4f8t*!p^pbd30L6%>l#d6GCd#nC?KTWrv0ZdFLr4 zVnih(&@k#xUB(w{y{N>YE@Sk7a{3%t*dhMp?S3Kum4O=5<{)@Y~! zAwfc~ICJ`~n6@Z+(Y05f7fbjs$)N}Z^z!O@>ri8Uj z8N&PE@PM=}E;j|02$?vcP#t5fg+J$yv6Nk zy-Z-OItsAD!B2VG3kM50q}+cZRlKKc15Xm*fWpuX1zFG|U;Gozn?HOUD%)?$c$xqm z$if8?8&>K;eeC~21#06KjZ5mRcOjD)LawpDe*@}a4@fT4=Amx#AlnntC$ci|Uu+M< zDOreVH*W+kxIhc!`wT=+Y^G?IJIr58{hy|@ez~i?M2l@d|Bz%7>qEw1)}4z^R-3~y zs$083qKPm5ghUu$7+PzfP={(^9}kIb-a?`*CZ6pkSBtGF7Bn{^)HWPgY<0Lqkg|qL z1l3P1f4EgugSX^!g$p)v*Rky}9Vb2wTlmI7gV4>vJ5+W>OVrvWC=ela9L6qjij-G0&dEXbFlu?igT5G!;o#GwA*6=ZACd4O^}|mVa%Y0gd8FqnRYaJL3Lnb# zVycA%0h77cSd1Iy3_;+(-2?$V)uf1rS``TRx**5-WLZH67!aL=^nU=Q7`qb5dKqwJ z?xlfP(31sY$;kkAF}|@a=Q~iy8v9w`#{aO240FR~{7NdSfoCq0riL1?OtKUjH1=ai z`5{l>C-gn<81l^9jgU2Rh&3SwOlbbJ8&IIUjy35c85VOYxS|;`%0uP0aOw?yQ#k4S z5BV-P%4q=+tu^qj6Rm+nt6UX)RtTVsB=n3?PE(C7dk0by89!_V+g9L>0eRE{va1F_ zq;1OAn2Ft@$f`bI5OxBd4IucN0bV?0nVzSxjfn~#J!nrs;xsacJ%9C?ZuV-n;p?aP zsjuoevXz6M*6aoN0&o#8Q0QV?`rniAk<4Ul0@>bP^5ulw)|A%sgSSTq-5-18MInvOv0x}&JK8$2t^S-CAYhM)=l2_7(iwHsyg8iFBV zZ>$0+mV?e!5|`1BJ`-|@`5WNTxTq3G&{!l`Evi6<#vxM&&v zG8+q7$1tX5t7fP~1))(2*%_^Ciylucn9*1y5bT?brg|ES2wv6rJ6=hJnF%7`9OvH+ z@KfT~%>Eu9`_16ri3uTKN}r>OB9x`@;WQsi4v(~y73SP>0}6sUf5L!8==wU+6K=wX zv2JFRlcq-Cr2Fg{q})}zZAt{j1*5z|Ae_z{d^wW;rv~4%pzHQ>lUI`VUW_$^ zq^hn$LZ%h(e7XW-xIFksc^Y-Q;`G0EfVLP~c@&=FmrjrI&e{!S^-t!|G{2GRo zqz!(8a5``B9Z3G48r*gFW&@oh-Fr)0C$0Tt`;oS`J6pS&JEoH9p%CG8-r5I|eE8Px zShNumsN@&dDp7n_RpELl1a`>Z4$_Nl<;j|RFWksU(cHD|NSk}Yel+(3453Nkyhu2m zH+LqI|Ci==+1ATBo_Ew#Prz-R6vqQwkF>1=_o1y{h*gzjh5q~>$@hISxq}hSiPMV!|#LXVE7tQ_()?HHat@*giW-mnY5j4Bw zh}5NmPA&LNlC~}|J8A0)#8F27!wp7b{v(z>ZN+=L%e^qOFGBPE8)L8Z(m0N3~+k28JmePAsv9~Xz)Ja78`XCi*SmZ zP(-V9lsbTN-|s<76K0Ze(~b)StH142SkbmB>4BDED}Ju5(goLV+qrK;RTb_+>%<-W(2_mMK7+|m;MFpwBqr zESQO&x~J5PuoAK5IN?Fg&!yH-IqR@sKMvUXI#%cMWrU2r8j46AI6c%ov_`($%`NY; zfFNbNtQ4YRs4lS(xe180?iH<H22K;2hyT+57xduq8%IU z0xJ+p;DPMdi^Jx_`1uBZpeXOk+cC>xZl5Z777t|Wj71<9}-~K!UOCH{5k

DPv4z_Y3ne^C4aoF!s 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

;C2jZwK7zLmSPyj7SA{TQ!#{aaK{ueOyY^IqS{J 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

vD8=qE3oWh(NU%UixX%p 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 z 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 && mxIsChar(prhs[1])) { - mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (!strcmp(commandName,"machine")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1545794978U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3565728260U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(790789815U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(38263849U); - } else if (!strcmp(commandName,"exportedFcn")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U); - } else if (!strcmp(commandName,"makefile")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3327638175U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1431208774U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1185588925U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1874830706U); - } else if (nrhs==3 && !strcmp(commandName,"chart")) { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[2]); - switch (chartFileNumber) { - case 1: - { - extern void sf_c1_MuscleSpindle_get_check_sum(mxArray *plhs[]); - sf_c1_MuscleSpindle_get_check_sum(plhs); - break; - } - - case 2: - { - extern void sf_c2_MuscleSpindle_get_check_sum(mxArray *plhs[]); - sf_c2_MuscleSpindle_get_check_sum(plhs); - break; - } - - case 3: - { - extern void sf_c3_MuscleSpindle_get_check_sum(mxArray *plhs[]); - sf_c3_MuscleSpindle_get_check_sum(plhs); - break; - } - - case 4: - { - extern void sf_c4_MuscleSpindle_get_check_sum(mxArray *plhs[]); - sf_c4_MuscleSpindle_get_check_sum(plhs); - break; - } - - case 5: - { - extern void sf_c5_MuscleSpindle_get_check_sum(mxArray *plhs[]); - sf_c5_MuscleSpindle_get_check_sum(plhs); - break; - } - - default: - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0); - } - } else if (!strcmp(commandName,"target")) { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3564696471U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(678668628U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1090454852U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3896867807U); - } else { - return 0; - } - } else { - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3987699269U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3338214368U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(719902230U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(149836584U); - } - - return 1; - -#else - - return 0; - -#endif - -} - -unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[] ) -{ - -#ifdef MATLAB_MEX_FILE - - char commandName[32]; - char aiChksum[64]; - if (nrhs<3 || !mxIsChar(prhs[0]) ) - return 0; - - /* Possible call to get the autoinheritance_info */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_autoinheritance_info")) - return 0; - mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char)); - aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\0'; - - { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); - switch (chartFileNumber) { - case 1: - { - if (strcmp(aiChksum, "ww8NqEKWGCNBxeBEMAhny") == 0) { - extern mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void); - plhs[0] = sf_c1_MuscleSpindle_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - case 2: - { - if (strcmp(aiChksum, "8Dr9owGEF7LDFB9VDrdquF") == 0) { - extern mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void); - plhs[0] = sf_c2_MuscleSpindle_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - case 3: - { - if (strcmp(aiChksum, "6MdPBYbz53whJT5GuBWJbE") == 0) { - extern mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void); - plhs[0] = sf_c3_MuscleSpindle_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - case 4: - { - if (strcmp(aiChksum, "6MdPBYbz53whJT5GuBWJbE") == 0) { - extern mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void); - plhs[0] = sf_c4_MuscleSpindle_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - case 5: - { - if (strcmp(aiChksum, "ww8NqEKWGCNBxeBEMAhny") == 0) { - extern mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void); - plhs[0] = sf_c5_MuscleSpindle_get_autoinheritance_info(); - break; - } - - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - break; - } - - default: - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - } - } - - return 1; - -#else - - return 0; - -#endif - -} - -unsigned int sf_MuscleSpindle_get_eml_resolved_functions_info( int nlhs, mxArray - * plhs[], int nrhs, const mxArray * prhs[] ) -{ - -#ifdef MATLAB_MEX_FILE - - char commandName[64]; - if (nrhs<2 || !mxIsChar(prhs[0])) - return 0; - - /* Possible call to get the get_eml_resolved_functions_info */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_eml_resolved_functions_info")) - return 0; - - { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); - switch (chartFileNumber) { - case 1: - { - extern const mxArray - *sf_c1_MuscleSpindle_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c1_MuscleSpindle_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - case 2: - { - extern const mxArray - *sf_c2_MuscleSpindle_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c2_MuscleSpindle_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - case 3: - { - extern const mxArray - *sf_c3_MuscleSpindle_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c3_MuscleSpindle_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - case 4: - { - extern const mxArray - *sf_c4_MuscleSpindle_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c4_MuscleSpindle_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - case 5: - { - extern const mxArray - *sf_c5_MuscleSpindle_get_eml_resolved_functions_info(void); - mxArray *persistentMxArray = (mxArray *) - sf_c5_MuscleSpindle_get_eml_resolved_functions_info(); - plhs[0] = mxDuplicateArray(persistentMxArray); - mxDestroyArray(persistentMxArray); - break; - } - - default: - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - } - } - - return 1; - -#else - - return 0; - -#endif - -} - -unsigned int sf_MuscleSpindle_third_party_uses_info( int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[] ) -{ - char commandName[64]; - char tpChksum[64]; - if (nrhs<3 || !mxIsChar(prhs[0])) - return 0; - - /* Possible call to get the third_party_uses_info */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char)); - tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_third_party_uses_info")) - return 0; - - { - unsigned int chartFileNumber; - chartFileNumber = (unsigned int)mxGetScalar(prhs[1]); - switch (chartFileNumber) { - case 1: - { - if (strcmp(tpChksum, "nzeVWmC3UM9JgQUxVD8bGF") == 0) { - extern mxArray *sf_c1_MuscleSpindle_third_party_uses_info(void); - plhs[0] = sf_c1_MuscleSpindle_third_party_uses_info(); - break; - } - } - - case 2: - { - if (strcmp(tpChksum, "dkEDKYu5K2XI8jBbmLQ2HF") == 0) { - extern mxArray *sf_c2_MuscleSpindle_third_party_uses_info(void); - plhs[0] = sf_c2_MuscleSpindle_third_party_uses_info(); - break; - } - } - - case 3: - { - if (strcmp(tpChksum, "EIegXK4lrHvNN24BpctGtD") == 0) { - extern mxArray *sf_c3_MuscleSpindle_third_party_uses_info(void); - plhs[0] = sf_c3_MuscleSpindle_third_party_uses_info(); - break; - } - } - - case 4: - { - if (strcmp(tpChksum, "EIegXK4lrHvNN24BpctGtD") == 0) { - extern mxArray *sf_c4_MuscleSpindle_third_party_uses_info(void); - plhs[0] = sf_c4_MuscleSpindle_third_party_uses_info(); - break; - } - } - - case 5: - { - if (strcmp(tpChksum, "nzeVWmC3UM9JgQUxVD8bGF") == 0) { - extern mxArray *sf_c5_MuscleSpindle_third_party_uses_info(void); - plhs[0] = sf_c5_MuscleSpindle_third_party_uses_info(); - break; - } - } - - default: - plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL); - } - } - - return 1; -} - -void MuscleSpindle_debug_initialize(struct SfDebugInstanceStruct* debugInstance) -{ - _MuscleSpindleMachineNumber_ = sf_debug_initialize_machine(debugInstance, - "MuscleSpindle","sfun",0,5,0,0,0); - sf_debug_set_machine_event_thresholds(debugInstance, - _MuscleSpindleMachineNumber_,0,0); - sf_debug_set_machine_data_thresholds(debugInstance, - _MuscleSpindleMachineNumber_,0); -} - -void MuscleSpindle_register_exported_symbols(SimStruct* S) -{ -} - -static mxArray* sRtwOptimizationInfoStruct= NULL; -mxArray* load_MuscleSpindle_optimization_info(void) -{ - if (sRtwOptimizationInfoStruct==NULL) { - sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info("MuscleSpindle", - "MuscleSpindle"); - mexMakeArrayPersistent(sRtwOptimizationInfoStruct); - } - - return(sRtwOptimizationInfoStruct); -} - -void unload_MuscleSpindle_optimization_info(void) -{ - if (sRtwOptimizationInfoStruct!=NULL) { - mxDestroyArray(sRtwOptimizationInfoStruct); - sRtwOptimizationInfoStruct = NULL; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h deleted file mode 100644 index 5fb1006..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __MuscleSpindle_sfun_h__ -#define __MuscleSpindle_sfun_h__ - -/* Include files */ -#define S_FUNCTION_NAME sf_sfun -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" -#include "sfcdebug.h" -#define rtInf (mxGetInf()) -#define rtMinusInf (-(mxGetInf())) -#define rtNaN (mxGetNaN()) -#define rtIsNaN(X) ((int)mxIsNaN(X)) -#define rtIsInf(X) ((int)mxIsInf(X)) - -struct SfDebugInstanceStruct; -extern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct; - -/* Type Definitions */ - -/* Named Constants */ - -/* Variable Declarations */ -extern uint32_T _MuscleSpindleMachineNumber_; -extern real_T _sfTime_; - -/* Variable Definitions */ - -/* Function Declarations */ -extern void MuscleSpindle_initializer(void); -extern void MuscleSpindle_terminator(void); - -/* Function Definitions */ - -/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and - free it immediately in mdlStart. Given that this is machine-wide as - opposed to chart specific, we use NULL check to make sure it gets loaded - and unloaded once per machine even though the methods mdlSetWorkWidths/mdlStart - are chart/instance specific. The following methods abstract this out. */ -extern mxArray* load_MuscleSpindle_optimization_info(void); -extern void unload_MuscleSpindle_optimization_info(void); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mol b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mol deleted file mode 100644 index c542065..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun.mol +++ /dev/null @@ -1,7 +0,0 @@ -c1_MuscleSpindle.obj -c2_MuscleSpindle.obj -c3_MuscleSpindle.obj -c4_MuscleSpindle.obj -c5_MuscleSpindle.obj -MuscleSpindle_sfun_registry.obj -MuscleSpindle_sfun.obj diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h deleted file mode 100644 index 736096f..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_debug_macros.h +++ /dev/null @@ -1,424 +0,0 @@ -#ifndef __SF_DEBUG_MACROS_H__ -#define __SF_DEBUG_MACROS_H__ - -extern unsigned int _MuscleSpindleMachineNumber_; -#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\ - sf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL); -#define _SFD_UNSET_DATA_VALUE_PTR(v1)\ - sf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1); -#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\ - sf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3)); -#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\ - sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMin,(double)dMax) -#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\ - sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMin) -#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\ - sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal),(double)dMax) -#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\ - sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - dNum,(double)(dVal)) -#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\ - sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (unsigned int)(dNum),(bool)dVal) -#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) -#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \ - sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5)) -#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \ - sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6)) -#define _SFD_INTEGER_CHECK(v1,v2) \ - sf_debug_integer_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_NOT_NAN_CHECK(v1,v2) \ - sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \ - sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(double)(v2)) -#define _SFD_CAST_TO_UINT8(v1) \ - sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_UINT16(v1) \ - sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_UINT32(v1) \ - sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT8(v1) \ - sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT16(v1) \ - sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_INT32(v1) \ - sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_CAST_TO_SINGLE(v1) \ - sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ - (v1),0,0) -#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2) -#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER) -#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -CHART_OBJECT,v1,v2,v3,v4,\ -0,NULL,_sfTime_,1) -#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4) -#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4) -#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4) -#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4) -#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2,\ -v3,_sfTime_,0) -#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -v1,v2,v3) -#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -v1,v2,\ -v3,_sfTime_,1) -#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -CHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\ -v4,NULL,_sfTime_,(unsigned int)(v5)) -#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -(unsigned int)(v1),(v2),STATE_OBJECT,(v4)) -#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ -CHARTINSTANCE_CHARTNUMBER,\ -CHARTINSTANCE_INSTANCENUMBER,\ -(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4)) -#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(boolean_T)(v4)) -#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4)) -#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4)) -#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - TRANSITION_OBJECT,(v1),0,((v2)!=0)) -#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5) cv_eval_saturation(sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) -#define CV_SATURATION_ACCUM(v1,v2,v3,v4) cv_saturation_accum(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4)) -#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4) cv_eval_testobjective(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4)) - -/* Coverage Macros for MATLAB */ -#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(int)(v5)) -#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0) -#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5)) -#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5)) -#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5)) -#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0)) -#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5)) -#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(int)(v4)) -#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0) -#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4)) -#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4)) -#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4)) -#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0)) -#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4)) - -#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11)) - -#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7)) - -#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7)) - -#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11)) - -#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9)) - -#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) - -#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) - -#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) - -#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) - -#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) - -#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) - -#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \ - _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8)) - - -#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\ - sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (dataNumber),(dataScope),(isInputData),(isOutputData),(dataName)) -#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\ - sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ - (dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn)) -#define _SFD_STATE_INFO(v1,v2,v3)\ - sf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) -#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\ - sf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) -#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\ - sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3)) -#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\ - sf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) -#define _SFD_STATE_COV_WTS(v1,v2,v3,v4)\ - sf_debug_set_instance_state_coverage_weights(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) -#define _SFD_STATE_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) \ - sf_debug_set_chart_state_coverage_maps(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10)) -#define _SFD_TRANS_COV_WTS(v1,v2,v3,v4,v5) \ - sf_debug_set_instance_transition_coverage_weights(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5)) -#define _SFD_TRANS_COV_MAPS(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13) \ - sf_debug_set_chart_transition_coverage_maps(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),\ - (v2),(v3),(v4),\ - (v5),(v6),(v7),\ - (v8),(v9),(v10),\ - (v11),(v12),(v13)) - -#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \ - sf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - (v1),(v2)) -#define _SFD_EVENT_SCOPE(v1,v2)\ - sf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,(v1),(v2)) - -#define _SFD_CH_SUBSTATE_COUNT(v1) \ - sf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) -#define _SFD_CH_SUBSTATE_DECOMP(v1) \ - sf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1)) - -#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\ - sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\ - sf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8)) - -#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\ - sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - TRANSITION_OBJECT,(v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\ - sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - STATE_OBJECT, (v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - TRANSITION_OBJECT,(v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\ - sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - STATE_OBJECT, (v1),(v2),(v3),(v4)) - -#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\ - sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _MuscleSpindleMachineNumber_,\ - CHARTINSTANCE_CHARTNUMBER,\ - CHARTINSTANCE_INSTANCENUMBER,\ - (v1),(v2),(v3),(v4),(v5),(v6)) -#endif - -#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1) -#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4) -#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct) -#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) -#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) -#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5) -#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6) -#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5) -#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6) -#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) -#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1) -#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0) -#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct) -#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0) -#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1) -#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2) -#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) -#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) -#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3) -#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4) -#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0) -#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct) -#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct) -#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct) -#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0) diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c deleted file mode 100644 index 4c7c525..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/MuscleSpindle_sfun_registry.c +++ /dev/null @@ -1,325 +0,0 @@ -#include "MuscleSpindle_sfun.h" -#include "sfcdebug.h" - -struct SfDebugInstanceStruct; -struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL; - -#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL - -unsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs, - const mxArray * prhs[] ) -{ - extern unsigned int sf_MuscleSpindle_process_check_sum_call( int nlhs, mxArray - * plhs[], int nrhs, const mxArray * prhs[] ); - if (sf_MuscleSpindle_process_check_sum_call(nlhs,plhs,nrhs,prhs)) - return 1; - return 0; -} - -unsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int - nrhs, const mxArray * prhs[] ) -{ - extern unsigned int sf_MuscleSpindle_autoinheritance_info( int nlhs, mxArray * - plhs[], int nrhs, const mxArray * prhs[] ); - char commandName[64]; - char machineName[128]; - if (nrhs < 4) { - return 0; - } - - if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) - return 0; - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_autoinheritance_info")) - return 0; - mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); - machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; - if (strcmp(machineName, "MuscleSpindle") == 0) { - const mxArray *newRhs[3] = { NULL, NULL, NULL }; - - newRhs[0] = prhs[0]; - newRhs[1] = prhs[2]; - newRhs[2] = prhs[3]; - return sf_MuscleSpindle_autoinheritance_info(nlhs,plhs,3,newRhs); - } - - return 0; -} - -unsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray * - plhs[], int nrhs, const mxArray * prhs[] ) -{ - extern unsigned int sf_MuscleSpindle_third_party_uses_info( int nlhs, mxArray * - plhs[], int nrhs, const mxArray * prhs[] ); - char commandName[64]; - char machineName[128]; - if (nrhs < 4) { - return 0; - } - - if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) - return 0; - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_third_party_uses_info")) - return 0; - mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); - machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; - if (strcmp(machineName, "MuscleSpindle") == 0) { - const mxArray *newRhs[3] = { NULL, NULL, NULL }; - - newRhs[0] = prhs[0]; - newRhs[1] = prhs[2]; - newRhs[2] = prhs[3]; - return sf_MuscleSpindle_third_party_uses_info(nlhs,plhs,3,newRhs); - } - - return 0; -} - -unsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray * - plhs[], int nrhs, const mxArray * prhs[] ) -{ - extern unsigned int sf_MuscleSpindle_get_eml_resolved_functions_info( int nlhs, - mxArray * plhs[], int nrhs, const mxArray * prhs[] ); - char commandName[64]; - char machineName[128]; - if (nrhs < 3) { - return 0; - } - - if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1])) - return 0; - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"get_eml_resolved_functions_info")) - return 0; - mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char)); - machineName[(sizeof(machineName)/sizeof(char)-1)] = '\0'; - if (strcmp(machineName, "MuscleSpindle") == 0) { - const mxArray *newRhs[2] = { NULL, NULL }; - - newRhs[0] = prhs[0]; - newRhs[1] = prhs[2]; - return sf_MuscleSpindle_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs); - } - - return 0; -} - -unsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const - mxArray * prhs[] ) -{ - char commandName[20]; - if (nrhs<1 || !mxIsChar(prhs[0]) ) - return 0; - - /* Possible call to get the checksum */ - mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char)); - commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0'; - if (strcmp(commandName,"sf_mex_unlock")) - return 0; - while (mexIsLocked()) { - mexUnlock(); - } - - return(1); -} - -extern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance, - int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] ); -static unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs, - const mxArray * prhs[] ) -{ - return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs); -} - -static unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[], - int nrhs, const mxArray * prhs[]) -{ - if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs)) - return 1; - if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs)) - return 1; - mexErrMsgTxt("Unsuccessful command."); - return 0; -} - -static unsigned int sfGlobalMdlStartCallCounts = 0; -unsigned int sf_machine_global_initializer_called(void) -{ - return(sfGlobalMdlStartCallCounts > 0); -} - -extern unsigned int sf_MuscleSpindle_method_dispatcher(SimStruct *S, unsigned - int chartFileNumber, const char* specsCksum, int_T method, void *data); -unsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const - char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T - method, void *data) -{ - if (!strcmp(machineName,"MuscleSpindle")) { - return(sf_MuscleSpindle_method_dispatcher(simstructPtr,chartFileNumber, - specsCksum,method,data)); - } - - return 0; -} - -extern void MuscleSpindle_terminator(void); -void sf_machine_global_terminator(void) -{ - sfGlobalMdlStartCallCounts--; - if (sfGlobalMdlStartCallCounts == 0) { - MuscleSpindle_terminator(); - sf_debug_terminate(sfGlobalDebugInstanceStruct); - sfGlobalDebugInstanceStruct = NULL; - } - - return; -} - -extern void MuscleSpindle_initializer(void); -extern void MuscleSpindle_register_exported_symbols(SimStruct* S); -extern void MuscleSpindle_debug_initialize(struct SfDebugInstanceStruct*); -void sf_register_machine_exported_symbols(SimStruct* S) -{ - MuscleSpindle_register_exported_symbols(S); -} - -bool callCustomFcn(char initFlag) -{ - return false; -} - -void sf_machine_global_initializer(SimStruct* S) -{ - bool simModeIsRTWGen = sim_mode_is_rtw_gen(S); - sfGlobalMdlStartCallCounts++; - if (sfGlobalMdlStartCallCounts == 1) { - if (simModeIsRTWGen) { - sf_register_machine_exported_symbols(S); - } - - sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct(); - if (!simModeIsRTWGen) { - MuscleSpindle_debug_initialize(sfGlobalDebugInstanceStruct); - } - - MuscleSpindle_initializer(); - } - - return; -} - -#define PROCESS_MEX_SFUNCTION_EVERY_CALL - -unsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T - nrhs, const mxArray *prhs[]); - -#include "simulink.c" /* MEX-file interface mechanism */ - -static void sf_machine_load_sfunction_ptrs(SimStruct *S) -{ - ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes); - ssSetmdlInitializeConditions(S,__mdlInitializeConditions); - ssSetmdlOutputs(S,__mdlOutputs); - ssSetmdlTerminate(S,__mdlTerminate); - ssSetmdlRTW(S,__mdlRTW); - ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths); - -#if defined(MDL_HASSIMULATIONCONTEXTIO) - - ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO); - -#endif - -#if defined(MDL_START) - - ssSetmdlStart(S,__mdlStart); - -#endif - -#if defined(RTW_GENERATED_ENABLE) - - ssSetRTWGeneratedEnable(S,__mdlEnable); - -#endif - -#if defined(RTW_GENERATED_DISABLE) - - ssSetRTWGeneratedDisable(S,__mdlDisable); - -#endif - -#if defined(MDL_ENABLE) - - ssSetmdlEnable(S,__mdlEnable); - -#endif - -#if defined(MDL_DISABLE) - - ssSetmdlDisable(S,__mdlDisable); - -#endif - -#if defined(MDL_SIM_STATUS_CHANGE) - - ssSetmdlSimStatusChange(S,__mdlSimStatusChange); - -#endif - -#if defined(MDL_EXT_MODE_EXEC) - - ssSetmdlExtModeExec(S,__mdlExtModeExec); - -#endif - -#if defined(MDL_UPDATE) - - ssSetmdlUpdate(S,__mdlUpdate); - -#endif - -#if defined(MDL_PROCESS_PARAMETERS) - - ssSetmdlProcessParameters(S,__mdlProcessParameters); - -#endif - -#if defined(MDL_ZERO_CROSSINGS) - - ssSetmdlZeroCrossings(S,__mdlZeroCrossings); - -#endif - -#if defined(MDL_DERIVATIVES) - - ssSetmdlDerivatives(S,__mdlDerivatives); - -#endif - -} - -unsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T - nrhs, const mxArray *prhs[]) -{ - if (nlhs < 0) { - SimStruct *S = (SimStruct *)plhs[_LHS_SS]; - int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG])); - if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) { - sf_machine_load_sfunction_ptrs(S); - } - } - - return 0; -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c deleted file mode 100644 index 8f0576e..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.c +++ /dev/null @@ -1,1669 +0,0 @@ -/* Include files */ - -#include -#include "blas.h" -#include "MuscleSpindle_sfun.h" -#include "c1_MuscleSpindle.h" -#include "mwmathutil.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" -#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c1_debug_family_names[19] = { "LTerm", "nargin", "nargout", - "dT", "T", "L", "dL", "ddL", "Lsr0", "Ksr", "M", "C", "Beta", "a", "R", "Kpr", - "Lpr0", "Gamma", "ddT" }; - -/* Function Declarations */ -static void initialize_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void c1_update_debugger_state_c1_MuscleSpindle - (SFc1_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c1_MuscleSpindle - (SFc1_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_st); -static void finalize_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void registerMessagesc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c1_machineNumber, uint32_T - c1_chartNumber); -static const mxArray *c1_sf_marshallOut(void *chartInstanceVoid, void *c1_inData); -static real_T c1_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_ddT, const char_T *c1_identifier); -static real_T c1_b_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId); -static void c1_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c1_mxArrayInData, const char_T *c1_varName, void *c1_outData); -static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[17]); -static void c1_eml_scalar_eg(SFc1_MuscleSpindleInstanceStruct *chartInstance); -static void c1_eml_error(SFc1_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *c1_b_sf_marshallOut(void *chartInstanceVoid, void - *c1_inData); -static int32_T c1_c_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId); -static void c1_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c1_mxArrayInData, const char_T *c1_varName, void *c1_outData); -static uint8_T c1_d_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_b_is_active_c1_MuscleSpindle, const char_T - *c1_identifier); -static uint8_T c1_e_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId); -static void init_dsm_address_info(SFc1_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c1_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c1_is_active_c1_MuscleSpindle = 0U; -} - -static void initialize_params_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c1_update_debugger_state_c1_MuscleSpindle - (SFc1_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c1_MuscleSpindle - (SFc1_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c1_st; - const mxArray *c1_y = NULL; - real_T c1_hoistedGlobal; - real_T c1_u; - const mxArray *c1_b_y = NULL; - uint8_T c1_b_hoistedGlobal; - uint8_T c1_b_u; - const mxArray *c1_c_y = NULL; - real_T *c1_ddT; - c1_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c1_st = NULL; - c1_st = NULL; - c1_y = NULL; - sf_mex_assign(&c1_y, sf_mex_createcellarray(2), FALSE); - c1_hoistedGlobal = *c1_ddT; - c1_u = c1_hoistedGlobal; - c1_b_y = NULL; - sf_mex_assign(&c1_b_y, sf_mex_create("y", &c1_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c1_y, 0, c1_b_y); - c1_b_hoistedGlobal = chartInstance->c1_is_active_c1_MuscleSpindle; - c1_b_u = c1_b_hoistedGlobal; - c1_c_y = NULL; - sf_mex_assign(&c1_c_y, sf_mex_create("y", &c1_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c1_y, 1, c1_c_y); - sf_mex_assign(&c1_st, c1_y, FALSE); - return c1_st; -} - -static void set_sim_state_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_st) -{ - const mxArray *c1_u; - real_T *c1_ddT; - c1_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c1_doneDoubleBufferReInit = TRUE; - c1_u = sf_mex_dup(c1_st); - *c1_ddT = c1_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c1_u, 0)), - "ddT"); - chartInstance->c1_is_active_c1_MuscleSpindle = c1_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c1_u, 1)), - "is_active_c1_MuscleSpindle"); - sf_mex_destroy(&c1_u); - c1_update_debugger_state_c1_MuscleSpindle(chartInstance); - sf_mex_destroy(&c1_st); -} - -static void finalize_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c1_hoistedGlobal; - real_T c1_b_hoistedGlobal; - real_T c1_c_hoistedGlobal; - real_T c1_d_hoistedGlobal; - real_T c1_e_hoistedGlobal; - real_T c1_f_hoistedGlobal; - real_T c1_g_hoistedGlobal; - real_T c1_h_hoistedGlobal; - real_T c1_i_hoistedGlobal; - real_T c1_j_hoistedGlobal; - real_T c1_k_hoistedGlobal; - real_T c1_l_hoistedGlobal; - real_T c1_m_hoistedGlobal; - real_T c1_n_hoistedGlobal; - real_T c1_o_hoistedGlobal; - real_T c1_dT; - real_T c1_T; - real_T c1_L; - real_T c1_dL; - real_T c1_ddL; - real_T c1_Lsr0; - real_T c1_Ksr; - real_T c1_M; - real_T c1_C; - real_T c1_Beta; - real_T c1_a; - real_T c1_R; - real_T c1_Kpr; - real_T c1_Lpr0; - real_T c1_Gamma; - uint32_T c1_debug_family_var_map[19]; - real_T c1_LTerm; - real_T c1_nargin = 15.0; - real_T c1_nargout = 1.0; - real_T c1_ddT; - real_T c1_A; - real_T c1_B; - real_T c1_x; - real_T c1_y; - real_T c1_b_x; - real_T c1_b_y; - real_T c1_c_y; - real_T c1_b_A; - real_T c1_b_B; - real_T c1_c_x; - real_T c1_d_y; - real_T c1_d_x; - real_T c1_e_y; - real_T c1_f_y; - real_T c1_b_a; - real_T c1_b; - real_T c1_g_y; - real_T c1_c_A; - real_T c1_c_B; - real_T c1_e_x; - real_T c1_h_y; - real_T c1_f_x; - real_T c1_i_y; - real_T c1_j_y; - real_T c1_g_x; - real_T c1_h_x; - real_T c1_c_a; - real_T c1_b_b; - real_T c1_k_y; - real_T c1_d_A; - real_T c1_d_B; - real_T c1_i_x; - real_T c1_l_y; - real_T c1_j_x; - real_T c1_m_y; - real_T c1_n_y; - real_T c1_k_x; - real_T c1_l_x; - real_T c1_o_y; - real_T c1_d_a; - real_T c1_c_b; - real_T c1_e_a; - real_T c1_d_b; - real_T c1_f_a; - real_T c1_e_b; - real_T c1_ak; - real_T c1_bk; - real_T c1_m_x; - real_T c1_n_x; - real_T c1_g_a; - real_T c1_f_b; - real_T c1_ar; - real_T c1_br; - real_T c1_c; - real_T c1_h_a; - real_T c1_g_b; - real_T c1_p_y; - real_T c1_i_a; - real_T c1_h_b; - real_T c1_q_y; - real_T c1_j_a; - real_T c1_i_b; - real_T c1_r_y; - real_T c1_k_a; - real_T c1_j_b; - real_T c1_s_y; - real_T c1_l_a; - real_T c1_k_b; - real_T *c1_b_Gamma; - real_T *c1_b_Lpr0; - real_T *c1_b_Kpr; - real_T *c1_b_R; - real_T *c1_m_a; - real_T *c1_b_Beta; - real_T *c1_b_C; - real_T *c1_b_M; - real_T *c1_b_Ksr; - real_T *c1_b_Lsr0; - real_T *c1_b_ddL; - real_T *c1_b_dL; - real_T *c1_b_L; - real_T *c1_b_T; - real_T *c1_b_dT; - real_T *c1_b_ddT; - c1_b_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c1_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c1_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c1_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c1_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c1_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c1_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c1_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c1_b_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c1_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c1_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c1_b_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c1_b_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c1_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c1_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c1_b_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c1_sfEvent); - _SFD_DATA_RANGE_CHECK(*c1_b_dT, 0U); - _SFD_DATA_RANGE_CHECK(*c1_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c1_b_L, 2U); - _SFD_DATA_RANGE_CHECK(*c1_b_dL, 3U); - _SFD_DATA_RANGE_CHECK(*c1_b_ddL, 4U); - _SFD_DATA_RANGE_CHECK(*c1_b_Lsr0, 5U); - _SFD_DATA_RANGE_CHECK(*c1_b_Ksr, 6U); - _SFD_DATA_RANGE_CHECK(*c1_b_ddT, 7U); - _SFD_DATA_RANGE_CHECK(*c1_b_M, 8U); - _SFD_DATA_RANGE_CHECK(*c1_b_C, 9U); - _SFD_DATA_RANGE_CHECK(*c1_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c1_m_a, 11U); - _SFD_DATA_RANGE_CHECK(*c1_b_R, 12U); - _SFD_DATA_RANGE_CHECK(*c1_b_Kpr, 13U); - _SFD_DATA_RANGE_CHECK(*c1_b_Lpr0, 14U); - _SFD_DATA_RANGE_CHECK(*c1_b_Gamma, 15U); - chartInstance->c1_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c1_sfEvent); - c1_hoistedGlobal = *c1_b_dT; - c1_b_hoistedGlobal = *c1_b_T; - c1_c_hoistedGlobal = *c1_b_L; - c1_d_hoistedGlobal = *c1_b_dL; - c1_e_hoistedGlobal = *c1_b_ddL; - c1_f_hoistedGlobal = *c1_b_Lsr0; - c1_g_hoistedGlobal = *c1_b_Ksr; - c1_h_hoistedGlobal = *c1_b_M; - c1_i_hoistedGlobal = *c1_b_C; - c1_j_hoistedGlobal = *c1_b_Beta; - c1_k_hoistedGlobal = *c1_m_a; - c1_l_hoistedGlobal = *c1_b_R; - c1_m_hoistedGlobal = *c1_b_Kpr; - c1_n_hoistedGlobal = *c1_b_Lpr0; - c1_o_hoistedGlobal = *c1_b_Gamma; - c1_dT = c1_hoistedGlobal; - c1_T = c1_b_hoistedGlobal; - c1_L = c1_c_hoistedGlobal; - c1_dL = c1_d_hoistedGlobal; - c1_ddL = c1_e_hoistedGlobal; - c1_Lsr0 = c1_f_hoistedGlobal; - c1_Ksr = c1_g_hoistedGlobal; - c1_M = c1_h_hoistedGlobal; - c1_C = c1_i_hoistedGlobal; - c1_Beta = c1_j_hoistedGlobal; - c1_a = c1_k_hoistedGlobal; - c1_R = c1_l_hoistedGlobal; - c1_Kpr = c1_m_hoistedGlobal; - c1_Lpr0 = c1_n_hoistedGlobal; - c1_Gamma = c1_o_hoistedGlobal; - _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c1_debug_family_names, - c1_debug_family_var_map); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_LTerm, 0U, c1_sf_marshallOut, - c1_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_nargin, 1U, c1_sf_marshallOut, - c1_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_nargout, 2U, c1_sf_marshallOut, - c1_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_dT, 3U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_T, 4U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_L, 5U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_dL, 6U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_ddL, 7U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Lsr0, 8U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Ksr, 9U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_M, 10U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_C, 11U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Beta, 12U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_a, 13U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_R, 14U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Kpr, 15U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Lpr0, 16U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c1_Gamma, 17U, c1_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c1_ddT, 18U, c1_sf_marshallOut, - c1_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c1_sfEvent, 3); - c1_A = c1_T; - c1_B = c1_Ksr; - c1_x = c1_A; - c1_y = c1_B; - c1_b_x = c1_x; - c1_b_y = c1_y; - c1_c_y = c1_b_x / c1_b_y; - c1_LTerm = (c1_L - c1_Lsr0) - c1_c_y; - _SFD_EML_CALL(0U, chartInstance->c1_sfEvent, 5); - c1_b_A = c1_Ksr; - c1_b_B = c1_M; - c1_c_x = c1_b_A; - c1_d_y = c1_b_B; - c1_d_x = c1_c_x; - c1_e_y = c1_d_y; - c1_f_y = c1_d_x / c1_e_y; - c1_b_a = c1_C; - c1_b = c1_Beta; - c1_g_y = c1_b_a * c1_b; - c1_c_A = c1_dT; - c1_c_B = c1_Ksr; - c1_e_x = c1_c_A; - c1_h_y = c1_c_B; - c1_f_x = c1_e_x; - c1_i_y = c1_h_y; - c1_j_y = c1_f_x / c1_i_y; - c1_g_x = c1_dL - c1_j_y; - c1_h_x = c1_g_x; - c1_h_x = muDoubleScalarSign(c1_h_x); - c1_c_a = c1_g_y; - c1_b_b = c1_h_x; - c1_k_y = c1_c_a * c1_b_b; - c1_d_A = c1_dT; - c1_d_B = c1_Ksr; - c1_i_x = c1_d_A; - c1_l_y = c1_d_B; - c1_j_x = c1_i_x; - c1_m_y = c1_l_y; - c1_n_y = c1_j_x / c1_m_y; - c1_k_x = c1_dL - c1_n_y; - c1_l_x = c1_k_x; - c1_o_y = muDoubleScalarAbs(c1_l_x); - c1_d_a = c1_o_y; - c1_c_b = c1_a; - c1_e_a = c1_d_a; - c1_d_b = c1_c_b; - c1_f_a = c1_e_a; - c1_e_b = c1_d_b; - c1_eml_scalar_eg(chartInstance); - c1_ak = c1_f_a; - c1_bk = c1_e_b; - if (c1_ak < 0.0) { - c1_m_x = c1_bk; - c1_n_x = c1_m_x; - c1_n_x = muDoubleScalarFloor(c1_n_x); - if (c1_n_x != c1_bk) { - c1_eml_error(chartInstance); - } - } - - c1_g_a = c1_ak; - c1_f_b = c1_bk; - c1_eml_scalar_eg(chartInstance); - c1_ar = c1_g_a; - c1_br = c1_f_b; - c1_c = muDoubleScalarPower(c1_ar, c1_br); - c1_h_a = c1_k_y; - c1_g_b = c1_c; - c1_p_y = c1_h_a * c1_g_b; - c1_i_a = c1_p_y; - c1_h_b = c1_LTerm - c1_R; - c1_q_y = c1_i_a * c1_h_b; - c1_j_a = c1_Kpr; - c1_i_b = c1_LTerm - c1_Lpr0; - c1_r_y = c1_j_a * c1_i_b; - c1_k_a = c1_M; - c1_j_b = c1_ddL; - c1_s_y = c1_k_a * c1_j_b; - c1_l_a = c1_f_y; - c1_k_b = (((c1_q_y + c1_r_y) + c1_s_y) + c1_Gamma) - c1_T; - c1_ddT = c1_l_a * c1_k_b; - _SFD_EML_CALL(0U, chartInstance->c1_sfEvent, -5); - _SFD_SYMBOL_SCOPE_POP(); - *c1_b_ddT = c1_ddT; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c1_sfEvent); - _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void registerMessagesc1_MuscleSpindle(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c1_machineNumber, uint32_T - c1_chartNumber) -{ -} - -static const mxArray *c1_sf_marshallOut(void *chartInstanceVoid, void *c1_inData) -{ - const mxArray *c1_mxArrayOutData = NULL; - real_T c1_u; - const mxArray *c1_y = NULL; - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c1_mxArrayOutData = NULL; - c1_u = *(real_T *)c1_inData; - c1_y = NULL; - sf_mex_assign(&c1_y, sf_mex_create("y", &c1_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c1_mxArrayOutData, c1_y, FALSE); - return c1_mxArrayOutData; -} - -static real_T c1_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_ddT, const char_T *c1_identifier) -{ - real_T c1_y; - emlrtMsgIdentifier c1_thisId; - c1_thisId.fIdentifier = c1_identifier; - c1_thisId.fParent = NULL; - c1_y = c1_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c1_ddT), &c1_thisId); - sf_mex_destroy(&c1_ddT); - return c1_y; -} - -static real_T c1_b_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId) -{ - real_T c1_y; - real_T c1_d0; - sf_mex_import(c1_parentId, sf_mex_dup(c1_u), &c1_d0, 1, 0, 0U, 0, 0U, 0); - c1_y = c1_d0; - sf_mex_destroy(&c1_u); - return c1_y; -} - -static void c1_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c1_mxArrayInData, const char_T *c1_varName, void *c1_outData) -{ - const mxArray *c1_ddT; - const char_T *c1_identifier; - emlrtMsgIdentifier c1_thisId; - real_T c1_y; - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c1_ddT = sf_mex_dup(c1_mxArrayInData); - c1_identifier = c1_varName; - c1_thisId.fIdentifier = c1_identifier; - c1_thisId.fParent = NULL; - c1_y = c1_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c1_ddT), &c1_thisId); - sf_mex_destroy(&c1_ddT); - *(real_T *)c1_outData = c1_y; - sf_mex_destroy(&c1_mxArrayInData); -} - -const mxArray *sf_c1_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c1_nameCaptureInfo; - c1_ResolvedFunctionInfo c1_info[17]; - const mxArray *c1_m0 = NULL; - int32_T c1_i0; - c1_ResolvedFunctionInfo *c1_r0; - c1_nameCaptureInfo = NULL; - c1_nameCaptureInfo = NULL; - c1_info_helper(c1_info); - sf_mex_assign(&c1_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); - for (c1_i0 = 0; c1_i0 < 17; c1_i0++) { - c1_r0 = &c1_info[c1_i0]; - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", c1_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c1_r0->context)), "context", "nameCaptureInfo", - c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", c1_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c1_r0->name)), "name", "nameCaptureInfo", c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", c1_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c1_r0->dominantType)), "dominantType", - "nameCaptureInfo", c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", c1_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c1_r0->resolved)), "resolved", "nameCaptureInfo", - c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", &c1_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", &c1_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", &c1_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c1_i0); - sf_mex_addfield(c1_m0, sf_mex_create("nameCaptureInfo", &c1_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c1_i0); - } - - sf_mex_assign(&c1_nameCaptureInfo, c1_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c1_nameCaptureInfo); - return c1_nameCaptureInfo; -} - -static void c1_info_helper(c1_ResolvedFunctionInfo c1_info[17]) -{ - c1_info[0].context = ""; - c1_info[0].name = "mrdivide"; - c1_info[0].dominantType = "double"; - c1_info[0].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c1_info[0].fileTimeLo = 1357947948U; - c1_info[0].fileTimeHi = 0U; - c1_info[0].mFileTimeLo = 1319726366U; - c1_info[0].mFileTimeHi = 0U; - c1_info[1].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c1_info[1].name = "rdivide"; - c1_info[1].dominantType = "double"; - c1_info[1].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c1_info[1].fileTimeLo = 1346506788U; - c1_info[1].fileTimeHi = 0U; - c1_info[1].mFileTimeLo = 0U; - c1_info[1].mFileTimeHi = 0U; - c1_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c1_info[2].name = "eml_scalexp_compatible"; - c1_info[2].dominantType = "double"; - c1_info[2].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; - c1_info[2].fileTimeLo = 1286815196U; - c1_info[2].fileTimeHi = 0U; - c1_info[2].mFileTimeLo = 0U; - c1_info[2].mFileTimeHi = 0U; - c1_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c1_info[3].name = "eml_div"; - c1_info[3].dominantType = "double"; - c1_info[3].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; - c1_info[3].fileTimeLo = 1313344210U; - c1_info[3].fileTimeHi = 0U; - c1_info[3].mFileTimeLo = 0U; - c1_info[3].mFileTimeHi = 0U; - c1_info[4].context = ""; - c1_info[4].name = "mtimes"; - c1_info[4].dominantType = "double"; - c1_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; - c1_info[4].fileTimeLo = 1289516092U; - c1_info[4].fileTimeHi = 0U; - c1_info[4].mFileTimeLo = 0U; - c1_info[4].mFileTimeHi = 0U; - c1_info[5].context = ""; - c1_info[5].name = "sign"; - c1_info[5].dominantType = "double"; - c1_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c1_info[5].fileTimeLo = 1354364464U; - c1_info[5].fileTimeHi = 0U; - c1_info[5].mFileTimeLo = 0U; - c1_info[5].mFileTimeHi = 0U; - c1_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c1_info[6].name = "eml_scalar_sign"; - c1_info[6].dominantType = "double"; - c1_info[6].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c1_info[6].fileTimeLo = 1354364464U; - c1_info[6].fileTimeHi = 0U; - c1_info[6].mFileTimeLo = 0U; - c1_info[6].mFileTimeHi = 0U; - c1_info[7].context = ""; - c1_info[7].name = "abs"; - c1_info[7].dominantType = "double"; - c1_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c1_info[7].fileTimeLo = 1343826766U; - c1_info[7].fileTimeHi = 0U; - c1_info[7].mFileTimeLo = 0U; - c1_info[7].mFileTimeHi = 0U; - c1_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c1_info[8].name = "eml_scalar_abs"; - c1_info[8].dominantType = "double"; - c1_info[8].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c1_info[8].fileTimeLo = 1286815112U; - c1_info[8].fileTimeHi = 0U; - c1_info[8].mFileTimeLo = 0U; - c1_info[8].mFileTimeHi = 0U; - c1_info[9].context = ""; - c1_info[9].name = "mpower"; - c1_info[9].dominantType = "double"; - c1_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c1_info[9].fileTimeLo = 1286815242U; - c1_info[9].fileTimeHi = 0U; - c1_info[9].mFileTimeLo = 0U; - c1_info[9].mFileTimeHi = 0U; - c1_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c1_info[10].name = "power"; - c1_info[10].dominantType = "double"; - c1_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; - c1_info[10].fileTimeLo = 1348188330U; - c1_info[10].fileTimeHi = 0U; - c1_info[10].mFileTimeLo = 0U; - c1_info[10].mFileTimeHi = 0U; - c1_info[11].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c1_info[11].name = "eml_scalar_eg"; - c1_info[11].dominantType = "double"; - c1_info[11].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c1_info[11].fileTimeLo = 1286815196U; - c1_info[11].fileTimeHi = 0U; - c1_info[11].mFileTimeLo = 0U; - c1_info[11].mFileTimeHi = 0U; - c1_info[12].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c1_info[12].name = "eml_scalexp_alloc"; - c1_info[12].dominantType = "double"; - c1_info[12].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c1_info[12].fileTimeLo = 1352421260U; - c1_info[12].fileTimeHi = 0U; - c1_info[12].mFileTimeLo = 0U; - c1_info[12].mFileTimeHi = 0U; - c1_info[13].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c1_info[13].name = "floor"; - c1_info[13].dominantType = "double"; - c1_info[13].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c1_info[13].fileTimeLo = 1343826780U; - c1_info[13].fileTimeHi = 0U; - c1_info[13].mFileTimeLo = 0U; - c1_info[13].mFileTimeHi = 0U; - c1_info[14].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c1_info[14].name = "eml_scalar_floor"; - c1_info[14].dominantType = "double"; - c1_info[14].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c1_info[14].fileTimeLo = 1286815126U; - c1_info[14].fileTimeHi = 0U; - c1_info[14].mFileTimeLo = 0U; - c1_info[14].mFileTimeHi = 0U; - c1_info[15].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c1_info[15].name = "eml_error"; - c1_info[15].dominantType = "char"; - c1_info[15].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; - c1_info[15].fileTimeLo = 1343826758U; - c1_info[15].fileTimeHi = 0U; - c1_info[15].mFileTimeLo = 0U; - c1_info[15].mFileTimeHi = 0U; - c1_info[16].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; - c1_info[16].name = "eml_scalar_eg"; - c1_info[16].dominantType = "double"; - c1_info[16].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c1_info[16].fileTimeLo = 1286815196U; - c1_info[16].fileTimeHi = 0U; - c1_info[16].mFileTimeLo = 0U; - c1_info[16].mFileTimeHi = 0U; -} - -static void c1_eml_scalar_eg(SFc1_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static void c1_eml_error(SFc1_MuscleSpindleInstanceStruct *chartInstance) -{ - int32_T c1_i1; - static char_T c1_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', - 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', - 'n', 'E', 'r', 'r', 'o', 'r' }; - - char_T c1_u[31]; - const mxArray *c1_y = NULL; - for (c1_i1 = 0; c1_i1 < 31; c1_i1++) { - c1_u[c1_i1] = c1_cv0[c1_i1]; - } - - c1_y = NULL; - sf_mex_assign(&c1_y, sf_mex_create("y", c1_u, 10, 0U, 1U, 0U, 2, 1, 31), FALSE); - sf_mex_call_debug("error", 0U, 1U, 14, sf_mex_call_debug("message", 1U, 1U, 14, - c1_y)); -} - -static const mxArray *c1_b_sf_marshallOut(void *chartInstanceVoid, void - *c1_inData) -{ - const mxArray *c1_mxArrayOutData = NULL; - int32_T c1_u; - const mxArray *c1_y = NULL; - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c1_mxArrayOutData = NULL; - c1_u = *(int32_T *)c1_inData; - c1_y = NULL; - sf_mex_assign(&c1_y, sf_mex_create("y", &c1_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c1_mxArrayOutData, c1_y, FALSE); - return c1_mxArrayOutData; -} - -static int32_T c1_c_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId) -{ - int32_T c1_y; - int32_T c1_i2; - sf_mex_import(c1_parentId, sf_mex_dup(c1_u), &c1_i2, 1, 6, 0U, 0, 0U, 0); - c1_y = c1_i2; - sf_mex_destroy(&c1_u); - return c1_y; -} - -static void c1_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c1_mxArrayInData, const char_T *c1_varName, void *c1_outData) -{ - const mxArray *c1_b_sfEvent; - const char_T *c1_identifier; - emlrtMsgIdentifier c1_thisId; - int32_T c1_y; - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c1_b_sfEvent = sf_mex_dup(c1_mxArrayInData); - c1_identifier = c1_varName; - c1_thisId.fIdentifier = c1_identifier; - c1_thisId.fParent = NULL; - c1_y = c1_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c1_b_sfEvent), - &c1_thisId); - sf_mex_destroy(&c1_b_sfEvent); - *(int32_T *)c1_outData = c1_y; - sf_mex_destroy(&c1_mxArrayInData); -} - -static uint8_T c1_d_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_b_is_active_c1_MuscleSpindle, const char_T - *c1_identifier) -{ - uint8_T c1_y; - emlrtMsgIdentifier c1_thisId; - c1_thisId.fIdentifier = c1_identifier; - c1_thisId.fParent = NULL; - c1_y = c1_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c1_b_is_active_c1_MuscleSpindle), &c1_thisId); - sf_mex_destroy(&c1_b_is_active_c1_MuscleSpindle); - return c1_y; -} - -static uint8_T c1_e_emlrt_marshallIn(SFc1_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c1_u, const emlrtMsgIdentifier *c1_parentId) -{ - uint8_T c1_y; - uint8_T c1_u0; - sf_mex_import(c1_parentId, sf_mex_dup(c1_u), &c1_u0, 1, 3, 0U, 0, 0U, 0); - c1_y = c1_u0; - sf_mex_destroy(&c1_u); - return c1_y; -} - -static void init_dsm_address_info(SFc1_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -#ifdef utFree -#undef utFree -#endif - -#ifdef utMalloc -#undef utMalloc -#endif - -#ifdef __cplusplus - -extern "C" void *utMalloc(size_t size); -extern "C" void utFree(void*); - -#else - -extern void *utMalloc(size_t size); -extern void utFree(void*); - -#endif - -void sf_c1_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3759668626U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1485165160U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3860467207U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4026735211U); -} - -mxArray *sf_c1_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("ww8NqEKWGCNBxeBEMAhny"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,15,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,10,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,10,"type",mxType); - } - - mxSetField(mxData,10,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,11,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,11,"type",mxType); - } - - mxSetField(mxData,11,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,12,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,12,"type",mxType); - } - - mxSetField(mxData,12,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,13,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,13,"type",mxType); - } - - mxSetField(mxData,13,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,14,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,14,"type",mxType); - } - - mxSetField(mxData,14,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -mxArray *sf_c1_MuscleSpindle_third_party_uses_info(void) -{ - mxArray * mxcell3p = mxCreateCellMatrix(1,0); - return(mxcell3p); -} - -static const mxArray *sf_get_sim_state_info_c1_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ddT\",},{M[8],M[0],T\"is_active_c1_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c1_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - 1, - 1, - 1, - 16, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"dT"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"L"); - _SFD_SET_DATA_PROPS(3,1,1,0,"dL"); - _SFD_SET_DATA_PROPS(4,1,1,0,"ddL"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(7,2,0,1,"ddT"); - _SFD_SET_DATA_PROPS(8,1,1,0,"M"); - _SFD_SET_DATA_PROPS(9,1,1,0,"C"); - _SFD_SET_DATA_PROPS(10,1,1,0,"Beta"); - _SFD_SET_DATA_PROPS(11,1,1,0,"a"); - _SFD_SET_DATA_PROPS(12,1,1,0,"R"); - _SFD_SET_DATA_PROPS(13,1,1,0,"Kpr"); - _SFD_SET_DATA_PROPS(14,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(15,1,1,0,"Gamma"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,340); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)c1_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c1_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c1_dT; - real_T *c1_T; - real_T *c1_L; - real_T *c1_dL; - real_T *c1_ddL; - real_T *c1_Lsr0; - real_T *c1_Ksr; - real_T *c1_ddT; - real_T *c1_M; - real_T *c1_C; - real_T *c1_Beta; - real_T *c1_a; - real_T *c1_R; - real_T *c1_Kpr; - real_T *c1_Lpr0; - real_T *c1_Gamma; - c1_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c1_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c1_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c1_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c1_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c1_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c1_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c1_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c1_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c1_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c1_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c1_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c1_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c1_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c1_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c1_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c1_dT); - _SFD_SET_DATA_VALUE_PTR(1U, c1_T); - _SFD_SET_DATA_VALUE_PTR(2U, c1_L); - _SFD_SET_DATA_VALUE_PTR(3U, c1_dL); - _SFD_SET_DATA_VALUE_PTR(4U, c1_ddL); - _SFD_SET_DATA_VALUE_PTR(5U, c1_Lsr0); - _SFD_SET_DATA_VALUE_PTR(6U, c1_Ksr); - _SFD_SET_DATA_VALUE_PTR(7U, c1_ddT); - _SFD_SET_DATA_VALUE_PTR(8U, c1_M); - _SFD_SET_DATA_VALUE_PTR(9U, c1_C); - _SFD_SET_DATA_VALUE_PTR(10U, c1_Beta); - _SFD_SET_DATA_VALUE_PTR(11U, c1_a); - _SFD_SET_DATA_VALUE_PTR(12U, c1_R); - _SFD_SET_DATA_VALUE_PTR(13U, c1_Kpr); - _SFD_SET_DATA_VALUE_PTR(14U, c1_Lpr0); - _SFD_SET_DATA_VALUE_PTR(15U, c1_Gamma); - } - } - } else { - sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_,chartInstance->chartNumber, - chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization(void) -{ - return "nzeVWmC3UM9JgQUxVD8bGF"; -} - -static void sf_opaque_initialize_c1_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc1_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c1_MuscleSpindle(void *chartInstanceVar) -{ - enable_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c1_MuscleSpindle(void *chartInstanceVar) -{ - disable_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c1_MuscleSpindle(void *chartInstanceVar) -{ - sf_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c1_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c1_MuscleSpindle - ((SFc1_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c1_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c1_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c1_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c1_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c1_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c1_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c1_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c1_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc1_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - unload_MuscleSpindle_optimization_info(); - } - - finalize_c1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) - chartInstanceVar); - utFree((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc1_MuscleSpindle((SFc1_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c1_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c1_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 1); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,1,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,1, - "gatewayCannotBeInlinedMultipleTimes")); - sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,1); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 13, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 14, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,1,15); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,1,1); - } - - { - unsigned int outPortIdx; - for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { - ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); - } - } - - { - unsigned int inPortIdx; - for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { - ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); - } - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,1); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(1887359987U)); - ssSetChecksum1(S,(2978979302U)); - ssSetChecksum2(S,(216772070U)); - ssSetChecksum3(S,(2826531006U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); - ssSupportsMultipleExecInstances(S,1); -} - -static void mdlRTW_c1_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c1_MuscleSpindle(SimStruct *S) -{ - SFc1_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc1_MuscleSpindleInstanceStruct *)utMalloc(sizeof - (SFc1_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc1_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c1_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c1_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c1_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c1_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c1_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c1_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c1_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c1_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c1_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c1_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c1_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c1_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c1_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c1_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c1_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c1_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h deleted file mode 100644 index 84adb74..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c1_MuscleSpindle.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __c1_MuscleSpindle_h__ -#define __c1_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -#ifndef typedef_c1_ResolvedFunctionInfo -#define typedef_c1_ResolvedFunctionInfo - -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c1_ResolvedFunctionInfo; - -#endif /*typedef_c1_ResolvedFunctionInfo*/ - -#ifndef typedef_SFc1_MuscleSpindleInstanceStruct -#define typedef_SFc1_MuscleSpindleInstanceStruct - -typedef struct { - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; - int32_T c1_sfEvent; - boolean_T c1_isStable; - boolean_T c1_doneDoubleBufferReInit; - uint8_T c1_is_active_c1_MuscleSpindle; -} SFc1_MuscleSpindleInstanceStruct; - -#endif /*typedef_SFc1_MuscleSpindleInstanceStruct*/ - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c1_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c1_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c1_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c deleted file mode 100644 index 626bee9..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.c +++ /dev/null @@ -1,1669 +0,0 @@ -/* Include files */ - -#include -#include "blas.h" -#include "MuscleSpindle_sfun.h" -#include "c2_MuscleSpindle.h" -#include "mwmathutil.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" -#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c2_debug_family_names[19] = { "LTerm", "nargin", "nargout", - "dT", "T", "L", "dL", "ddL", "Lsr0", "Ksr", "M", "C", "Beta", "a", "R", "Kpr", - "Lpr0", "Gamma", "ddT" }; - -/* Function Declarations */ -static void initialize_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void c2_update_debugger_state_c2_MuscleSpindle - (SFc2_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c2_MuscleSpindle - (SFc2_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_st); -static void finalize_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void registerMessagesc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T - c2_chartNumber); -static const mxArray *c2_sf_marshallOut(void *chartInstanceVoid, void *c2_inData); -static real_T c2_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_ddT, const char_T *c2_identifier); -static real_T c2_b_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData); -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[17]); -static void c2_eml_scalar_eg(SFc2_MuscleSpindleInstanceStruct *chartInstance); -static void c2_eml_error(SFc2_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *c2_b_sf_marshallOut(void *chartInstanceVoid, void - *c2_inData); -static int32_T c2_c_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void c2_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData); -static uint8_T c2_d_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_b_is_active_c2_MuscleSpindle, const char_T - *c2_identifier); -static uint8_T c2_e_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId); -static void init_dsm_address_info(SFc2_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c2_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c2_is_active_c2_MuscleSpindle = 0U; -} - -static void initialize_params_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c2_update_debugger_state_c2_MuscleSpindle - (SFc2_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c2_MuscleSpindle - (SFc2_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c2_st; - const mxArray *c2_y = NULL; - real_T c2_hoistedGlobal; - real_T c2_u; - const mxArray *c2_b_y = NULL; - uint8_T c2_b_hoistedGlobal; - uint8_T c2_b_u; - const mxArray *c2_c_y = NULL; - real_T *c2_ddT; - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_st = NULL; - c2_st = NULL; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_createcellarray(2), FALSE); - c2_hoistedGlobal = *c2_ddT; - c2_u = c2_hoistedGlobal; - c2_b_y = NULL; - sf_mex_assign(&c2_b_y, sf_mex_create("y", &c2_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c2_y, 0, c2_b_y); - c2_b_hoistedGlobal = chartInstance->c2_is_active_c2_MuscleSpindle; - c2_b_u = c2_b_hoistedGlobal; - c2_c_y = NULL; - sf_mex_assign(&c2_c_y, sf_mex_create("y", &c2_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c2_y, 1, c2_c_y); - sf_mex_assign(&c2_st, c2_y, FALSE); - return c2_st; -} - -static void set_sim_state_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_st) -{ - const mxArray *c2_u; - real_T *c2_ddT; - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c2_doneDoubleBufferReInit = TRUE; - c2_u = sf_mex_dup(c2_st); - *c2_ddT = c2_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c2_u, 0)), - "ddT"); - chartInstance->c2_is_active_c2_MuscleSpindle = c2_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c2_u, 1)), - "is_active_c2_MuscleSpindle"); - sf_mex_destroy(&c2_u); - c2_update_debugger_state_c2_MuscleSpindle(chartInstance); - sf_mex_destroy(&c2_st); -} - -static void finalize_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c2_hoistedGlobal; - real_T c2_b_hoistedGlobal; - real_T c2_c_hoistedGlobal; - real_T c2_d_hoistedGlobal; - real_T c2_e_hoistedGlobal; - real_T c2_f_hoistedGlobal; - real_T c2_g_hoistedGlobal; - real_T c2_h_hoistedGlobal; - real_T c2_i_hoistedGlobal; - real_T c2_j_hoistedGlobal; - real_T c2_k_hoistedGlobal; - real_T c2_l_hoistedGlobal; - real_T c2_m_hoistedGlobal; - real_T c2_n_hoistedGlobal; - real_T c2_o_hoistedGlobal; - real_T c2_dT; - real_T c2_T; - real_T c2_L; - real_T c2_dL; - real_T c2_ddL; - real_T c2_Lsr0; - real_T c2_Ksr; - real_T c2_M; - real_T c2_C; - real_T c2_Beta; - real_T c2_a; - real_T c2_R; - real_T c2_Kpr; - real_T c2_Lpr0; - real_T c2_Gamma; - uint32_T c2_debug_family_var_map[19]; - real_T c2_LTerm; - real_T c2_nargin = 15.0; - real_T c2_nargout = 1.0; - real_T c2_ddT; - real_T c2_A; - real_T c2_B; - real_T c2_x; - real_T c2_y; - real_T c2_b_x; - real_T c2_b_y; - real_T c2_c_y; - real_T c2_b_A; - real_T c2_b_B; - real_T c2_c_x; - real_T c2_d_y; - real_T c2_d_x; - real_T c2_e_y; - real_T c2_f_y; - real_T c2_b_a; - real_T c2_b; - real_T c2_g_y; - real_T c2_c_A; - real_T c2_c_B; - real_T c2_e_x; - real_T c2_h_y; - real_T c2_f_x; - real_T c2_i_y; - real_T c2_j_y; - real_T c2_g_x; - real_T c2_h_x; - real_T c2_c_a; - real_T c2_b_b; - real_T c2_k_y; - real_T c2_d_A; - real_T c2_d_B; - real_T c2_i_x; - real_T c2_l_y; - real_T c2_j_x; - real_T c2_m_y; - real_T c2_n_y; - real_T c2_k_x; - real_T c2_l_x; - real_T c2_o_y; - real_T c2_d_a; - real_T c2_c_b; - real_T c2_e_a; - real_T c2_d_b; - real_T c2_f_a; - real_T c2_e_b; - real_T c2_ak; - real_T c2_bk; - real_T c2_m_x; - real_T c2_n_x; - real_T c2_g_a; - real_T c2_f_b; - real_T c2_ar; - real_T c2_br; - real_T c2_c; - real_T c2_h_a; - real_T c2_g_b; - real_T c2_p_y; - real_T c2_i_a; - real_T c2_h_b; - real_T c2_q_y; - real_T c2_j_a; - real_T c2_i_b; - real_T c2_r_y; - real_T c2_k_a; - real_T c2_j_b; - real_T c2_s_y; - real_T c2_l_a; - real_T c2_k_b; - real_T *c2_b_Gamma; - real_T *c2_b_Lpr0; - real_T *c2_b_Kpr; - real_T *c2_b_R; - real_T *c2_m_a; - real_T *c2_b_Beta; - real_T *c2_b_C; - real_T *c2_b_M; - real_T *c2_b_Ksr; - real_T *c2_b_Lsr0; - real_T *c2_b_ddL; - real_T *c2_b_dL; - real_T *c2_b_L; - real_T *c2_b_T; - real_T *c2_b_dT; - real_T *c2_b_ddT; - c2_b_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c2_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c2_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c2_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c2_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c2_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c2_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c2_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c2_b_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c2_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c2_b_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c2_b_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c2_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c2_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c2_b_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c2_sfEvent); - _SFD_DATA_RANGE_CHECK(*c2_b_dT, 0U); - _SFD_DATA_RANGE_CHECK(*c2_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c2_b_L, 2U); - _SFD_DATA_RANGE_CHECK(*c2_b_dL, 3U); - _SFD_DATA_RANGE_CHECK(*c2_b_ddL, 4U); - _SFD_DATA_RANGE_CHECK(*c2_b_Lsr0, 5U); - _SFD_DATA_RANGE_CHECK(*c2_b_Ksr, 6U); - _SFD_DATA_RANGE_CHECK(*c2_b_ddT, 7U); - _SFD_DATA_RANGE_CHECK(*c2_b_M, 8U); - _SFD_DATA_RANGE_CHECK(*c2_b_C, 9U); - _SFD_DATA_RANGE_CHECK(*c2_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c2_m_a, 11U); - _SFD_DATA_RANGE_CHECK(*c2_b_R, 12U); - _SFD_DATA_RANGE_CHECK(*c2_b_Kpr, 13U); - _SFD_DATA_RANGE_CHECK(*c2_b_Lpr0, 14U); - _SFD_DATA_RANGE_CHECK(*c2_b_Gamma, 15U); - chartInstance->c2_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c2_sfEvent); - c2_hoistedGlobal = *c2_b_dT; - c2_b_hoistedGlobal = *c2_b_T; - c2_c_hoistedGlobal = *c2_b_L; - c2_d_hoistedGlobal = *c2_b_dL; - c2_e_hoistedGlobal = *c2_b_ddL; - c2_f_hoistedGlobal = *c2_b_Lsr0; - c2_g_hoistedGlobal = *c2_b_Ksr; - c2_h_hoistedGlobal = *c2_b_M; - c2_i_hoistedGlobal = *c2_b_C; - c2_j_hoistedGlobal = *c2_b_Beta; - c2_k_hoistedGlobal = *c2_m_a; - c2_l_hoistedGlobal = *c2_b_R; - c2_m_hoistedGlobal = *c2_b_Kpr; - c2_n_hoistedGlobal = *c2_b_Lpr0; - c2_o_hoistedGlobal = *c2_b_Gamma; - c2_dT = c2_hoistedGlobal; - c2_T = c2_b_hoistedGlobal; - c2_L = c2_c_hoistedGlobal; - c2_dL = c2_d_hoistedGlobal; - c2_ddL = c2_e_hoistedGlobal; - c2_Lsr0 = c2_f_hoistedGlobal; - c2_Ksr = c2_g_hoistedGlobal; - c2_M = c2_h_hoistedGlobal; - c2_C = c2_i_hoistedGlobal; - c2_Beta = c2_j_hoistedGlobal; - c2_a = c2_k_hoistedGlobal; - c2_R = c2_l_hoistedGlobal; - c2_Kpr = c2_m_hoistedGlobal; - c2_Lpr0 = c2_n_hoistedGlobal; - c2_Gamma = c2_o_hoistedGlobal; - _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c2_debug_family_names, - c2_debug_family_var_map); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_LTerm, 0U, c2_sf_marshallOut, - c2_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargin, 1U, c2_sf_marshallOut, - c2_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargout, 2U, c2_sf_marshallOut, - c2_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_dT, 3U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_T, 4U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_L, 5U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_dL, 6U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_ddL, 7U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Lsr0, 8U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Ksr, 9U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_M, 10U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_C, 11U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Beta, 12U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_a, 13U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_R, 14U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Kpr, 15U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Lpr0, 16U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c2_Gamma, 17U, c2_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_ddT, 18U, c2_sf_marshallOut, - c2_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 3); - c2_A = c2_T; - c2_B = c2_Ksr; - c2_x = c2_A; - c2_y = c2_B; - c2_b_x = c2_x; - c2_b_y = c2_y; - c2_c_y = c2_b_x / c2_b_y; - c2_LTerm = (c2_L - c2_Lsr0) - c2_c_y; - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 5); - c2_b_A = c2_Ksr; - c2_b_B = c2_M; - c2_c_x = c2_b_A; - c2_d_y = c2_b_B; - c2_d_x = c2_c_x; - c2_e_y = c2_d_y; - c2_f_y = c2_d_x / c2_e_y; - c2_b_a = c2_C; - c2_b = c2_Beta; - c2_g_y = c2_b_a * c2_b; - c2_c_A = c2_dT; - c2_c_B = c2_Ksr; - c2_e_x = c2_c_A; - c2_h_y = c2_c_B; - c2_f_x = c2_e_x; - c2_i_y = c2_h_y; - c2_j_y = c2_f_x / c2_i_y; - c2_g_x = c2_dL - c2_j_y; - c2_h_x = c2_g_x; - c2_h_x = muDoubleScalarSign(c2_h_x); - c2_c_a = c2_g_y; - c2_b_b = c2_h_x; - c2_k_y = c2_c_a * c2_b_b; - c2_d_A = c2_dT; - c2_d_B = c2_Ksr; - c2_i_x = c2_d_A; - c2_l_y = c2_d_B; - c2_j_x = c2_i_x; - c2_m_y = c2_l_y; - c2_n_y = c2_j_x / c2_m_y; - c2_k_x = c2_dL - c2_n_y; - c2_l_x = c2_k_x; - c2_o_y = muDoubleScalarAbs(c2_l_x); - c2_d_a = c2_o_y; - c2_c_b = c2_a; - c2_e_a = c2_d_a; - c2_d_b = c2_c_b; - c2_f_a = c2_e_a; - c2_e_b = c2_d_b; - c2_eml_scalar_eg(chartInstance); - c2_ak = c2_f_a; - c2_bk = c2_e_b; - if (c2_ak < 0.0) { - c2_m_x = c2_bk; - c2_n_x = c2_m_x; - c2_n_x = muDoubleScalarFloor(c2_n_x); - if (c2_n_x != c2_bk) { - c2_eml_error(chartInstance); - } - } - - c2_g_a = c2_ak; - c2_f_b = c2_bk; - c2_eml_scalar_eg(chartInstance); - c2_ar = c2_g_a; - c2_br = c2_f_b; - c2_c = muDoubleScalarPower(c2_ar, c2_br); - c2_h_a = c2_k_y; - c2_g_b = c2_c; - c2_p_y = c2_h_a * c2_g_b; - c2_i_a = c2_p_y; - c2_h_b = c2_LTerm - c2_R; - c2_q_y = c2_i_a * c2_h_b; - c2_j_a = c2_Kpr; - c2_i_b = c2_LTerm - c2_Lpr0; - c2_r_y = c2_j_a * c2_i_b; - c2_k_a = c2_M; - c2_j_b = c2_ddL; - c2_s_y = c2_k_a * c2_j_b; - c2_l_a = c2_f_y; - c2_k_b = (((c2_q_y + c2_r_y) + c2_s_y) + c2_Gamma) - c2_T; - c2_ddT = c2_l_a * c2_k_b; - _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, -5); - _SFD_SYMBOL_SCOPE_POP(); - *c2_b_ddT = c2_ddT; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c2_sfEvent); - _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void registerMessagesc2_MuscleSpindle(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T - c2_chartNumber) -{ -} - -static const mxArray *c2_sf_marshallOut(void *chartInstanceVoid, void *c2_inData) -{ - const mxArray *c2_mxArrayOutData = NULL; - real_T c2_u; - const mxArray *c2_y = NULL; - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c2_mxArrayOutData = NULL; - c2_u = *(real_T *)c2_inData; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", &c2_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c2_mxArrayOutData, c2_y, FALSE); - return c2_mxArrayOutData; -} - -static real_T c2_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_ddT, const char_T *c2_identifier) -{ - real_T c2_y; - emlrtMsgIdentifier c2_thisId; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_ddT), &c2_thisId); - sf_mex_destroy(&c2_ddT); - return c2_y; -} - -static real_T c2_b_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - real_T c2_y; - real_T c2_d0; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_d0, 1, 0, 0U, 0, 0U, 0); - c2_y = c2_d0; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void c2_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData) -{ - const mxArray *c2_ddT; - const char_T *c2_identifier; - emlrtMsgIdentifier c2_thisId; - real_T c2_y; - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c2_ddT = sf_mex_dup(c2_mxArrayInData); - c2_identifier = c2_varName; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_ddT), &c2_thisId); - sf_mex_destroy(&c2_ddT); - *(real_T *)c2_outData = c2_y; - sf_mex_destroy(&c2_mxArrayInData); -} - -const mxArray *sf_c2_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c2_nameCaptureInfo; - c2_ResolvedFunctionInfo c2_info[17]; - const mxArray *c2_m0 = NULL; - int32_T c2_i0; - c2_ResolvedFunctionInfo *c2_r0; - c2_nameCaptureInfo = NULL; - c2_nameCaptureInfo = NULL; - c2_info_helper(c2_info); - sf_mex_assign(&c2_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); - for (c2_i0 = 0; c2_i0 < 17; c2_i0++) { - c2_r0 = &c2_info[c2_i0]; - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c2_r0->context)), "context", "nameCaptureInfo", - c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c2_r0->name)), "name", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c2_r0->dominantType)), "dominantType", - "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", c2_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c2_r0->resolved)), "resolved", "nameCaptureInfo", - c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c2_i0); - sf_mex_addfield(c2_m0, sf_mex_create("nameCaptureInfo", &c2_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c2_i0); - } - - sf_mex_assign(&c2_nameCaptureInfo, c2_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c2_nameCaptureInfo); - return c2_nameCaptureInfo; -} - -static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[17]) -{ - c2_info[0].context = ""; - c2_info[0].name = "mrdivide"; - c2_info[0].dominantType = "double"; - c2_info[0].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c2_info[0].fileTimeLo = 1357947948U; - c2_info[0].fileTimeHi = 0U; - c2_info[0].mFileTimeLo = 1319726366U; - c2_info[0].mFileTimeHi = 0U; - c2_info[1].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c2_info[1].name = "rdivide"; - c2_info[1].dominantType = "double"; - c2_info[1].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[1].fileTimeLo = 1346506788U; - c2_info[1].fileTimeHi = 0U; - c2_info[1].mFileTimeLo = 0U; - c2_info[1].mFileTimeHi = 0U; - c2_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[2].name = "eml_scalexp_compatible"; - c2_info[2].dominantType = "double"; - c2_info[2].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; - c2_info[2].fileTimeLo = 1286815196U; - c2_info[2].fileTimeHi = 0U; - c2_info[2].mFileTimeLo = 0U; - c2_info[2].mFileTimeHi = 0U; - c2_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c2_info[3].name = "eml_div"; - c2_info[3].dominantType = "double"; - c2_info[3].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; - c2_info[3].fileTimeLo = 1313344210U; - c2_info[3].fileTimeHi = 0U; - c2_info[3].mFileTimeLo = 0U; - c2_info[3].mFileTimeHi = 0U; - c2_info[4].context = ""; - c2_info[4].name = "mtimes"; - c2_info[4].dominantType = "double"; - c2_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; - c2_info[4].fileTimeLo = 1289516092U; - c2_info[4].fileTimeHi = 0U; - c2_info[4].mFileTimeLo = 0U; - c2_info[4].mFileTimeHi = 0U; - c2_info[5].context = ""; - c2_info[5].name = "sign"; - c2_info[5].dominantType = "double"; - c2_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[5].fileTimeLo = 1354364464U; - c2_info[5].fileTimeHi = 0U; - c2_info[5].mFileTimeLo = 0U; - c2_info[5].mFileTimeHi = 0U; - c2_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c2_info[6].name = "eml_scalar_sign"; - c2_info[6].dominantType = "double"; - c2_info[6].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c2_info[6].fileTimeLo = 1354364464U; - c2_info[6].fileTimeHi = 0U; - c2_info[6].mFileTimeLo = 0U; - c2_info[6].mFileTimeHi = 0U; - c2_info[7].context = ""; - c2_info[7].name = "abs"; - c2_info[7].dominantType = "double"; - c2_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[7].fileTimeLo = 1343826766U; - c2_info[7].fileTimeHi = 0U; - c2_info[7].mFileTimeLo = 0U; - c2_info[7].mFileTimeHi = 0U; - c2_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c2_info[8].name = "eml_scalar_abs"; - c2_info[8].dominantType = "double"; - c2_info[8].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c2_info[8].fileTimeLo = 1286815112U; - c2_info[8].fileTimeHi = 0U; - c2_info[8].mFileTimeLo = 0U; - c2_info[8].mFileTimeHi = 0U; - c2_info[9].context = ""; - c2_info[9].name = "mpower"; - c2_info[9].dominantType = "double"; - c2_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[9].fileTimeLo = 1286815242U; - c2_info[9].fileTimeHi = 0U; - c2_info[9].mFileTimeLo = 0U; - c2_info[9].mFileTimeHi = 0U; - c2_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c2_info[10].name = "power"; - c2_info[10].dominantType = "double"; - c2_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; - c2_info[10].fileTimeLo = 1348188330U; - c2_info[10].fileTimeHi = 0U; - c2_info[10].mFileTimeLo = 0U; - c2_info[10].mFileTimeHi = 0U; - c2_info[11].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c2_info[11].name = "eml_scalar_eg"; - c2_info[11].dominantType = "double"; - c2_info[11].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c2_info[11].fileTimeLo = 1286815196U; - c2_info[11].fileTimeHi = 0U; - c2_info[11].mFileTimeLo = 0U; - c2_info[11].mFileTimeHi = 0U; - c2_info[12].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c2_info[12].name = "eml_scalexp_alloc"; - c2_info[12].dominantType = "double"; - c2_info[12].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c2_info[12].fileTimeLo = 1352421260U; - c2_info[12].fileTimeHi = 0U; - c2_info[12].mFileTimeLo = 0U; - c2_info[12].mFileTimeHi = 0U; - c2_info[13].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c2_info[13].name = "floor"; - c2_info[13].dominantType = "double"; - c2_info[13].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c2_info[13].fileTimeLo = 1343826780U; - c2_info[13].fileTimeHi = 0U; - c2_info[13].mFileTimeLo = 0U; - c2_info[13].mFileTimeHi = 0U; - c2_info[14].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c2_info[14].name = "eml_scalar_floor"; - c2_info[14].dominantType = "double"; - c2_info[14].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c2_info[14].fileTimeLo = 1286815126U; - c2_info[14].fileTimeHi = 0U; - c2_info[14].mFileTimeLo = 0U; - c2_info[14].mFileTimeHi = 0U; - c2_info[15].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c2_info[15].name = "eml_error"; - c2_info[15].dominantType = "char"; - c2_info[15].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; - c2_info[15].fileTimeLo = 1343826758U; - c2_info[15].fileTimeHi = 0U; - c2_info[15].mFileTimeLo = 0U; - c2_info[15].mFileTimeHi = 0U; - c2_info[16].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; - c2_info[16].name = "eml_scalar_eg"; - c2_info[16].dominantType = "double"; - c2_info[16].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c2_info[16].fileTimeLo = 1286815196U; - c2_info[16].fileTimeHi = 0U; - c2_info[16].mFileTimeLo = 0U; - c2_info[16].mFileTimeHi = 0U; -} - -static void c2_eml_scalar_eg(SFc2_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static void c2_eml_error(SFc2_MuscleSpindleInstanceStruct *chartInstance) -{ - int32_T c2_i1; - static char_T c2_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', - 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', - 'n', 'E', 'r', 'r', 'o', 'r' }; - - char_T c2_u[31]; - const mxArray *c2_y = NULL; - for (c2_i1 = 0; c2_i1 < 31; c2_i1++) { - c2_u[c2_i1] = c2_cv0[c2_i1]; - } - - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", c2_u, 10, 0U, 1U, 0U, 2, 1, 31), FALSE); - sf_mex_call_debug("error", 0U, 1U, 14, sf_mex_call_debug("message", 1U, 1U, 14, - c2_y)); -} - -static const mxArray *c2_b_sf_marshallOut(void *chartInstanceVoid, void - *c2_inData) -{ - const mxArray *c2_mxArrayOutData = NULL; - int32_T c2_u; - const mxArray *c2_y = NULL; - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c2_mxArrayOutData = NULL; - c2_u = *(int32_T *)c2_inData; - c2_y = NULL; - sf_mex_assign(&c2_y, sf_mex_create("y", &c2_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c2_mxArrayOutData, c2_y, FALSE); - return c2_mxArrayOutData; -} - -static int32_T c2_c_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - int32_T c2_y; - int32_T c2_i2; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_i2, 1, 6, 0U, 0, 0U, 0); - c2_y = c2_i2; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void c2_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c2_mxArrayInData, const char_T *c2_varName, void *c2_outData) -{ - const mxArray *c2_b_sfEvent; - const char_T *c2_identifier; - emlrtMsgIdentifier c2_thisId; - int32_T c2_y; - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c2_b_sfEvent = sf_mex_dup(c2_mxArrayInData); - c2_identifier = c2_varName; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c2_b_sfEvent), - &c2_thisId); - sf_mex_destroy(&c2_b_sfEvent); - *(int32_T *)c2_outData = c2_y; - sf_mex_destroy(&c2_mxArrayInData); -} - -static uint8_T c2_d_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_b_is_active_c2_MuscleSpindle, const char_T - *c2_identifier) -{ - uint8_T c2_y; - emlrtMsgIdentifier c2_thisId; - c2_thisId.fIdentifier = c2_identifier; - c2_thisId.fParent = NULL; - c2_y = c2_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c2_b_is_active_c2_MuscleSpindle), &c2_thisId); - sf_mex_destroy(&c2_b_is_active_c2_MuscleSpindle); - return c2_y; -} - -static uint8_T c2_e_emlrt_marshallIn(SFc2_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c2_u, const emlrtMsgIdentifier *c2_parentId) -{ - uint8_T c2_y; - uint8_T c2_u0; - sf_mex_import(c2_parentId, sf_mex_dup(c2_u), &c2_u0, 1, 3, 0U, 0, 0U, 0); - c2_y = c2_u0; - sf_mex_destroy(&c2_u); - return c2_y; -} - -static void init_dsm_address_info(SFc2_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -#ifdef utFree -#undef utFree -#endif - -#ifdef utMalloc -#undef utMalloc -#endif - -#ifdef __cplusplus - -extern "C" void *utMalloc(size_t size); -extern "C" void utFree(void*); - -#else - -extern void *utMalloc(size_t size); -extern void utFree(void*); - -#endif - -void sf_c2_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3012444427U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3880677165U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2476074965U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(941600096U); -} - -mxArray *sf_c2_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("8Dr9owGEF7LDFB9VDrdquF"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,15,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,10,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,10,"type",mxType); - } - - mxSetField(mxData,10,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,11,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,11,"type",mxType); - } - - mxSetField(mxData,11,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,12,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,12,"type",mxType); - } - - mxSetField(mxData,12,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,13,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,13,"type",mxType); - } - - mxSetField(mxData,13,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,14,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,14,"type",mxType); - } - - mxSetField(mxData,14,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -mxArray *sf_c2_MuscleSpindle_third_party_uses_info(void) -{ - mxArray * mxcell3p = mxCreateCellMatrix(1,0); - return(mxcell3p); -} - -static const mxArray *sf_get_sim_state_info_c2_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ddT\",},{M[8],M[0],T\"is_active_c2_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c2_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - 2, - 1, - 1, - 16, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"dT"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"L"); - _SFD_SET_DATA_PROPS(3,1,1,0,"dL"); - _SFD_SET_DATA_PROPS(4,1,1,0,"ddL"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(7,2,0,1,"ddT"); - _SFD_SET_DATA_PROPS(8,1,1,0,"M"); - _SFD_SET_DATA_PROPS(9,1,1,0,"C"); - _SFD_SET_DATA_PROPS(10,1,1,0,"Beta"); - _SFD_SET_DATA_PROPS(11,1,1,0,"a"); - _SFD_SET_DATA_PROPS(12,1,1,0,"R"); - _SFD_SET_DATA_PROPS(13,1,1,0,"Kpr"); - _SFD_SET_DATA_PROPS(14,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(15,1,1,0,"Gamma"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,341); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)c2_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c2_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c2_dT; - real_T *c2_T; - real_T *c2_L; - real_T *c2_dL; - real_T *c2_ddL; - real_T *c2_Lsr0; - real_T *c2_Ksr; - real_T *c2_ddT; - real_T *c2_M; - real_T *c2_C; - real_T *c2_Beta; - real_T *c2_a; - real_T *c2_R; - real_T *c2_Kpr; - real_T *c2_Lpr0; - real_T *c2_Gamma; - c2_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c2_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c2_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c2_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c2_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c2_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c2_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c2_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c2_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c2_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c2_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c2_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c2_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c2_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c2_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c2_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c2_dT); - _SFD_SET_DATA_VALUE_PTR(1U, c2_T); - _SFD_SET_DATA_VALUE_PTR(2U, c2_L); - _SFD_SET_DATA_VALUE_PTR(3U, c2_dL); - _SFD_SET_DATA_VALUE_PTR(4U, c2_ddL); - _SFD_SET_DATA_VALUE_PTR(5U, c2_Lsr0); - _SFD_SET_DATA_VALUE_PTR(6U, c2_Ksr); - _SFD_SET_DATA_VALUE_PTR(7U, c2_ddT); - _SFD_SET_DATA_VALUE_PTR(8U, c2_M); - _SFD_SET_DATA_VALUE_PTR(9U, c2_C); - _SFD_SET_DATA_VALUE_PTR(10U, c2_Beta); - _SFD_SET_DATA_VALUE_PTR(11U, c2_a); - _SFD_SET_DATA_VALUE_PTR(12U, c2_R); - _SFD_SET_DATA_VALUE_PTR(13U, c2_Kpr); - _SFD_SET_DATA_VALUE_PTR(14U, c2_Lpr0); - _SFD_SET_DATA_VALUE_PTR(15U, c2_Gamma); - } - } - } else { - sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_,chartInstance->chartNumber, - chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization(void) -{ - return "dkEDKYu5K2XI8jBbmLQ2HF"; -} - -static void sf_opaque_initialize_c2_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc2_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c2_MuscleSpindle(void *chartInstanceVar) -{ - enable_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c2_MuscleSpindle(void *chartInstanceVar) -{ - disable_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c2_MuscleSpindle(void *chartInstanceVar) -{ - sf_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c2_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c2_MuscleSpindle - ((SFc2_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c2_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c2_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c2_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c2_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c2_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c2_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c2_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c2_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc2_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - unload_MuscleSpindle_optimization_info(); - } - - finalize_c2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) - chartInstanceVar); - utFree((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc2_MuscleSpindle((SFc2_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c2_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c2_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 2); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,2,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,2, - "gatewayCannotBeInlinedMultipleTimes")); - sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,2); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 13, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 14, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,2,15); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,2,1); - } - - { - unsigned int outPortIdx; - for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { - ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); - } - } - - { - unsigned int inPortIdx; - for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { - ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); - } - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,2); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(1664659505U)); - ssSetChecksum1(S,(223035732U)); - ssSetChecksum2(S,(782984642U)); - ssSetChecksum3(S,(4178786634U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); - ssSupportsMultipleExecInstances(S,1); -} - -static void mdlRTW_c2_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c2_MuscleSpindle(SimStruct *S) -{ - SFc2_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc2_MuscleSpindleInstanceStruct *)utMalloc(sizeof - (SFc2_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc2_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c2_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c2_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c2_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c2_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c2_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c2_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c2_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c2_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c2_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c2_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c2_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c2_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c2_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c2_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c2_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c2_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h deleted file mode 100644 index 0f39594..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c2_MuscleSpindle.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __c2_MuscleSpindle_h__ -#define __c2_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -#ifndef typedef_c2_ResolvedFunctionInfo -#define typedef_c2_ResolvedFunctionInfo - -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c2_ResolvedFunctionInfo; - -#endif /*typedef_c2_ResolvedFunctionInfo*/ - -#ifndef typedef_SFc2_MuscleSpindleInstanceStruct -#define typedef_SFc2_MuscleSpindleInstanceStruct - -typedef struct { - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; - int32_T c2_sfEvent; - boolean_T c2_isStable; - boolean_T c2_doneDoubleBufferReInit; - uint8_T c2_is_active_c2_MuscleSpindle; -} SFc2_MuscleSpindleInstanceStruct; - -#endif /*typedef_SFc2_MuscleSpindleInstanceStruct*/ - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c2_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c2_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c2_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c deleted file mode 100644 index 3dad632..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.c +++ /dev/null @@ -1,1311 +0,0 @@ -/* Include files */ - -#include -#include "blas.h" -#include "MuscleSpindle_sfun.h" -#include "c3_MuscleSpindle.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" -#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c3_debug_family_names[16] = { "term1", "term2", "term", - "nargin", "nargout", "Gsnd", "T", "Ksr", "X", "Lsnd", "Lsr0", "LsrN", "Lpr0", - "LprN", "L", "ScndryAffrntCntrbtn" }; - -/* Function Declarations */ -static void initialize_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void c3_update_debugger_state_c3_MuscleSpindle - (SFc3_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c3_MuscleSpindle - (SFc3_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_st); -static void finalize_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void registerMessagesc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c3_machineNumber, uint32_T - c3_chartNumber); -static const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData); -static real_T c3_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_ScndryAffrntCntrbtn, const char_T - *c3_identifier); -static real_T c3_b_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId); -static void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData); -static const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void - *c3_inData); -static int32_T c3_c_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId); -static void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData); -static uint8_T c3_d_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_b_is_active_c3_MuscleSpindle, const char_T - *c3_identifier); -static uint8_T c3_e_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId); -static void init_dsm_address_info(SFc3_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c3_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c3_is_active_c3_MuscleSpindle = 0U; -} - -static void initialize_params_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c3_update_debugger_state_c3_MuscleSpindle - (SFc3_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c3_MuscleSpindle - (SFc3_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c3_st; - const mxArray *c3_y = NULL; - real_T c3_hoistedGlobal; - real_T c3_u; - const mxArray *c3_b_y = NULL; - uint8_T c3_b_hoistedGlobal; - uint8_T c3_b_u; - const mxArray *c3_c_y = NULL; - real_T *c3_ScndryAffrntCntrbtn; - c3_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c3_st = NULL; - c3_st = NULL; - c3_y = NULL; - sf_mex_assign(&c3_y, sf_mex_createcellarray(2), FALSE); - c3_hoistedGlobal = *c3_ScndryAffrntCntrbtn; - c3_u = c3_hoistedGlobal; - c3_b_y = NULL; - sf_mex_assign(&c3_b_y, sf_mex_create("y", &c3_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c3_y, 0, c3_b_y); - c3_b_hoistedGlobal = chartInstance->c3_is_active_c3_MuscleSpindle; - c3_b_u = c3_b_hoistedGlobal; - c3_c_y = NULL; - sf_mex_assign(&c3_c_y, sf_mex_create("y", &c3_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c3_y, 1, c3_c_y); - sf_mex_assign(&c3_st, c3_y, FALSE); - return c3_st; -} - -static void set_sim_state_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_st) -{ - const mxArray *c3_u; - real_T *c3_ScndryAffrntCntrbtn; - c3_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c3_doneDoubleBufferReInit = TRUE; - c3_u = sf_mex_dup(c3_st); - *c3_ScndryAffrntCntrbtn = c3_emlrt_marshallIn(chartInstance, sf_mex_dup - (sf_mex_getcell(c3_u, 0)), "ScndryAffrntCntrbtn"); - chartInstance->c3_is_active_c3_MuscleSpindle = c3_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)), - "is_active_c3_MuscleSpindle"); - sf_mex_destroy(&c3_u); - c3_update_debugger_state_c3_MuscleSpindle(chartInstance); - sf_mex_destroy(&c3_st); -} - -static void finalize_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c3_hoistedGlobal; - real_T c3_b_hoistedGlobal; - real_T c3_c_hoistedGlobal; - real_T c3_d_hoistedGlobal; - real_T c3_e_hoistedGlobal; - real_T c3_f_hoistedGlobal; - real_T c3_g_hoistedGlobal; - real_T c3_h_hoistedGlobal; - real_T c3_i_hoistedGlobal; - real_T c3_j_hoistedGlobal; - real_T c3_Gsnd; - real_T c3_T; - real_T c3_Ksr; - real_T c3_X; - real_T c3_Lsnd; - real_T c3_Lsr0; - real_T c3_LsrN; - real_T c3_Lpr0; - real_T c3_LprN; - real_T c3_L; - uint32_T c3_debug_family_var_map[16]; - real_T c3_term1; - real_T c3_term2; - real_T c3_term; - real_T c3_nargin = 10.0; - real_T c3_nargout = 1.0; - real_T c3_ScndryAffrntCntrbtn; - real_T c3_A; - real_T c3_B; - real_T c3_x; - real_T c3_y; - real_T c3_b_x; - real_T c3_b_y; - real_T c3_c_y; - real_T c3_b_A; - real_T c3_b_B; - real_T c3_c_x; - real_T c3_d_y; - real_T c3_d_x; - real_T c3_e_y; - real_T c3_f_y; - real_T c3_a; - real_T c3_b; - real_T c3_c_A; - real_T c3_c_B; - real_T c3_e_x; - real_T c3_g_y; - real_T c3_f_x; - real_T c3_h_y; - real_T c3_i_y; - real_T c3_d_A; - real_T c3_d_B; - real_T c3_g_x; - real_T c3_j_y; - real_T c3_h_x; - real_T c3_k_y; - real_T c3_l_y; - real_T c3_b_a; - real_T c3_b_b; - real_T c3_c_a; - real_T c3_c_b; - real_T c3_m_y; - real_T c3_d_a; - real_T c3_d_b; - real_T c3_n_y; - real_T c3_e_a; - real_T c3_e_b; - real_T *c3_b_L; - real_T *c3_b_LprN; - real_T *c3_b_Lpr0; - real_T *c3_b_LsrN; - real_T *c3_b_Lsr0; - real_T *c3_b_Lsnd; - real_T *c3_b_X; - real_T *c3_b_Ksr; - real_T *c3_b_T; - real_T *c3_b_Gsnd; - real_T *c3_b_ScndryAffrntCntrbtn; - c3_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c3_b_LprN = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c3_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c3_b_LsrN = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c3_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c3_b_Lsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c3_b_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c3_b_X = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c3_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c3_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c3_b_Gsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 2U, chartInstance->c3_sfEvent); - _SFD_DATA_RANGE_CHECK(*c3_b_Gsnd, 0U); - _SFD_DATA_RANGE_CHECK(*c3_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c3_b_Ksr, 2U); - _SFD_DATA_RANGE_CHECK(*c3_b_X, 3U); - _SFD_DATA_RANGE_CHECK(*c3_b_ScndryAffrntCntrbtn, 4U); - _SFD_DATA_RANGE_CHECK(*c3_b_Lsnd, 5U); - _SFD_DATA_RANGE_CHECK(*c3_b_Lsr0, 6U); - _SFD_DATA_RANGE_CHECK(*c3_b_LsrN, 7U); - _SFD_DATA_RANGE_CHECK(*c3_b_Lpr0, 8U); - _SFD_DATA_RANGE_CHECK(*c3_b_LprN, 9U); - _SFD_DATA_RANGE_CHECK(*c3_b_L, 10U); - chartInstance->c3_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent); - c3_hoistedGlobal = *c3_b_Gsnd; - c3_b_hoistedGlobal = *c3_b_T; - c3_c_hoistedGlobal = *c3_b_Ksr; - c3_d_hoistedGlobal = *c3_b_X; - c3_e_hoistedGlobal = *c3_b_Lsnd; - c3_f_hoistedGlobal = *c3_b_Lsr0; - c3_g_hoistedGlobal = *c3_b_LsrN; - c3_h_hoistedGlobal = *c3_b_Lpr0; - c3_i_hoistedGlobal = *c3_b_LprN; - c3_j_hoistedGlobal = *c3_b_L; - c3_Gsnd = c3_hoistedGlobal; - c3_T = c3_b_hoistedGlobal; - c3_Ksr = c3_c_hoistedGlobal; - c3_X = c3_d_hoistedGlobal; - c3_Lsnd = c3_e_hoistedGlobal; - c3_Lsr0 = c3_f_hoistedGlobal; - c3_LsrN = c3_g_hoistedGlobal; - c3_Lpr0 = c3_h_hoistedGlobal; - c3_LprN = c3_i_hoistedGlobal; - c3_L = c3_j_hoistedGlobal; - _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c3_debug_family_names, - c3_debug_family_var_map); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term1, 0U, c3_sf_marshallOut, - c3_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term2, 1U, c3_sf_marshallOut, - c3_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_term, 2U, c3_sf_marshallOut, - c3_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 3U, c3_sf_marshallOut, - c3_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 4U, c3_sf_marshallOut, - c3_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Gsnd, 5U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_T, 6U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Ksr, 7U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_X, 8U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lsnd, 9U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lsr0, 10U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_LsrN, 11U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_Lpr0, 12U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_LprN, 13U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c3_L, 14U, c3_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_ScndryAffrntCntrbtn, 15U, - c3_sf_marshallOut, c3_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 3); - c3_A = c3_Lsnd; - c3_B = c3_Lsr0; - c3_x = c3_A; - c3_y = c3_B; - c3_b_x = c3_x; - c3_b_y = c3_y; - c3_c_y = c3_b_x / c3_b_y; - c3_b_A = c3_T; - c3_b_B = c3_Ksr; - c3_c_x = c3_b_A; - c3_d_y = c3_b_B; - c3_d_x = c3_c_x; - c3_e_y = c3_d_y; - c3_f_y = c3_d_x / c3_e_y; - c3_a = c3_c_y; - c3_b = c3_f_y - (c3_LsrN - c3_Lsr0); - c3_term1 = c3_a * c3_b; - _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 5); - c3_c_A = c3_Lsnd; - c3_c_B = c3_Lpr0; - c3_e_x = c3_c_A; - c3_g_y = c3_c_B; - c3_f_x = c3_e_x; - c3_h_y = c3_g_y; - c3_i_y = c3_f_x / c3_h_y; - c3_d_A = c3_T; - c3_d_B = c3_Ksr; - c3_g_x = c3_d_A; - c3_j_y = c3_d_B; - c3_h_x = c3_g_x; - c3_k_y = c3_j_y; - c3_l_y = c3_h_x / c3_k_y; - c3_b_a = c3_i_y; - c3_b_b = ((c3_L - c3_l_y) - c3_Lsr0) - c3_LprN; - c3_term2 = c3_b_a * c3_b_b; - _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 7); - c3_c_a = c3_X; - c3_c_b = c3_term1; - c3_m_y = c3_c_a * c3_c_b; - c3_d_a = 1.0 - c3_X; - c3_d_b = c3_term2; - c3_n_y = c3_d_a * c3_d_b; - c3_term = c3_m_y + c3_n_y; - _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9); - c3_e_a = c3_Gsnd; - c3_e_b = c3_term; - c3_ScndryAffrntCntrbtn = c3_e_a * c3_e_b; - _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -9); - _SFD_SYMBOL_SCOPE_POP(); - *c3_b_ScndryAffrntCntrbtn = c3_ScndryAffrntCntrbtn; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent); - _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void registerMessagesc3_MuscleSpindle(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c3_machineNumber, uint32_T - c3_chartNumber) -{ -} - -static const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData) -{ - const mxArray *c3_mxArrayOutData = NULL; - real_T c3_u; - const mxArray *c3_y = NULL; - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c3_mxArrayOutData = NULL; - c3_u = *(real_T *)c3_inData; - c3_y = NULL; - sf_mex_assign(&c3_y, sf_mex_create("y", &c3_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE); - return c3_mxArrayOutData; -} - -static real_T c3_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_ScndryAffrntCntrbtn, const char_T - *c3_identifier) -{ - real_T c3_y; - emlrtMsgIdentifier c3_thisId; - c3_thisId.fIdentifier = c3_identifier; - c3_thisId.fParent = NULL; - c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_ScndryAffrntCntrbtn), - &c3_thisId); - sf_mex_destroy(&c3_ScndryAffrntCntrbtn); - return c3_y; -} - -static real_T c3_b_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId) -{ - real_T c3_y; - real_T c3_d0; - sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d0, 1, 0, 0U, 0, 0U, 0); - c3_y = c3_d0; - sf_mex_destroy(&c3_u); - return c3_y; -} - -static void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData) -{ - const mxArray *c3_ScndryAffrntCntrbtn; - const char_T *c3_identifier; - emlrtMsgIdentifier c3_thisId; - real_T c3_y; - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c3_ScndryAffrntCntrbtn = sf_mex_dup(c3_mxArrayInData); - c3_identifier = c3_varName; - c3_thisId.fIdentifier = c3_identifier; - c3_thisId.fParent = NULL; - c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_ScndryAffrntCntrbtn), - &c3_thisId); - sf_mex_destroy(&c3_ScndryAffrntCntrbtn); - *(real_T *)c3_outData = c3_y; - sf_mex_destroy(&c3_mxArrayInData); -} - -const mxArray *sf_c3_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c3_nameCaptureInfo; - c3_ResolvedFunctionInfo c3_info[5]; - c3_ResolvedFunctionInfo (*c3_b_info)[5]; - const mxArray *c3_m0 = NULL; - int32_T c3_i0; - c3_ResolvedFunctionInfo *c3_r0; - c3_nameCaptureInfo = NULL; - c3_nameCaptureInfo = NULL; - c3_b_info = (c3_ResolvedFunctionInfo (*)[5])c3_info; - (*c3_b_info)[0].context = ""; - (*c3_b_info)[0].name = "mrdivide"; - (*c3_b_info)[0].dominantType = "double"; - (*c3_b_info)[0].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c3_b_info)[0].fileTimeLo = 1357947948U; - (*c3_b_info)[0].fileTimeHi = 0U; - (*c3_b_info)[0].mFileTimeLo = 1319726366U; - (*c3_b_info)[0].mFileTimeHi = 0U; - (*c3_b_info)[1].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c3_b_info)[1].name = "rdivide"; - (*c3_b_info)[1].dominantType = "double"; - (*c3_b_info)[1].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c3_b_info)[1].fileTimeLo = 1346506788U; - (*c3_b_info)[1].fileTimeHi = 0U; - (*c3_b_info)[1].mFileTimeLo = 0U; - (*c3_b_info)[1].mFileTimeHi = 0U; - (*c3_b_info)[2].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c3_b_info)[2].name = "eml_scalexp_compatible"; - (*c3_b_info)[2].dominantType = "double"; - (*c3_b_info)[2].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; - (*c3_b_info)[2].fileTimeLo = 1286815196U; - (*c3_b_info)[2].fileTimeHi = 0U; - (*c3_b_info)[2].mFileTimeLo = 0U; - (*c3_b_info)[2].mFileTimeHi = 0U; - (*c3_b_info)[3].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c3_b_info)[3].name = "eml_div"; - (*c3_b_info)[3].dominantType = "double"; - (*c3_b_info)[3].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; - (*c3_b_info)[3].fileTimeLo = 1313344210U; - (*c3_b_info)[3].fileTimeHi = 0U; - (*c3_b_info)[3].mFileTimeLo = 0U; - (*c3_b_info)[3].mFileTimeHi = 0U; - (*c3_b_info)[4].context = ""; - (*c3_b_info)[4].name = "mtimes"; - (*c3_b_info)[4].dominantType = "double"; - (*c3_b_info)[4].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; - (*c3_b_info)[4].fileTimeLo = 1289516092U; - (*c3_b_info)[4].fileTimeHi = 0U; - (*c3_b_info)[4].mFileTimeLo = 0U; - (*c3_b_info)[4].mFileTimeHi = 0U; - sf_mex_assign(&c3_m0, sf_mex_createstruct("nameCaptureInfo", 1, 5), FALSE); - for (c3_i0 = 0; c3_i0 < 5; c3_i0++) { - c3_r0 = &c3_info[c3_i0]; - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", c3_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c3_r0->context)), "context", "nameCaptureInfo", - c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", c3_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c3_r0->name)), "name", "nameCaptureInfo", c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", c3_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c3_r0->dominantType)), "dominantType", - "nameCaptureInfo", c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", c3_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c3_r0->resolved)), "resolved", "nameCaptureInfo", - c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", &c3_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", &c3_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", &c3_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c3_i0); - sf_mex_addfield(c3_m0, sf_mex_create("nameCaptureInfo", &c3_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c3_i0); - } - - sf_mex_assign(&c3_nameCaptureInfo, c3_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c3_nameCaptureInfo); - return c3_nameCaptureInfo; -} - -static const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void - *c3_inData) -{ - const mxArray *c3_mxArrayOutData = NULL; - int32_T c3_u; - const mxArray *c3_y = NULL; - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c3_mxArrayOutData = NULL; - c3_u = *(int32_T *)c3_inData; - c3_y = NULL; - sf_mex_assign(&c3_y, sf_mex_create("y", &c3_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE); - return c3_mxArrayOutData; -} - -static int32_T c3_c_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId) -{ - int32_T c3_y; - int32_T c3_i1; - sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i1, 1, 6, 0U, 0, 0U, 0); - c3_y = c3_i1; - sf_mex_destroy(&c3_u); - return c3_y; -} - -static void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData) -{ - const mxArray *c3_b_sfEvent; - const char_T *c3_identifier; - emlrtMsgIdentifier c3_thisId; - int32_T c3_y; - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData); - c3_identifier = c3_varName; - c3_thisId.fIdentifier = c3_identifier; - c3_thisId.fParent = NULL; - c3_y = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent), - &c3_thisId); - sf_mex_destroy(&c3_b_sfEvent); - *(int32_T *)c3_outData = c3_y; - sf_mex_destroy(&c3_mxArrayInData); -} - -static uint8_T c3_d_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_b_is_active_c3_MuscleSpindle, const char_T - *c3_identifier) -{ - uint8_T c3_y; - emlrtMsgIdentifier c3_thisId; - c3_thisId.fIdentifier = c3_identifier; - c3_thisId.fParent = NULL; - c3_y = c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c3_b_is_active_c3_MuscleSpindle), &c3_thisId); - sf_mex_destroy(&c3_b_is_active_c3_MuscleSpindle); - return c3_y; -} - -static uint8_T c3_e_emlrt_marshallIn(SFc3_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId) -{ - uint8_T c3_y; - uint8_T c3_u0; - sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0); - c3_y = c3_u0; - sf_mex_destroy(&c3_u); - return c3_y; -} - -static void init_dsm_address_info(SFc3_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -#ifdef utFree -#undef utFree -#endif - -#ifdef utMalloc -#undef utMalloc -#endif - -#ifdef __cplusplus - -extern "C" void *utMalloc(size_t size); -extern "C" void utFree(void*); - -#else - -extern void *utMalloc(size_t size); -extern void utFree(void*); - -#endif - -void sf_c3_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2927169710U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3875967505U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2948318806U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2847105181U); -} - -mxArray *sf_c3_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("6MdPBYbz53whJT5GuBWJbE"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,10,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -mxArray *sf_c3_MuscleSpindle_third_party_uses_info(void) -{ - mxArray * mxcell3p = mxCreateCellMatrix(1,0); - return(mxcell3p); -} - -static const mxArray *sf_get_sim_state_info_c3_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ScndryAffrntCntrbtn\",},{M[8],M[0],T\"is_active_c3_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c3_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - 3, - 1, - 1, - 11, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"Gsnd"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(3,1,1,0,"X"); - _SFD_SET_DATA_PROPS(4,2,0,1,"ScndryAffrntCntrbtn"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsnd"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(7,1,1,0,"LsrN"); - _SFD_SET_DATA_PROPS(8,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(9,1,1,0,"LprN"); - _SFD_SET_DATA_PROPS(10,1,1,0,"L"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,372); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)c3_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c3_Gsnd; - real_T *c3_T; - real_T *c3_Ksr; - real_T *c3_X; - real_T *c3_ScndryAffrntCntrbtn; - real_T *c3_Lsnd; - real_T *c3_Lsr0; - real_T *c3_LsrN; - real_T *c3_Lpr0; - real_T *c3_LprN; - real_T *c3_L; - c3_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c3_LprN = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c3_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c3_LsrN = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c3_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c3_Lsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c3_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal - (chartInstance->S, 1); - c3_X = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c3_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c3_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c3_Gsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c3_Gsnd); - _SFD_SET_DATA_VALUE_PTR(1U, c3_T); - _SFD_SET_DATA_VALUE_PTR(2U, c3_Ksr); - _SFD_SET_DATA_VALUE_PTR(3U, c3_X); - _SFD_SET_DATA_VALUE_PTR(4U, c3_ScndryAffrntCntrbtn); - _SFD_SET_DATA_VALUE_PTR(5U, c3_Lsnd); - _SFD_SET_DATA_VALUE_PTR(6U, c3_Lsr0); - _SFD_SET_DATA_VALUE_PTR(7U, c3_LsrN); - _SFD_SET_DATA_VALUE_PTR(8U, c3_Lpr0); - _SFD_SET_DATA_VALUE_PTR(9U, c3_LprN); - _SFD_SET_DATA_VALUE_PTR(10U, c3_L); - } - } - } else { - sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_,chartInstance->chartNumber, - chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization(void) -{ - return "EIegXK4lrHvNN24BpctGtD"; -} - -static void sf_opaque_initialize_c3_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc3_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c3_MuscleSpindle(void *chartInstanceVar) -{ - enable_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c3_MuscleSpindle(void *chartInstanceVar) -{ - disable_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c3_MuscleSpindle(void *chartInstanceVar) -{ - sf_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c3_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c3_MuscleSpindle - ((SFc3_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c3_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c3_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c3_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c3_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c3_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c3_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c3_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c3_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc3_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - unload_MuscleSpindle_optimization_info(); - } - - finalize_c3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) - chartInstanceVar); - utFree((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc3_MuscleSpindle((SFc3_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c3_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c3_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 3); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,3,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,3, - "gatewayCannotBeInlinedMultipleTimes")); - sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,3,10); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,3,1); - } - - { - unsigned int outPortIdx; - for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { - ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); - } - } - - { - unsigned int inPortIdx; - for (inPortIdx=0; inPortIdx < 10; ++inPortIdx) { - ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); - } - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(3271247123U)); - ssSetChecksum1(S,(2205023528U)); - ssSetChecksum2(S,(1044813094U)); - ssSetChecksum3(S,(4222593174U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); - ssSupportsMultipleExecInstances(S,1); -} - -static void mdlRTW_c3_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c3_MuscleSpindle(SimStruct *S) -{ - SFc3_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc3_MuscleSpindleInstanceStruct *)utMalloc(sizeof - (SFc3_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc3_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c3_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c3_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c3_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c3_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c3_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c3_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c3_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c3_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c3_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c3_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c3_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h deleted file mode 100644 index 1832b82..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c3_MuscleSpindle.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __c3_MuscleSpindle_h__ -#define __c3_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -#ifndef typedef_c3_ResolvedFunctionInfo -#define typedef_c3_ResolvedFunctionInfo - -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c3_ResolvedFunctionInfo; - -#endif /*typedef_c3_ResolvedFunctionInfo*/ - -#ifndef typedef_SFc3_MuscleSpindleInstanceStruct -#define typedef_SFc3_MuscleSpindleInstanceStruct - -typedef struct { - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; - int32_T c3_sfEvent; - boolean_T c3_isStable; - boolean_T c3_doneDoubleBufferReInit; - uint8_T c3_is_active_c3_MuscleSpindle; -} SFc3_MuscleSpindleInstanceStruct; - -#endif /*typedef_SFc3_MuscleSpindleInstanceStruct*/ - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c3_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c3_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c3_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.c deleted file mode 100644 index 47d2172..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.c +++ /dev/null @@ -1,1311 +0,0 @@ -/* Include files */ - -#include -#include "blas.h" -#include "MuscleSpindle_sfun.h" -#include "c4_MuscleSpindle.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" -#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c4_debug_family_names[16] = { "term1", "term2", "term", - "nargin", "nargout", "Gsnd", "T", "Ksr", "X", "Lsnd", "Lsr0", "LsrN", "Lpr0", - "LprN", "L", "ScndryAffrntCntrbtn" }; - -/* Function Declarations */ -static void initialize_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void c4_update_debugger_state_c4_MuscleSpindle - (SFc4_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c4_MuscleSpindle - (SFc4_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_st); -static void finalize_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void registerMessagesc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c4_machineNumber, uint32_T - c4_chartNumber); -static const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData); -static real_T c4_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_ScndryAffrntCntrbtn, const char_T - *c4_identifier); -static real_T c4_b_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId); -static void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData); -static const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void - *c4_inData); -static int32_T c4_c_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId); -static void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData); -static uint8_T c4_d_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_b_is_active_c4_MuscleSpindle, const char_T - *c4_identifier); -static uint8_T c4_e_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId); -static void init_dsm_address_info(SFc4_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c4_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c4_is_active_c4_MuscleSpindle = 0U; -} - -static void initialize_params_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c4_update_debugger_state_c4_MuscleSpindle - (SFc4_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c4_MuscleSpindle - (SFc4_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c4_st; - const mxArray *c4_y = NULL; - real_T c4_hoistedGlobal; - real_T c4_u; - const mxArray *c4_b_y = NULL; - uint8_T c4_b_hoistedGlobal; - uint8_T c4_b_u; - const mxArray *c4_c_y = NULL; - real_T *c4_ScndryAffrntCntrbtn; - c4_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c4_st = NULL; - c4_st = NULL; - c4_y = NULL; - sf_mex_assign(&c4_y, sf_mex_createcellarray(2), FALSE); - c4_hoistedGlobal = *c4_ScndryAffrntCntrbtn; - c4_u = c4_hoistedGlobal; - c4_b_y = NULL; - sf_mex_assign(&c4_b_y, sf_mex_create("y", &c4_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c4_y, 0, c4_b_y); - c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_MuscleSpindle; - c4_b_u = c4_b_hoistedGlobal; - c4_c_y = NULL; - sf_mex_assign(&c4_c_y, sf_mex_create("y", &c4_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c4_y, 1, c4_c_y); - sf_mex_assign(&c4_st, c4_y, FALSE); - return c4_st; -} - -static void set_sim_state_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_st) -{ - const mxArray *c4_u; - real_T *c4_ScndryAffrntCntrbtn; - c4_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c4_doneDoubleBufferReInit = TRUE; - c4_u = sf_mex_dup(c4_st); - *c4_ScndryAffrntCntrbtn = c4_emlrt_marshallIn(chartInstance, sf_mex_dup - (sf_mex_getcell(c4_u, 0)), "ScndryAffrntCntrbtn"); - chartInstance->c4_is_active_c4_MuscleSpindle = c4_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)), - "is_active_c4_MuscleSpindle"); - sf_mex_destroy(&c4_u); - c4_update_debugger_state_c4_MuscleSpindle(chartInstance); - sf_mex_destroy(&c4_st); -} - -static void finalize_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c4_hoistedGlobal; - real_T c4_b_hoistedGlobal; - real_T c4_c_hoistedGlobal; - real_T c4_d_hoistedGlobal; - real_T c4_e_hoistedGlobal; - real_T c4_f_hoistedGlobal; - real_T c4_g_hoistedGlobal; - real_T c4_h_hoistedGlobal; - real_T c4_i_hoistedGlobal; - real_T c4_j_hoistedGlobal; - real_T c4_Gsnd; - real_T c4_T; - real_T c4_Ksr; - real_T c4_X; - real_T c4_Lsnd; - real_T c4_Lsr0; - real_T c4_LsrN; - real_T c4_Lpr0; - real_T c4_LprN; - real_T c4_L; - uint32_T c4_debug_family_var_map[16]; - real_T c4_term1; - real_T c4_term2; - real_T c4_term; - real_T c4_nargin = 10.0; - real_T c4_nargout = 1.0; - real_T c4_ScndryAffrntCntrbtn; - real_T c4_A; - real_T c4_B; - real_T c4_x; - real_T c4_y; - real_T c4_b_x; - real_T c4_b_y; - real_T c4_c_y; - real_T c4_b_A; - real_T c4_b_B; - real_T c4_c_x; - real_T c4_d_y; - real_T c4_d_x; - real_T c4_e_y; - real_T c4_f_y; - real_T c4_a; - real_T c4_b; - real_T c4_c_A; - real_T c4_c_B; - real_T c4_e_x; - real_T c4_g_y; - real_T c4_f_x; - real_T c4_h_y; - real_T c4_i_y; - real_T c4_d_A; - real_T c4_d_B; - real_T c4_g_x; - real_T c4_j_y; - real_T c4_h_x; - real_T c4_k_y; - real_T c4_l_y; - real_T c4_b_a; - real_T c4_b_b; - real_T c4_c_a; - real_T c4_c_b; - real_T c4_m_y; - real_T c4_d_a; - real_T c4_d_b; - real_T c4_n_y; - real_T c4_e_a; - real_T c4_e_b; - real_T *c4_b_L; - real_T *c4_b_LprN; - real_T *c4_b_Lpr0; - real_T *c4_b_LsrN; - real_T *c4_b_Lsr0; - real_T *c4_b_Lsnd; - real_T *c4_b_X; - real_T *c4_b_Ksr; - real_T *c4_b_T; - real_T *c4_b_Gsnd; - real_T *c4_b_ScndryAffrntCntrbtn; - c4_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c4_b_LprN = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c4_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c4_b_LsrN = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c4_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c4_b_Lsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c4_b_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c4_b_X = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c4_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c4_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c4_b_Gsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 3U, chartInstance->c4_sfEvent); - _SFD_DATA_RANGE_CHECK(*c4_b_Gsnd, 0U); - _SFD_DATA_RANGE_CHECK(*c4_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c4_b_Ksr, 2U); - _SFD_DATA_RANGE_CHECK(*c4_b_X, 3U); - _SFD_DATA_RANGE_CHECK(*c4_b_ScndryAffrntCntrbtn, 4U); - _SFD_DATA_RANGE_CHECK(*c4_b_Lsnd, 5U); - _SFD_DATA_RANGE_CHECK(*c4_b_Lsr0, 6U); - _SFD_DATA_RANGE_CHECK(*c4_b_LsrN, 7U); - _SFD_DATA_RANGE_CHECK(*c4_b_Lpr0, 8U); - _SFD_DATA_RANGE_CHECK(*c4_b_LprN, 9U); - _SFD_DATA_RANGE_CHECK(*c4_b_L, 10U); - chartInstance->c4_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 3U, chartInstance->c4_sfEvent); - c4_hoistedGlobal = *c4_b_Gsnd; - c4_b_hoistedGlobal = *c4_b_T; - c4_c_hoistedGlobal = *c4_b_Ksr; - c4_d_hoistedGlobal = *c4_b_X; - c4_e_hoistedGlobal = *c4_b_Lsnd; - c4_f_hoistedGlobal = *c4_b_Lsr0; - c4_g_hoistedGlobal = *c4_b_LsrN; - c4_h_hoistedGlobal = *c4_b_Lpr0; - c4_i_hoistedGlobal = *c4_b_LprN; - c4_j_hoistedGlobal = *c4_b_L; - c4_Gsnd = c4_hoistedGlobal; - c4_T = c4_b_hoistedGlobal; - c4_Ksr = c4_c_hoistedGlobal; - c4_X = c4_d_hoistedGlobal; - c4_Lsnd = c4_e_hoistedGlobal; - c4_Lsr0 = c4_f_hoistedGlobal; - c4_LsrN = c4_g_hoistedGlobal; - c4_Lpr0 = c4_h_hoistedGlobal; - c4_LprN = c4_i_hoistedGlobal; - c4_L = c4_j_hoistedGlobal; - _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names, - c4_debug_family_var_map); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term1, 0U, c4_sf_marshallOut, - c4_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term2, 1U, c4_sf_marshallOut, - c4_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_term, 2U, c4_sf_marshallOut, - c4_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 3U, c4_sf_marshallOut, - c4_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 4U, c4_sf_marshallOut, - c4_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Gsnd, 5U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_T, 6U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Ksr, 7U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_X, 8U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lsnd, 9U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lsr0, 10U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_LsrN, 11U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_Lpr0, 12U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_LprN, 13U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c4_L, 14U, c4_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_ScndryAffrntCntrbtn, 15U, - c4_sf_marshallOut, c4_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3); - c4_A = c4_Lsnd; - c4_B = c4_Lsr0; - c4_x = c4_A; - c4_y = c4_B; - c4_b_x = c4_x; - c4_b_y = c4_y; - c4_c_y = c4_b_x / c4_b_y; - c4_b_A = c4_T; - c4_b_B = c4_Ksr; - c4_c_x = c4_b_A; - c4_d_y = c4_b_B; - c4_d_x = c4_c_x; - c4_e_y = c4_d_y; - c4_f_y = c4_d_x / c4_e_y; - c4_a = c4_c_y; - c4_b = c4_f_y - (c4_LsrN - c4_Lsr0); - c4_term1 = c4_a * c4_b; - _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5); - c4_c_A = c4_Lsnd; - c4_c_B = c4_Lpr0; - c4_e_x = c4_c_A; - c4_g_y = c4_c_B; - c4_f_x = c4_e_x; - c4_h_y = c4_g_y; - c4_i_y = c4_f_x / c4_h_y; - c4_d_A = c4_T; - c4_d_B = c4_Ksr; - c4_g_x = c4_d_A; - c4_j_y = c4_d_B; - c4_h_x = c4_g_x; - c4_k_y = c4_j_y; - c4_l_y = c4_h_x / c4_k_y; - c4_b_a = c4_i_y; - c4_b_b = ((c4_L - c4_l_y) - c4_Lsr0) - c4_LprN; - c4_term2 = c4_b_a * c4_b_b; - _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7); - c4_c_a = c4_X; - c4_c_b = c4_term1; - c4_m_y = c4_c_a * c4_c_b; - c4_d_a = 1.0 - c4_X; - c4_d_b = c4_term2; - c4_n_y = c4_d_a * c4_d_b; - c4_term = c4_m_y + c4_n_y; - _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9); - c4_e_a = c4_Gsnd; - c4_e_b = c4_term; - c4_ScndryAffrntCntrbtn = c4_e_a * c4_e_b; - _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -9); - _SFD_SYMBOL_SCOPE_POP(); - *c4_b_ScndryAffrntCntrbtn = c4_ScndryAffrntCntrbtn; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 3U, chartInstance->c4_sfEvent); - _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void registerMessagesc4_MuscleSpindle(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c4_machineNumber, uint32_T - c4_chartNumber) -{ -} - -static const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData) -{ - const mxArray *c4_mxArrayOutData = NULL; - real_T c4_u; - const mxArray *c4_y = NULL; - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c4_mxArrayOutData = NULL; - c4_u = *(real_T *)c4_inData; - c4_y = NULL; - sf_mex_assign(&c4_y, sf_mex_create("y", &c4_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE); - return c4_mxArrayOutData; -} - -static real_T c4_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_ScndryAffrntCntrbtn, const char_T - *c4_identifier) -{ - real_T c4_y; - emlrtMsgIdentifier c4_thisId; - c4_thisId.fIdentifier = c4_identifier; - c4_thisId.fParent = NULL; - c4_y = c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_ScndryAffrntCntrbtn), - &c4_thisId); - sf_mex_destroy(&c4_ScndryAffrntCntrbtn); - return c4_y; -} - -static real_T c4_b_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId) -{ - real_T c4_y; - real_T c4_d0; - sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d0, 1, 0, 0U, 0, 0U, 0); - c4_y = c4_d0; - sf_mex_destroy(&c4_u); - return c4_y; -} - -static void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData) -{ - const mxArray *c4_ScndryAffrntCntrbtn; - const char_T *c4_identifier; - emlrtMsgIdentifier c4_thisId; - real_T c4_y; - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c4_ScndryAffrntCntrbtn = sf_mex_dup(c4_mxArrayInData); - c4_identifier = c4_varName; - c4_thisId.fIdentifier = c4_identifier; - c4_thisId.fParent = NULL; - c4_y = c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_ScndryAffrntCntrbtn), - &c4_thisId); - sf_mex_destroy(&c4_ScndryAffrntCntrbtn); - *(real_T *)c4_outData = c4_y; - sf_mex_destroy(&c4_mxArrayInData); -} - -const mxArray *sf_c4_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c4_nameCaptureInfo; - c4_ResolvedFunctionInfo c4_info[5]; - c4_ResolvedFunctionInfo (*c4_b_info)[5]; - const mxArray *c4_m0 = NULL; - int32_T c4_i0; - c4_ResolvedFunctionInfo *c4_r0; - c4_nameCaptureInfo = NULL; - c4_nameCaptureInfo = NULL; - c4_b_info = (c4_ResolvedFunctionInfo (*)[5])c4_info; - (*c4_b_info)[0].context = ""; - (*c4_b_info)[0].name = "mrdivide"; - (*c4_b_info)[0].dominantType = "double"; - (*c4_b_info)[0].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c4_b_info)[0].fileTimeLo = 1357947948U; - (*c4_b_info)[0].fileTimeHi = 0U; - (*c4_b_info)[0].mFileTimeLo = 1319726366U; - (*c4_b_info)[0].mFileTimeHi = 0U; - (*c4_b_info)[1].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - (*c4_b_info)[1].name = "rdivide"; - (*c4_b_info)[1].dominantType = "double"; - (*c4_b_info)[1].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c4_b_info)[1].fileTimeLo = 1346506788U; - (*c4_b_info)[1].fileTimeHi = 0U; - (*c4_b_info)[1].mFileTimeLo = 0U; - (*c4_b_info)[1].mFileTimeHi = 0U; - (*c4_b_info)[2].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c4_b_info)[2].name = "eml_scalexp_compatible"; - (*c4_b_info)[2].dominantType = "double"; - (*c4_b_info)[2].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; - (*c4_b_info)[2].fileTimeLo = 1286815196U; - (*c4_b_info)[2].fileTimeHi = 0U; - (*c4_b_info)[2].mFileTimeLo = 0U; - (*c4_b_info)[2].mFileTimeHi = 0U; - (*c4_b_info)[3].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - (*c4_b_info)[3].name = "eml_div"; - (*c4_b_info)[3].dominantType = "double"; - (*c4_b_info)[3].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; - (*c4_b_info)[3].fileTimeLo = 1313344210U; - (*c4_b_info)[3].fileTimeHi = 0U; - (*c4_b_info)[3].mFileTimeLo = 0U; - (*c4_b_info)[3].mFileTimeHi = 0U; - (*c4_b_info)[4].context = ""; - (*c4_b_info)[4].name = "mtimes"; - (*c4_b_info)[4].dominantType = "double"; - (*c4_b_info)[4].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; - (*c4_b_info)[4].fileTimeLo = 1289516092U; - (*c4_b_info)[4].fileTimeHi = 0U; - (*c4_b_info)[4].mFileTimeLo = 0U; - (*c4_b_info)[4].mFileTimeHi = 0U; - sf_mex_assign(&c4_m0, sf_mex_createstruct("nameCaptureInfo", 1, 5), FALSE); - for (c4_i0 = 0; c4_i0 < 5; c4_i0++) { - c4_r0 = &c4_info[c4_i0]; - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", c4_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c4_r0->context)), "context", "nameCaptureInfo", - c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", c4_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c4_r0->name)), "name", "nameCaptureInfo", c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", c4_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c4_r0->dominantType)), "dominantType", - "nameCaptureInfo", c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", c4_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c4_r0->resolved)), "resolved", "nameCaptureInfo", - c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", &c4_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", &c4_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", &c4_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c4_i0); - sf_mex_addfield(c4_m0, sf_mex_create("nameCaptureInfo", &c4_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c4_i0); - } - - sf_mex_assign(&c4_nameCaptureInfo, c4_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo); - return c4_nameCaptureInfo; -} - -static const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void - *c4_inData) -{ - const mxArray *c4_mxArrayOutData = NULL; - int32_T c4_u; - const mxArray *c4_y = NULL; - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c4_mxArrayOutData = NULL; - c4_u = *(int32_T *)c4_inData; - c4_y = NULL; - sf_mex_assign(&c4_y, sf_mex_create("y", &c4_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE); - return c4_mxArrayOutData; -} - -static int32_T c4_c_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId) -{ - int32_T c4_y; - int32_T c4_i1; - sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i1, 1, 6, 0U, 0, 0U, 0); - c4_y = c4_i1; - sf_mex_destroy(&c4_u); - return c4_y; -} - -static void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData) -{ - const mxArray *c4_b_sfEvent; - const char_T *c4_identifier; - emlrtMsgIdentifier c4_thisId; - int32_T c4_y; - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData); - c4_identifier = c4_varName; - c4_thisId.fIdentifier = c4_identifier; - c4_thisId.fParent = NULL; - c4_y = c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent), - &c4_thisId); - sf_mex_destroy(&c4_b_sfEvent); - *(int32_T *)c4_outData = c4_y; - sf_mex_destroy(&c4_mxArrayInData); -} - -static uint8_T c4_d_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_b_is_active_c4_MuscleSpindle, const char_T - *c4_identifier) -{ - uint8_T c4_y; - emlrtMsgIdentifier c4_thisId; - c4_thisId.fIdentifier = c4_identifier; - c4_thisId.fParent = NULL; - c4_y = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c4_b_is_active_c4_MuscleSpindle), &c4_thisId); - sf_mex_destroy(&c4_b_is_active_c4_MuscleSpindle); - return c4_y; -} - -static uint8_T c4_e_emlrt_marshallIn(SFc4_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId) -{ - uint8_T c4_y; - uint8_T c4_u0; - sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0); - c4_y = c4_u0; - sf_mex_destroy(&c4_u); - return c4_y; -} - -static void init_dsm_address_info(SFc4_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -#ifdef utFree -#undef utFree -#endif - -#ifdef utMalloc -#undef utMalloc -#endif - -#ifdef __cplusplus - -extern "C" void *utMalloc(size_t size); -extern "C" void utFree(void*); - -#else - -extern void *utMalloc(size_t size); -extern void utFree(void*); - -#endif - -void sf_c4_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2927169710U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3875967505U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2948318806U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2847105181U); -} - -mxArray *sf_c4_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("6MdPBYbz53whJT5GuBWJbE"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,10,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -mxArray *sf_c4_MuscleSpindle_third_party_uses_info(void) -{ - mxArray * mxcell3p = mxCreateCellMatrix(1,0); - return(mxcell3p); -} - -static const mxArray *sf_get_sim_state_info_c4_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ScndryAffrntCntrbtn\",},{M[8],M[0],T\"is_active_c4_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c4_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - 4, - 1, - 1, - 11, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"Gsnd"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(3,1,1,0,"X"); - _SFD_SET_DATA_PROPS(4,2,0,1,"ScndryAffrntCntrbtn"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsnd"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(7,1,1,0,"LsrN"); - _SFD_SET_DATA_PROPS(8,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(9,1,1,0,"LprN"); - _SFD_SET_DATA_PROPS(10,1,1,0,"L"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,372); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c4_Gsnd; - real_T *c4_T; - real_T *c4_Ksr; - real_T *c4_X; - real_T *c4_ScndryAffrntCntrbtn; - real_T *c4_Lsnd; - real_T *c4_Lsr0; - real_T *c4_LsrN; - real_T *c4_Lpr0; - real_T *c4_LprN; - real_T *c4_L; - c4_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c4_LprN = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c4_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c4_LsrN = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c4_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c4_Lsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c4_ScndryAffrntCntrbtn = (real_T *)ssGetOutputPortSignal - (chartInstance->S, 1); - c4_X = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c4_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c4_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c4_Gsnd = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c4_Gsnd); - _SFD_SET_DATA_VALUE_PTR(1U, c4_T); - _SFD_SET_DATA_VALUE_PTR(2U, c4_Ksr); - _SFD_SET_DATA_VALUE_PTR(3U, c4_X); - _SFD_SET_DATA_VALUE_PTR(4U, c4_ScndryAffrntCntrbtn); - _SFD_SET_DATA_VALUE_PTR(5U, c4_Lsnd); - _SFD_SET_DATA_VALUE_PTR(6U, c4_Lsr0); - _SFD_SET_DATA_VALUE_PTR(7U, c4_LsrN); - _SFD_SET_DATA_VALUE_PTR(8U, c4_Lpr0); - _SFD_SET_DATA_VALUE_PTR(9U, c4_LprN); - _SFD_SET_DATA_VALUE_PTR(10U, c4_L); - } - } - } else { - sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_,chartInstance->chartNumber, - chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization(void) -{ - return "EIegXK4lrHvNN24BpctGtD"; -} - -static void sf_opaque_initialize_c4_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc4_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c4_MuscleSpindle(void *chartInstanceVar) -{ - enable_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c4_MuscleSpindle(void *chartInstanceVar) -{ - disable_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c4_MuscleSpindle(void *chartInstanceVar) -{ - sf_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c4_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c4_MuscleSpindle - ((SFc4_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c4_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c4_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c4_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c4_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c4_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c4_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c4_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c4_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc4_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - unload_MuscleSpindle_optimization_info(); - } - - finalize_c4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) - chartInstanceVar); - utFree((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc4_MuscleSpindle((SFc4_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c4_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c4_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 4); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,4,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,4, - "gatewayCannotBeInlinedMultipleTimes")); - sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,4,10); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,4,1); - } - - { - unsigned int outPortIdx; - for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { - ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); - } - } - - { - unsigned int inPortIdx; - for (inPortIdx=0; inPortIdx < 10; ++inPortIdx) { - ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); - } - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(3271247123U)); - ssSetChecksum1(S,(2205023528U)); - ssSetChecksum2(S,(1044813094U)); - ssSetChecksum3(S,(4222593174U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); - ssSupportsMultipleExecInstances(S,1); -} - -static void mdlRTW_c4_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c4_MuscleSpindle(SimStruct *S) -{ - SFc4_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc4_MuscleSpindleInstanceStruct *)utMalloc(sizeof - (SFc4_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc4_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c4_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c4_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c4_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c4_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c4_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c4_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c4_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c4_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c4_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c4_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c4_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h deleted file mode 100644 index 7424d99..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c4_MuscleSpindle.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __c4_MuscleSpindle_h__ -#define __c4_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -#ifndef typedef_c4_ResolvedFunctionInfo -#define typedef_c4_ResolvedFunctionInfo - -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c4_ResolvedFunctionInfo; - -#endif /*typedef_c4_ResolvedFunctionInfo*/ - -#ifndef typedef_SFc4_MuscleSpindleInstanceStruct -#define typedef_SFc4_MuscleSpindleInstanceStruct - -typedef struct { - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; - int32_T c4_sfEvent; - boolean_T c4_isStable; - boolean_T c4_doneDoubleBufferReInit; - uint8_T c4_is_active_c4_MuscleSpindle; -} SFc4_MuscleSpindleInstanceStruct; - -#endif /*typedef_SFc4_MuscleSpindleInstanceStruct*/ - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c4_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c4_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c4_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c deleted file mode 100644 index 2e9c426..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.c +++ /dev/null @@ -1,1669 +0,0 @@ -/* Include files */ - -#include -#include "blas.h" -#include "MuscleSpindle_sfun.h" -#include "c5_MuscleSpindle.h" -#include "mwmathutil.h" -#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber) -#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber) -#include "MuscleSpindle_sfun_debug_macros.h" -#define _SF_MEX_LISTEN_FOR_CTRL_C(S) sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S); - -/* Type Definitions */ - -/* Named Constants */ -#define CALL_EVENT (-1) - -/* Variable Declarations */ - -/* Variable Definitions */ -static const char * c5_debug_family_names[19] = { "LTerm", "nargin", "nargout", - "dT", "T", "L", "dL", "ddL", "Lsr0", "Ksr", "M", "C", "Beta", "a", "R", "Kpr", - "Lpr0", "Gamma", "ddT" }; - -/* Function Declarations */ -static void initialize_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void initialize_params_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct * - chartInstance); -static void enable_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void disable_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void c5_update_debugger_state_c5_MuscleSpindle - (SFc5_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *get_sim_state_c5_MuscleSpindle - (SFc5_MuscleSpindleInstanceStruct *chartInstance); -static void set_sim_state_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_st); -static void finalize_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance); -static void initSimStructsc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void registerMessagesc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance); -static void init_script_number_translation(uint32_T c5_machineNumber, uint32_T - c5_chartNumber); -static const mxArray *c5_sf_marshallOut(void *chartInstanceVoid, void *c5_inData); -static real_T c5_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_ddT, const char_T *c5_identifier); -static real_T c5_b_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId); -static void c5_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c5_mxArrayInData, const char_T *c5_varName, void *c5_outData); -static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[17]); -static void c5_eml_scalar_eg(SFc5_MuscleSpindleInstanceStruct *chartInstance); -static void c5_eml_error(SFc5_MuscleSpindleInstanceStruct *chartInstance); -static const mxArray *c5_b_sf_marshallOut(void *chartInstanceVoid, void - *c5_inData); -static int32_T c5_c_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId); -static void c5_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c5_mxArrayInData, const char_T *c5_varName, void *c5_outData); -static uint8_T c5_d_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_b_is_active_c5_MuscleSpindle, const char_T - *c5_identifier); -static uint8_T c5_e_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId); -static void init_dsm_address_info(SFc5_MuscleSpindleInstanceStruct - *chartInstance); - -/* Function Definitions */ -static void initialize_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ - chartInstance->c5_sfEvent = CALL_EVENT; - _sfTime_ = (real_T)ssGetT(chartInstance->S); - chartInstance->c5_is_active_c5_MuscleSpindle = 0U; -} - -static void initialize_params_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct * - chartInstance) -{ -} - -static void enable_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void disable_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ - _sfTime_ = (real_T)ssGetT(chartInstance->S); -} - -static void c5_update_debugger_state_c5_MuscleSpindle - (SFc5_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static const mxArray *get_sim_state_c5_MuscleSpindle - (SFc5_MuscleSpindleInstanceStruct *chartInstance) -{ - const mxArray *c5_st; - const mxArray *c5_y = NULL; - real_T c5_hoistedGlobal; - real_T c5_u; - const mxArray *c5_b_y = NULL; - uint8_T c5_b_hoistedGlobal; - uint8_T c5_b_u; - const mxArray *c5_c_y = NULL; - real_T *c5_ddT; - c5_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c5_st = NULL; - c5_st = NULL; - c5_y = NULL; - sf_mex_assign(&c5_y, sf_mex_createcellarray(2), FALSE); - c5_hoistedGlobal = *c5_ddT; - c5_u = c5_hoistedGlobal; - c5_b_y = NULL; - sf_mex_assign(&c5_b_y, sf_mex_create("y", &c5_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c5_y, 0, c5_b_y); - c5_b_hoistedGlobal = chartInstance->c5_is_active_c5_MuscleSpindle; - c5_b_u = c5_b_hoistedGlobal; - c5_c_y = NULL; - sf_mex_assign(&c5_c_y, sf_mex_create("y", &c5_b_u, 3, 0U, 0U, 0U, 0), FALSE); - sf_mex_setcell(c5_y, 1, c5_c_y); - sf_mex_assign(&c5_st, c5_y, FALSE); - return c5_st; -} - -static void set_sim_state_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_st) -{ - const mxArray *c5_u; - real_T *c5_ddT; - c5_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - chartInstance->c5_doneDoubleBufferReInit = TRUE; - c5_u = sf_mex_dup(c5_st); - *c5_ddT = c5_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c5_u, 0)), - "ddT"); - chartInstance->c5_is_active_c5_MuscleSpindle = c5_d_emlrt_marshallIn - (chartInstance, sf_mex_dup(sf_mex_getcell(c5_u, 1)), - "is_active_c5_MuscleSpindle"); - sf_mex_destroy(&c5_u); - c5_update_debugger_state_c5_MuscleSpindle(chartInstance); - sf_mex_destroy(&c5_st); -} - -static void finalize_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void sf_c5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct *chartInstance) -{ - real_T c5_hoistedGlobal; - real_T c5_b_hoistedGlobal; - real_T c5_c_hoistedGlobal; - real_T c5_d_hoistedGlobal; - real_T c5_e_hoistedGlobal; - real_T c5_f_hoistedGlobal; - real_T c5_g_hoistedGlobal; - real_T c5_h_hoistedGlobal; - real_T c5_i_hoistedGlobal; - real_T c5_j_hoistedGlobal; - real_T c5_k_hoistedGlobal; - real_T c5_l_hoistedGlobal; - real_T c5_m_hoistedGlobal; - real_T c5_n_hoistedGlobal; - real_T c5_o_hoistedGlobal; - real_T c5_dT; - real_T c5_T; - real_T c5_L; - real_T c5_dL; - real_T c5_ddL; - real_T c5_Lsr0; - real_T c5_Ksr; - real_T c5_M; - real_T c5_C; - real_T c5_Beta; - real_T c5_a; - real_T c5_R; - real_T c5_Kpr; - real_T c5_Lpr0; - real_T c5_Gamma; - uint32_T c5_debug_family_var_map[19]; - real_T c5_LTerm; - real_T c5_nargin = 15.0; - real_T c5_nargout = 1.0; - real_T c5_ddT; - real_T c5_A; - real_T c5_B; - real_T c5_x; - real_T c5_y; - real_T c5_b_x; - real_T c5_b_y; - real_T c5_c_y; - real_T c5_b_A; - real_T c5_b_B; - real_T c5_c_x; - real_T c5_d_y; - real_T c5_d_x; - real_T c5_e_y; - real_T c5_f_y; - real_T c5_b_a; - real_T c5_b; - real_T c5_g_y; - real_T c5_c_A; - real_T c5_c_B; - real_T c5_e_x; - real_T c5_h_y; - real_T c5_f_x; - real_T c5_i_y; - real_T c5_j_y; - real_T c5_g_x; - real_T c5_h_x; - real_T c5_c_a; - real_T c5_b_b; - real_T c5_k_y; - real_T c5_d_A; - real_T c5_d_B; - real_T c5_i_x; - real_T c5_l_y; - real_T c5_j_x; - real_T c5_m_y; - real_T c5_n_y; - real_T c5_k_x; - real_T c5_l_x; - real_T c5_o_y; - real_T c5_d_a; - real_T c5_c_b; - real_T c5_e_a; - real_T c5_d_b; - real_T c5_f_a; - real_T c5_e_b; - real_T c5_ak; - real_T c5_bk; - real_T c5_m_x; - real_T c5_n_x; - real_T c5_g_a; - real_T c5_f_b; - real_T c5_ar; - real_T c5_br; - real_T c5_c; - real_T c5_h_a; - real_T c5_g_b; - real_T c5_p_y; - real_T c5_i_a; - real_T c5_h_b; - real_T c5_q_y; - real_T c5_j_a; - real_T c5_i_b; - real_T c5_r_y; - real_T c5_k_a; - real_T c5_j_b; - real_T c5_s_y; - real_T c5_l_a; - real_T c5_k_b; - real_T *c5_b_Gamma; - real_T *c5_b_Lpr0; - real_T *c5_b_Kpr; - real_T *c5_b_R; - real_T *c5_m_a; - real_T *c5_b_Beta; - real_T *c5_b_C; - real_T *c5_b_M; - real_T *c5_b_Ksr; - real_T *c5_b_Lsr0; - real_T *c5_b_ddL; - real_T *c5_b_dL; - real_T *c5_b_L; - real_T *c5_b_T; - real_T *c5_b_dT; - real_T *c5_b_ddT; - c5_b_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c5_b_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c5_b_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c5_b_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c5_m_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c5_b_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c5_b_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c5_b_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c5_b_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c5_b_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c5_b_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c5_b_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c5_b_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c5_b_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c5_b_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c5_b_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _sfTime_ = (real_T)ssGetT(chartInstance->S); - _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 4U, chartInstance->c5_sfEvent); - _SFD_DATA_RANGE_CHECK(*c5_b_dT, 0U); - _SFD_DATA_RANGE_CHECK(*c5_b_T, 1U); - _SFD_DATA_RANGE_CHECK(*c5_b_L, 2U); - _SFD_DATA_RANGE_CHECK(*c5_b_dL, 3U); - _SFD_DATA_RANGE_CHECK(*c5_b_ddL, 4U); - _SFD_DATA_RANGE_CHECK(*c5_b_Lsr0, 5U); - _SFD_DATA_RANGE_CHECK(*c5_b_Ksr, 6U); - _SFD_DATA_RANGE_CHECK(*c5_b_ddT, 7U); - _SFD_DATA_RANGE_CHECK(*c5_b_M, 8U); - _SFD_DATA_RANGE_CHECK(*c5_b_C, 9U); - _SFD_DATA_RANGE_CHECK(*c5_b_Beta, 10U); - _SFD_DATA_RANGE_CHECK(*c5_m_a, 11U); - _SFD_DATA_RANGE_CHECK(*c5_b_R, 12U); - _SFD_DATA_RANGE_CHECK(*c5_b_Kpr, 13U); - _SFD_DATA_RANGE_CHECK(*c5_b_Lpr0, 14U); - _SFD_DATA_RANGE_CHECK(*c5_b_Gamma, 15U); - chartInstance->c5_sfEvent = CALL_EVENT; - _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 4U, chartInstance->c5_sfEvent); - c5_hoistedGlobal = *c5_b_dT; - c5_b_hoistedGlobal = *c5_b_T; - c5_c_hoistedGlobal = *c5_b_L; - c5_d_hoistedGlobal = *c5_b_dL; - c5_e_hoistedGlobal = *c5_b_ddL; - c5_f_hoistedGlobal = *c5_b_Lsr0; - c5_g_hoistedGlobal = *c5_b_Ksr; - c5_h_hoistedGlobal = *c5_b_M; - c5_i_hoistedGlobal = *c5_b_C; - c5_j_hoistedGlobal = *c5_b_Beta; - c5_k_hoistedGlobal = *c5_m_a; - c5_l_hoistedGlobal = *c5_b_R; - c5_m_hoistedGlobal = *c5_b_Kpr; - c5_n_hoistedGlobal = *c5_b_Lpr0; - c5_o_hoistedGlobal = *c5_b_Gamma; - c5_dT = c5_hoistedGlobal; - c5_T = c5_b_hoistedGlobal; - c5_L = c5_c_hoistedGlobal; - c5_dL = c5_d_hoistedGlobal; - c5_ddL = c5_e_hoistedGlobal; - c5_Lsr0 = c5_f_hoistedGlobal; - c5_Ksr = c5_g_hoistedGlobal; - c5_M = c5_h_hoistedGlobal; - c5_C = c5_i_hoistedGlobal; - c5_Beta = c5_j_hoistedGlobal; - c5_a = c5_k_hoistedGlobal; - c5_R = c5_l_hoistedGlobal; - c5_Kpr = c5_m_hoistedGlobal; - c5_Lpr0 = c5_n_hoistedGlobal; - c5_Gamma = c5_o_hoistedGlobal; - _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 19U, 19U, c5_debug_family_names, - c5_debug_family_var_map); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_LTerm, 0U, c5_sf_marshallOut, - c5_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_nargin, 1U, c5_sf_marshallOut, - c5_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_nargout, 2U, c5_sf_marshallOut, - c5_sf_marshallIn); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_dT, 3U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_T, 4U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_L, 5U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_dL, 6U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_ddL, 7U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Lsr0, 8U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Ksr, 9U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_M, 10U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_C, 11U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Beta, 12U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_a, 13U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_R, 14U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Kpr, 15U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Lpr0, 16U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML(&c5_Gamma, 17U, c5_sf_marshallOut); - _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c5_ddT, 18U, c5_sf_marshallOut, - c5_sf_marshallIn); - CV_EML_FCN(0, 0); - _SFD_EML_CALL(0U, chartInstance->c5_sfEvent, 3); - c5_A = c5_T; - c5_B = c5_Ksr; - c5_x = c5_A; - c5_y = c5_B; - c5_b_x = c5_x; - c5_b_y = c5_y; - c5_c_y = c5_b_x / c5_b_y; - c5_LTerm = (c5_L - c5_Lsr0) - c5_c_y; - _SFD_EML_CALL(0U, chartInstance->c5_sfEvent, 5); - c5_b_A = c5_Ksr; - c5_b_B = c5_M; - c5_c_x = c5_b_A; - c5_d_y = c5_b_B; - c5_d_x = c5_c_x; - c5_e_y = c5_d_y; - c5_f_y = c5_d_x / c5_e_y; - c5_b_a = c5_C; - c5_b = c5_Beta; - c5_g_y = c5_b_a * c5_b; - c5_c_A = c5_dT; - c5_c_B = c5_Ksr; - c5_e_x = c5_c_A; - c5_h_y = c5_c_B; - c5_f_x = c5_e_x; - c5_i_y = c5_h_y; - c5_j_y = c5_f_x / c5_i_y; - c5_g_x = c5_dL - c5_j_y; - c5_h_x = c5_g_x; - c5_h_x = muDoubleScalarSign(c5_h_x); - c5_c_a = c5_g_y; - c5_b_b = c5_h_x; - c5_k_y = c5_c_a * c5_b_b; - c5_d_A = c5_dT; - c5_d_B = c5_Ksr; - c5_i_x = c5_d_A; - c5_l_y = c5_d_B; - c5_j_x = c5_i_x; - c5_m_y = c5_l_y; - c5_n_y = c5_j_x / c5_m_y; - c5_k_x = c5_dL - c5_n_y; - c5_l_x = c5_k_x; - c5_o_y = muDoubleScalarAbs(c5_l_x); - c5_d_a = c5_o_y; - c5_c_b = c5_a; - c5_e_a = c5_d_a; - c5_d_b = c5_c_b; - c5_f_a = c5_e_a; - c5_e_b = c5_d_b; - c5_eml_scalar_eg(chartInstance); - c5_ak = c5_f_a; - c5_bk = c5_e_b; - if (c5_ak < 0.0) { - c5_m_x = c5_bk; - c5_n_x = c5_m_x; - c5_n_x = muDoubleScalarFloor(c5_n_x); - if (c5_n_x != c5_bk) { - c5_eml_error(chartInstance); - } - } - - c5_g_a = c5_ak; - c5_f_b = c5_bk; - c5_eml_scalar_eg(chartInstance); - c5_ar = c5_g_a; - c5_br = c5_f_b; - c5_c = muDoubleScalarPower(c5_ar, c5_br); - c5_h_a = c5_k_y; - c5_g_b = c5_c; - c5_p_y = c5_h_a * c5_g_b; - c5_i_a = c5_p_y; - c5_h_b = c5_LTerm - c5_R; - c5_q_y = c5_i_a * c5_h_b; - c5_j_a = c5_Kpr; - c5_i_b = c5_LTerm - c5_Lpr0; - c5_r_y = c5_j_a * c5_i_b; - c5_k_a = c5_M; - c5_j_b = c5_ddL; - c5_s_y = c5_k_a * c5_j_b; - c5_l_a = c5_f_y; - c5_k_b = (((c5_q_y + c5_r_y) + c5_s_y) + c5_Gamma) - c5_T; - c5_ddT = c5_l_a * c5_k_b; - _SFD_EML_CALL(0U, chartInstance->c5_sfEvent, -5); - _SFD_SYMBOL_SCOPE_POP(); - *c5_b_ddT = c5_ddT; - _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 4U, chartInstance->c5_sfEvent); - _SFD_CHECK_FOR_STATE_INCONSISTENCY(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber, chartInstance->instanceNumber); -} - -static void initSimStructsc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void registerMessagesc5_MuscleSpindle(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -static void init_script_number_translation(uint32_T c5_machineNumber, uint32_T - c5_chartNumber) -{ -} - -static const mxArray *c5_sf_marshallOut(void *chartInstanceVoid, void *c5_inData) -{ - const mxArray *c5_mxArrayOutData = NULL; - real_T c5_u; - const mxArray *c5_y = NULL; - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c5_mxArrayOutData = NULL; - c5_u = *(real_T *)c5_inData; - c5_y = NULL; - sf_mex_assign(&c5_y, sf_mex_create("y", &c5_u, 0, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c5_mxArrayOutData, c5_y, FALSE); - return c5_mxArrayOutData; -} - -static real_T c5_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_ddT, const char_T *c5_identifier) -{ - real_T c5_y; - emlrtMsgIdentifier c5_thisId; - c5_thisId.fIdentifier = c5_identifier; - c5_thisId.fParent = NULL; - c5_y = c5_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c5_ddT), &c5_thisId); - sf_mex_destroy(&c5_ddT); - return c5_y; -} - -static real_T c5_b_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId) -{ - real_T c5_y; - real_T c5_d0; - sf_mex_import(c5_parentId, sf_mex_dup(c5_u), &c5_d0, 1, 0, 0U, 0, 0U, 0); - c5_y = c5_d0; - sf_mex_destroy(&c5_u); - return c5_y; -} - -static void c5_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c5_mxArrayInData, const char_T *c5_varName, void *c5_outData) -{ - const mxArray *c5_ddT; - const char_T *c5_identifier; - emlrtMsgIdentifier c5_thisId; - real_T c5_y; - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c5_ddT = sf_mex_dup(c5_mxArrayInData); - c5_identifier = c5_varName; - c5_thisId.fIdentifier = c5_identifier; - c5_thisId.fParent = NULL; - c5_y = c5_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c5_ddT), &c5_thisId); - sf_mex_destroy(&c5_ddT); - *(real_T *)c5_outData = c5_y; - sf_mex_destroy(&c5_mxArrayInData); -} - -const mxArray *sf_c5_MuscleSpindle_get_eml_resolved_functions_info(void) -{ - const mxArray *c5_nameCaptureInfo; - c5_ResolvedFunctionInfo c5_info[17]; - const mxArray *c5_m0 = NULL; - int32_T c5_i0; - c5_ResolvedFunctionInfo *c5_r0; - c5_nameCaptureInfo = NULL; - c5_nameCaptureInfo = NULL; - c5_info_helper(c5_info); - sf_mex_assign(&c5_m0, sf_mex_createstruct("nameCaptureInfo", 1, 17), FALSE); - for (c5_i0 = 0; c5_i0 < 17; c5_i0++) { - c5_r0 = &c5_info[c5_i0]; - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", c5_r0->context, 15, - 0U, 0U, 0U, 2, 1, strlen(c5_r0->context)), "context", "nameCaptureInfo", - c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", c5_r0->name, 15, 0U, - 0U, 0U, 2, 1, strlen(c5_r0->name)), "name", "nameCaptureInfo", c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", c5_r0->dominantType, - 15, 0U, 0U, 0U, 2, 1, strlen(c5_r0->dominantType)), "dominantType", - "nameCaptureInfo", c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", c5_r0->resolved, 15, - 0U, 0U, 0U, 2, 1, strlen(c5_r0->resolved)), "resolved", "nameCaptureInfo", - c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", &c5_r0->fileTimeLo, - 7, 0U, 0U, 0U, 0), "fileTimeLo", "nameCaptureInfo", c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", &c5_r0->fileTimeHi, - 7, 0U, 0U, 0U, 0), "fileTimeHi", "nameCaptureInfo", c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", &c5_r0->mFileTimeLo, - 7, 0U, 0U, 0U, 0), "mFileTimeLo", "nameCaptureInfo", c5_i0); - sf_mex_addfield(c5_m0, sf_mex_create("nameCaptureInfo", &c5_r0->mFileTimeHi, - 7, 0U, 0U, 0U, 0), "mFileTimeHi", "nameCaptureInfo", c5_i0); - } - - sf_mex_assign(&c5_nameCaptureInfo, c5_m0, FALSE); - sf_mex_emlrtNameCapturePostProcessR2012a(&c5_nameCaptureInfo); - return c5_nameCaptureInfo; -} - -static void c5_info_helper(c5_ResolvedFunctionInfo c5_info[17]) -{ - c5_info[0].context = ""; - c5_info[0].name = "mrdivide"; - c5_info[0].dominantType = "double"; - c5_info[0].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c5_info[0].fileTimeLo = 1357947948U; - c5_info[0].fileTimeHi = 0U; - c5_info[0].mFileTimeLo = 1319726366U; - c5_info[0].mFileTimeHi = 0U; - c5_info[1].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mrdivide.p"; - c5_info[1].name = "rdivide"; - c5_info[1].dominantType = "double"; - c5_info[1].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c5_info[1].fileTimeLo = 1346506788U; - c5_info[1].fileTimeHi = 0U; - c5_info[1].mFileTimeLo = 0U; - c5_info[1].mFileTimeHi = 0U; - c5_info[2].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c5_info[2].name = "eml_scalexp_compatible"; - c5_info[2].dominantType = "double"; - c5_info[2].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_compatible.m"; - c5_info[2].fileTimeLo = 1286815196U; - c5_info[2].fileTimeHi = 0U; - c5_info[2].mFileTimeLo = 0U; - c5_info[2].mFileTimeHi = 0U; - c5_info[3].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/rdivide.m"; - c5_info[3].name = "eml_div"; - c5_info[3].dominantType = "double"; - c5_info[3].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_div.m"; - c5_info[3].fileTimeLo = 1313344210U; - c5_info[3].fileTimeHi = 0U; - c5_info[3].mFileTimeLo = 0U; - c5_info[3].mFileTimeHi = 0U; - c5_info[4].context = ""; - c5_info[4].name = "mtimes"; - c5_info[4].dominantType = "double"; - c5_info[4].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m"; - c5_info[4].fileTimeLo = 1289516092U; - c5_info[4].fileTimeHi = 0U; - c5_info[4].mFileTimeLo = 0U; - c5_info[4].mFileTimeHi = 0U; - c5_info[5].context = ""; - c5_info[5].name = "sign"; - c5_info[5].dominantType = "double"; - c5_info[5].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c5_info[5].fileTimeLo = 1354364464U; - c5_info[5].fileTimeHi = 0U; - c5_info[5].mFileTimeLo = 0U; - c5_info[5].mFileTimeHi = 0U; - c5_info[6].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/sign.m"; - c5_info[6].name = "eml_scalar_sign"; - c5_info[6].dominantType = "double"; - c5_info[6].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_sign.m"; - c5_info[6].fileTimeLo = 1354364464U; - c5_info[6].fileTimeHi = 0U; - c5_info[6].mFileTimeLo = 0U; - c5_info[6].mFileTimeHi = 0U; - c5_info[7].context = ""; - c5_info[7].name = "abs"; - c5_info[7].dominantType = "double"; - c5_info[7].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c5_info[7].fileTimeLo = 1343826766U; - c5_info[7].fileTimeHi = 0U; - c5_info[7].mFileTimeLo = 0U; - c5_info[7].mFileTimeHi = 0U; - c5_info[8].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/abs.m"; - c5_info[8].name = "eml_scalar_abs"; - c5_info[8].dominantType = "double"; - c5_info[8].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_abs.m"; - c5_info[8].fileTimeLo = 1286815112U; - c5_info[8].fileTimeHi = 0U; - c5_info[8].mFileTimeLo = 0U; - c5_info[8].mFileTimeHi = 0U; - c5_info[9].context = ""; - c5_info[9].name = "mpower"; - c5_info[9].dominantType = "double"; - c5_info[9].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c5_info[9].fileTimeLo = 1286815242U; - c5_info[9].fileTimeHi = 0U; - c5_info[9].mFileTimeLo = 0U; - c5_info[9].mFileTimeHi = 0U; - c5_info[10].context = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mpower.m"; - c5_info[10].name = "power"; - c5_info[10].dominantType = "double"; - c5_info[10].resolved = "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m"; - c5_info[10].fileTimeLo = 1348188330U; - c5_info[10].fileTimeHi = 0U; - c5_info[10].mFileTimeLo = 0U; - c5_info[10].mFileTimeHi = 0U; - c5_info[11].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c5_info[11].name = "eml_scalar_eg"; - c5_info[11].dominantType = "double"; - c5_info[11].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c5_info[11].fileTimeLo = 1286815196U; - c5_info[11].fileTimeHi = 0U; - c5_info[11].mFileTimeLo = 0U; - c5_info[11].mFileTimeHi = 0U; - c5_info[12].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c5_info[12].name = "eml_scalexp_alloc"; - c5_info[12].dominantType = "double"; - c5_info[12].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalexp_alloc.m"; - c5_info[12].fileTimeLo = 1352421260U; - c5_info[12].fileTimeHi = 0U; - c5_info[12].mFileTimeLo = 0U; - c5_info[12].mFileTimeHi = 0U; - c5_info[13].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c5_info[13].name = "floor"; - c5_info[13].dominantType = "double"; - c5_info[13].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c5_info[13].fileTimeLo = 1343826780U; - c5_info[13].fileTimeHi = 0U; - c5_info[13].mFileTimeLo = 0U; - c5_info[13].mFileTimeHi = 0U; - c5_info[14].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/floor.m"; - c5_info[14].name = "eml_scalar_floor"; - c5_info[14].dominantType = "double"; - c5_info[14].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/elfun/eml_scalar_floor.m"; - c5_info[14].fileTimeLo = 1286815126U; - c5_info[14].fileTimeHi = 0U; - c5_info[14].mFileTimeLo = 0U; - c5_info[14].mFileTimeHi = 0U; - c5_info[15].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!fltpower"; - c5_info[15].name = "eml_error"; - c5_info[15].dominantType = "char"; - c5_info[15].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_error.m"; - c5_info[15].fileTimeLo = 1343826758U; - c5_info[15].fileTimeHi = 0U; - c5_info[15].mFileTimeLo = 0U; - c5_info[15].mFileTimeHi = 0U; - c5_info[16].context = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/power.m!scalar_float_power"; - c5_info[16].name = "eml_scalar_eg"; - c5_info[16].dominantType = "double"; - c5_info[16].resolved = - "[ILXE]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_scalar_eg.m"; - c5_info[16].fileTimeLo = 1286815196U; - c5_info[16].fileTimeHi = 0U; - c5_info[16].mFileTimeLo = 0U; - c5_info[16].mFileTimeHi = 0U; -} - -static void c5_eml_scalar_eg(SFc5_MuscleSpindleInstanceStruct *chartInstance) -{ -} - -static void c5_eml_error(SFc5_MuscleSpindleInstanceStruct *chartInstance) -{ - int32_T c5_i1; - static char_T c5_cv0[31] = { 'C', 'o', 'd', 'e', 'r', ':', 't', 'o', 'o', 'l', - 'b', 'o', 'x', ':', 'p', 'o', 'w', 'e', 'r', '_', 'd', 'o', 'm', 'a', 'i', - 'n', 'E', 'r', 'r', 'o', 'r' }; - - char_T c5_u[31]; - const mxArray *c5_y = NULL; - for (c5_i1 = 0; c5_i1 < 31; c5_i1++) { - c5_u[c5_i1] = c5_cv0[c5_i1]; - } - - c5_y = NULL; - sf_mex_assign(&c5_y, sf_mex_create("y", c5_u, 10, 0U, 1U, 0U, 2, 1, 31), FALSE); - sf_mex_call_debug("error", 0U, 1U, 14, sf_mex_call_debug("message", 1U, 1U, 14, - c5_y)); -} - -static const mxArray *c5_b_sf_marshallOut(void *chartInstanceVoid, void - *c5_inData) -{ - const mxArray *c5_mxArrayOutData = NULL; - int32_T c5_u; - const mxArray *c5_y = NULL; - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c5_mxArrayOutData = NULL; - c5_u = *(int32_T *)c5_inData; - c5_y = NULL; - sf_mex_assign(&c5_y, sf_mex_create("y", &c5_u, 6, 0U, 0U, 0U, 0), FALSE); - sf_mex_assign(&c5_mxArrayOutData, c5_y, FALSE); - return c5_mxArrayOutData; -} - -static int32_T c5_c_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId) -{ - int32_T c5_y; - int32_T c5_i2; - sf_mex_import(c5_parentId, sf_mex_dup(c5_u), &c5_i2, 1, 6, 0U, 0, 0U, 0); - c5_y = c5_i2; - sf_mex_destroy(&c5_u); - return c5_y; -} - -static void c5_b_sf_marshallIn(void *chartInstanceVoid, const mxArray - *c5_mxArrayInData, const char_T *c5_varName, void *c5_outData) -{ - const mxArray *c5_b_sfEvent; - const char_T *c5_identifier; - emlrtMsgIdentifier c5_thisId; - int32_T c5_y; - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)chartInstanceVoid; - c5_b_sfEvent = sf_mex_dup(c5_mxArrayInData); - c5_identifier = c5_varName; - c5_thisId.fIdentifier = c5_identifier; - c5_thisId.fParent = NULL; - c5_y = c5_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c5_b_sfEvent), - &c5_thisId); - sf_mex_destroy(&c5_b_sfEvent); - *(int32_T *)c5_outData = c5_y; - sf_mex_destroy(&c5_mxArrayInData); -} - -static uint8_T c5_d_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_b_is_active_c5_MuscleSpindle, const char_T - *c5_identifier) -{ - uint8_T c5_y; - emlrtMsgIdentifier c5_thisId; - c5_thisId.fIdentifier = c5_identifier; - c5_thisId.fParent = NULL; - c5_y = c5_e_emlrt_marshallIn(chartInstance, sf_mex_dup - (c5_b_is_active_c5_MuscleSpindle), &c5_thisId); - sf_mex_destroy(&c5_b_is_active_c5_MuscleSpindle); - return c5_y; -} - -static uint8_T c5_e_emlrt_marshallIn(SFc5_MuscleSpindleInstanceStruct - *chartInstance, const mxArray *c5_u, const emlrtMsgIdentifier *c5_parentId) -{ - uint8_T c5_y; - uint8_T c5_u0; - sf_mex_import(c5_parentId, sf_mex_dup(c5_u), &c5_u0, 1, 3, 0U, 0, 0U, 0); - c5_y = c5_u0; - sf_mex_destroy(&c5_u); - return c5_y; -} - -static void init_dsm_address_info(SFc5_MuscleSpindleInstanceStruct - *chartInstance) -{ -} - -/* SFunction Glue Code */ -#ifdef utFree -#undef utFree -#endif - -#ifdef utMalloc -#undef utMalloc -#endif - -#ifdef __cplusplus - -extern "C" void *utMalloc(size_t size); -extern "C" void utFree(void*); - -#else - -extern void *utMalloc(size_t size); -extern void utFree(void*); - -#endif - -void sf_c5_MuscleSpindle_get_check_sum(mxArray *plhs[]) -{ - ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3759668626U); - ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1485165160U); - ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3860467207U); - ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4026735211U); -} - -mxArray *sf_c5_MuscleSpindle_get_autoinheritance_info(void) -{ - const char *autoinheritanceFields[] = { "checksum", "inputs", "parameters", - "outputs", "locals" }; - - mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5, - autoinheritanceFields); - - { - mxArray *mxChecksum = mxCreateString("ww8NqEKWGCNBxeBEMAhny"); - mxSetField(mxAutoinheritanceInfo,0,"checksum",mxChecksum); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,15,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,1,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,1,"type",mxType); - } - - mxSetField(mxData,1,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,2,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,2,"type",mxType); - } - - mxSetField(mxData,2,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,3,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,3,"type",mxType); - } - - mxSetField(mxData,3,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,4,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,4,"type",mxType); - } - - mxSetField(mxData,4,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,5,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,5,"type",mxType); - } - - mxSetField(mxData,5,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,6,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,6,"type",mxType); - } - - mxSetField(mxData,6,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,7,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,7,"type",mxType); - } - - mxSetField(mxData,7,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,8,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,8,"type",mxType); - } - - mxSetField(mxData,8,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,9,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,9,"type",mxType); - } - - mxSetField(mxData,9,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,10,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,10,"type",mxType); - } - - mxSetField(mxData,10,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,11,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,11,"type",mxType); - } - - mxSetField(mxData,11,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,12,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,12,"type",mxType); - } - - mxSetField(mxData,12,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,13,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,13,"type",mxType); - } - - mxSetField(mxData,13,"complexity",mxCreateDoubleScalar(0)); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,14,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,14,"type",mxType); - } - - mxSetField(mxData,14,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"inputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"parameters",mxCreateDoubleMatrix(0,0, - mxREAL)); - } - - { - const char *dataFields[] = { "size", "type", "complexity" }; - - mxArray *mxData = mxCreateStructMatrix(1,1,3,dataFields); - - { - mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL); - double *pr = mxGetPr(mxSize); - pr[0] = (double)(1); - pr[1] = (double)(1); - mxSetField(mxData,0,"size",mxSize); - } - - { - const char *typeFields[] = { "base", "fixpt" }; - - mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields); - mxSetField(mxType,0,"base",mxCreateDoubleScalar(10)); - mxSetField(mxType,0,"fixpt",mxCreateDoubleMatrix(0,0,mxREAL)); - mxSetField(mxData,0,"type",mxType); - } - - mxSetField(mxData,0,"complexity",mxCreateDoubleScalar(0)); - mxSetField(mxAutoinheritanceInfo,0,"outputs",mxData); - } - - { - mxSetField(mxAutoinheritanceInfo,0,"locals",mxCreateDoubleMatrix(0,0,mxREAL)); - } - - return(mxAutoinheritanceInfo); -} - -mxArray *sf_c5_MuscleSpindle_third_party_uses_info(void) -{ - mxArray * mxcell3p = mxCreateCellMatrix(1,0); - return(mxcell3p); -} - -static const mxArray *sf_get_sim_state_info_c5_MuscleSpindle(void) -{ - const char *infoFields[] = { "chartChecksum", "varInfo" }; - - mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields); - const char *infoEncStr[] = { - "100 S1x2'type','srcId','name','auxInfo'{{M[1],M[5],T\"ddT\",},{M[8],M[0],T\"is_active_c5_MuscleSpindle\",}}" - }; - - mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 2, 10); - mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL); - sf_c5_MuscleSpindle_get_check_sum(&mxChecksum); - mxSetField(mxInfo, 0, infoFields[0], mxChecksum); - mxSetField(mxInfo, 0, infoFields[1], mxVarInfo); - return mxInfo; -} - -static void chart_debug_initialization(SimStruct *S, unsigned int - fullDebuggerInitialization) -{ - if (!sim_mode_is_rtw_gen(S)) { - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *) ((ChartInfoStruct *) - (ssGetUserData(S)))->chartInstance; - if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) { - /* do this only if simulation is starting */ - { - unsigned int chartAlreadyPresent; - chartAlreadyPresent = sf_debug_initialize_chart - (sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - 5, - 1, - 1, - 16, - 0, - 0, - 0, - 0, - 0, - &(chartInstance->chartNumber), - &(chartInstance->instanceNumber), - ssGetPath(S), - (void *)S); - if (chartAlreadyPresent==0) { - /* this is the first instance */ - init_script_number_translation(_MuscleSpindleMachineNumber_, - chartInstance->chartNumber); - sf_debug_set_chart_disable_implicit_casting - (sfGlobalDebugInstanceStruct,_MuscleSpindleMachineNumber_, - chartInstance->chartNumber,1); - sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_, - chartInstance->chartNumber, - 0, - 0, - 0); - _SFD_SET_DATA_PROPS(0,1,1,0,"dT"); - _SFD_SET_DATA_PROPS(1,1,1,0,"T"); - _SFD_SET_DATA_PROPS(2,1,1,0,"L"); - _SFD_SET_DATA_PROPS(3,1,1,0,"dL"); - _SFD_SET_DATA_PROPS(4,1,1,0,"ddL"); - _SFD_SET_DATA_PROPS(5,1,1,0,"Lsr0"); - _SFD_SET_DATA_PROPS(6,1,1,0,"Ksr"); - _SFD_SET_DATA_PROPS(7,2,0,1,"ddT"); - _SFD_SET_DATA_PROPS(8,1,1,0,"M"); - _SFD_SET_DATA_PROPS(9,1,1,0,"C"); - _SFD_SET_DATA_PROPS(10,1,1,0,"Beta"); - _SFD_SET_DATA_PROPS(11,1,1,0,"a"); - _SFD_SET_DATA_PROPS(12,1,1,0,"R"); - _SFD_SET_DATA_PROPS(13,1,1,0,"Kpr"); - _SFD_SET_DATA_PROPS(14,1,1,0,"Lpr0"); - _SFD_SET_DATA_PROPS(15,1,1,0,"Gamma"); - _SFD_STATE_INFO(0,0,2); - _SFD_CH_SUBSTATE_COUNT(0); - _SFD_CH_SUBSTATE_DECOMP(0); - } - - _SFD_CV_INIT_CHART(0,0,0,0); - - { - _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL); - } - - _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL); - - /* Initialization of MATLAB Function Model Coverage */ - _SFD_CV_INIT_EML(0,1,1,0,0,0,0,0,0,0,0); - _SFD_CV_INIT_EML_FCN(0,0,"eML_blk_kernel",0,-1,340); - _SFD_TRANS_COV_WTS(0,0,0,1,0); - if (chartAlreadyPresent==0) { - _SFD_TRANS_COV_MAPS(0, - 0,NULL,NULL, - 0,NULL,NULL, - 1,NULL,NULL, - 0,NULL,NULL); - } - - _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)c5_sf_marshallIn); - _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0, - (MexFcnForType)c5_sf_marshallOut,(MexInFcnForType)NULL); - - { - real_T *c5_dT; - real_T *c5_T; - real_T *c5_L; - real_T *c5_dL; - real_T *c5_ddL; - real_T *c5_Lsr0; - real_T *c5_Ksr; - real_T *c5_ddT; - real_T *c5_M; - real_T *c5_C; - real_T *c5_Beta; - real_T *c5_a; - real_T *c5_R; - real_T *c5_Kpr; - real_T *c5_Lpr0; - real_T *c5_Gamma; - c5_Gamma = (real_T *)ssGetInputPortSignal(chartInstance->S, 14); - c5_Lpr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 13); - c5_Kpr = (real_T *)ssGetInputPortSignal(chartInstance->S, 12); - c5_R = (real_T *)ssGetInputPortSignal(chartInstance->S, 11); - c5_a = (real_T *)ssGetInputPortSignal(chartInstance->S, 10); - c5_Beta = (real_T *)ssGetInputPortSignal(chartInstance->S, 9); - c5_C = (real_T *)ssGetInputPortSignal(chartInstance->S, 8); - c5_M = (real_T *)ssGetInputPortSignal(chartInstance->S, 7); - c5_ddT = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1); - c5_Ksr = (real_T *)ssGetInputPortSignal(chartInstance->S, 6); - c5_Lsr0 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5); - c5_ddL = (real_T *)ssGetInputPortSignal(chartInstance->S, 4); - c5_dL = (real_T *)ssGetInputPortSignal(chartInstance->S, 3); - c5_L = (real_T *)ssGetInputPortSignal(chartInstance->S, 2); - c5_T = (real_T *)ssGetInputPortSignal(chartInstance->S, 1); - c5_dT = (real_T *)ssGetInputPortSignal(chartInstance->S, 0); - _SFD_SET_DATA_VALUE_PTR(0U, c5_dT); - _SFD_SET_DATA_VALUE_PTR(1U, c5_T); - _SFD_SET_DATA_VALUE_PTR(2U, c5_L); - _SFD_SET_DATA_VALUE_PTR(3U, c5_dL); - _SFD_SET_DATA_VALUE_PTR(4U, c5_ddL); - _SFD_SET_DATA_VALUE_PTR(5U, c5_Lsr0); - _SFD_SET_DATA_VALUE_PTR(6U, c5_Ksr); - _SFD_SET_DATA_VALUE_PTR(7U, c5_ddT); - _SFD_SET_DATA_VALUE_PTR(8U, c5_M); - _SFD_SET_DATA_VALUE_PTR(9U, c5_C); - _SFD_SET_DATA_VALUE_PTR(10U, c5_Beta); - _SFD_SET_DATA_VALUE_PTR(11U, c5_a); - _SFD_SET_DATA_VALUE_PTR(12U, c5_R); - _SFD_SET_DATA_VALUE_PTR(13U, c5_Kpr); - _SFD_SET_DATA_VALUE_PTR(14U, c5_Lpr0); - _SFD_SET_DATA_VALUE_PTR(15U, c5_Gamma); - } - } - } else { - sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct, - _MuscleSpindleMachineNumber_,chartInstance->chartNumber, - chartInstance->instanceNumber); - } - } -} - -static const char* sf_get_instance_specialization(void) -{ - return "nzeVWmC3UM9JgQUxVD8bGF"; -} - -static void sf_opaque_initialize_c5_MuscleSpindle(void *chartInstanceVar) -{ - chart_debug_initialization(((SFc5_MuscleSpindleInstanceStruct*) - chartInstanceVar)->S,0); - initialize_params_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) - chartInstanceVar); - initialize_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -static void sf_opaque_enable_c5_MuscleSpindle(void *chartInstanceVar) -{ - enable_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_disable_c5_MuscleSpindle(void *chartInstanceVar) -{ - disable_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -static void sf_opaque_gateway_c5_MuscleSpindle(void *chartInstanceVar) -{ - sf_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar); -} - -extern const mxArray* sf_internal_get_sim_state_c5_MuscleSpindle(SimStruct* S) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_raw2high"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = (mxArray*) get_sim_state_c5_MuscleSpindle - ((SFc5_MuscleSpindleInstanceStruct*)chartInfo->chartInstance);/* raw sim ctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c5_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_raw2high'.\n"); - } - - return plhs[0]; -} - -extern void sf_internal_set_sim_state_c5_MuscleSpindle(SimStruct* S, const - mxArray *st) -{ - ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S); - mxArray *plhs[1] = { NULL }; - - mxArray *prhs[4]; - int mxError = 0; - prhs[0] = mxCreateString("chart_simctx_high2raw"); - prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S)); - prhs[2] = mxDuplicateArray(st); /* high level simctx */ - prhs[3] = (mxArray*) sf_get_sim_state_info_c5_MuscleSpindle();/* state var info */ - mxError = sf_mex_call_matlab(1, plhs, 4, prhs, "sfprivate"); - mxDestroyArray(prhs[0]); - mxDestroyArray(prhs[1]); - mxDestroyArray(prhs[2]); - mxDestroyArray(prhs[3]); - if (mxError || plhs[0] == NULL) { - sf_mex_error_message("Stateflow Internal Error: \nError calling 'chart_simctx_high2raw'.\n"); - } - - set_sim_state_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) - chartInfo->chartInstance, mxDuplicateArray(plhs[0])); - mxDestroyArray(plhs[0]); -} - -static const mxArray* sf_opaque_get_sim_state_c5_MuscleSpindle(SimStruct* S) -{ - return sf_internal_get_sim_state_c5_MuscleSpindle(S); -} - -static void sf_opaque_set_sim_state_c5_MuscleSpindle(SimStruct* S, const mxArray - *st) -{ - sf_internal_set_sim_state_c5_MuscleSpindle(S, st); -} - -static void sf_opaque_terminate_c5_MuscleSpindle(void *chartInstanceVar) -{ - if (chartInstanceVar!=NULL) { - SimStruct *S = ((SFc5_MuscleSpindleInstanceStruct*) chartInstanceVar)->S; - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - sf_clear_rtw_identifier(S); - unload_MuscleSpindle_optimization_info(); - } - - finalize_c5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) - chartInstanceVar); - utFree((void *)chartInstanceVar); - ssSetUserData(S,NULL); - } -} - -static void sf_opaque_init_subchart_simstructs(void *chartInstanceVar) -{ - initSimStructsc5_MuscleSpindle((SFc5_MuscleSpindleInstanceStruct*) - chartInstanceVar); -} - -extern unsigned int sf_machine_global_initializer_called(void); -static void mdlProcessParameters_c5_MuscleSpindle(SimStruct *S) -{ - int i; - for (i=0;ichartInstance)); - } -} - -static void mdlSetWorkWidths_c5_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) { - mxArray *infoStruct = load_MuscleSpindle_optimization_info(); - int_T chartIsInlinable = - (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct, - 5); - ssSetStateflowIsInlinable(S,chartIsInlinable); - ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(), - infoStruct,5,"RTWCG")); - ssSetEnableFcnIsTrivial(S,1); - ssSetDisableFcnIsTrivial(S,1); - ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S, - sf_get_instance_specialization(),infoStruct,5, - "gatewayCannotBeInlinedMultipleTimes")); - sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,5); - if (chartIsInlinable) { - ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 13, SS_REUSABLE_AND_LOCAL); - ssSetInputPortOptimOpts(S, 14, SS_REUSABLE_AND_LOCAL); - sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(), - infoStruct,5,15); - sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(), - infoStruct,5,1); - } - - { - unsigned int outPortIdx; - for (outPortIdx=1; outPortIdx<=1; ++outPortIdx) { - ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U); - } - } - - { - unsigned int inPortIdx; - for (inPortIdx=0; inPortIdx < 15; ++inPortIdx) { - ssSetInputPortOptimizeInIR(S, inPortIdx, 1U); - } - } - - sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,5); - ssSetHasSubFunctions(S,!(chartIsInlinable)); - } else { - } - - ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE); - ssSetChecksum0(S,(1887359987U)); - ssSetChecksum1(S,(2978979302U)); - ssSetChecksum2(S,(216772070U)); - ssSetChecksum3(S,(2826531006U)); - ssSetmdlDerivatives(S, NULL); - ssSetExplicitFCSSCtrl(S,1); - ssSupportsMultipleExecInstances(S,1); -} - -static void mdlRTW_c5_MuscleSpindle(SimStruct *S) -{ - if (sim_mode_is_rtw_gen(S)) { - ssWriteRTWStrParam(S, "StateflowChartType", "Embedded MATLAB"); - } -} - -static void mdlStart_c5_MuscleSpindle(SimStruct *S) -{ - SFc5_MuscleSpindleInstanceStruct *chartInstance; - chartInstance = (SFc5_MuscleSpindleInstanceStruct *)utMalloc(sizeof - (SFc5_MuscleSpindleInstanceStruct)); - memset(chartInstance, 0, sizeof(SFc5_MuscleSpindleInstanceStruct)); - if (chartInstance==NULL) { - sf_mex_error_message("Could not allocate memory for chart instance."); - } - - chartInstance->chartInfo.chartInstance = chartInstance; - chartInstance->chartInfo.isEMLChart = 1; - chartInstance->chartInfo.chartInitialized = 0; - chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c5_MuscleSpindle; - chartInstance->chartInfo.initializeChart = - sf_opaque_initialize_c5_MuscleSpindle; - chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c5_MuscleSpindle; - chartInstance->chartInfo.enableChart = sf_opaque_enable_c5_MuscleSpindle; - chartInstance->chartInfo.disableChart = sf_opaque_disable_c5_MuscleSpindle; - chartInstance->chartInfo.getSimState = - sf_opaque_get_sim_state_c5_MuscleSpindle; - chartInstance->chartInfo.setSimState = - sf_opaque_set_sim_state_c5_MuscleSpindle; - chartInstance->chartInfo.getSimStateInfo = - sf_get_sim_state_info_c5_MuscleSpindle; - chartInstance->chartInfo.zeroCrossings = NULL; - chartInstance->chartInfo.outputs = NULL; - chartInstance->chartInfo.derivatives = NULL; - chartInstance->chartInfo.mdlRTW = mdlRTW_c5_MuscleSpindle; - chartInstance->chartInfo.mdlStart = mdlStart_c5_MuscleSpindle; - chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c5_MuscleSpindle; - chartInstance->chartInfo.extModeExec = NULL; - chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL; - chartInstance->chartInfo.storeCurrentConfiguration = NULL; - chartInstance->S = S; - ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */ - init_dsm_address_info(chartInstance); - if (!sim_mode_is_rtw_gen(S)) { - } - - sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance); - chart_debug_initialization(S,1); -} - -void c5_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void *data) -{ - switch (method) { - case SS_CALL_MDL_START: - mdlStart_c5_MuscleSpindle(S); - break; - - case SS_CALL_MDL_SET_WORK_WIDTHS: - mdlSetWorkWidths_c5_MuscleSpindle(S); - break; - - case SS_CALL_MDL_PROCESS_PARAMETERS: - mdlProcessParameters_c5_MuscleSpindle(S); - break; - - default: - /* Unhandled method */ - sf_mex_error_message("Stateflow Internal Error:\n" - "Error calling c5_MuscleSpindle_method_dispatcher.\n" - "Can't handle method %d.\n", method); - break; - } -} diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h deleted file mode 100644 index 475440c..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/c5_MuscleSpindle.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __c5_MuscleSpindle_h__ -#define __c5_MuscleSpindle_h__ - -/* Include files */ -#include "sfc_sf.h" -#include "sfc_mex.h" -#include "rtwtypes.h" - -/* Type Definitions */ -#ifndef typedef_c5_ResolvedFunctionInfo -#define typedef_c5_ResolvedFunctionInfo - -typedef struct { - const char * context; - const char * name; - const char * dominantType; - const char * resolved; - uint32_T fileTimeLo; - uint32_T fileTimeHi; - uint32_T mFileTimeLo; - uint32_T mFileTimeHi; -} c5_ResolvedFunctionInfo; - -#endif /*typedef_c5_ResolvedFunctionInfo*/ - -#ifndef typedef_SFc5_MuscleSpindleInstanceStruct -#define typedef_SFc5_MuscleSpindleInstanceStruct - -typedef struct { - SimStruct *S; - ChartInfoStruct chartInfo; - uint32_T chartNumber; - uint32_T instanceNumber; - int32_T c5_sfEvent; - boolean_T c5_isStable; - boolean_T c5_doneDoubleBufferReInit; - uint8_T c5_is_active_c5_MuscleSpindle; -} SFc5_MuscleSpindleInstanceStruct; - -#endif /*typedef_SFc5_MuscleSpindleInstanceStruct*/ - -/* Named Constants */ - -/* Variable Declarations */ - -/* Variable Definitions */ - -/* Function Declarations */ -extern const mxArray *sf_c5_MuscleSpindle_get_eml_resolved_functions_info(void); - -/* Function Definitions */ -extern void sf_c5_MuscleSpindle_get_check_sum(mxArray *plhs[]); -extern void c5_MuscleSpindle_method_dispatcher(SimStruct *S, int_T method, void * - data); - -#endif diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h deleted file mode 100644 index 7476dec..0000000 --- a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypes.h +++ /dev/null @@ -1,711 +0,0 @@ - -#ifndef __RTWTYPES_H__ - #define __RTWTYPES_H__ - #include "tmwtypes.h" - -/* This ID is used to detect inclusion of an incompatible rtwtypes.h */ -#define RTWTYPES_ID_C08S16I32L32N32F1 - - #include "simstruc_types.h" - #ifndef POINTER_T - # define POINTER_T - typedef void * pointer_T; - #endif - #ifndef TRUE - # define TRUE (1U) - #endif - #ifndef FALSE - # define FALSE (0U) - #endif - -/* - * MultiWord supporting definitions - */ -typedef long int long_T; - -/* - * MultiWord types - */ - - -typedef struct { - uint32_T chunks[2]; -} int64m_T; - -typedef struct { - int64m_T re; - int64m_T im; -} cint64m_T; - - - -typedef struct { - uint32_T chunks[2]; -} uint64m_T; - -typedef struct { - uint64m_T re; - uint64m_T im; -} cuint64m_T; - - - -typedef struct { - uint32_T chunks[3]; -} int96m_T; - -typedef struct { - int96m_T re; - int96m_T im; -} cint96m_T; - - - -typedef struct { - uint32_T chunks[3]; -} uint96m_T; - -typedef struct { - uint96m_T re; - uint96m_T im; -} cuint96m_T; - - - -typedef struct { - uint32_T chunks[4]; -} int128m_T; - -typedef struct { - int128m_T re; - int128m_T im; -} cint128m_T; - - - -typedef struct { - uint32_T chunks[4]; -} uint128m_T; - -typedef struct { - uint128m_T re; - uint128m_T im; -} cuint128m_T; - - - -typedef struct { - uint32_T chunks[5]; -} int160m_T; - -typedef struct { - int160m_T re; - int160m_T im; -} cint160m_T; - - - -typedef struct { - uint32_T chunks[5]; -} uint160m_T; - -typedef struct { - uint160m_T re; - uint160m_T im; -} cuint160m_T; - - - -typedef struct { - uint32_T chunks[6]; -} int192m_T; - -typedef struct { - int192m_T re; - int192m_T im; -} cint192m_T; - - - -typedef struct { - uint32_T chunks[6]; -} uint192m_T; - -typedef struct { - uint192m_T re; - uint192m_T im; -} cuint192m_T; - - - -typedef struct { - uint32_T chunks[7]; -} int224m_T; - -typedef struct { - int224m_T re; - int224m_T im; -} cint224m_T; - - - -typedef struct { - uint32_T chunks[7]; -} uint224m_T; - -typedef struct { - uint224m_T re; - uint224m_T im; -} cuint224m_T; - - - -typedef struct { - uint32_T chunks[8]; -} int256m_T; - -typedef struct { - int256m_T re; - int256m_T im; -} cint256m_T; - - - -typedef struct { - uint32_T chunks[8]; -} uint256m_T; - -typedef struct { - uint256m_T re; - uint256m_T im; -} cuint256m_T; - - - -typedef struct { - uint32_T chunks[9]; -} int288m_T; - -typedef struct { - int288m_T re; - int288m_T im; -} cint288m_T; - - - -typedef struct { - uint32_T chunks[9]; -} uint288m_T; - -typedef struct { - uint288m_T re; - uint288m_T im; -} cuint288m_T; - - - -typedef struct { - uint32_T chunks[10]; -} int320m_T; - -typedef struct { - int320m_T re; - int320m_T im; -} cint320m_T; - - - -typedef struct { - uint32_T chunks[10]; -} uint320m_T; - -typedef struct { - uint320m_T re; - uint320m_T im; -} cuint320m_T; - - - -typedef struct { - uint32_T chunks[11]; -} int352m_T; - -typedef struct { - int352m_T re; - int352m_T im; -} cint352m_T; - - - -typedef struct { - uint32_T chunks[11]; -} uint352m_T; - -typedef struct { - uint352m_T re; - uint352m_T im; -} cuint352m_T; - - - -typedef struct { - uint32_T chunks[12]; -} int384m_T; - -typedef struct { - int384m_T re; - int384m_T im; -} cint384m_T; - - - -typedef struct { - uint32_T chunks[12]; -} uint384m_T; - -typedef struct { - uint384m_T re; - uint384m_T im; -} cuint384m_T; - - - -typedef struct { - uint32_T chunks[13]; -} int416m_T; - -typedef struct { - int416m_T re; - int416m_T im; -} cint416m_T; - - - -typedef struct { - uint32_T chunks[13]; -} uint416m_T; - -typedef struct { - uint416m_T re; - uint416m_T im; -} cuint416m_T; - - - -typedef struct { - uint32_T chunks[14]; -} int448m_T; - -typedef struct { - int448m_T re; - int448m_T im; -} cint448m_T; - - - -typedef struct { - uint32_T chunks[14]; -} uint448m_T; - -typedef struct { - uint448m_T re; - uint448m_T im; -} cuint448m_T; - - - -typedef struct { - uint32_T chunks[15]; -} int480m_T; - -typedef struct { - int480m_T re; - int480m_T im; -} cint480m_T; - - - -typedef struct { - uint32_T chunks[15]; -} uint480m_T; - -typedef struct { - uint480m_T re; - uint480m_T im; -} cuint480m_T; - - - -typedef struct { - uint32_T chunks[16]; -} int512m_T; - -typedef struct { - int512m_T re; - int512m_T im; -} cint512m_T; - - - -typedef struct { - uint32_T chunks[16]; -} uint512m_T; - -typedef struct { - uint512m_T re; - uint512m_T im; -} cuint512m_T; - - - -typedef struct { - uint32_T chunks[17]; -} int544m_T; - -typedef struct { - int544m_T re; - int544m_T im; -} cint544m_T; - - - -typedef struct { - uint32_T chunks[17]; -} uint544m_T; - -typedef struct { - uint544m_T re; - uint544m_T im; -} cuint544m_T; - - - -typedef struct { - uint32_T chunks[18]; -} int576m_T; - -typedef struct { - int576m_T re; - int576m_T im; -} cint576m_T; - - - -typedef struct { - uint32_T chunks[18]; -} uint576m_T; - -typedef struct { - uint576m_T re; - uint576m_T im; -} cuint576m_T; - - - -typedef struct { - uint32_T chunks[19]; -} int608m_T; - -typedef struct { - int608m_T re; - int608m_T im; -} cint608m_T; - - - -typedef struct { - uint32_T chunks[19]; -} uint608m_T; - -typedef struct { - uint608m_T re; - uint608m_T im; -} cuint608m_T; - - - -typedef struct { - uint32_T chunks[20]; -} int640m_T; - -typedef struct { - int640m_T re; - int640m_T im; -} cint640m_T; - - - -typedef struct { - uint32_T chunks[20]; -} uint640m_T; - -typedef struct { - uint640m_T re; - uint640m_T im; -} cuint640m_T; - - - -typedef struct { - uint32_T chunks[21]; -} int672m_T; - -typedef struct { - int672m_T re; - int672m_T im; -} cint672m_T; - - - -typedef struct { - uint32_T chunks[21]; -} uint672m_T; - -typedef struct { - uint672m_T re; - uint672m_T im; -} cuint672m_T; - - - -typedef struct { - uint32_T chunks[22]; -} int704m_T; - -typedef struct { - int704m_T re; - int704m_T im; -} cint704m_T; - - - -typedef struct { - uint32_T chunks[22]; -} uint704m_T; - -typedef struct { - uint704m_T re; - uint704m_T im; -} cuint704m_T; - - - -typedef struct { - uint32_T chunks[23]; -} int736m_T; - -typedef struct { - int736m_T re; - int736m_T im; -} cint736m_T; - - - -typedef struct { - uint32_T chunks[23]; -} uint736m_T; - -typedef struct { - uint736m_T re; - uint736m_T im; -} cuint736m_T; - - - -typedef struct { - uint32_T chunks[24]; -} int768m_T; - -typedef struct { - int768m_T re; - int768m_T im; -} cint768m_T; - - - -typedef struct { - uint32_T chunks[24]; -} uint768m_T; - -typedef struct { - uint768m_T re; - uint768m_T im; -} cuint768m_T; - - - -typedef struct { - uint32_T chunks[25]; -} int800m_T; - -typedef struct { - int800m_T re; - int800m_T im; -} cint800m_T; - - - -typedef struct { - uint32_T chunks[25]; -} uint800m_T; - -typedef struct { - uint800m_T re; - uint800m_T im; -} cuint800m_T; - - - -typedef struct { - uint32_T chunks[26]; -} int832m_T; - -typedef struct { - int832m_T re; - int832m_T im; -} cint832m_T; - - - -typedef struct { - uint32_T chunks[26]; -} uint832m_T; - -typedef struct { - uint832m_T re; - uint832m_T im; -} cuint832m_T; - - - -typedef struct { - uint32_T chunks[27]; -} int864m_T; - -typedef struct { - int864m_T re; - int864m_T im; -} cint864m_T; - - - -typedef struct { - uint32_T chunks[27]; -} uint864m_T; - -typedef struct { - uint864m_T re; - uint864m_T im; -} cuint864m_T; - - - -typedef struct { - uint32_T chunks[28]; -} int896m_T; - -typedef struct { - int896m_T re; - int896m_T im; -} cint896m_T; - - - -typedef struct { - uint32_T chunks[28]; -} uint896m_T; - -typedef struct { - uint896m_T re; - uint896m_T im; -} cuint896m_T; - - - -typedef struct { - uint32_T chunks[29]; -} int928m_T; - -typedef struct { - int928m_T re; - int928m_T im; -} cint928m_T; - - - -typedef struct { - uint32_T chunks[29]; -} uint928m_T; - -typedef struct { - uint928m_T re; - uint928m_T im; -} cuint928m_T; - - - -typedef struct { - uint32_T chunks[30]; -} int960m_T; - -typedef struct { - int960m_T re; - int960m_T im; -} cint960m_T; - - - -typedef struct { - uint32_T chunks[30]; -} uint960m_T; - -typedef struct { - uint960m_T re; - uint960m_T im; -} cuint960m_T; - - - -typedef struct { - uint32_T chunks[31]; -} int992m_T; - -typedef struct { - int992m_T re; - int992m_T im; -} cint992m_T; - - - -typedef struct { - uint32_T chunks[31]; -} uint992m_T; - -typedef struct { - uint992m_T re; - uint992m_T im; -} cuint992m_T; - - - -typedef struct { - uint32_T chunks[32]; -} int1024m_T; - -typedef struct { - int1024m_T re; - int1024m_T im; -} cint1024m_T; - - - -typedef struct { - uint32_T chunks[32]; -} uint1024m_T; - -typedef struct { - uint1024m_T re; - uint1024m_T im; -} cuint1024m_T; - -#endif /* __RTWTYPES_H__ */ diff --git a/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypeschksum.mat b/MATLAB/slprj/_sfprj/MuscleSpindle/_self/sfun/src/rtwtypeschksum.mat deleted file mode 100644 index b556809967681d16d4d73c0cb9115307370b9db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1105 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w+L}(NS&l5-`93qo*%FkgdbWz)&$~@8sKA%?<)> z#}l0WTO8JN?{iq_ACQ!Eo5hDCkmJj_W0^4*WFxOn`R4g+N9^LG%t75#bb5^bpEEc9 zvq72R$0f$LSM}?X7=Bu67p)Zv*JASj@qXR`R}t}2t2-j!r@t}|W?gME%V?&^+yk5* zCw6Unz{_|*ZC`%I%qtV>m#F@X2(fK_V!A7G%D%RU%iC0H+G~}jr2F=GugQJQ^2Rss zhTViL=U@ZLl+{shHY}X-Tkq)uf z{bg5v7d)Ofr!Xn+(xF(MT|4*H{d+!d`M1yd`!aOr+%xiDUywX??}7zAvr7uDo9dm< zRZH#o>D`d@Z`b1Uxr_a$*(Y zX3-y0pIN0&6KOundG3V1mZQ*zGtSQp4Sqa%zEqjJ;m3(2gMImRURoaabk*$zZ?a7P zb7{$(kQN7ry0kb?twWp&=F$cVe~z~uujfhlZ`^eBThqb3$QWf zVJa8OmS8=LQC5F&PTXof>+puHy@ft<(PB%k?4_atHm@WN|4|_f|RE z;(6(nZq*jKm7cyUSp#1jcx*V?{LJH24u<)x2NXVqy72Q|JzrbcGP|R#C*&E>40Xl~^=ouIpM{-xDdcX-dL+Pu2?+pD=d=4!lW zXe<21xPRX%;eByN%cY*~s}e9?}QhLAaC@mV8d&*cUujTDq>w1XDYAQ(!Pu3-K;--iifW$ z#LS3E=j&d2cJl&V+02LOD|fA_+oqSYo-KZj_L4g1`zD>GXJ@*5H&w9fJh4&d?+)SQ zdT~l8-`{Ve*_jXz$K32M{#QItKS+{GX#BFFZ_CW2m(jj6=DFlHEm%1#aLu2IVY@DE znPm~X=2r0Wo@$G`#xHlIU;4qn`{|0FV{=~T{j&ehX!rlh>p9=ozrM!%VE4PzepWw( OtN(> Date: Fri, 12 Jun 2015 13:22:37 +0300 Subject: [PATCH 3/3] Model parametrization --- MATLAB/MuscleSpindle.mdl | 1676 ++++++++++++++++++++++++++++---------- MATLAB/parameters.m | 45 + 2 files changed, 1302 insertions(+), 419 deletions(-) create mode 100644 MATLAB/parameters.m diff --git a/MATLAB/MuscleSpindle.mdl b/MATLAB/MuscleSpindle.mdl index 77e8c25..05ae1c0 100644 --- a/MATLAB/MuscleSpindle.mdl +++ b/MATLAB/MuscleSpindle.mdl @@ -1,34 +1,35 @@ Model { Name "MuscleSpindle" - Version 8.1 + Version 8.5 MdlSubVersion 0 + SavedCharacterEncoding "windows-1252" GraphicalInterface { NumRootInports 3 Inport { - BusObject "" Name "Fascicle Length" + BusObject "" } Inport { - BusObject "" Name "Dynamic Fusimotor" + BusObject "" } Inport { - BusObject "" Name "Static Fusimotor" + BusObject "" } NumRootOutports 2 Outport { + Name "Primary Afferent" BusObject "" BusOutputAsStruct "off" - Name "Primary Afferent" } Outport { + Name "Secondary Afferent" BusObject "" BusOutputAsStruct "off" - Name "Secondary Afferent" } ParameterArgumentNames "" - ComputedModelVersion "1.477" + ComputedModelVersion "1.480" NumModelReferences 3 ModelReference { ModelRefBlockPath "MuscleSpindle/Bag1/Coef of asymmetry (C)/Model|ContinuousDetectIncrease" @@ -41,10 +42,8 @@ Model { } NumTestPointedSignals 0 } - SavedCharacterEncoding "windows-1252" - SaveDefaultBlockParams on ScopeRefreshTime 0.035000 - OverrideScopeRefreshTime on + OverrideScopeRefreshTime off DisableAllScopes off DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" @@ -61,7 +60,7 @@ Model { $ObjectID 2 $ClassName "Simulink.WindowInfo" IsActive [1] - Location [149.0, 173.0, 999.0, 840.0] + Location [-1928.0, -8.0, 1936.0, 1056.0] Object { $PropName "ModelBrowserInfo" $ObjectID 3 @@ -70,24 +69,24 @@ Model { DockPosition "Left" Width [50] Height [50] - Filter [8] + Filter [9] } Object { $PropName "ExplorerBarInfo" $ObjectID 4 $ClassName "Simulink.ExplorerBarInfo" - Visible [0] + Visible [1] } Object { $PropName "EditorsInfo" $ObjectID 5 $ClassName "Simulink.EditorInfo" IsActive [1] - ViewObjType "SimulinkTopLevel" - LoadSaveID "0" - Extents [949.0, 695.0] + ViewObjType "SimulinkSubsys" + LoadSaveID "853" + Extents [1886.0, 881.0] ZoomFactor [1.0] - Offset [0.0, 0.0] + Offset [-9.0, 0.0] } } } @@ -97,10 +96,10 @@ Model { ModifiedByFormat "%" LastModifiedBy "mitkof6" ModifiedDateFormat "%" - LastModifiedDate "Tue Jun 02 15:26:19 2015" - RTWModifiedTimeStamp 355159578 - ModelVersionFormat "1.%" - ConfigurationManager "None" + LastModifiedDate "Fri Jun 12 13:18:53 2015" + RTWModifiedTimeStamp 356015925 + ModelVersionFormat "1.%" + ConfigurationManager "none" SampleTimeColors off SampleTimeAnnotations off LibraryLinkDisplay "disabled" @@ -117,6 +116,7 @@ Model { SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on + ShowMarkup on BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off @@ -125,6 +125,11 @@ Model { BrowserShowLibraryLinks off BrowserLookUnderMasks off SimulationMode "normal" + PauseTimes "5" + NumberOfSteps 1 + SnapshotBufferSize 10 + SnapshotInterval 10 + NumberOfLastSnapshots 0 LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" @@ -147,7 +152,8 @@ Model { } Array { Type "Cell" - Dimension 0 + Dimension 1 + Cell "" PropName "logAsSpecifiedByModelsSSIDs_" } } @@ -158,6 +164,7 @@ Model { CovNameIncrementing off CovHtmlReporting on CovForceBlockReductionOff on + CovEnableCumulative on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" @@ -165,6 +172,12 @@ Model { CovReportOnPause on CovModelRefEnable "Off" CovExternalEMLEnable off + CovSFcnEnable on + CovBoundaryAbsTol 0.000010 + CovBoundaryRelTol 0.010000 + CovUseTimeInterval off + CovStartTime 0 + CovStopTime 0 ExtModeBatchMode off ExtModeEnableFloating on ExtModeTrigType "manual" @@ -186,7 +199,6 @@ Model { ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock on - BufferReuse off ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { @@ -194,13 +206,13 @@ Model { Dimension 2 Simulink.ConfigSet { $ObjectID 7 - Version "1.13.0" + Version "1.15.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { $ObjectID 8 - Version "1.13.0" + Version "1.15.0" StartTime "0.0" StopTime "3.3" AbsTol "auto" @@ -235,7 +247,7 @@ Model { } Simulink.DataIOCC { $ObjectID 9 - Version "1.13.0" + Version "1.15.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" @@ -253,6 +265,7 @@ Model { SignalLogging on DSMLogging on InspectSignalLogs off + VisualizeSimOutput on SaveTime on ReturnWorkspaceOutputs off StateSaveName "xout" @@ -267,7 +280,7 @@ Model { } Simulink.OptimizationCC { $ObjectID 10 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 8 @@ -285,13 +298,16 @@ Model { BooleanDataType on ConditionallyExecuteInputs on InlineParams on - UseIntDivNetSlope off + UseDivisionForNetSlopeComputation "off" UseFloatMulNetSlope off + DefaultUnderspecifiedDataType "double" UseSpecifiedMinMax off InlineInvariantSignals off OptimizeBlockIOStorage on BufferReuse on EnhancedBackFolding off + CachingGlobalReferences off + GlobalBufferReuse on StrengthReduction off ExpressionFolding on BooleansAsBitfields off @@ -299,14 +315,13 @@ Model { EnableMemcpy on MemcpyThreshold 64 PassReuseOutputArgsAs "Structure reference" + PassReuseOutputArgsThreshold 12 ExpressionDepthLimit 2147483647 - FoldNonRolledExpr on LocalBlockOutputs on RollThreshold 5 - SystemCodeInlineAuto off StateBitsets off DataBitsets off - UseTempVars off + ActiveStateOutputEnumStorageType "Native Integer" ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero off @@ -317,13 +332,12 @@ Model { LifeSpan "inf" MaxStackSize "Inherit from target" BufferReusableBoundary on - SimCompilerOptimization "Off" + SimCompilerOptimization "off" AccelVerboseBuild off - ParallelExecutionInRapidAccelerator on } Simulink.DebuggingCC { $ObjectID 11 - Version "1.13.0" + Version "1.15.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" @@ -378,17 +392,15 @@ Model { UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" - FrameProcessingCompatibilityMsg "warning" + FrameProcessingCompatibilityMsg "error" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" - EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" - ModelReferenceCSMismatchMessage "none" UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" @@ -400,7 +412,6 @@ Model { StrictBusMsg "ErrorLevel1" BusNameAdapt "WarnAndRepair" NonBusSignalsTreatedAsBus "none" - LoggingUnavailableSignals "error" BlockIODiagnostic "none" SFUnusedDataAndEventsDiag "warning" SFUnexpectedBacktrackingDiag "warning" @@ -410,10 +421,12 @@ Model { SFUnconditionalTransitionShadowingDiag "warning" SFUndirectedBroadcastEventsDiag "warning" SFTransitionActionBeforeConditionDiag "warning" + SFOutputUsedAsStateInMooreChartDiag "error" + IntegerSaturationMsg "warning" } Simulink.HardwareCC { $ObjectID 12 - Version "1.13.0" + Version "1.15.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 @@ -445,7 +458,6 @@ Model { TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 - TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" @@ -454,7 +466,7 @@ Model { } Simulink.ModelReferenceCC { $ObjectID 13 - Version "1.13.0" + Version "1.15.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off @@ -469,22 +481,20 @@ Model { } Simulink.SFSimCC { $ObjectID 14 - Version "1.13.0" - SFSimEnableDebug on + Version "1.15.0" SFSimOverflowDetection on SFSimEcho on - SimBlas on SimCtrlC on - SimExtrinsic on SimIntegrity on SimUseLocalCustomCode off SimParseCustomCode on SimBuildMode "sf_incremental_build" + SimGenImportedTypeDefs off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 15 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 9 @@ -500,11 +510,15 @@ Model { PropName "DisabledProps" } SystemTargetFile "grt.tlc" + TLCOptions "" GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on PackageGeneratedCodeAndArtifacts off + PackageName "" TemplateMakefile "grt_default_tmf" + PostCodeGenCommand "" + Description "" GenerateReport off SaveLog off RTWVerbose on @@ -513,15 +527,20 @@ Model { TLCDebug off TLCCoverage off TLCAssert off - ProcessScriptMode "Default" - ConfigurationMode "Optimized" - ConfigAtBuild off RTWUseLocalCustomCode off RTWUseSimCustomCode off + CustomSourceCode "" + CustomHeaderCode "" + CustomInclude "" + CustomSource "" + CustomLibrary "" + CustomInitializer "" + CustomTerminator "" + Toolchain "Automatically locate an installed toolchain" + BuildConfiguration "Faster Builds" IncludeHyperlinkInReport off LaunchReport off PortableWordSizes off - GenerateErtSFunction off CreateSILPILBlock "None" CodeExecutionProfiling off CodeExecutionProfileVariable "executionProfile" @@ -530,25 +549,25 @@ Model { SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off - IncludeERTFirstTime off GenerateTraceInfo off GenerateTraceReport off GenerateTraceReportSl off GenerateTraceReportSf off GenerateTraceReportEml off - GenerateCodeInfo off GenerateWebview off GenerateCodeMetricsReport off GenerateCodeReplacementReport off - RTWCompilerOptimization "Off" + GenerateMissedCodeReplacementReport off + RTWCompilerOptimization "off" + RTWCustomCompilerOptimizations "" CheckMdlBeforeBuild "Off" - CustomRebuildMode "OnUpdate" + SharedConstantsCachingThreshold 1024 Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 16 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 21 @@ -577,6 +596,7 @@ Model { } ForceParamTrailComments off GenerateComments on + CommentStyle "Auto" IgnoreCustomStorageClasses on IgnoreTestpoints off IncHierarchyInIds off @@ -599,6 +619,7 @@ Model { CustomSymbolStrBlkIO "rtb_$N$M" CustomSymbolStrTmpVar "$N$M" CustomSymbolStrMacro "$R$N$M" + CustomSymbolStrUtil "$N$C" DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" @@ -615,7 +636,7 @@ Model { Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 17 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 16 @@ -640,15 +661,17 @@ Model { TargetFcnLib "ansi_tfl_table_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" - CodeReplacementLibrary "ANSI_C" + GenFloatMathFcnCalls "NOT IN USE" + TargetLangStandard "C89/C90 (ANSI)" + CodeReplacementLibrary "None" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on + InferredTypesCompatibility off GenerateSampleERTMain off GenerateTestInterfaces off - IsPILTarget off ModelReferenceCompliant on ParMdlRefBuildCompliant on CompOptLevelCompliant on @@ -665,20 +688,22 @@ Model { LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off + CodeInterfacePackaging "Nonreusable function" SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on SupportVariableSizeSignals off - EnableShiftOperators on ParenthesesLevel "Nominal" + CastingMode "Nominal" MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off - CPPClassGenCompliant off + CPPClassGenCompliant on AutosarCompliant off GRTInterface off GenerateAllocFcn off + GenerateSharedConstants on UseMalloc off ExtMode off ExtModeStaticAlloc off @@ -692,6 +717,7 @@ Model { RTWCAPIStates off RTWCAPIRootIO off GenerateASAP2 off + MultiInstanceErrorCode "Error" } PropName "Components" } @@ -704,13 +730,13 @@ Model { } Simulink.ConfigSet { $ObjectID 18 - Version "1.13.0" + Version "1.15.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { $ObjectID 19 - Version "1.13.0" + Version "1.15.0" StartTime "0.0" StopTime "inf" AbsTol "auto" @@ -745,7 +771,7 @@ Model { } Simulink.DataIOCC { $ObjectID 20 - Version "1.13.0" + Version "1.15.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" @@ -763,6 +789,7 @@ Model { SignalLogging on DSMLogging on InspectSignalLogs off + VisualizeSimOutput on SaveTime off ReturnWorkspaceOutputs off StateSaveName "xout" @@ -777,7 +804,7 @@ Model { } Simulink.OptimizationCC { $ObjectID 21 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 8 @@ -795,13 +822,16 @@ Model { BooleanDataType on ConditionallyExecuteInputs on InlineParams on - UseIntDivNetSlope off + UseDivisionForNetSlopeComputation "off" UseFloatMulNetSlope off + DefaultUnderspecifiedDataType "double" UseSpecifiedMinMax off InlineInvariantSignals off OptimizeBlockIOStorage on BufferReuse off EnhancedBackFolding off + CachingGlobalReferences off + GlobalBufferReuse on StrengthReduction off ExpressionFolding on BooleansAsBitfields off @@ -809,14 +839,13 @@ Model { EnableMemcpy on MemcpyThreshold 64 PassReuseOutputArgsAs "Structure reference" + PassReuseOutputArgsThreshold 12 ExpressionDepthLimit 2147483647 - FoldNonRolledExpr on LocalBlockOutputs on RollThreshold 5 - SystemCodeInlineAuto off StateBitsets off DataBitsets off - UseTempVars off + ActiveStateOutputEnumStorageType "Native Integer" ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero off @@ -827,13 +856,12 @@ Model { LifeSpan "inf" MaxStackSize "Inherit from target" BufferReusableBoundary on - SimCompilerOptimization "Off" + SimCompilerOptimization "off" AccelVerboseBuild off - ParallelExecutionInRapidAccelerator on } Simulink.DebuggingCC { $ObjectID 22 - Version "1.13.0" + Version "1.15.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" @@ -888,17 +916,15 @@ Model { UnconnectedOutputMsg "none" UnconnectedLineMsg "none" SFcnCompatibilityMsg "none" - FrameProcessingCompatibilityMsg "warning" + FrameProcessingCompatibilityMsg "error" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" - EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" - ModelReferenceCSMismatchMessage "none" UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" @@ -910,7 +936,6 @@ Model { StrictBusMsg "ErrorLevel1" BusNameAdapt "WarnAndRepair" NonBusSignalsTreatedAsBus "none" - LoggingUnavailableSignals "error" BlockIODiagnostic "none" SFUnusedDataAndEventsDiag "warning" SFUnexpectedBacktrackingDiag "warning" @@ -920,10 +945,12 @@ Model { SFUnconditionalTransitionShadowingDiag "warning" SFUndirectedBroadcastEventsDiag "warning" SFTransitionActionBeforeConditionDiag "warning" + SFOutputUsedAsStateInMooreChartDiag "error" + IntegerSaturationMsg "warning" } Simulink.HardwareCC { $ObjectID 23 - Version "1.13.0" + Version "1.15.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 @@ -955,7 +982,6 @@ Model { TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 - TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" @@ -964,7 +990,7 @@ Model { } Simulink.ModelReferenceCC { $ObjectID 24 - Version "1.13.0" + Version "1.15.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off @@ -979,22 +1005,20 @@ Model { } Simulink.SFSimCC { $ObjectID 25 - Version "1.13.0" - SFSimEnableDebug on + Version "1.15.0" SFSimOverflowDetection on SFSimEcho on - SimBlas on SimCtrlC on - SimExtrinsic on SimIntegrity on SimUseLocalCustomCode off SimParseCustomCode on SimBuildMode "sf_incremental_build" + SimGenImportedTypeDefs off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 26 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 9 @@ -1010,11 +1034,15 @@ Model { PropName "DisabledProps" } SystemTargetFile "grt.tlc" + TLCOptions "" GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on PackageGeneratedCodeAndArtifacts off + PackageName "" TemplateMakefile "grt_default_tmf" + PostCodeGenCommand "" + Description "" GenerateReport off SaveLog off RTWVerbose on @@ -1023,15 +1051,20 @@ Model { TLCDebug off TLCCoverage off TLCAssert off - ProcessScriptMode "Default" - ConfigurationMode "Optimized" - ConfigAtBuild off RTWUseLocalCustomCode off RTWUseSimCustomCode off + CustomSourceCode "" + CustomHeaderCode "" + CustomInclude "" + CustomSource "" + CustomLibrary "" + CustomInitializer "" + CustomTerminator "" + Toolchain "Automatically locate an installed toolchain" + BuildConfiguration "Faster Builds" IncludeHyperlinkInReport off LaunchReport off PortableWordSizes off - GenerateErtSFunction off CreateSILPILBlock "None" CodeExecutionProfiling off CodeExecutionProfileVariable "executionProfile" @@ -1040,25 +1073,25 @@ Model { SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off - IncludeERTFirstTime off GenerateTraceInfo off GenerateTraceReport off GenerateTraceReportSl off GenerateTraceReportSf off GenerateTraceReportEml off - GenerateCodeInfo off GenerateWebview off GenerateCodeMetricsReport off GenerateCodeReplacementReport off - RTWCompilerOptimization "Off" + GenerateMissedCodeReplacementReport off + RTWCompilerOptimization "off" + RTWCustomCompilerOptimizations "" CheckMdlBeforeBuild "Off" - CustomRebuildMode "OnUpdate" + SharedConstantsCachingThreshold 1024 Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 27 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" Dimension 21 @@ -1087,6 +1120,7 @@ Model { } ForceParamTrailComments off GenerateComments on + CommentStyle "Auto" IgnoreCustomStorageClasses on IgnoreTestpoints off IncHierarchyInIds off @@ -1109,6 +1143,7 @@ Model { CustomSymbolStrBlkIO "rtb_$N$M" CustomSymbolStrTmpVar "$N$M" CustomSymbolStrMacro "$R$N$M" + CustomSymbolStrUtil "$N$C" DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" @@ -1125,13 +1160,13 @@ Model { Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 28 - Version "1.13.0" + Version "1.15.0" Array { Type "Cell" - Dimension 16 + Dimension 15 Cell "GeneratePreprocessorConditionals" Cell "IncludeMdlTerminateFcn" - Cell "CombineOutputUpdateFcns" + Cell "GenerateAllocFcn" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" @@ -1144,21 +1179,22 @@ Model { Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" - Cell "GenerateAllocFcn" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_table_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" - CodeReplacementLibrary "ANSI_C" + GenFloatMathFcnCalls "NOT IN USE" + TargetLangStandard "C89/C90 (ANSI)" + CodeReplacementLibrary "None" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on + InferredTypesCompatibility off GenerateSampleERTMain off GenerateTestInterfaces off - IsPILTarget off ModelReferenceCompliant on ParMdlRefBuildCompliant on CompOptLevelCompliant on @@ -1175,20 +1211,22 @@ Model { LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off + CodeInterfacePackaging "Nonreusable function" SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on SupportVariableSizeSignals off - EnableShiftOperators on ParenthesesLevel "Nominal" + CastingMode "Nominal" MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off - CPPClassGenCompliant off + CPPClassGenCompliant on AutosarCompliant off GRTInterface off GenerateAllocFcn off + GenerateSharedConstants on UseMalloc off ExtMode off ExtModeStaticAlloc off @@ -1202,6 +1240,7 @@ Model { RTWCAPIStates off RTWCAPIRootIO off GenerateASAP2 off + MultiInstanceErrorCode "Error" } PropName "Components" } @@ -1229,6 +1268,8 @@ Model { AutoInsertRateTranBlk [0] } ExplicitPartitioning off + WSDataSource "MATLAB File" + WSSourceFileName "D:\\Google Drive\\Projects\\RTMuscleSpindle\\MATLAB\\parameters.m" BlockDefaults { ForegroundColor "black" BackgroundColor "white" @@ -1329,6 +1370,9 @@ Model { LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" + WrapState off + WrappedStateUpperValue "pi" + WrappedStateLowerValue "-pi" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" @@ -1367,10 +1411,14 @@ Model { } Block { BlockType ModelReference + ModelNameDialog "" SimulationMode "Accelerator" + CodeInterface "Model reference" Variant off GeneratePreprocessorConditionals off + ContentPreviewEnabled off CopyOfModelProtected off + DefaultDataLogging off } Block { BlockType Outport @@ -1419,6 +1467,7 @@ Model { SFunctionModules "''" PortCounts "[]" SFunctionDeploymentMode off + EnableBusSupport off } Block { BlockType SubSystem @@ -1426,11 +1475,15 @@ Model { Permissions "ReadWrite" PermitHierarchicalResolution "All" TreatAsAtomicUnit off + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off CheckFcnCallInpInsideContextMsg off SystemSampleTime "-1" + RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" FunctionInterfaceSpec "void_void" + FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" @@ -1440,9 +1493,13 @@ Model { DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" MinMaxOverflowLogging "UseLocalSettings" + Opaque off + MaskHideContents off SFBlockType "NONE" Variant off GeneratePreprocessorConditionals off + ContentPreviewEnabled off + IsWebBlock off } Block { BlockType Sum @@ -1481,8 +1538,8 @@ Model { } System { Name "MuscleSpindle" - Location [149, 173, 1148, 1013] - Open on + Location [-1928, -8, 8, 1048] + Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" @@ -1495,7 +1552,7 @@ Model { ShowPageBoundaries off ZoomFactor "100" ReportName "simulink-default.rpt" - SIDHighWatermark "1172" + SIDHighWatermark "1184" Block { BlockType Inport Name "Fascicle Length" @@ -1529,16 +1586,10 @@ Model { Ports [2, 1] Position [220, 143, 420, 207] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Bag1" - Location [121, 52, 1457, 927] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1575,16 +1626,10 @@ Model { Ports [3, 1] Position [320, 119, 420, 221] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Beta Calculation (Eqn 4)" - Location [75, 139, 629, 623] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -1654,12 +1699,14 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Beta1" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "fDynamic" SrcPort 1 Points [30, 0; 0, -30] @@ -1667,18 +1714,21 @@ Model { DstPort 2 } Line { + ZOrder 3 SrcBlock "Add" SrcPort 1 DstBlock "Beta" DstPort 1 } Line { + ZOrder 4 SrcBlock "Beta0" SrcPort 1 DstBlock "Add" DstPort 1 } Line { + ZOrder 5 SrcBlock "Product" SrcPort 1 Points [15, 0; 0, -35] @@ -1687,7 +1737,10 @@ Model { } Annotation { SID "796" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -1698,6 +1751,7 @@ Model { SID "797" Position [465, 104, 525, 126] ZOrder -4 + Value "cl" } Block { BlockType Constant @@ -1705,7 +1759,7 @@ Model { SID "798" Position [540, 129, 600, 151] ZOrder -4 - Value "0.42" + Value "cs" } Block { BlockType SubSystem @@ -1714,13 +1768,7 @@ Model { Ports [3, 1] Position [620, 76, 705, 154] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Coef of asymmetry (C)" Location [279, 394, 833, 878] @@ -1827,6 +1875,7 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "CL" SrcPort 1 Points [235, 0] @@ -1834,6 +1883,7 @@ Model { DstPort 1 } Line { + ZOrder 2 SrcBlock "CS" SrcPort 1 Points [235, 0] @@ -1841,30 +1891,35 @@ Model { DstPort 3 } Line { + ZOrder 3 SrcBlock "Model" SrcPort 1 DstBlock "Switch" DstPort 2 } Line { + ZOrder 4 SrcBlock "L" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } Line { + ZOrder 5 SrcBlock "Rate Transition" SrcPort 1 DstBlock "Model" DstPort 1 } Line { + ZOrder 6 SrcBlock "Switch" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } Line { + ZOrder 7 SrcBlock "Rate Transition1" SrcPort 1 DstBlock "C" @@ -1872,7 +1927,10 @@ Model { } Annotation { SID "989" - Position [81, 88] + Position [81, 88, 83, 103] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -1883,7 +1941,7 @@ Model { SID "806" Position [150, 504, 210, 526] ZOrder -4 - Value "60" + Value "bag1_freq" } Block { BlockType Constant @@ -1891,7 +1949,7 @@ Model { SID "807" Position [635, 324, 695, 346] ZOrder -4 - Value "0.46" + Value "r" } Block { BlockType SubSystem @@ -1900,13 +1958,7 @@ Model { Ports [2, 1] Position [425, 249, 530, 311] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" Location [45, 195, 599, 679] @@ -1959,18 +2011,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Product" SrcPort 1 DstBlock "Gamma" DstPort 1 } Line { + ZOrder 2 SrcBlock "Gamma1" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 3 SrcBlock "fDynamic" SrcPort 1 Points [30, 0; 0, -30] @@ -1979,7 +2034,10 @@ Model { } Annotation { SID "813" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -1990,7 +2048,7 @@ Model { SID "814" Position [150, 574, 210, 596] ZOrder -4 - Value "0.149" + Value "bag1_tau" } Block { BlockType Constant @@ -1998,7 +2056,7 @@ Model { SID "815" Position [635, 214, 695, 236] ZOrder -4 - Value "0.0002" + Value "m" } Block { BlockType Constant @@ -2006,7 +2064,7 @@ Model { SID "816" Position [635, 489, 695, 511] ZOrder -4 - Value "0.3" + Value "a" } Block { BlockType Constant @@ -2014,7 +2072,7 @@ Model { SID "817" Position [105, 124, 165, 146] ZOrder -4 - Value "0.0605" + Value "bag1_b0" } Block { BlockType Constant @@ -2022,7 +2080,7 @@ Model { SID "818" Position [425, 579, 485, 601] ZOrder -4 - Value "0.76" + Value "lpr0" } Block { BlockType Constant @@ -2030,7 +2088,7 @@ Model { SID "819" Position [635, 379, 695, 401] ZOrder -4 - Value "0.15" + Value "kpr" } Block { BlockType SubSystem @@ -2039,16 +2097,10 @@ Model { Ports [5, 1] Position [985, 171, 1135, 499] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" - Location [16, 174, 625, 897] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -2162,18 +2214,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "G" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "Product" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 3 Labels [2, 0] SrcBlock "Subtract" SrcPort 1 @@ -2182,6 +2237,7 @@ Model { DstPort 2 } Line { + ZOrder 4 SrcBlock "T" SrcPort 1 Points [30, 0; 0, 20] @@ -2189,24 +2245,28 @@ Model { DstPort 1 } Line { + ZOrder 5 SrcBlock "Ksr" SrcPort 1 DstBlock "Divide" DstPort 2 } Line { + ZOrder 6 SrcBlock "Divide" SrcPort 1 DstBlock "Subtract" DstPort 1 } Line { + ZOrder 7 SrcBlock "L_SR_n" SrcPort 1 DstBlock "Subtract1" DstPort 1 } Line { + ZOrder 8 SrcBlock "Lsr0" SrcPort 1 Points [35, 0; 0, -25] @@ -2214,6 +2274,7 @@ Model { DstPort 2 } Line { + ZOrder 9 SrcBlock "Subtract1" SrcPort 1 Points [25, 0; 0, -50] @@ -2228,7 +2289,7 @@ Model { SID "831" Position [635, 599, 695, 621] ZOrder -4 - Value "0.04" + Value "lsr0" } Block { BlockType Constant @@ -2236,7 +2297,7 @@ Model { SID "832" Position [520, 604, 580, 626] ZOrder -4 - Value "10.4649" + Value "ksr" } Block { BlockType Constant @@ -2244,7 +2305,7 @@ Model { SID "833" Position [885, 259, 945, 281] ZOrder -4 - Value "0.0423" + Value "lsrn" } Block { BlockType SubSystem @@ -2253,13 +2314,7 @@ Model { Ports [11, 1] Position [740, 31, 845, 639] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Tension (T) Calculation " Location [16, 52, 1319, 888] @@ -2384,13 +2439,7 @@ Model { ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ExplicitOnly" TreatAsAtomicUnit on - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off SFBlockType "MATLAB Function" System { Name "Calculate ddT (Eqn 6)" @@ -2407,7 +2456,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "42" + SIDHighWatermark "45" Block { BlockType Inport Name "dT" @@ -2545,20 +2594,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "846::41" + SID "846::44" Ports [1, 1] Position [270, 230, 320, 270] - ZOrder 26 + ZOrder 29 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "846::40" + SID "846::43" Tag "Stateflow S-Function MuscleSpindle 2" Ports [15, 2] Position [180, 85, 230, 405] - ZOrder 25 + ZOrder 28 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -2572,9 +2621,9 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "846::42" + SID "846::45" Position [460, 241, 480, 259] - ZOrder 27 + ZOrder 30 } Block { BlockType Outport @@ -2585,90 +2634,105 @@ Model { IconDisplay "Port number" } Line { + ZOrder 19 SrcBlock "dT" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { + ZOrder 20 SrcBlock "T" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { + ZOrder 21 SrcBlock "L" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { + ZOrder 22 SrcBlock "dL" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { + ZOrder 23 SrcBlock "ddL" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { + ZOrder 24 SrcBlock "Lsr0" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { + ZOrder 25 SrcBlock "Ksr" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { + ZOrder 26 SrcBlock "M" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { + ZOrder 27 SrcBlock "C" SrcPort 1 DstBlock " SFunction " DstPort 9 } Line { + ZOrder 28 SrcBlock "Beta" SrcPort 1 DstBlock " SFunction " DstPort 10 } Line { + ZOrder 29 SrcBlock "a" SrcPort 1 DstBlock " SFunction " DstPort 11 } Line { + ZOrder 30 SrcBlock "R" SrcPort 1 DstBlock " SFunction " DstPort 12 } Line { + ZOrder 31 SrcBlock "Kpr" SrcPort 1 DstBlock " SFunction " DstPort 13 } Line { + ZOrder 32 SrcBlock "Lpr0" SrcPort 1 DstBlock " SFunction " DstPort 14 } Line { + ZOrder 33 SrcBlock "Gamma" SrcPort 1 DstBlock " SFunction " @@ -2676,6 +2740,7 @@ Model { } Line { Name "ddT" + ZOrder 34 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 @@ -2683,12 +2748,14 @@ Model { DstPort 1 } Line { + ZOrder 35 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { + ZOrder 36 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " @@ -2737,80 +2804,94 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "L" SrcPort 1 Points [20, 0] Branch { + ZOrder 2 Points [0, 30] DstBlock "L to dL" DstPort 1 } Branch { + ZOrder 3 DstBlock "Calculate ddT (Eqn 6)" DstPort 3 } } Line { + ZOrder 4 SrcBlock "Lsr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 6 } Line { + ZOrder 5 SrcBlock "Gamma" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 15 } Line { + ZOrder 6 SrcBlock "Kpr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 13 } Line { + ZOrder 7 SrcBlock "a" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 11 } Line { + ZOrder 8 SrcBlock "C" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 9 } Line { + ZOrder 9 SrcBlock "Lpr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 14 } Line { + ZOrder 10 SrcBlock "Beta" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 10 } Line { + ZOrder 11 SrcBlock "Ksr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 7 } Line { + ZOrder 12 SrcBlock "M" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 8 } Line { + ZOrder 13 SrcBlock "R" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 12 } Line { + ZOrder 14 Labels [0, 0] SrcBlock "Calculate ddT (Eqn 6)" SrcPort 1 @@ -2818,30 +2899,36 @@ Model { DstPort 1 } Line { + ZOrder 15 Labels [1, 0] SrcBlock "ddT to dT" SrcPort 1 Points [20, 0] Branch { + ZOrder 16 DstBlock "dT to T" DstPort 1 } Branch { + ZOrder 17 Points [0, -265; -400, 0; 0, 55] DstBlock "Calculate ddT (Eqn 6)" DstPort 1 } } Line { + ZOrder 18 SrcBlock "dT to T" SrcPort 1 Points [20, 0] Branch { + ZOrder 19 Labels [1, 0] DstBlock "T" DstPort 1 } Branch { + ZOrder 20 Labels [1, 0] Points [0, -295; -515, 0; 0, 115] DstBlock "Calculate ddT (Eqn 6)" @@ -2849,20 +2936,24 @@ Model { } } Line { + ZOrder 21 SrcBlock "L to dL" SrcPort 1 Points [10, 0] Branch { + ZOrder 22 Points [0, 30] DstBlock "dL to ddL" DstPort 1 } Branch { + ZOrder 23 DstBlock "Calculate ddT (Eqn 6)" DstPort 4 } } Line { + ZOrder 24 SrcBlock "dL to ddL" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" @@ -2876,7 +2967,7 @@ Model { SID "852" Position [885, 194, 945, 216] ZOrder -4 - Value "20000" + Value "bag1_g" } Block { BlockType SubSystem @@ -2885,17 +2976,11 @@ Model { Ports [4, 2] Position [285, 465, 435, 545] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" - Location [604, 267, 1158, 751] - Open off + Location [-1928, -8, 8, 1048] + Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" @@ -2919,7 +3004,7 @@ Model { BlockType Inport Name "Gamma_dynamic" SID "855" - Position [30, 38, 60, 52] + Position [30, 28, 60, 42] ZOrder -1 Port "2" IconDisplay "Port number" @@ -2979,24 +3064,6 @@ Model { RndMeth "Floor" SaturateOnIntegerOverflow off } - Block { - BlockType Math - Name "Square" - SID "861" - Ports [1, 1] - Position [95, 30, 125, 60] - ZOrder -13 - Operator "square" - } - Block { - BlockType Math - Name "Square1" - SID "862" - Ports [1, 1] - Position [95, 85, 125, 115] - ZOrder -13 - Operator "square" - } Block { BlockType Sum Name "Subtract" @@ -3009,6 +3076,244 @@ Model { OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } + Block { + BlockType SubSystem + Name "u^p" + SID "1183" + Ports [2, 1] + Position [90, 14, 130, 56] + ZOrder 1 + LibraryVersion "1.32" + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ExplicitOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + System { + Name "u^p" + Location [223, 338, 826, 833] + Open off + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "19" + Block { + BlockType Inport + Name "u" + SID "1183::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "p" + SID "1183::19" + Position [20, 136, 40, 154] + ZOrder 10 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "1183::17" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 8 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "1183::16" + Tag "Stateflow S-Function MuscleSpindle 6" + Ports [2, 2] + Position [180, 100, 230, 160] + ZOrder 7 + FunctionName "sf_sfun" + PortCounts "[2 2]" + EnableBusSupport on + Port { + PortNumber 2 + Name "y" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "1183::18" + Position [460, 241, 480, 259] + ZOrder 9 + } + Block { + BlockType Outport + Name "y" + SID "1183::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Line { + ZOrder 9 + SrcBlock "u" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 10 + SrcBlock "p" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + Name "y" + ZOrder 11 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "y" + DstPort 1 + } + Line { + ZOrder 12 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 13 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "u^p1" + SID "1184" + Ports [1, 1] + Position [90, 79, 130, 121] + ZOrder 2 + LibraryVersion "1.32" + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ExplicitOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + System { + Name "u^p1" + Location [223, 338, 826, 833] + Open off + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "18" + Block { + BlockType Inport + Name "u" + SID "1184::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "1184::17" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 8 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "1184::16" + Tag "Stateflow S-Function MuscleSpindle 7" + Ports [1, 2] + Position [180, 100, 230, 160] + ZOrder 7 + FunctionName "sf_sfun" + PortCounts "[1 2]" + EnableBusSupport on + Port { + PortNumber 2 + Name "y" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "1184::18" + Position [460, 241, 480, 259] + ZOrder 9 + } + Block { + BlockType Outport + Name "y" + SID "1184::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "u" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + Name "y" + ZOrder 2 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "y" + DstPort 1 + } + Line { + ZOrder 3 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 4 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } Block { BlockType Outport Name "dFDynamic" @@ -3027,12 +3332,14 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Divide" SrcPort 1 DstBlock "dFDynamic" DstPort 1 } Line { + ZOrder 2 SrcBlock "Tau" SrcPort 1 Points [285, 0] @@ -3040,67 +3347,80 @@ Model { DstPort 2 } Line { + ZOrder 3 SrcBlock "Subtract" SrcPort 1 DstBlock "Divide" DstPort 1 } Line { + ZOrder 4 SrcBlock "fDynamic" SrcPort 1 DstBlock "Subtract" DstPort 2 } Line { + ZOrder 5 SrcBlock "Divide1" SrcPort 1 Points [10, 0] Branch { + ZOrder 6 Points [0, 45] DstBlock "Subtract" DstPort 1 } Branch { + ZOrder 7 Points [0, -35] DstBlock "fDynamic0" DstPort 1 } } Line { + ZOrder 8 SrcBlock "Add" SrcPort 1 DstBlock "Divide1" DstPort 2 } Line { + ZOrder 16 SrcBlock "Gamma_dynamic" SrcPort 1 - DstBlock "Square" + Points [10, 0] + DstBlock "u^p" DstPort 1 } Line { - SrcBlock "Square" + ZOrder 15 + SrcBlock "u^p" SrcPort 1 - Points [10, 0] + Points [5, 0; 0, 10] Branch { + ZOrder 11 Points [75, 0] DstBlock "Divide1" DstPort 1 } Branch { + ZOrder 12 Points [0, 40] DstBlock "Add" DstPort 1 } } Line { + ZOrder 17 SrcBlock "freqBag1" SrcPort 1 - DstBlock "Square1" + DstBlock "u^p1" DstPort 1 } Line { - SrcBlock "Square1" + ZOrder 18 + SrcBlock "u^p1" SrcPort 1 DstBlock "Add" DstPort 2 @@ -3122,15 +3442,15 @@ Model { SID "866" Position [185, 159, 245, 181] ZOrder -4 - Value "0.2592" + Value "bag1_b1" } Block { BlockType Constant Name "fDynamic force gent\n(Gamma1)" SID "867" - Position [300, 284, 360, 306] + Position [275, 284, 360, 306] ZOrder -4 - Value "0.0289" + Value "bag1_gamma1" } Block { BlockType Outport @@ -3141,6 +3461,7 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Polar Zone Rest Length\n(Lpr0)" SrcPort 1 Points [90, 0; 0, -145] @@ -3148,42 +3469,50 @@ Model { DstPort 8 } Line { + ZOrder 2 Labels [3, 0] SrcBlock "fDynamic" SrcPort 1 Points [10, 0; 0, -70; -295, 0] Branch { + ZOrder 3 Points [0, -160] Branch { + ZOrder 4 Points [0, -60] DstBlock "Beta Calculation (Eqn 4)" DstPort 3 } Branch { + ZOrder 5 Labels [1, 0] DstBlock "Gamma Calculation (Eqn 5)" DstPort 1 } } Branch { + ZOrder 6 Points [0, 50] DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 1 } } Line { + ZOrder 7 SrcBlock "dfDynamic\n(Eqn 1, P=2)" SrcPort 1 DstBlock "fDynamic" DstPort 1 } Line { + ZOrder 8 SrcBlock "Dynamic Fusimotor\n(Gamma_dynamic)" SrcPort 1 DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 2 } Line { + ZOrder 9 SrcBlock "Low-Pass Filter Time Constant\n(Tau)" SrcPort 1 Points [35, 0; 0, -50] @@ -3191,152 +3520,179 @@ Model { DstPort 4 } Line { + ZOrder 10 SrcBlock "Constant relating fusimotor\nfrequency to activation\n(freq)" SrcPort 1 DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 3 } Line { + ZOrder 11 SrcBlock "Primary Afferent Calculation (eqn (7))" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 12 SrcBlock "Tension (T) Calculation " SrcPort 1 DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 3 } Line { + ZOrder 13 SrcBlock "Term for Stretch\nto Afferent Firing\nG" SrcPort 1 DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 1 } Line { + ZOrder 14 SrcBlock "Sensory region\nspring constant\nKsr" SrcPort 1 Points [30, 0] Branch { + ZOrder 15 Points [0, 70; 330, 0; 0, -220] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 5 } Branch { + ZOrder 16 Points [0, -60] DstBlock "Tension (T) Calculation " DstPort 10 } } Line { + ZOrder 17 SrcBlock "Sensory region\nrest length\n(Lsr0)" SrcPort 1 Points [5, 0] Branch { + ZOrder 18 Points [0, 60; 215, 0; 0, -270] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 4 } Branch { + ZOrder 19 DstBlock "Tension (T) Calculation " DstPort 11 } } Line { + ZOrder 20 SrcBlock "Sensory region\nthreshold length\n(LsrN)" SrcPort 1 DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 2 } Line { + ZOrder 21 SrcBlock "Passive damping\ncoefficient (Beta)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 1 } Line { + ZOrder 22 SrcBlock "Beta Calculation (Eqn 4)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 3 } Line { + ZOrder 23 SrcBlock "fDynamic damping\n(Beta1)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 2 } Line { + ZOrder 24 SrcBlock "Mass" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 4 } Line { + ZOrder 25 SrcBlock "fDynamic force gent\n(Gamma1)" SrcPort 1 DstBlock "Gamma Calculation (Eqn 5)" DstPort 2 } Line { + ZOrder 26 Labels [1, 0] SrcBlock "Fascicle Length" SrcPort 1 Points [515, 0] Branch { + ZOrder 27 DstBlock "Tension (T) Calculation " DstPort 1 } Branch { + ZOrder 28 Points [0, 30] DstBlock "Coef of asymmetry (C)" DstPort 1 } } Line { + ZOrder 29 SrcBlock "Fascicle length below\nwhich force is 0 (R)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 6 } Line { + ZOrder 30 SrcBlock "Gamma Calculation (Eqn 5)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 5 } Line { + ZOrder 31 SrcBlock "C_lengthening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 2 } Line { + ZOrder 32 SrcBlock "C_shortening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 3 } Line { + ZOrder 33 SrcBlock "Coef of asymmetry (C)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 2 } Line { + ZOrder 34 SrcBlock "Nonlinear velocity\ndependence power\nconstant (a)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 9 } Line { + ZOrder 35 SrcBlock "Polar region\nspring constant (Kpr)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 7 } Line { + ZOrder 36 SrcBlock "dfDynamic\n(Eqn 1, P=2)" SrcPort 2 Points [0, -20] @@ -3345,7 +3701,10 @@ Model { } Annotation { SID "870" - Position [650, 215] + Position [650, 215, 652, 230] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -3357,16 +3716,10 @@ Model { Ports [2, 2] Position [220, 234, 420, 301] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Bag2" - Location [16, 52, 827, 946] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3403,13 +3756,7 @@ Model { Ports [3, 1] Position [320, 119, 420, 221] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Beta Calculation (Eqn 4)" Location [75, 139, 629, 623] @@ -3482,12 +3829,14 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Beta2" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "fStatic" SrcPort 1 Points [30, 0; 0, -30] @@ -3495,18 +3844,21 @@ Model { DstPort 2 } Line { + ZOrder 3 SrcBlock "Add" SrcPort 1 DstBlock "Beta" DstPort 1 } Line { + ZOrder 4 SrcBlock "Beta0" SrcPort 1 DstBlock "Add" DstPort 1 } Line { + ZOrder 5 SrcBlock "Product" SrcPort 1 Points [15, 0; 0, -35] @@ -3515,7 +3867,10 @@ Model { } Annotation { SID "882" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -3526,6 +3881,7 @@ Model { SID "883" Position [465, 104, 525, 126] ZOrder -4 + Value "cl" } Block { BlockType Constant @@ -3533,7 +3889,7 @@ Model { SID "884" Position [540, 129, 600, 151] ZOrder -4 - Value "0.42" + Value "cs" } Block { BlockType SubSystem @@ -3542,13 +3898,7 @@ Model { Ports [3, 1] Position [620, 76, 705, 154] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Coef of asymmetry (C)" Location [36, 251, 590, 735] @@ -3655,6 +4005,7 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "CL" SrcPort 1 Points [280, 0] @@ -3662,6 +4013,7 @@ Model { DstPort 1 } Line { + ZOrder 2 SrcBlock "CS" SrcPort 1 Points [280, 0] @@ -3669,30 +4021,35 @@ Model { DstPort 3 } Line { + ZOrder 3 SrcBlock "Model" SrcPort 1 DstBlock "Switch" DstPort 2 } Line { + ZOrder 4 SrcBlock "L" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } Line { + ZOrder 5 SrcBlock "Rate Transition" SrcPort 1 DstBlock "Model" DstPort 1 } Line { + ZOrder 6 SrcBlock "Switch" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } Line { + ZOrder 7 SrcBlock "Rate Transition1" SrcPort 1 DstBlock "C" @@ -3706,7 +4063,7 @@ Model { SID "892" Position [150, 504, 210, 526] ZOrder -4 - Value "60" + Value "bag2_freq" } Block { BlockType Constant @@ -3714,7 +4071,7 @@ Model { SID "893" Position [635, 324, 695, 346] ZOrder -4 - Value "0.46" + Value "r" } Block { BlockType SubSystem @@ -3723,13 +4080,7 @@ Model { Ports [2, 1] Position [425, 249, 530, 311] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" Location [45, 195, 599, 679] @@ -3782,18 +4133,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Product" SrcPort 1 DstBlock "Gamma" DstPort 1 } Line { + ZOrder 2 SrcBlock "Gamma2" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 3 SrcBlock "fStatic" SrcPort 1 Points [30, 0; 0, -30] @@ -3802,7 +4156,10 @@ Model { } Annotation { SID "899" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -3813,7 +4170,7 @@ Model { SID "900" Position [150, 574, 210, 596] ZOrder -4 - Value "0.205" + Value "bag2_tau" } Block { BlockType Constant @@ -3821,7 +4178,7 @@ Model { SID "901" Position [635, 214, 695, 236] ZOrder -4 - Value "0.0002" + Value "m" } Block { BlockType Constant @@ -3829,7 +4186,7 @@ Model { SID "902" Position [635, 489, 695, 511] ZOrder -4 - Value "0.3" + Value "a" } Block { BlockType Constant @@ -3837,7 +4194,7 @@ Model { SID "903" Position [105, 124, 165, 146] ZOrder -4 - Value "0.0822" + Value "bag2_b0" } Block { BlockType Constant @@ -3845,7 +4202,7 @@ Model { SID "904" Position [350, 579, 410, 601] ZOrder -4 - Value "0.76" + Value "lpr0" } Block { BlockType Constant @@ -3853,7 +4210,7 @@ Model { SID "905" Position [635, 379, 695, 401] ZOrder -4 - Value "0.15" + Value "kpr" } Block { BlockType Constant @@ -3861,7 +4218,7 @@ Model { SID "976" Position [960, 604, 1020, 626] ZOrder -4 - Value "0.89" + Value "lprn" } Block { BlockType SubSystem @@ -3870,16 +4227,10 @@ Model { Ports [5, 1] Position [1045, 44, 1195, 306] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" - Location [16, 152, 625, 875] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -3993,18 +4344,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "G" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "Product" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 3 Labels [2, 0] SrcBlock "Subtract" SrcPort 1 @@ -4013,6 +4367,7 @@ Model { DstPort 2 } Line { + ZOrder 4 SrcBlock "T" SrcPort 1 Points [30, 0; 0, 20] @@ -4020,24 +4375,28 @@ Model { DstPort 1 } Line { + ZOrder 5 SrcBlock "Ksr" SrcPort 1 DstBlock "Divide" DstPort 2 } Line { + ZOrder 6 SrcBlock "Divide" SrcPort 1 DstBlock "Subtract" DstPort 1 } Line { + ZOrder 7 SrcBlock "L_SR_n" SrcPort 1 DstBlock "Subtract1" DstPort 1 } Line { + ZOrder 8 SrcBlock "Lsr0" SrcPort 1 Points [35, 0; 0, -25] @@ -4045,6 +4404,7 @@ Model { DstPort 2 } Line { + ZOrder 9 SrcBlock "Subtract1" SrcPort 1 Points [25, 0; 0, -50] @@ -4059,7 +4419,7 @@ Model { SID "974" Position [960, 439, 1020, 461] ZOrder -4 - Value "0.7" + Value "x" } Block { BlockType SubSystem @@ -4072,13 +4432,7 @@ Model { ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ExplicitOnly" TreatAsAtomicUnit on - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off SFBlockType "MATLAB Function" System { Name "Secondary Afferent Calculation (eqn (8))" @@ -4095,7 +4449,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "34" + SIDHighWatermark "37" Block { BlockType Inport Name "Gsnd" @@ -4188,20 +4542,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "971::33" + SID "971::36" Ports [1, 1] Position [270, 230, 320, 270] - ZOrder 19 + ZOrder 22 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "971::32" + SID "971::35" Tag "Stateflow S-Function MuscleSpindle 3" Ports [10, 2] Position [180, 100, 230, 320] - ZOrder 18 + ZOrder 21 FunctionName "sf_sfun" PortCounts "[10 2]" EnableBusSupport on @@ -4215,9 +4569,9 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "971::34" + SID "971::37" Position [460, 241, 480, 259] - ZOrder 20 + ZOrder 23 } Block { BlockType Outport @@ -4228,60 +4582,70 @@ Model { IconDisplay "Port number" } Line { + ZOrder 14 SrcBlock "Gsnd" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { + ZOrder 15 SrcBlock "T" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { + ZOrder 16 SrcBlock "Ksr" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { + ZOrder 17 SrcBlock "X" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { + ZOrder 18 SrcBlock "Lsnd" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { + ZOrder 19 SrcBlock "Lsr0" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { + ZOrder 20 SrcBlock "LsrN" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { + ZOrder 21 SrcBlock "Lpr0" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { + ZOrder 22 SrcBlock "LprN" SrcPort 1 DstBlock " SFunction " DstPort 9 } Line { + ZOrder 23 SrcBlock "L" SrcPort 1 DstBlock " SFunction " @@ -4289,6 +4653,7 @@ Model { } Line { Name "ScndryAffrntCntrbtn" + ZOrder 24 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 @@ -4296,12 +4661,14 @@ Model { DstPort 1 } Line { + ZOrder 25 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { + ZOrder 26 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " @@ -4315,7 +4682,7 @@ Model { SID "917" Position [635, 599, 695, 621] ZOrder -4 - Value "0.04" + Value "lsr0" } Block { BlockType Constant @@ -4323,7 +4690,7 @@ Model { SID "918" Position [520, 604, 580, 626] ZOrder -4 - Value "10.4649" + Value "ksr" } Block { BlockType Constant @@ -4331,7 +4698,7 @@ Model { SID "919" Position [860, 114, 920, 136] ZOrder -4 - Value "0.0423" + Value "lsrn" } Block { BlockType Constant @@ -4339,7 +4706,7 @@ Model { SID "975" Position [960, 489, 1020, 511] ZOrder -4 - Value "0.04" + Value "lsnd" } Block { BlockType SubSystem @@ -4348,13 +4715,7 @@ Model { Ports [11, 1] Position [740, 31, 845, 639] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Tension (T) Calculation " Location [152, 184, 1455, 1020] @@ -4479,13 +4840,7 @@ Model { ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ExplicitOnly" TreatAsAtomicUnit on - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off SFBlockType "MATLAB Function" System { Name "Calculate ddT (Eqn 6)" @@ -4502,7 +4857,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "41" + SIDHighWatermark "44" Block { BlockType Inport Name "dT" @@ -4640,20 +4995,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "932::40" + SID "932::43" Ports [1, 1] Position [270, 230, 320, 270] - ZOrder 26 + ZOrder 29 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "932::39" + SID "932::42" Tag "Stateflow S-Function MuscleSpindle 1" Ports [15, 2] Position [180, 85, 230, 405] - ZOrder 25 + ZOrder 28 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -4667,9 +5022,9 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "932::41" + SID "932::44" Position [460, 241, 480, 259] - ZOrder 27 + ZOrder 30 } Block { BlockType Outport @@ -4680,90 +5035,105 @@ Model { IconDisplay "Port number" } Line { + ZOrder 19 SrcBlock "dT" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { + ZOrder 20 SrcBlock "T" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { + ZOrder 21 SrcBlock "L" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { + ZOrder 22 SrcBlock "dL" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { + ZOrder 23 SrcBlock "ddL" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { + ZOrder 24 SrcBlock "Lsr0" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { + ZOrder 25 SrcBlock "Ksr" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { + ZOrder 26 SrcBlock "M" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { + ZOrder 27 SrcBlock "C" SrcPort 1 DstBlock " SFunction " DstPort 9 } Line { + ZOrder 28 SrcBlock "Beta" SrcPort 1 DstBlock " SFunction " DstPort 10 } Line { + ZOrder 29 SrcBlock "a" SrcPort 1 DstBlock " SFunction " DstPort 11 } Line { + ZOrder 30 SrcBlock "R" SrcPort 1 DstBlock " SFunction " DstPort 12 } Line { + ZOrder 31 SrcBlock "Kpr" SrcPort 1 DstBlock " SFunction " DstPort 13 } Line { + ZOrder 32 SrcBlock "Lpr0" SrcPort 1 DstBlock " SFunction " DstPort 14 } Line { + ZOrder 33 SrcBlock "Gamma" SrcPort 1 DstBlock " SFunction " @@ -4771,6 +5141,7 @@ Model { } Line { Name "ddT" + ZOrder 34 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 @@ -4778,12 +5149,14 @@ Model { DstPort 1 } Line { + ZOrder 35 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { + ZOrder 36 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " @@ -4832,108 +5205,128 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "L" SrcPort 1 Points [20, 0] Branch { + ZOrder 2 DstBlock "Calculate ddT (Eqn 6)" DstPort 3 } Branch { + ZOrder 3 Points [0, 30] DstBlock "L to dL" DstPort 1 } } Line { + ZOrder 4 SrcBlock "Lsr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 6 } Line { + ZOrder 5 SrcBlock "Gamma" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 15 } Line { + ZOrder 6 SrcBlock "Kpr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 13 } Line { + ZOrder 7 SrcBlock "a" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 11 } Line { + ZOrder 8 SrcBlock "C" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 9 } Line { + ZOrder 9 SrcBlock "Lpr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 14 } Line { + ZOrder 10 SrcBlock "Beta" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 10 } Line { + ZOrder 11 SrcBlock "Ksr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 7 } Line { + ZOrder 12 SrcBlock "M" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 8 } Line { + ZOrder 13 SrcBlock "R" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 12 } Line { + ZOrder 14 SrcBlock "Calculate ddT (Eqn 6)" SrcPort 1 DstBlock "ddT to dT" DstPort 1 } Line { + ZOrder 15 SrcBlock "ddT to dT" SrcPort 1 Points [25, 0] Branch { + ZOrder 16 DstBlock "dT to T" DstPort 1 } Branch { + ZOrder 17 Points [0, -265; -370, 0; 0, 55] DstBlock "Calculate ddT (Eqn 6)" DstPort 1 } } Line { + ZOrder 18 SrcBlock "dT to T" SrcPort 1 Points [10, 0] Branch { + ZOrder 19 DstBlock "T" DstPort 1 } Branch { + ZOrder 20 Labels [1, 0] Points [0, -295; -475, 0; 0, 115] DstBlock "Calculate ddT (Eqn 6)" @@ -4941,20 +5334,24 @@ Model { } } Line { + ZOrder 21 SrcBlock "L to dL" SrcPort 1 Points [10, 0] Branch { + ZOrder 22 DstBlock "Calculate ddT (Eqn 6)" DstPort 4 } Branch { + ZOrder 23 Points [0, 30] DstBlock "dL to ddL" DstPort 1 } } Line { + ZOrder 24 SrcBlock "dL to ddL" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" @@ -4968,7 +5365,7 @@ Model { SID "938" Position [865, 49, 925, 71] ZOrder -4 - Value "10000" + Value "bag2_g" } Block { BlockType Constant @@ -4976,7 +5373,7 @@ Model { SID "973" Position [965, 334, 1025, 356] ZOrder -4 - Value "7250" + Value "bag2_gsnd" } Block { BlockType SubSystem @@ -4985,13 +5382,7 @@ Model { Ports [4, 2] Position [285, 465, 435, 545] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" Location [24, 353, 578, 837] @@ -5127,12 +5518,14 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Divide" SrcPort 1 DstBlock "dFStatic" DstPort 1 } Line { + ZOrder 2 SrcBlock "Tau" SrcPort 1 Points [285, 0] @@ -5140,66 +5533,78 @@ Model { DstPort 2 } Line { + ZOrder 3 SrcBlock "Subtract" SrcPort 1 DstBlock "Divide" DstPort 1 } Line { + ZOrder 4 SrcBlock "fStatic" SrcPort 1 DstBlock "Subtract" DstPort 2 } Line { + ZOrder 5 SrcBlock "Divide1" SrcPort 1 Points [5, 0] Branch { + ZOrder 6 Points [0, 45] DstBlock "Subtract" DstPort 1 } Branch { + ZOrder 7 Points [0, -45] DstBlock "fStatic0" DstPort 1 } } Line { + ZOrder 8 SrcBlock "Add" SrcPort 1 DstBlock "Divide1" DstPort 2 } Line { + ZOrder 9 SrcBlock "Gamma_static" SrcPort 1 DstBlock "Square" DstPort 1 } Line { + ZOrder 10 SrcBlock "Square" SrcPort 1 Points [10, 0] Branch { + ZOrder 11 Points [75, 0] DstBlock "Divide1" DstPort 1 } Branch { + ZOrder 12 Points [0, 40] DstBlock "Add" DstPort 1 } } Line { + ZOrder 13 SrcBlock "freqBag2" SrcPort 1 DstBlock "Square1" DstPort 1 } Line { + ZOrder 14 SrcBlock "Square1" SrcPort 1 DstBlock "Add" @@ -5222,15 +5627,15 @@ Model { SID "952" Position [185, 159, 245, 181] ZOrder -4 - Value "-0.0460" + Value "bag2_b2" } Block { BlockType Constant Name "fStatic force gent\n(Gamma2)" SID "953" - Position [300, 284, 360, 306] + Position [285, 284, 360, 306] ZOrder -4 - Value "0.0636" + Value "bag2_gamma2" } Block { BlockType Outport @@ -5250,44 +5655,53 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Polar Zone Rest Length\n(Lpr0)" SrcPort 1 Points [50, 0] Branch { + ZOrder 2 Points [115, 0; 0, -145] DstBlock "Tension (T) Calculation " DstPort 8 } Branch { + ZOrder 3 Points [0, 100; 455, 0; 0, -105] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 8 } } Line { + ZOrder 4 Labels [3, 0] SrcBlock "fStatic" SrcPort 1 Points [10, 0; 0, -80; -295, 0] Branch { + ZOrder 5 Points [0, -160] Branch { + ZOrder 6 Points [0, -60] DstBlock "Beta Calculation (Eqn 4)" DstPort 3 } Branch { + ZOrder 7 DstBlock "Gamma Calculation (Eqn 5)" DstPort 1 } } Branch { + ZOrder 8 Points [0, 50] DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 1 } } Line { + ZOrder 9 SrcBlock "dfDynamic\n(Eqn 1, P=2)" SrcPort 1 Points [15, 0] @@ -5295,12 +5709,14 @@ Model { DstPort 1 } Line { + ZOrder 10 SrcBlock "Static Fusimotor\n(Gamma_static)" SrcPort 1 DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 2 } Line { + ZOrder 11 SrcBlock "Low-Pass Filter Time Constant\n(Tau)" SrcPort 1 Points [35, 0; 0, -50] @@ -5308,33 +5724,39 @@ Model { DstPort 4 } Line { + ZOrder 12 SrcBlock "Constant relating fusimotor\nfrequency to activation\n(freq)" SrcPort 1 DstBlock "dfDynamic\n(Eqn 1, P=2)" DstPort 3 } Line { + ZOrder 13 SrcBlock "Primary Afferent Calculation (eqn (7))" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 14 SrcBlock "Tension (T) Calculation " SrcPort 1 Points [10, 0] Branch { + ZOrder 15 Points [0, -160] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 3 } Branch { + ZOrder 16 Points [0, 70] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 2 } } Line { + ZOrder 17 SrcBlock "Term for Stretch\nto Afferent Firing\nG" SrcPort 1 Points [25, 0; 0, 15] @@ -5342,159 +5764,189 @@ Model { DstPort 1 } Line { + ZOrder 18 SrcBlock "Sensory region\nspring constant\nKsr" SrcPort 1 Points [30, 0] Branch { + ZOrder 19 Points [0, -60] DstBlock "Tension (T) Calculation " DstPort 10 } Branch { + ZOrder 20 Points [0, 65; 295, 0; 0, -245] Branch { + ZOrder 21 Points [0, -160] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 5 } Branch { + ZOrder 22 DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 3 } } } Line { + ZOrder 23 SrcBlock "Sensory region\nrest length\n(Lsr0)" SrcPort 1 Points [5, 0] Branch { + ZOrder 24 DstBlock "Tension (T) Calculation " DstPort 11 } Branch { - Points [0, 55; 195, 0; 0, -115] + ZOrder 25 + Points [0, 55; 195, 0; 0, -140] Branch { - Points [0, -325] + ZOrder 26 + Points [0, -300] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 4 } Branch { - Points [0, -25] + ZOrder 27 DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 6 } } } Line { + ZOrder 28 SrcBlock "Sensory region\nthreshold length\n(LsrN)" SrcPort 1 Points [15, 0] Branch { + ZOrder 29 DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 2 } Branch { + ZOrder 30 Points [0, 430] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 7 } } Line { + ZOrder 31 SrcBlock "Passive damping\ncoefficient (Beta)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 1 } Line { + ZOrder 32 SrcBlock "Beta Calculation (Eqn 4)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 3 } Line { + ZOrder 33 SrcBlock "fStatic damping\n(Beta2)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 2 } Line { + ZOrder 34 SrcBlock "Mass" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 4 } Line { + ZOrder 35 SrcBlock "fStatic force gent\n(Gamma2)" SrcPort 1 DstBlock "Gamma Calculation (Eqn 5)" DstPort 2 } Line { + ZOrder 36 SrcBlock "Fascicle Length" SrcPort 1 Points [40, 0] Branch { + ZOrder 37 Labels [1, 0] Points [475, 0] Branch { + ZOrder 38 DstBlock "Tension (T) Calculation " DstPort 1 } Branch { + ZOrder 39 Points [0, 30] DstBlock "Coef of asymmetry (C)" DstPort 1 } } Branch { + ZOrder 40 Points [0, 45; -105, 0; 0, 590; 1025, 0; 0, -50] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 10 } } Line { + ZOrder 41 SrcBlock "Fascicle length below\nwhich force is 0 (R)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 6 } Line { + ZOrder 42 SrcBlock "Gamma Calculation (Eqn 5)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 5 } Line { + ZOrder 43 SrcBlock "C_lengthening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 2 } Line { + ZOrder 44 SrcBlock "C_shortening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 3 } Line { + ZOrder 45 SrcBlock "Coef of asymmetry (C)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 2 } Line { + ZOrder 46 SrcBlock "Nonlinear velocity\ndependence power\nconstant (a)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 9 } Line { + ZOrder 47 SrcBlock "Polar region\nspring constant (Kpr)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 7 } Line { + ZOrder 48 SrcBlock "Secondary Afferent Calculation (eqn (8))" SrcPort 1 Points [0, 5] @@ -5502,6 +5954,7 @@ Model { DstPort 1 } Line { + ZOrder 49 SrcBlock "Term for Stretch\nto Secondary Afferent\nFiring Gsnd" SrcPort 1 Points [25, 0; 0, 30] @@ -5509,6 +5962,7 @@ Model { DstPort 1 } Line { + ZOrder 50 SrcBlock "Proportion of p-rgn\ncont. to SndAff (X)" SrcPort 1 Points [0, 15] @@ -5516,6 +5970,7 @@ Model { DstPort 4 } Line { + ZOrder 51 SrcBlock "SndAff Rest Length\n(Lsnd)" SrcPort 1 Points [0, -5] @@ -5523,12 +5978,14 @@ Model { DstPort 5 } Line { + ZOrder 52 SrcBlock "Polar region\nthreshold length\n(LprN)" SrcPort 1 DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 9 } Line { + ZOrder 53 SrcBlock "dfDynamic\n(Eqn 1, P=2)" SrcPort 2 Points [5, 0; 0, -10] @@ -5537,7 +5994,10 @@ Model { } Annotation { SID "955" - Position [650, 215] + Position [650, 215, 652, 230] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -5549,16 +6009,10 @@ Model { Ports [2, 2] Position [220, 320, 420, 380] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Chain" - Location [16, 52, 1143, 920] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -5595,13 +6049,7 @@ Model { Ports [3, 1] Position [320, 119, 420, 221] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Beta Calculation (Eqn 4)" Location [75, 139, 629, 623] @@ -5674,12 +6122,14 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Beta2" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "fStatic" SrcPort 1 Points [30, 0; 0, -30] @@ -5687,18 +6137,21 @@ Model { DstPort 2 } Line { + ZOrder 3 SrcBlock "Add" SrcPort 1 DstBlock "Beta" DstPort 1 } Line { + ZOrder 4 SrcBlock "Beta0" SrcPort 1 DstBlock "Add" DstPort 1 } Line { + ZOrder 5 SrcBlock "Product" SrcPort 1 Points [15, 0; 0, -35] @@ -5707,7 +6160,10 @@ Model { } Annotation { SID "1011" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -5718,6 +6174,7 @@ Model { SID "1012" Position [465, 104, 525, 126] ZOrder -4 + Value "cl" } Block { BlockType Constant @@ -5725,7 +6182,7 @@ Model { SID "1013" Position [540, 129, 600, 151] ZOrder -4 - Value "0.42" + Value "cs" } Block { BlockType SubSystem @@ -5734,13 +6191,7 @@ Model { Ports [3, 1] Position [620, 76, 705, 154] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Coef of asymmetry (C)" Location [36, 207, 590, 691] @@ -5847,6 +6298,7 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "CL" SrcPort 1 Points [280, 0] @@ -5854,6 +6306,7 @@ Model { DstPort 1 } Line { + ZOrder 2 SrcBlock "CS" SrcPort 1 Points [280, 0] @@ -5861,30 +6314,35 @@ Model { DstPort 3 } Line { + ZOrder 3 SrcBlock "Model" SrcPort 1 DstBlock "Switch" DstPort 2 } Line { + ZOrder 4 SrcBlock "L" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } Line { + ZOrder 5 SrcBlock "Rate Transition" SrcPort 1 DstBlock "Model" DstPort 1 } Line { + ZOrder 6 SrcBlock "Switch" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } Line { + ZOrder 7 SrcBlock "Rate Transition1" SrcPort 1 DstBlock "C" @@ -5898,7 +6356,7 @@ Model { SID "1023" Position [150, 504, 210, 526] ZOrder -4 - Value "90" + Value "chain_freq" } Block { BlockType Constant @@ -5906,7 +6364,7 @@ Model { SID "1024" Position [635, 324, 695, 346] ZOrder -4 - Value "0.46" + Value "r" } Block { BlockType SubSystem @@ -5915,13 +6373,7 @@ Model { Ports [2, 1] Position [425, 249, 530, 311] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Gamma Calculation (Eqn 5)" Location [45, 195, 599, 679] @@ -5974,18 +6426,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Product" SrcPort 1 DstBlock "Gamma" DstPort 1 } Line { + ZOrder 2 SrcBlock "Gamma2" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 3 SrcBlock "fStatic" SrcPort 1 Points [30, 0; 0, -30] @@ -5994,7 +6449,10 @@ Model { } Annotation { SID "1030" - Position [260, 134] + Position [260, 134, 262, 149] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -6005,7 +6463,7 @@ Model { SID "1032" Position [635, 214, 695, 236] ZOrder -4 - Value "0.0002" + Value "m" } Block { BlockType Constant @@ -6013,7 +6471,7 @@ Model { SID "1033" Position [635, 489, 695, 511] ZOrder -4 - Value "0.3" + Value "a" } Block { BlockType Constant @@ -6021,7 +6479,7 @@ Model { SID "1034" Position [105, 124, 165, 146] ZOrder -4 - Value "0.0822" + Value "chain_b0" } Block { BlockType Constant @@ -6029,7 +6487,7 @@ Model { SID "1035" Position [350, 579, 410, 601] ZOrder -4 - Value "0.76" + Value "lpr0" } Block { BlockType Constant @@ -6037,7 +6495,7 @@ Model { SID "1036" Position [635, 379, 695, 401] ZOrder -4 - Value "0.15" + Value "kpr" } Block { BlockType Constant @@ -6045,7 +6503,7 @@ Model { SID "1037" Position [960, 604, 1020, 626] ZOrder -4 - Value "0.89" + Value "lprn" } Block { BlockType SubSystem @@ -6054,13 +6512,7 @@ Model { Ports [5, 1] Position [1045, 44, 1195, 306] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Primary Afferent Calculation (eqn (7))" Location [16, 152, 625, 875] @@ -6177,18 +6629,21 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "G" SrcPort 1 DstBlock "Product" DstPort 1 } Line { + ZOrder 2 SrcBlock "Product" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 3 Labels [2, 0] SrcBlock "Subtract" SrcPort 1 @@ -6197,6 +6652,7 @@ Model { DstPort 2 } Line { + ZOrder 4 SrcBlock "T" SrcPort 1 Points [30, 0; 0, 20] @@ -6204,24 +6660,28 @@ Model { DstPort 1 } Line { + ZOrder 5 SrcBlock "Ksr" SrcPort 1 DstBlock "Divide" DstPort 2 } Line { + ZOrder 6 SrcBlock "Divide" SrcPort 1 DstBlock "Subtract" DstPort 1 } Line { + ZOrder 7 SrcBlock "L_SR_n" SrcPort 1 DstBlock "Subtract1" DstPort 1 } Line { + ZOrder 8 SrcBlock "Lsr0" SrcPort 1 Points [35, 0; 0, -25] @@ -6229,6 +6689,7 @@ Model { DstPort 2 } Line { + ZOrder 9 SrcBlock "Subtract1" SrcPort 1 Points [25, 0; 0, -50] @@ -6243,7 +6704,7 @@ Model { SID "1049" Position [960, 439, 1020, 461] ZOrder -4 - Value "0.7" + Value "x" } Block { BlockType SubSystem @@ -6256,13 +6717,7 @@ Model { ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ExplicitOnly" TreatAsAtomicUnit on - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off SFBlockType "MATLAB Function" System { Name "Secondary Afferent Calculation (eqn (8))" @@ -6279,7 +6734,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "34" + SIDHighWatermark "37" Block { BlockType Inport Name "Gsnd" @@ -6372,20 +6827,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "1050::33" + SID "1050::36" Ports [1, 1] Position [270, 230, 320, 270] - ZOrder 19 + ZOrder 22 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "1050::32" + SID "1050::35" Tag "Stateflow S-Function MuscleSpindle 4" Ports [10, 2] Position [180, 100, 230, 320] - ZOrder 18 + ZOrder 21 FunctionName "sf_sfun" PortCounts "[10 2]" EnableBusSupport on @@ -6399,9 +6854,9 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "1050::34" + SID "1050::37" Position [460, 241, 480, 259] - ZOrder 20 + ZOrder 23 } Block { BlockType Outport @@ -6412,60 +6867,70 @@ Model { IconDisplay "Port number" } Line { + ZOrder 14 SrcBlock "Gsnd" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { + ZOrder 15 SrcBlock "T" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { + ZOrder 16 SrcBlock "Ksr" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { + ZOrder 17 SrcBlock "X" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { + ZOrder 18 SrcBlock "Lsnd" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { + ZOrder 19 SrcBlock "Lsr0" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { + ZOrder 20 SrcBlock "LsrN" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { + ZOrder 21 SrcBlock "Lpr0" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { + ZOrder 22 SrcBlock "LprN" SrcPort 1 DstBlock " SFunction " DstPort 9 } Line { + ZOrder 23 SrcBlock "L" SrcPort 1 DstBlock " SFunction " @@ -6473,6 +6938,7 @@ Model { } Line { Name "ScndryAffrntCntrbtn" + ZOrder 24 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 @@ -6480,12 +6946,14 @@ Model { DstPort 1 } Line { + ZOrder 25 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { + ZOrder 26 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " @@ -6499,7 +6967,7 @@ Model { SID "1051" Position [635, 599, 695, 621] ZOrder -4 - Value "0.04" + Value "lsr0" } Block { BlockType Constant @@ -6507,7 +6975,7 @@ Model { SID "1052" Position [520, 604, 580, 626] ZOrder -4 - Value "10.4649" + Value "ksr" } Block { BlockType Constant @@ -6515,7 +6983,7 @@ Model { SID "1053" Position [860, 114, 920, 136] ZOrder -4 - Value "0.0423" + Value "lsrn" } Block { BlockType Constant @@ -6523,7 +6991,7 @@ Model { SID "1054" Position [960, 489, 1020, 511] ZOrder -4 - Value "0.04" + Value "lsnd" } Block { BlockType SubSystem @@ -6532,13 +7000,7 @@ Model { Ports [11, 1] Position [740, 31, 845, 639] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Tension (T) Calculation " Location [216, 71, 1519, 907] @@ -6663,13 +7125,7 @@ Model { ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ExplicitOnly" TreatAsAtomicUnit on - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off SFBlockType "MATLAB Function" System { Name "Calculate ddT (Eqn 6)" @@ -6686,7 +7142,7 @@ Model { TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" - SIDHighWatermark "41" + SIDHighWatermark "44" Block { BlockType Inport Name "dT" @@ -6824,20 +7280,20 @@ Model { Block { BlockType Demux Name " Demux " - SID "1067::40" + SID "1067::43" Ports [1, 1] Position [270, 230, 320, 270] - ZOrder 26 + ZOrder 29 Outputs "1" } Block { BlockType S-Function Name " SFunction " - SID "1067::39" + SID "1067::42" Tag "Stateflow S-Function MuscleSpindle 5" Ports [15, 2] Position [180, 85, 230, 405] - ZOrder 25 + ZOrder 28 FunctionName "sf_sfun" PortCounts "[15 2]" EnableBusSupport on @@ -6851,9 +7307,9 @@ Model { Block { BlockType Terminator Name " Terminator " - SID "1067::41" + SID "1067::44" Position [460, 241, 480, 259] - ZOrder 27 + ZOrder 30 } Block { BlockType Outport @@ -6864,90 +7320,105 @@ Model { IconDisplay "Port number" } Line { + ZOrder 19 SrcBlock "dT" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { + ZOrder 20 SrcBlock "T" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { + ZOrder 21 SrcBlock "L" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { + ZOrder 22 SrcBlock "dL" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { + ZOrder 23 SrcBlock "ddL" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { + ZOrder 24 SrcBlock "Lsr0" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { + ZOrder 25 SrcBlock "Ksr" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { + ZOrder 26 SrcBlock "M" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { + ZOrder 27 SrcBlock "C" SrcPort 1 DstBlock " SFunction " DstPort 9 } Line { + ZOrder 28 SrcBlock "Beta" SrcPort 1 DstBlock " SFunction " DstPort 10 } Line { + ZOrder 29 SrcBlock "a" SrcPort 1 DstBlock " SFunction " DstPort 11 } Line { + ZOrder 30 SrcBlock "R" SrcPort 1 DstBlock " SFunction " DstPort 12 } Line { + ZOrder 31 SrcBlock "Kpr" SrcPort 1 DstBlock " SFunction " DstPort 13 } Line { + ZOrder 32 SrcBlock "Lpr0" SrcPort 1 DstBlock " SFunction " DstPort 14 } Line { + ZOrder 33 SrcBlock "Gamma" SrcPort 1 DstBlock " SFunction " @@ -6955,6 +7426,7 @@ Model { } Line { Name "ddT" + ZOrder 34 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 @@ -6962,12 +7434,14 @@ Model { DstPort 1 } Line { + ZOrder 35 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { + ZOrder 36 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " @@ -7016,108 +7490,128 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "L" SrcPort 1 Points [20, 0] Branch { + ZOrder 2 DstBlock "Calculate ddT (Eqn 6)" DstPort 3 } Branch { + ZOrder 3 Points [0, 30] DstBlock "L to dL" DstPort 1 } } Line { + ZOrder 4 SrcBlock "Lsr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 6 } Line { + ZOrder 5 SrcBlock "Gamma" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 15 } Line { + ZOrder 6 SrcBlock "Kpr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 13 } Line { + ZOrder 7 SrcBlock "a" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 11 } Line { + ZOrder 8 SrcBlock "C" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 9 } Line { + ZOrder 9 SrcBlock "Lpr0" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 14 } Line { + ZOrder 10 SrcBlock "Beta" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 10 } Line { + ZOrder 11 SrcBlock "Ksr" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 7 } Line { + ZOrder 12 SrcBlock "M" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 8 } Line { + ZOrder 13 SrcBlock "R" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" DstPort 12 } Line { + ZOrder 14 SrcBlock "Calculate ddT (Eqn 6)" SrcPort 1 DstBlock "ddT to dT" DstPort 1 } Line { + ZOrder 15 SrcBlock "ddT to dT" SrcPort 1 Points [25, 0] Branch { + ZOrder 16 DstBlock "dT to T" DstPort 1 } Branch { + ZOrder 17 Points [0, -265; -370, 0; 0, 55] DstBlock "Calculate ddT (Eqn 6)" DstPort 1 } } Line { + ZOrder 18 SrcBlock "dT to T" SrcPort 1 Points [10, 0] Branch { + ZOrder 19 DstBlock "T" DstPort 1 } Branch { + ZOrder 20 Labels [1, 0] Points [0, -295; -475, 0; 0, 115] DstBlock "Calculate ddT (Eqn 6)" @@ -7125,20 +7619,24 @@ Model { } } Line { + ZOrder 21 SrcBlock "L to dL" SrcPort 1 Points [10, 0] Branch { + ZOrder 22 DstBlock "Calculate ddT (Eqn 6)" DstPort 4 } Branch { + ZOrder 23 Points [0, 30] DstBlock "dL to ddL" DstPort 1 } } Line { + ZOrder 24 SrcBlock "dL to ddL" SrcPort 1 DstBlock "Calculate ddT (Eqn 6)" @@ -7152,7 +7650,7 @@ Model { SID "1073" Position [865, 49, 925, 71] ZOrder -4 - Value "10000" + Value "chain_g" } Block { BlockType Constant @@ -7160,7 +7658,7 @@ Model { SID "1074" Position [965, 334, 1025, 356] ZOrder -4 - Value "7250" + Value "chain_gsnd" } Block { BlockType SubSystem @@ -7169,13 +7667,7 @@ Model { Ports [2, 1] Position [285, 465, 435, 545] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "dfDynamic\n(Eqn 1, P=2)" Location [47, 244, 601, 728] @@ -7259,45 +7751,53 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Add" SrcPort 1 DstBlock "Divide1" DstPort 2 } Line { + ZOrder 2 SrcBlock "Gamma_static" SrcPort 1 DstBlock "Square" DstPort 1 } Line { + ZOrder 3 SrcBlock "Square" SrcPort 1 Points [10, 0] Branch { + ZOrder 4 Points [75, 0] DstBlock "Divide1" DstPort 1 } Branch { + ZOrder 5 Points [0, 40] DstBlock "Add" DstPort 1 } } Line { + ZOrder 6 SrcBlock "freqChain" SrcPort 1 DstBlock "Square1" DstPort 1 } Line { + ZOrder 7 SrcBlock "Square1" SrcPort 1 DstBlock "Add" DstPort 2 } Line { + ZOrder 8 SrcBlock "Divide1" SrcPort 1 DstBlock "fStatic" @@ -7309,9 +7809,9 @@ Model { BlockType Constant Name "fDynamic force gent\n(Gamma2)" SID "1088" - Position [300, 284, 360, 306] + Position [280, 284, 360, 306] ZOrder -4 - Value "0.0954" + Value "chain_gamma2" } Block { BlockType Constant @@ -7319,7 +7819,7 @@ Model { SID "1089" Position [185, 159, 245, 181] ZOrder -4 - Value "-0.0690" + Value "chain_b2" } Block { BlockType Outport @@ -7339,36 +7839,43 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Polar Zone Rest Length\n(Lpr0)" SrcPort 1 Points [50, 0] Branch { + ZOrder 2 Points [115, 0; 0, -145] DstBlock "Tension (T) Calculation " DstPort 8 } Branch { + ZOrder 3 Points [0, 100; 455, 0; 0, -105] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 8 } } Line { + ZOrder 4 Labels [3, 0] SrcBlock "dfDynamic\n(Eqn 1, P=2)" SrcPort 1 Points [120, 0; 0, -80; -295, 0; 0, -160] Branch { + ZOrder 5 Points [0, -60] DstBlock "Beta Calculation (Eqn 4)" DstPort 3 } Branch { + ZOrder 6 DstBlock "Gamma Calculation (Eqn 5)" DstPort 1 } } Line { + ZOrder 7 SrcBlock "Static Fusimotor\n(Gamma_static)" SrcPort 1 Points [180, 0] @@ -7376,6 +7883,7 @@ Model { DstPort 1 } Line { + ZOrder 8 SrcBlock "Constant relating fusimotor\nfrequency to activation\n(freq)" SrcPort 1 Points [55, 0] @@ -7383,27 +7891,32 @@ Model { DstPort 2 } Line { + ZOrder 9 SrcBlock "Primary Afferent Calculation (eqn (7))" SrcPort 1 DstBlock "Primary Afferent\nContribution" DstPort 1 } Line { + ZOrder 10 SrcBlock "Tension (T) Calculation " SrcPort 1 Points [10, 0] Branch { + ZOrder 11 Points [0, -160] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 3 } Branch { + ZOrder 12 Points [0, 70] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 2 } } Line { + ZOrder 13 SrcBlock "Term for Stretch\nto Afferent Firing\nG" SrcPort 1 Points [25, 0; 0, 15] @@ -7411,58 +7924,70 @@ Model { DstPort 1 } Line { + ZOrder 14 SrcBlock "Sensory region\nspring constant\nKsr" SrcPort 1 Points [30, 0] Branch { + ZOrder 15 Points [0, -60] DstBlock "Tension (T) Calculation " DstPort 10 } Branch { + ZOrder 16 Points [0, 65; 295, 0; 0, -245] Branch { + ZOrder 17 Points [0, -160] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 5 } Branch { + ZOrder 18 DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 3 } } } Line { + ZOrder 19 SrcBlock "Sensory region\nrest length\n(Lsr0)" SrcPort 1 Points [5, 0] Branch { + ZOrder 20 DstBlock "Tension (T) Calculation " DstPort 11 } Branch { - Points [0, 55; 195, 0; 0, -115] + ZOrder 21 + Points [0, 55; 195, 0; 0, -140] Branch { - Points [0, -325] + ZOrder 22 + Points [0, -300] DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 4 } Branch { - Points [0, -25] + ZOrder 23 DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 6 } } } Line { + ZOrder 24 SrcBlock "Sensory region\nthreshold length\n(LsrN)" SrcPort 1 Points [15, 0] Branch { + ZOrder 25 DstBlock "Primary Afferent Calculation (eqn (7))" DstPort 2 } Branch { + ZOrder 26 Labels [1, 0] Points [0, 430] DstBlock "Secondary Afferent Calculation (eqn (8))" @@ -7470,101 +7995,119 @@ Model { } } Line { + ZOrder 27 SrcBlock "Passive damping\ncoefficient (Beta)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 1 } Line { + ZOrder 28 SrcBlock "Beta Calculation (Eqn 4)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 3 } Line { + ZOrder 29 SrcBlock "fStatic damping\n(Beta2)" SrcPort 1 DstBlock "Beta Calculation (Eqn 4)" DstPort 2 } Line { + ZOrder 30 SrcBlock "Mass" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 4 } Line { + ZOrder 31 SrcBlock "fDynamic force gent\n(Gamma2)" SrcPort 1 DstBlock "Gamma Calculation (Eqn 5)" DstPort 2 } Line { + ZOrder 32 SrcBlock "Fascicle Length" SrcPort 1 Points [40, 0] Branch { + ZOrder 33 Labels [1, 0] Points [475, 0] Branch { + ZOrder 34 DstBlock "Tension (T) Calculation " DstPort 1 } Branch { + ZOrder 35 Points [0, 30] DstBlock "Coef of asymmetry (C)" DstPort 1 } } Branch { + ZOrder 36 Points [0, 45; -105, 0; 0, 590; 1025, 0; 0, -50] DstBlock "Secondary Afferent Calculation (eqn (8))" DstPort 10 } } Line { + ZOrder 37 SrcBlock "Fascicle length below\nwhich force is 0 (R)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 6 } Line { + ZOrder 38 SrcBlock "Gamma Calculation (Eqn 5)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 5 } Line { + ZOrder 39 SrcBlock "C_lengthening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 2 } Line { + ZOrder 40 SrcBlock "C_shortening" SrcPort 1 DstBlock "Coef of asymmetry (C)" DstPort 3 } Line { + ZOrder 41 SrcBlock "Coef of asymmetry (C)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 2 } Line { + ZOrder 42 SrcBlock "Nonlinear velocity\ndependence power\nconstant (a)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 9 } Line { + ZOrder 43 SrcBlock "Polar region\nspring constant (Kpr)" SrcPort 1 DstBlock "Tension (T) Calculation " DstPort 7 } Line { + ZOrder 44 SrcBlock "Secondary Afferent Calculation (eqn (8))" SrcPort 1 Points [0, 5] @@ -7572,6 +8115,7 @@ Model { DstPort 1 } Line { + ZOrder 45 SrcBlock "Term for Stretch\nto Secondary Afferent\nFiring Gsnd" SrcPort 1 Points [25, 0; 0, 30] @@ -7579,6 +8123,7 @@ Model { DstPort 1 } Line { + ZOrder 46 SrcBlock "Proportion of p-rgn\ncont. to SndAff (X)" SrcPort 1 Points [0, 15] @@ -7586,6 +8131,7 @@ Model { DstPort 4 } Line { + ZOrder 47 SrcBlock "SndAff Rest Length\n(Lsnd)" SrcPort 1 Points [0, -5] @@ -7593,6 +8139,7 @@ Model { DstPort 5 } Line { + ZOrder 48 SrcBlock "Polar region\nthreshold length\n(LprN)" SrcPort 1 DstBlock "Secondary Afferent Calculation (eqn (8))" @@ -7600,7 +8147,10 @@ Model { } Annotation { SID "1092" - Position [650, 215] + Position [650, 215, 652, 230] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } @@ -7612,16 +8162,10 @@ Model { Ports [3, 1] Position [640, 229, 740, 271] ZOrder -17 - MinAlgLoopOccurrences off - PropExecContextOutsideSubsystem off - RTWSystemCode "Auto" - FunctionWithSeparateData off - Opaque off RequestExecContextInheritance off - MaskHideContents off System { Name "Partial Occlusion Effect" - Location [443, 155, 997, 639] + Location [-1928, -8, 8, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 @@ -7717,41 +8261,49 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Prim" SrcPort 1 Points [20, 0] Branch { + ZOrder 2 Points [0, 45] DstBlock "Max" DstPort 1 } Branch { + ZOrder 3 Points [0, -25] DstBlock "Min" DstPort 1 } } Line { + ZOrder 4 SrcBlock "Sec" SrcPort 1 Points [35, 0] Branch { + ZOrder 5 DstBlock "Max" DstPort 2 } Branch { + ZOrder 6 Points [0, -70] DstBlock "Min" DstPort 2 } } Line { + ZOrder 7 SrcBlock "Sum" SrcPort 1 DstBlock "Primary Afferent" DstPort 1 } Line { + ZOrder 8 SrcBlock "S" SrcPort 1 Points [135, 0] @@ -7759,18 +8311,21 @@ Model { DstPort 1 } Line { + ZOrder 9 SrcBlock "Min" SrcPort 1 DstBlock "Product" DstPort 2 } Line { + ZOrder 10 SrcBlock "Product" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { + ZOrder 11 SrcBlock "Max" SrcPort 1 Points [120, 0] @@ -7785,7 +8340,7 @@ Model { SID "1107" Position [555, 160, 585, 190] ZOrder -4 - Value "0.156" + Value "s" } Block { BlockType Sum @@ -7832,27 +8387,33 @@ Model { IconDisplay "Port number" } Line { + ZOrder 1 SrcBlock "Fascicle Length" SrcPort 1 Points [75, 0] Branch { + ZOrder 2 Points [0, 90] Branch { + ZOrder 3 DstBlock "Bag2" DstPort 1 } Branch { + ZOrder 4 Points [0, 85] DstBlock "Chain" DstPort 1 } } Branch { + ZOrder 5 DstBlock "Bag1" DstPort 1 } } Line { + ZOrder 6 SrcBlock "Dynamic Fusimotor" SrcPort 1 Points [35, 0; 0, -60] @@ -7860,32 +8421,38 @@ Model { DstPort 2 } Line { + ZOrder 7 SrcBlock "Static Fusimotor" SrcPort 1 Points [35, 0] Branch { + ZOrder 8 Points [0, -80] DstBlock "Bag2" DstPort 2 } Branch { + ZOrder 9 DstBlock "Chain" DstPort 2 } } Line { + ZOrder 10 SrcBlock "Sum" SrcPort 1 DstBlock "Secondary\nAfferent" DstPort 1 } Line { + ZOrder 11 SrcBlock "Partial Occlusion Effect" SrcPort 1 DstBlock "Primary\nAfferent" DstPort 1 } Line { + ZOrder 12 SrcBlock "Bag2" SrcPort 2 Points [145, 0] @@ -7893,6 +8460,7 @@ Model { DstPort 1 } Line { + ZOrder 13 SrcBlock "Bag1" SrcPort 1 Points [114, 0; 0, 75] @@ -7900,6 +8468,7 @@ Model { DstPort 2 } Line { + ZOrder 14 SrcBlock "Bag2" SrcPort 1 Points [100, 0] @@ -7907,6 +8476,7 @@ Model { DstPort 1 } Line { + ZOrder 15 SrcBlock "Chain" SrcPort 1 Points [100, 0] @@ -7914,6 +8484,7 @@ Model { DstPort 2 } Line { + ZOrder 16 SrcBlock "Chain" SrcPort 2 Points [145, 0] @@ -7921,6 +8492,7 @@ Model { DstPort 2 } Line { + ZOrder 17 SrcBlock "Sum1" SrcPort 1 Points [5, 0; 0, -45] @@ -7928,6 +8500,7 @@ Model { DstPort 3 } Line { + ZOrder 18 Labels [0, 0] SrcBlock "S" SrcPort 1 @@ -7937,25 +8510,27 @@ Model { } Annotation { SID "1106" - Position [652, 51] + Position [652, 51, 654, 66] + InternalMargins [0, 0, 0, 0] + FixedHeight off + FixedWidth off ZOrder -1 } } } -# Finite State Machines +#Finite State Machines # -# Stateflow Version 7.6 (R2013a) dated Jan 19 2013, 14:32:20 +# Stateflow 80000005 # # - Stateflow { machine { id 1 name "MuscleSpindle" created "08-Nov-2012 15:23:06" isLibrary 0 - firstTarget 97 - sfVersion 76014001.0015 + firstTarget 112 + sfVersion 80000005 } chart { id 2 @@ -8358,7 +8933,7 @@ Stateflow { transition { id 21 labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] + labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] @@ -8786,7 +9361,7 @@ Stateflow { transition { id 42 labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] + labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] @@ -8823,8 +9398,10 @@ Stateflow { firstTransition 58 firstJunction 57 viewObj 44 + visible 1 machine 1 - toolbarMode LIBRARY_TOOLBAR + subviewS { + } ssIdHighWaterMark 14 decomposition CLUSTER_CHART type EML_CHART @@ -9105,7 +9682,7 @@ Stateflow { transition { id 58 labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] + labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] @@ -9117,7 +9694,7 @@ Stateflow { midPoint [23.5747 24.9468] chart 44 linkNode [44 0 0] - dataLimits [23.575 23.575 14.625 34.575] + dataLimits [21.175 25.975 14.625 42.575] subviewer 44 drawStyle SMART slide { @@ -9424,7 +10001,7 @@ Stateflow { transition { id 74 labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] + labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] @@ -9852,7 +10429,7 @@ Stateflow { transition { id 95 labelString "{eML_blk_kernel();}" - labelPosition [32.125 19.875 102.544 14.964] + labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] @@ -9879,8 +10456,269 @@ Stateflow { machine 1 chart 76 } - target { + chart { id 97 + name "Bag1/dfDynamic\n(Eqn 1, P=2)/u^p" + windowPosition [422 539.941 189 413] + viewLimits [0 156.75 0 153.75] + screen [1 1 3600 1200 1.180555555555556] + treeNode [0 98 0 0] + firstTransition 103 + firstJunction 102 + viewObj 97 + visible 1 + machine 1 + subviewS { + } + ssIdHighWaterMark 6 + decomposition CLUSTER_CHART + type EML_CHART + firstData 99 + chartFileNumber 6 + disableImplicitCasting 1 + eml { + name "pow_p" + } + } + state { + id 98 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 97 + treeNode [97 0 0 0] + superState SUBCHART + subviewer 97 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "function y = pow_p(u, p)\n%#codegen\n\ny = u^p;" + editorLayout "100 M4x1[10 5 700 500]" + } + } + data { + id 99 + ssIdNumber 4 + name "u" + linkNode [97 0 100] + scope INPUT_DATA + machine 1 + props { + array { + size "-1" + } + type { + method SF_INHERITED_TYPE + primitive SF_DOUBLE_TYPE + } + complexity SF_COMPLEX_INHERITED + } + dataType "Inherit: Same as Simulink" + } + data { + id 100 + ssIdNumber 5 + name "y" + linkNode [97 99 101] + scope OUTPUT_DATA + machine 1 + props { + array { + size "-1" + } + type { + method SF_INHERITED_TYPE + primitive SF_DOUBLE_TYPE + } + complexity SF_COMPLEX_INHERITED + frame SF_FRAME_NO + } + dataType "Inherit: Same as Simulink" + } + data { + id 101 + ssIdNumber 6 + name "p" + linkNode [97 100 0] + scope INPUT_DATA + machine 1 + props { + array { + size "-1" + } + type { + method SF_INHERITED_TYPE + primitive SF_DOUBLE_TYPE + isSigned 1 + wordLength "16" + } + complexity SF_COMPLEX_INHERITED + frame SF_FRAME_INHERITED + } + dataType "Inherit: Same as Simulink" + } + junction { + id 102 + position [23.5747 49.5747 7] + chart 97 + linkNode [97 0 0] + subviewer 97 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 103 + labelString "{eML_blk_kernel();}" + labelPosition [28.125 13.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 102 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 97 + linkNode [97 0 0] + dataLimits [21.175 25.975 14.625 42.575] + subviewer 97 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + instance { + id 104 + name "Bag1/dfDynamic\n(Eqn 1, P=2)/u^p" + machine 1 + chart 97 + } + chart { + id 105 + name "Bag1/dfDynamic\n(Eqn 1, P=2)/u^p1" + windowPosition [422 539.941 189 413] + viewLimits [0 156.75 0 153.75] + screen [1 1 3600 1200 1.180555555555556] + treeNode [0 106 0 0] + firstTransition 110 + firstJunction 109 + viewObj 105 + machine 1 + subviewS { + } + ssIdHighWaterMark 5 + decomposition CLUSTER_CHART + type EML_CHART + firstData 107 + chartFileNumber 7 + disableImplicitCasting 1 + eml { + name "pow_p" + } + } + state { + id 106 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 105 + treeNode [105 0 0 0] + superState SUBCHART + subviewer 105 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "function y = pow_p(u)\n%#codegen\n\ny = u^p;" + editorLayout "100 M4x1[10 5 700 500]" + } + } + data { + id 107 + ssIdNumber 4 + name "u" + linkNode [105 0 108] + scope INPUT_DATA + machine 1 + props { + array { + size "-1" + } + type { + method SF_INHERITED_TYPE + primitive SF_DOUBLE_TYPE + } + complexity SF_COMPLEX_INHERITED + } + dataType "Inherit: Same as Simulink" + } + data { + id 108 + ssIdNumber 5 + name "y" + linkNode [105 107 0] + scope OUTPUT_DATA + machine 1 + props { + array { + size "-1" + } + type { + method SF_INHERITED_TYPE + primitive SF_DOUBLE_TYPE + } + complexity SF_COMPLEX_INHERITED + frame SF_FRAME_NO + } + dataType "Inherit: Same as Simulink" + } + junction { + id 109 + position [23.5747 49.5747 7] + chart 105 + linkNode [105 0 0] + subviewer 105 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 110 + labelString "{eML_blk_kernel();}" + labelPosition [28.125 13.875 102.544 14.964] + fontSize 12 + src { + intersection [0 0 1 0 23.5747 14.625 0 0] + } + dst { + id 109 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 105 + linkNode [105 0 0] + dataLimits [21.175 25.975 14.625 42.575] + subviewer 105 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + instance { + id 111 + name "Bag1/dfDynamic\n(Eqn 1, P=2)/u^p1" + machine 1 + chart 105 + } + target { + id 112 name "sfun" description "Default Simulink S-Function Target." machine 1 diff --git a/MATLAB/parameters.m b/MATLAB/parameters.m new file mode 100644 index 0000000..97509a4 --- /dev/null +++ b/MATLAB/parameters.m @@ -0,0 +1,45 @@ +clear all; +clc; +close all; + +%% General +ksr = 10.4649; +kpr = 0.15; +m = 0.0002; +cl = 1; +cs = 0.42; +x = 0.7; +lsrn = 0.0423; +lprn = 0.89; +a = 0.3; +r = 0.46; +lsr0 = 0.04; +lpr0 = 0.76; +lsnd = 0.04; +p = 2; +s = 0.156; + +%% Bag1 +bag1_b0 = 0.0605; +bag1_b1 = 0.2593; +bag1_gamma1 = 0.0289; +bag1_g = 20000; +bag1_tau = 0.149; +bag1_freq = 60; + +%% Bag2 +bag2_b0 = 0.0822; +bag2_b2 = -0.046; +bag2_gamma2 = 0.0636; +bag2_g = 10000; +bag2_gsnd = 7250; +bag2_tau = 0.205; +bag2_freq = 60; + +%% Chain +chain_b0 = 0.0822; +chain_b2 = -0.0690; +chain_gamma2 = 0.0954; +chain_g = 10000; +chain_gsnd = 7250; +chain_freq = 90;