%implements "M-S-Function" "C"
%function BlockTypeSetup(block, system) void
%if !(Accelerator && ParamSettings.runAccelOnTLC == "no") && ...
ParamSettings.isSimViewDevice != "yes"
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "BlockTypeSetup", funcName, system)>
%endif
%endfunction
%function BlockInstanceSetup(block, system) void
%if !(Accelerator && ParamSettings.runAccelOnTLC == "no") && ...
ParamSettings.isSimViewDevice != "yes"
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "BlockInstanceSetup", funcName, system)>
%endif
%assign ps = ParamSettings
%assign InitializeConditionsEmpty = 1
%assign StartEmpty = 1
%assign SetupRuntimeResourcesEmpty = 1
%assign OutputsEmpty = 1
%assign UpdateEmpty = 1
%assign DerivativesEmpty = 1
%assign ProjectionEmpty = 1
%assign ZeroCrossingsEmpty = 1
%assign EnableEmpty = 1
%assign DisableEmpty = 1
%assign TerminateEmpty = 1
%assign CleanupRuntimeResourcesEmpty = 1
%assign ps = ps + InitializeConditionsEmpty
%assign ps = ps + SetupRuntimeResourcesEmpty
%assign ps = ps + StartEmpty
%assign ps = ps + OutputsEmpty
%assign ps = ps + UpdateEmpty
%assign ps = ps + DerivativesEmpty
%assign ps = ps + ProjectionEmpty
%assign ps = ps + ZeroCrossingsEmpty
%assign ps = ps + EnableEmpty
%assign ps = ps + DisableEmpty
%assign ps = ps + TerminateEmpty
%assign ps = ps + CleanupRuntimeResourcesEmpty
%if ISFIELD(ps,"InitializeConditions") && ps.InitializeConditions != ""
%assign ps.InitializeConditionsEmpty = 0
%endif
%if ISFIELD(ps,"SetupRuntimeResources") && ps.SetupRuntimeResources != ""
%assign ps.SetupRuntimeResourcesEmpty = 0
%endif
%if ISFIELD(ps,"Start") && ps.Start != ""
%assign ps.StartEmpty = 0
%endif
%if ISFIELD(ps,"Outputs") && ps.Outputs != ""
%assign ps.OutputsEmpty = 0
%endif
%if ISFIELD(ps,"Update") && ps.Update != ""
%assign ps.UpdateEmpty = 0
%endif
%if ISFIELD(ps,"Derivatives") && ps.Derivatives != ""
%assign ps.DerivativesEmpty = 0
%endif
%if ISFIELD(ps,"Projection") && ps.Projection != ""
%assign ps.ProjectionEmpty = 0
%endif
%if ISFIELD(ps,"ZeroCrossings") && ps.ZeroCrossings != ""
%assign ps.ZeroCrossingsEmpty = 0
%endif
%if ISFIELD(ps,"Enable") && ps.Enable != ""
%assign ps.EnableEmpty = 0
%endif
%if ISFIELD(ps,"Disable") && ps.Disable != ""
%assign ps.DisableEmpty = 0
%endif
%if ISFIELD(ps,"Terminate") && ps.Terminate != ""
%assign ps.TerminateEmpty = 0
%endif
%if ISFIELD(ps,"CleanupRuntimeResources") && ps.CleanupRuntimeResources != ""
%assign ps.CleanupRuntimeResourcesEmpty = 0
%endif
%assign IsSimViewDevice = 1
%assign RunAccelOnTLC = 1
%assign ps = ps + IsSimViewDevice
%assign ps = ps + RunAccelOnTLC
%if ps.isSimViewDevice == "no"
%assign ps.IsSimViewDevice = 0
%endif
%if ps.runAccelOnTLC == "no"
%assign ps.RunAccelOnTLC = 0
%endif
%endfunction
%function SetDims(block, system, oIdx, rIdx) Output
%if !Accelerator && !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "SetDims", funcName, system, oIdx, rIdx)>
%elseif Accelerator && !ParamSettings.RunAccelOnTLC
%<SLibCallSFcnSetDimsInSimulink(system, block, oIdx, rIdx)>
%endif
%endfunction
%function SetupRuntimeResources(block, system) Output
%if !ParamSettings.SetupRuntimeResourcesEmpty
%if !Accelerator && !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "SetupRuntimeResources", funcName, system)>
%endif
%endif
%endfunction
%function CleanupRuntimeResources(block, system) Output
%if !ParamSettings.CleanupRuntimeResourcesEmpty
%if !Accelerator && !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "CleanupRuntimeResources", funcName, system)>
%endif
%endif
%endfunction
%function Start(block, system) Output
%if !ParamSettings.StartEmpty
%if !Accelerator && !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "Start", funcName, system)>
%endif
%endif
%endfunction
%function InitializeConditions(block, system) Output
%if !ParamSettings.InitializeConditionsEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, ...
"SS_CALL_MDL_INITIALIZE_CONDITIONS")>
%elseif !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "InitializeConditions", funcName, system)>
%endif
%endif
%endfunction
%function Update(block, system) Output
%if !ParamSettings.UpdateEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, ...
"SS_CALL_MDL_UPDATE")>
%elseif !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "Update", funcName, system)>
%endif
%endif
%endfunction
%function Derivatives(block, system) Output
%if !ParamSettings.DerivativesEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, ...
"SS_CALL_MDL_DERIVATIVES")>
%elseif !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "Derivatives", funcName, system)>
%endif
%endif
%endfunction
%function ForcingFunction(block, system) Output
%if ::CompiledModel.ModelIsLinearlyImplicit == "yes"
%<Derivatives(block,system)>
%endif
%endfunction
%function Projection(block, system) Output
%if !ParamSettings.ProjectionEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, ...
"SS_CALL_MDL_PROJECTION")>
%elseif !ParamSettings.IsSimViewDevice
%assign funcName = ParamSettings.MFile
%<GENERATE_TYPE(block, "Projection", funcName, system)>
%endif
%endif
%endfunction
%function Outputs(block, system) Output
%if !ParamSettings.OutputsEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, "SS_CALL_MDL_OUTPUTS")>
%elseif !ParamSettings.IsSimViewDevice
%<GENERATE_TYPE(block,"Outputs",ParamSettings.MFile, system)>
%endif
%endif
%endfunction
%function Enable(block, system) Output
%if !ParamSettings.EnableEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, "SS_CALL_RTW_GENERATED_ENABLE")>
%elseif !ParamSettings.IsSimViewDevice
%<GENERATE_TYPE(block,"Enable",ParamSettings.MFile, system)>
%endif
%endif
%endfunction
%function Disable(block, system) Output
%if !ParamSettings.DisableEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, "SS_CALL_RTW_GENERATED_DISABLE")>
%elseif !ParamSettings.IsSimViewDevice
%<GENERATE_TYPE(block,"Disable",ParamSettings.MFile, system)>
%endif
%endif
%endfunction
%function Terminate(block, system) Output
%if !ParamSettings.TerminateEmpty
%if Accelerator && !ParamSettings.RunAccelOnTLC
/* Call into Simulink */
%<SLibCallBlockInSimulink(system, block, "SS_CALL_MDL_TERMINATE")>
%elseif !ParamSettings.IsSimViewDevice
%<GENERATE_TYPE(block, "Terminate", ParamSettings.MFile, system)>
%endif
%endif
%endfunction