Event Recorder  Version 1.0.0
MDK Debugger Views for Status and Event Information
 All Files Functions Macros Groups Pages
/component_viewer/objects/object/out/.../item

Outputs a single line. Child elements create a display block [+] in the Component Viewer. The attributes property and value can consist of ASCII characters and format specifiers.

Format Specifieres

A format specifier starts with a percent sign followed by a format selector followed by a bracket enclosed expression.

<item property="State" cond="TCB.State == Thread_CB:State:WaitingMailBox" value="%S[TCB.p_rlnk]" />

<value> will take a symbolic name, for example, Waiting, Running, ...

The table lists the format specifiers.

Format Specifier Description
%% Literally one %-sign
%d Show value as a decimal number
%t Literal character
%x Show value as a hexadecimal number. Depending on the resulting expression type, one of the following format is used: 0x%04X or 0x%08X
%E Resolve the expression value to a symbolic enumerator value
%I IPV4 address (example: 192.168.150.99)
%J IPV6 address (example: 2a00:ee0:d::13)
%M MAC address (example: 1E-30-6C-A2-45-5F)
%S Resolve the expression result to a symbolic name, if it fails then use 0x%08X format
%T Use result type from expression (0x%02X / 0x%04X / 0x%08X / 0xI64X / %.3f / g)
%U Show a Keil-USB-descriptor

Example:

<object>
<out name="System and Threads"> <!-- Window title -->
<item property="System"> <!-- Creates a group item for the following items -->
<item property="SystemTimer" cond="__Symbol_exists (&quot;os_active_TCB&quot;)"> <!-- small group -->
<item property="Tick Timer" value="%T[((float) clockrate / 1000)] mSec" />
</item>
// The "SystemTimer" property is only created when the condition is true,
// that is when the user symbol "os_active_TCB" exists. Otherwise
// the property is not created and any nested statements are skipped.
<item property="Wait" cond="TCB.State == Thread_CB:State:WaitingMailBox" value="%S[TCB.p_rlnk]" />
// The property name will be 'Wait', if the condition yields true, then
// the property value will be the symbolic representation of the 'p_rlnk' member
// or a 0x%08X value if no matching symbol can be found.
<item property="State" cond="TCB.State == Thread_CB:State:WaitingMailBox" value="%E[TCB.State]" />
// The property name will be 'State', if the condition yields true, then
// the TCB.state value will be resolved to a enumerator name defined in the
// enumerator section of a <member> of a <typedef>.
// In general, enumerators are specified by using:
// <typedef-name> : <member-name> : <enumerator-name>
// within expressions.
<item property="%S [TCB.Entry] : %d[TCB.Task_ID]" value="" >
// %S [expression] will first evaluate the expression, then find a symbol representing
// the expression result. If a symbol matches, then the output will be
// something like 'Thread_B : 3' with the value property left empty.
<item property="Tick Timer" value="%T[((float) clockrate / 1000)] mSec" />
// The property name will be 'Tick Timer' and the value will be formatted based
// on the type of the expression which is type 'float' in this example.
// The property value output will be something similar to '5.00 mSec'
<read name="USB_Desc" type="uint8_t" symbol="usb_desc" size="128" const="1" />
...
<item property="USB_Desc" value="%U[USB_Desc]" />
// The property value will show a Keil-USB descriptor using the format -
// { length, type, "descriptor_name" }, e.g. { 10, 3, "Keil" }.
</item>
</out>
</object>
Parent Element Element Chain
out /component_viewer/objects/object/out
list /component_viewer/objects/object/out/.../list
item /component_viewer/objects/object/out/.../item (self reference)
Attributes Description Type Use
property Name of the item. Is shown in the Property column of the Component Viewer window. xs:string optional
value Property value. Shown in the Value column of the Component Viewer window. xs:string optional
info Descriptive text, comment. Shown when hovered over the item in the Component Viewer window. xs:string optional
cond Conditional execution: element is executed when expression result is not 0. Default value is 1. xs:string optional
skip ...... xs:string optional
Child Element Description Type Occurrence
item Output a single line. An <item> in an <item> creates a tree structure in Component Viewer. ItemType 0..*
output Call an out element (function). OutputType 0..*
list Read complex variables, arrays, or linked lists. Walk through readlist arrays. ListType 0..*
Todo:
hover is not working for me in Component Viewer.