1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 // Note that this diagram is not the best example of efficient
22 // graphviz/doxygen use. It was recreating the look of an existing
23 // graphic and thus is focused too much on appearance over
28 label = "Abstracted Architecture";
31 label = "Resource Introspection",
34 fillcolor="#efefef:#bdbdbd",
40 label = "Connectivity Framework";
44 label = "Connectivity API",
48 fillcolor="#e6efff:#a5c5ff",
54 label = "Control layer";
57 fillcolor="#e6efff:#a5c5ff";
63 fillcolor="#f7ffe6:#deffad",
68 a0 [label="Network\nConfiguration"];
69 a1 [label="CoAP\nProtocol"];
70 a2 [label="Interface\nController"];
72 {rank = same a0 a1 a2}
76 label = "Transport Adapter";
79 fillcolor="#e6efff:#a5c5ff";
84 fillcolor="#f7ffe6:#deffad",
89 bb [label = "Common Adapter Interface", width=5];
91 b0 [label="IP\nAdapter"];
92 b1 [label="LE GATT\nAdapter"];
93 b2 [label="BT SPP\nAdapter"];
94 b3 [label="XXX\nAdapter"];
96 {rank = same b0 b1 b2 b3}
100 label = "Platform Adapter";
103 fillcolor="#e6efff:#a5c5ff";
108 fillcolor="#f7e6f7:#c5b5ef";
113 c0 [label="Ubuntu\nAdapter\n(ETH/WIFI/BT)"];
114 c1 [label="Android\nAdapter\n(WIFI/BLE/BT)"];
115 c2 [label="Tizen\nAdapter\n(WIFI/BLE/BT)"];
116 c3 [label="Arduino\nAdapter\n(ETH/WIFI/BLE)"];
117 c4 [label="Platform\n(6loWPAN)\n ", color="#f7e6f7"];
119 {rank = same c0 c1 c2 c3 c4}
126 fillcolor="#efefef:#bdbdbd",
132 d1 [label="Android"];
134 d3 [label="Arduino"];
137 {rank = same d0 d1 d2 d3 d4}
140 subgraph cluster_lgd {
152 e0 [label=" ", color="#4a7bbd", fillcolor="#e6efff:#a5c5ff"];
153 e1 [label=" ", color="#9cbd52", fillcolor="#f7ffe6:#deffad"];
154 e2 [label=" ", color="#7b5aa5", fillcolor="#f7e6f7:#c5b5ef"];
155 e3 [label=" ", fillcolor="#efefef:#bdbdbd"];
156 e_dummy[shape=point, style=invis];
161 e0 -> e1 [label="CA Component "];
162 e1 -> e2 [label="CA Module-platform independent "];
163 e2 -> e3 [label="CA Module-platform specific "];
164 e3 -> e_dummy [label="External"];
166 {rank = same e0 e1 e2 e3 e_dummy}
169 // In order to control placement of the sets of items in a
170 // top-to-bottom placement, invisible edges/arrows are used.
171 // This gives a logcial control for the physical appearance we want.
175 // order groups to get top-to-bottom
190 // order nodes left-to-right
193 c0 -> c1 -> c2 -> c3 -> c4
194 d0 -> d1 -> d2 -> d3 -> d4