1<?xml version="1.0" encoding="utf-8"?>
2<component_viewer schemaVersion="1.2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
3<component name="CMSIS-Driver VIO" version="1.0.0"/>
4
5  <typedefs>
6    <typedef name="vioPrintMem_t" size="64">
7      <member name="mem" type="uint8_t" size="64" offset="0"/>
8    </typedef>
9
10    <typedef name="vioValueXYZ_t" size="12">
11      <member name="X" type="int32_t" offset="0"/>
12      <member name="Y" type="int32_t" offset="4"/>
13      <member name="Z" type="int32_t" offset="8"/>
14    </typedef>
15
16    <typedef name="vioAddrIPv4_t" size="4">
17      <member name="addr" type="uint8_t" size="4"  offset="0"/>
18    </typedef>
19
20    <typedef name="vioAddrIPv6_t" size="16">
21      <member name="addr" type="uint8_t" size="16" offset="0"/>
22    </typedef>
23
24  </typedefs>
25
26  <objects>
27    <object name="VIO Object">
28      <var name="i" type="int32_t" value="0"/>
29
30      <read     name="SignalIn"    type="uint32_t"      symbol="vioSignalIn"/>
31      <read     name="SignalOut"   type="uint32_t"      symbol="vioSignalOut"/>
32      <readlist name="PrintMem"    type="vioPrintMem_t" symbol="vioPrintMem" count="4"/>
33      <read     name="Value"       type="int32_t"       symbol="vioValue"    size="__size_of(&quot;vioValue&quot;)"/>
34      <readlist name="ValueXYZ"    type="vioValueXYZ_t" symbol="vioValueXYZ" count="__size_of(&quot;vioValueXYZ&quot;)"/>
35      <readlist name="IPv4Address" type="vioAddrIPv4_t" symbol="vioAddrIPv4" count="__size_of(&quot;vioAddrIPv4&quot;)"/>
36      <readlist name="IPv6Address" type="vioAddrIPv6_t" symbol="vioAddrIPv6" count="__size_of(&quot;vioAddrIPv6&quot;)"/>
37
38      <out name="CMSIS-Driver VIO">
39        <item property="Signal Bits (Input)"  value="%x[SignalIn]"/>
40        <item property="Signal Bits (Output)" value="%x[SignalOut]"/>
41
42        <item property="Print Memory Array">
43           <list name="i" start="0" limit="PrintMem._count">
44             <item property="Print Memory[%d[i]]" value="%t[PrintMem[i].mem]"/>
45           </list>
46        </item>
47
48        <item property="Value Array">
49           <list name="i" start="0" limit="Value._count">
50             <item property="Value[%d[i]]"  value="%d[Value[i]]"/>
51           </list>
52        </item>
53
54        <item property="ValueXYZ Array">
55           <list name="i" start="0" limit="ValueXYZ._count">
56             <item property="ValueXYZ[%d[i]]" value="X: %d[ValueXYZ[i].X] Y: %d[ValueXYZ[i].Y] Z: %d[ValueXYZ[i].Z]"/>
57           </list>
58        </item>
59
60        <item property="IP4 Address Array">
61           <list name="i" start="0" limit="IPv4Address._count">
62             <item property="IP4 Address[%d[i]]" value="%I[IPv4Address[i].addr]"/>
63           </list>
64        </item>
65
66        <item property="IP6 Address Array">
67           <list name="i" start="0" limit="IPv6Address._count">
68             <item property="IP6 Address[%d[i]]" value="%J[IPv6Address[i].addr]"/>
69           </list>
70        </item>
71
72      </out>
73
74    </object>
75
76  </objects>
77
78</component_viewer>
79