/*
* Configure parameters: 1
* - Use printf.
+ * - Printf format [not runtime].
*/
- if(!rppSetNumParams(S, 1)) {
+ if(!rppSetNumParams(S, 2)) {
return;
}
if(!rppValidParamBoolean(S, 0)) {
return;
}
+
+ /* Note that parameter 2 is not checked */
}
#endif
#endif
+#ifdef MATLAB_MEX_FILE
+#define MDL_RTW
+static void mdlRTW(SimStruct* S)
+{
+ /* Register parameter 2 as a parameter setting */
+ static char_T str[128];
+ mxGetString(ssGetSFcnParam(S, 1), (char*)&str, sizeof(str)); // Get string
+ if(!ssWriteRTWParamSettings(S, 1,
+ SSWRITE_VALUE_QSTR, "PrintfFormat", (const char_T*)&str)) {
+ // An error ocurred
+ return;
+ }
+}
+#endif
+
+
+
#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
#define UNUSED_MDLOUTPUTS
#define UNUSED_MDLTERMINATE
%assign err_flag = LibBlockOutputSignal(0, "", "", 0)
%if use_printf
- rpp_sci_print("%d\r\n", %<data>);
+ %assign printf_format = SFcnParamSettings.PrintfFormat
+ rpp_sci_printf((const char*)"%<printf_format>", %<data>);
+ %<err_flag> = FALSE;
%else
- rpp_sci_putc(%<data>);
+ if(rpp_sci_write_nb(1, &%<data>) != SUCCESS) {
+ %<err_flag> = TRUE;
+ } else {
+ %<err_flag> = FALSE;
+ }
%endif
%endif
/* Lock semaphore */
if(xSemaphoreTake(step_signal, portMAX_DELAY)) {
WORKING = TRUE;
- #ifdef DEBUG
- /* rpp_sci_printf("Model step %d\r\n", steps_working + 1); */
- #endif
%<LibCallModelStep(0)>\
steps_working++;
WORKING = FALSE;
rpp_init();
#ifdef DEBUG
- rpp_sci_printf((const char*)
- "Running Simulink model '%s'.\r\n", "%<LibGetMdlPubHdrBaseName()>"
+ %assign model_info = SPRINTF("'%s' - %s (TLC %s)\\r\\n", LibGetMdlPubHdrBaseName(), TLC_TIME, TLC_VERSION)
+ rpp_sci_printf((const char*)
+ "%<model_info>"
);
#endif