]> rtime.felk.cvut.cz Git - pes-rpp/rpp-simulink.git/blob - rpp/blocks/tlc_c/sfunction_scis.tlc
Implemented string printf format for Simulink SCIS block.
[pes-rpp/rpp-simulink.git] / rpp / blocks / tlc_c / sfunction_scis.tlc
1 %% Copyright (C) 2013 Czech Technical University in Prague
2 %%
3 %% Authors:
4 %%     - Carlos Jenkins <carlos@jenkins.co.cr>
5 %%
6 %% This program is free software; you can redistribute it and/or modify
7 %% it under the terms of the GNU General Public License as published by
8 %% the Free Software Foundation; either version 2 of the License, or
9 %% (at your option) any later version.
10 %%
11 %% This program is distributed in the hope that it will be useful,
12 %% but WITHOUT ANY WARRANTY; without even the implied warranty of
13 %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 %% GNU General Public License for more details.
15 %%
16 %% You should have received a copy of the GNU General Public License
17 %% along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 %%
19 %% File : sfunction_scis.tlc
20 %% Abstract:
21 %%     TLC file for inlining RPP serial communication interface send block.
22 %%
23 %% References:
24 %%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
25 %%     Start()          : refs/rtw_tlc.pdf p. 279
26 %%     Outputs()        : refs/rtw_tlc.pdf p. 281
27
28
29 %implements sfunction_scis "C"
30
31 %include "common.tlc"
32
33
34 %% Function: BlockTypeSetup ====================================================
35 %function BlockTypeSetup(block, system) void
36
37     %% Ensure required header files are included
38     %<RppCommonBlockTypeSetup(block, system)>
39
40 %endfunction
41
42
43 %% Function: Start =============================================================
44 %function Start(block, system) Output
45
46     %if !SLibCodeGenForSim()
47         %%No initialization needed for this block
48     %endif
49
50 %endfunction
51
52
53 %% Function: Outputs ===========================================================
54 %function Outputs(block, system) Output
55
56     %if !SLibCodeGenForSim()
57
58         %% Get pin number
59         %assign use_printf = LibBlockParameterValue(p1, 0)
60
61         %% Get IO signals
62         %assign data = LibBlockInputSignal(0, "", "", 0)
63         %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
64
65         %if use_printf
66             %assign printf_format = SFcnParamSettings.PrintfFormat
67             rpp_sci_printf((const char*)"%<printf_format>", %<data>);
68             %<err_flag> = FALSE;
69         %else
70             if(rpp_sci_write_nb(1, &%<data>) != SUCCESS) {
71                 %<err_flag> = TRUE;
72             } else {
73                 %<err_flag> = FALSE;
74             }
75         %endif
76
77     %endif
78
79 %endfunction
80
81 %% [EOF]