]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/blob - rpp/blocks/sfunction_fraysbc.c
Merge branch 'master' of rtime:jenkicar/rpp-simulink
[jenkicar/rpp-simulink.git] / rpp / blocks / sfunction_fraysbc.c
1 /* Copyright (C) 2013 Czech Technical University in Prague
2  *
3  * Authors:
4  *     - Michal Horn <hornimch@fel.cvut.cz>
5  *
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.
10  *
11  * File : sfunction_fraysbc.c
12  * Abstract:
13  *     C-MEX S-function block for RPP FlexRay static buffer configuration.
14  *
15  * References:
16  *     header.c
17  *     trailer.c
18  *
19  * Compile with:
20  *     <matlabroot>/bin/mex sfunction_fraysbc.c
21  */
22
23
24 #define S_FUNCTION_NAME sfunction_fraysbc
25 #include "header.c"
26 #include <stdio.h>
27
28 #define channel_IDX                                             0
29 #define cycleCounterFiltering_IDX               1
30 #define isTx_IDX                                                2
31 #define maxPayload_IDX                                  3
32 #define msgBufferInterrupt_IDX                  4
33 #define payloadPreambleIndicatorTr_IDX  5
34 #define singleTransmit_IDX                              6
35 #define slotId_IDX                                              7
36
37
38 static void mdlInitializeSizes(SimStruct *S)
39 {
40     /*
41      * Configure parameters: 25
42          * channel (0 - A, 1 - B, 2 - AB)
43          * cycleCounterFiltering
44          * isTx
45          * maxPayload
46          * msgBufferInterrupt
47          * payloadPreambleIndicatorTr
48          * singleTransmit
49          * slotId
50      */
51     if (!rppSetNumParams(S, 8)) {
52         return;
53     }
54
55     /*
56      * Configure input ports: 0
57      */
58     if (!ssSetNumInputPorts(S, 0)) {
59         return;
60     }
61
62     /*
63      * Configure output ports: 0
64      */
65     if (!ssSetNumOutputPorts(S, 0)) {
66         return;
67     }
68
69     /* Set standard options for this block */
70     rppSetStandardOptions(S);
71 }
72
73
74 #ifdef MATLAB_MEX_FILE
75 #define MDL_CHECK_PARAMETERS
76 static void mdlCheckParameters(SimStruct *S)
77 {
78
79 }
80 #endif
81
82
83 #ifdef MATLAB_MEX_FILE
84 #define MDL_SET_WORK_WIDTHS
85 static void mdlSetWorkWidths(SimStruct *S)
86 {
87     /* Set number of run-time parameters */
88     if (!ssSetNumRunTimeParams(S, 8)) {
89         return;
90     }
91
92     /* Register the run-time parameter 1 */
93         ssRegDlgParamAsRunTimeParam(S, channel_IDX, channel_IDX, "channel", SS_UINT8);
94         ssRegDlgParamAsRunTimeParam(S, cycleCounterFiltering_IDX, cycleCounterFiltering_IDX, "cycleCounterFiltering", SS_UINT8);
95         ssRegDlgParamAsRunTimeParam(S, isTx_IDX, isTx_IDX, "isTx", SS_BOOLEAN);
96         ssRegDlgParamAsRunTimeParam(S, maxPayload_IDX, maxPayload_IDX, "maxPayload", SS_UINT8);
97         ssRegDlgParamAsRunTimeParam(S, msgBufferInterrupt_IDX, msgBufferInterrupt_IDX, "msgBufferInterrupt", SS_BOOLEAN);
98         ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
99         ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
100         ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
101 }
102 #endif
103
104
105 #define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
106 #define UNUSED_MDLOUTPUTS
107 #define UNUSED_MDLTERMINATE
108 #include "trailer.c"