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
32 - { name: "Digital Output", type: "bool" }
35 - { name: "ErrFlag", type: "bool" }
38 - { name: "Pin number [1-8]", type: "uint8" }
40 # Description and Help is in Markdown mark-up
43 This block allows to write to the digital outputs on the RPP board. The ErrFlag should raise if
44 `rpp_lout_set()` or `rpp_lout_update()` returns error. Because the ErrFlag should never set,
45 once set the following steps will never clear it back. `rpp_lout_update()` is called on each
46 block, which is not the most efficient but guaranties consistent behavior.
53 - Compilation and general use.
55 - Faulty situation for the ErrFlag to set.
58 RPP API functions used:
69 #define S_FUNCTION_NAME sfunction_lout
73 static void mdlInitializeSizes(SimStruct *S)
76 * Configure parameters: 1
79 if (!rppSetNumParams(S, 1)) {
84 * Configure input ports: 1
87 if (!ssSetNumInputPorts(S, 1)) {
90 rppAddInputPort(S, 0, SS_BOOLEAN);
93 * Configure output ports: 1
96 if (!ssSetNumOutputPorts(S, 1)) {
99 rppAddOutputPort(S, 0, SS_BOOLEAN);
101 /* Set standard options for this block */
102 rppSetStandardOptions(S);
106 #ifdef MATLAB_MEX_FILE
107 #define MDL_CHECK_PARAMETERS
108 static void mdlCheckParameters(SimStruct *S)
110 /* Check the parameter 1 */
111 if (!rppValidParamRange(S, 0, 1, 8)) {
118 #ifdef MATLAB_MEX_FILE
119 #define MDL_SET_WORK_WIDTHS
120 static void mdlSetWorkWidths(SimStruct *S)
122 /* Set number of run-time parameters */
123 if (!ssSetNumRunTimeParams(S, 1)) {
127 /* Register the run-time parameter 1 */
128 ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
133 #define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
134 #define UNUSED_MDLOUTPUTS
135 #define UNUSED_MDLTERMINATE