iLLD_TC29x
1.0
Ifx_Console.c
Go to the documentation of this file.
1
/**
2
* \file Ifx_Console.c
3
* \brief Main Ifx_Console module implementation file
4
*
5
* \version iLLD_1_0_0_11_0
6
* \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
7
*
8
*
9
* IMPORTANT NOTICE
10
*
11
*
12
* Infineon Technologies AG (Infineon) is supplying this file for use
13
* exclusively with Infineon's microcontroller products. This file can be freely
14
* distributed within development tools that are supporting such microcontroller
15
* products.
16
*
17
* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
18
* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
19
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
20
* INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
21
* OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
22
*
23
*/
24
25
#include <string.h>
26
#include <stdio.h>
27
#include <stdarg.h>
28
29
#include "
Ifx_Console.h
"
30
#include "
_Utilities/Ifx_Assert.h
"
31
#include "
Cpu/Std/IfxCpu_Intrinsics.h
"
32
33
Ifx_Console
Ifx_g_console
;
34
35
/**
36
* \brief Initialize the \ref Ifx_g_console object.
37
* \param standardIo Pointer to the IfxStdIf_DPipe object used by the \ref Ifx_g_console.
38
*/
39
void
Ifx_Console_init
(
IfxStdIf_DPipe
*standardIo)
40
{
41
Ifx_g_console.
standardIo
= standardIo;
42
Ifx_g_console.
align
= 0;
43
}
44
45
46
/**
47
* \brief Print formatted string into \ref Ifx_g_console.
48
* \param format printf-compatible formatted string.
49
* \retval TRUE if the string is printed successfully
50
* \retval FALSE if the function failed.
51
*/
52
boolean
Ifx_Console_print
(
pchar
format, ...)
53
{
54
if
(!Ifx_g_console.
standardIo
->
txDisabled
)
55
{
56
char
message[
STDIF_DPIPE_MAX_PRINT_SIZE
+ 1];
57
Ifx_SizeT
count;
58
va_list args;
59
va_start(args, format);
60
vsprintf((
char
*)message, format, args);
61
va_end(args);
62
count = (
Ifx_SizeT
)strlen(message);
63
IFX_ASSERT
(
IFX_VERBOSE_LEVEL_ERROR
, count <
STDIF_DPIPE_MAX_PRINT_SIZE
);
64
65
return
IfxStdIf_DPipe_write
(Ifx_g_console.
standardIo
, (
void
*)message, &count,
TIME_INFINITE
);
66
}
67
else
68
{
69
return
TRUE
;
70
}
71
}
72
73
74
/**
75
* \brief Print formatted string into \ref Ifx_g_console.
76
* Indented with a number of spaces.
77
* \param format printf-compatible formatted string.
78
* \retval TRUE if the string is printed successfully
79
* \retval FALSE if the function failed.
80
*/
81
boolean
Ifx_Console_printAlign
(
pchar
format, ...)
82
{
83
if
(!Ifx_g_console.
standardIo
->
txDisabled
)
84
{
85
char
message[
STDIF_DPIPE_MAX_PRINT_SIZE
+ 1];
86
Ifx_SizeT
align, count;
87
char
spaces[17] =
" "
;
88
va_list args;
89
va_start(args, format);
90
vsprintf((
char
*)message, format, args);
91
va_end(args);
92
count = (
Ifx_SizeT
)strlen(message);
93
IFX_ASSERT
(
IFX_VERBOSE_LEVEL_ERROR
, count <
STDIF_DPIPE_MAX_PRINT_SIZE
);
94
align = Ifx_g_console.
align
;
95
96
while
(align > 0)
97
{
98
Ifx_SizeT
scount;
99
scount =
__min
(align, 10);
100
IfxStdIf_DPipe_write
(Ifx_g_console.
standardIo
, (
void
*)spaces, &scount,
TIME_INFINITE
);
101
align = align - scount;
102
}
103
104
return
IfxStdIf_DPipe_write
(Ifx_g_console.
standardIo
, (
void
*)message, &count,
TIME_INFINITE
);
105
}
106
else
107
{
108
return
TRUE
;
109
}
110
}
home
mclld
Libraries
release
iLLD_1_0_0_11_0
src
ifx
SrvSw
SysSe
Comm
Ifx_Console.c
Generated by
1.8.4