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", type: "bool" }
35 - { name: "ErrFlag", type: "bool" }
38 - { name: "Pin number [1-8]", type: "uint8" }
40 # Description 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.
51 - Compilation and general use.
53 - Faulty situation for the ErrFlag to set.
56 RPP API functions used:
67 #define S_FUNCTION_NAME sfunction_lout
71 static void mdlInitializeSizes(SimStruct *S)
74 * Configure parameters: 1
77 if (!rppSetNumParams(S, 1)) {
82 * Configure input ports: 1
85 if (!ssSetNumInputPorts(S, 1)) {
88 rppAddInputPort(S, 0, SS_BOOLEAN);
91 * Configure output ports: 1
94 if (!ssSetNumOutputPorts(S, 1)) {
97 rppAddOutputPort(S, 0, SS_BOOLEAN);
99 /* Set standard options for this block */
100 rppSetStandardOptions(S);
104 #ifdef MATLAB_MEX_FILE
105 #define MDL_CHECK_PARAMETERS
106 static void mdlCheckParameters(SimStruct *S)
108 /* Check the parameter 1 */
109 if (!rppValidParamRange(S, 0, 1, 8)) {
116 #ifdef MATLAB_MEX_FILE
117 #define MDL_SET_WORK_WIDTHS
118 static void mdlSetWorkWidths(SimStruct *S)
120 /* Set number of run-time parameters */
121 if (!ssSetNumRunTimeParams(S, 1)) {
125 /* Register the run-time parameter 1 */
126 ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
131 #define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
132 #define UNUSED_MDLOUTPUTS
133 #define UNUSED_MDLTERMINATE