From 6fe1c75e6dfe5485572e9047019a04d1e13114f5 Mon Sep 17 00:00:00 2001 From: Roland Hieber Date: Fri, 17 Jan 2014 08:44:20 +0100 Subject: [PATCH] redraw example XMPP stream with TikZ/PGF --- fig-example-xmpp-stream.tex | 92 ++++++++++++++++++++++++++----------- sec-outlook.tex | 7 ++- 2 files changed, 71 insertions(+), 28 deletions(-) diff --git a/fig-example-xmpp-stream.tex b/fig-example-xmpp-stream.tex index 15de658..13b13b1 100644 --- a/fig-example-xmpp-stream.tex +++ b/fig-example-xmpp-stream.tex @@ -1,18 +1,51 @@ -\makeatletter \def\verbatim@font{\sffamily\scriptsize} \makeatother +\tikzstyle{pkt}=[ + fill, + below=-.5\baselineskip, + font=\scriptsize, + draw, + dash pattern=on 2pt off 2pt, +] +\tikzstyle{clipkt}=[pkt, + below left=-.5\baselineskip and 0cm, + pos=0.05, +] +\tikzstyle{devpkt}=[pkt, + below right=-.5\baselineskip and 0cm, + pos=0.05, +] +\begin{tikzpicture}[ + every node/.style={fill=white, font=\small}, + every picture/.style=ultra thin, + >=latex, + semithick +] -\begin{figure}[tp] - \small\centering -\begin{tabular}{p{5cm}p{5cm}} -Client to Device $\rightarrow$ & $\leftarrow$ Device to Client\\ +\def\bot{-16} +\def\top{0} +\def\dev{-5} +\def\cli{5} +\newlength{\ypos} +\newlength{\yypos} +\setlength{\ypos}{0cm} +\setlength{\yypos}{.5cm} +\def\advanceby#1{% + \addtolength{\ypos}{#1}% + \addtolength{\yypos}{#1}% + \global\ypos=\ypos% // see https://tex.stackexchange.com/questions/119730 + \global\yypos=\yypos% +} -\begin{verbatim} - -\end{verbatim} & \\ +%% Header +\draw (\cli,\top) node[draw]{Client} -- (\cli,\bot); +\draw (\dev,\top) node[draw]{Device} -- (\dev,\bot); - & \begin{verbatim} - -\end{verbatim} \\ +\advanceby{.75cm} +\draw[->] (\cli,-\ypos) -- (\dev,-\yypos) node[clipkt]{\verb++}; +\advanceby{1cm} +\draw[->] (\dev,-\ypos) -- (\cli,-\yypos) node[devpkt]{\verb++}; +\advanceby{1cm} +\draw[->] (\cli,-\ypos) -- (\dev,-\yypos) node[clipkt,text width=5cm]{ \begin{verbatim} -\end{verbatim} & \\ +\end{verbatim} +\advanceby{9\baselineskip} +}; - & \begin{verbatim}] (\dev,-\ypos) -- (\cli,-\yypos) node[devpkt,text width=6cm]{ +\begin{verbatim} + -\end{verbatim} \\ +\end{verbatim} +\advanceby{4\baselineskip} +}; - & \begin{verbatim} +\advanceby{1cm} +\draw[->] (\dev,-\ypos) -- (\cli,-\yypos) node[devpkt,text width=7cm]{ +\begin{verbatim} @@ -47,17 +89,13 @@ Client to Device $\rightarrow$ & $\leftarrow$ Device to Client\\ -\end{verbatim} \\ - -\begin{verbatim} - -\end{verbatim} & \\ +\end{verbatim} +\advanceby{12\baselineskip} +}; - & \begin{verbatim} - -\end{verbatim} \\ -\end{tabular} - \caption{Example XMPP stream with sensor data (XEP-0323)} - \label{fig:examplexmpp} -\end{figure} +\advanceby{1cm} +\draw[->] (\cli,-\ypos) -- (\dev,-\yypos) node[clipkt]{\verb++}; +\advanceby{1cm} +\draw[->] (\dev,-\ypos) -- (\cli,-\yypos) node[devpkt]{\verb++}; +\end{tikzpicture} % vim: set ft=tex et ts=2 sw=2 : diff --git a/sec-outlook.tex b/sec-outlook.tex index 8e3eb6c..798634a 100644 --- a/sec-outlook.tex +++ b/sec-outlook.tex @@ -38,7 +38,12 @@ for power and energy from the node named \emph{Device04}. The device first acknowledges this request, and, after retrieving the values, sends them back to the client. Afterwards, both sides close their streams. -\input{fig-example-xmpp-stream.tex} +\begin{figure}[h!] + \centering + \input{fig-example-xmpp-stream.tex} + \caption{Example XMPP stream with sensor data (XEP-0323)} + \label{fig:examplexmpp} +\end{figure} \paragraph{Control (XEP-0325)~\cite{xep0325}} In this document, a way of controlling sensor nodes is specified, which allows a client to get and set -- 2.20.1