-
Notifications
You must be signed in to change notification settings - Fork 14
/
figure02.tex
47 lines (37 loc) · 2.21 KB
/
figure02.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
\documentclass[sigconf]{acmart}
\input{common}
\begin{document}
\begin{minipage}{85mm}
\begin{tikzpicture}
\tikzset{
block/.style={rectangle,minimum width=3cm,minimum height=.5cm},
ctrlblock/.style={block,draw=black,fill=gray!20!white},
rtblock/.style={block,draw=black},
dblsize/.style={minimum width=6.5cm},
}
\node [ctrlblock] (repl) {\strut{}REPL};
\node [ctrlblock] (script) [right=.5cm of repl] {\strut{}script.py};
\path (repl) -- node [ctrlblock, dblsize] (controlinterface) [below=.65cm] {Control Interface} (script);
\draw [<->] (repl) -- (repl|-controlinterface.north);
\draw [->] (script) -- (script|-controlinterface.north);
\node [ctrlblock] (loranode0) [below=1.5cm of repl] {\strut{}ChirpOTLE Node};
\node [ctrlblock] (loranode1) [below=1.5cm of script] {\strut{}ChirpOTLE Node};
\draw [<->] (loranode0|-controlinterface.south) -- node [right,align=center,minimum width=3.5cm] {RPC/TCP} (loranode0);
\draw [<->] (loranode1|-controlinterface.south) -- (loranode1);
\node[rtblock] (companion0) [below=.5cm of loranode0] {Companion App};
\node[rtblock] (companion1) [below=.5cm of loranode1] {Companion App};
\draw [<->] (loranode0) -- node [right,align=center,minimum width=3.5cm] {serial interface} (companion0);
\draw [<->] (loranode1) --(companion1);
\node[rtblock] (lora0) [below=.5cm of companion0] {LoRa Transceiver};
\node[rtblock] (lora1) [below=.5cm of companion1] {LoRa Transceiver};
\draw[<->] (companion0) -- node [right,align=center,minimum width=3.5cm] {SPI} (lora0);
\draw[<->] (companion1) -- (lora1);
% Right braces: Domains
\draw[decoration={brace,raise=2pt},decorate] (script.north east) -- node[below,xshift=3pt,rotate=90,pos=.37] {control domain} (loranode1.south east);
\draw[decoration={brace,raise=2pt},decorate] (companion1.north east) -- node[below,xshift=3pt,rotate=90,pos=0.25] {real-time domain} (lora1.south east);
% Left braces: Location
\draw[decoration={brace,raise=2pt,mirror},decorate] (repl.north west) -- node[above,xshift=-3pt,rotate=90,pos=.7] {single instance} (controlinterface.south west);
\draw[decoration={brace,raise=2pt,mirror},decorate] (loranode0.north west) -- node[above,xshift=-3pt,rotate=90] {per field node} (lora0.south west);
\end{tikzpicture}
\end{minipage}
\end{document}