1 /* Copyright (C) 2013, 2014 Czech Technical University in Prague
4 * - Carlos Jenkins <carlos@jenkins.co.cr>
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_lout.c
13 * C-MEX S-function block for RPP digital output.
20 * <matlabroot>/bin/mex sfunction_lout.c
26 Name: Digital Output block
32 - name: Digital Output
40 - name: Pin number [1-8]
43 # Description is in Markdown mark-up
46 This block allows to write to the digital outputs on the RPP board. The ErrFlag should raise if
47 `rpp_lout_set()` or `rpp_lout_update()` returns error. Because the ErrFlag should never set,
48 once set the following steps will never clear it back. `rpp_lout_update()` is called on each
49 block, which is not the most efficient but guaranties consistent behavior.
54 - Compilation and general use.
56 - Faulty situation for the ErrFlag to set.
59 RPP API functions used:
70 #define S_FUNCTION_NAME sfunction_lout
74 static void mdlInitializeSizes(SimStruct *S)
77 * Configure parameters: 1
80 if (!rppSetNumParams(S, 1)) {
85 * Configure input ports: 1
88 if (!ssSetNumInputPorts(S, 1)) {
91 rppAddInputPort(S, 0, SS_BOOLEAN);
94 * Configure output ports: 1
97 if (!ssSetNumOutputPorts(S, 1)) {
100 rppAddOutputPort(S, 0, SS_BOOLEAN);
102 /* Set standard options for this block */
103 rppSetStandardOptions(S);
107 #ifdef MATLAB_MEX_FILE
108 #define MDL_CHECK_PARAMETERS
109 static void mdlCheckParameters(SimStruct *S)
111 /* Check the parameter 1 */
112 if (!rppValidParamRange(S, 0, 1, 8)) {
119 #ifdef MATLAB_MEX_FILE
120 #define MDL_SET_WORK_WIDTHS
121 static void mdlSetWorkWidths(SimStruct *S)
123 /* Set number of run-time parameters */
124 if (!ssSetNumRunTimeParams(S, 1)) {
128 /* Register the run-time parameter 1 */
129 ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
134 #define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
135 #define UNUSED_MDLOUTPUTS
136 #define UNUSED_MDLTERMINATE