1 /* Copyright (C) 2013, 2014 Czech Technical University in Prague
4 * - Michal Horn <hornimch@fel.cvut.cz>
6 * This document contains proprietary information belonging to Czech
7 * Technical University in Prague. Passing on and copying of this
8 * document, and communication of its contents is not permitted
9 * without prior written authorization.
11 * File : sfunction_fraysbc.c
13 * C-MEX S-function block for RPP FlexRay static buffer configuration.
20 * <matlabroot>/bin/mex sfunction_fraysbc.c
26 Name: FlexRay static buffer configuration
37 # Description and Help is in Markdown mark-up
46 RPP API functions used:
52 #define S_FUNCTION_NAME sfunction_fraysbc
57 #define cycleCounterFiltering_IDX 1
59 #define maxPayload_IDX 3
60 #define msgBufferInterrupt_IDX 4
61 #define payloadPreambleIndicatorTr_IDX 5
62 #define singleTransmit_IDX 6
66 static void mdlInitializeSizes(SimStruct *S)
69 * Configure parameters: 25
70 * channel (0 - A, 1 - B, 2 - AB)
71 * cycleCounterFiltering
75 * payloadPreambleIndicatorTr
79 if (!rppSetNumParams(S, 8)) {
84 * Configure input ports: 0
86 if (!ssSetNumInputPorts(S, 0)) {
91 * Configure output ports: 0
93 if (!ssSetNumOutputPorts(S, 0)) {
97 /* Set standard options for this block */
98 rppSetStandardOptions(S);
102 #ifdef MATLAB_MEX_FILE
103 #define MDL_CHECK_PARAMETERS
104 static void mdlCheckParameters(SimStruct *S)
111 #ifdef MATLAB_MEX_FILE
112 #define MDL_SET_WORK_WIDTHS
113 static void mdlSetWorkWidths(SimStruct *S)
115 /* Set number of run-time parameters */
116 if (!ssSetNumRunTimeParams(S, 8)) {
120 /* Register the run-time parameter 1 */
121 ssRegDlgParamAsRunTimeParam(S, channel_IDX, channel_IDX, "channel", SS_UINT8);
122 ssRegDlgParamAsRunTimeParam(S, cycleCounterFiltering_IDX, cycleCounterFiltering_IDX, "cycleCounterFiltering", SS_UINT8);
123 ssRegDlgParamAsRunTimeParam(S, isTx_IDX, isTx_IDX, "isTx", SS_BOOLEAN);
124 ssRegDlgParamAsRunTimeParam(S, maxPayload_IDX, maxPayload_IDX, "maxPayload", SS_UINT8);
125 ssRegDlgParamAsRunTimeParam(S, msgBufferInterrupt_IDX, msgBufferInterrupt_IDX, "msgBufferInterrupt", SS_BOOLEAN);
126 ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
127 ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
128 ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
133 #define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
134 #define UNUSED_MDLOUTPUTS
135 #define UNUSED_MDLTERMINATE