From cbbcc4abd67ddb89c467ef2cdbc87179e1371e2c Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Mon, 22 Mar 2010 01:50:57 +0100 Subject: [PATCH] pstricks: kleines beispiel vom herrn perner und makefile spass von mir schaut ganz nett aus... --- .gitignore | 1 + spec/Makefile | 17 +++++++++++---- spec/ProtocolHeader.sty | 3 ++- spec/sm/rs232-rs.tex | 48 +++++++++++++++++++++++++++++++++++++++++ spec/spec.tex | 7 ++++++ 5 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 spec/sm/rs232-rs.tex diff --git a/.gitignore b/.gitignore index 62981ea..973ad17 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ spec/*.toc spec/*.backup spec/*.out spec/*.pdf +spec/sm/*.pdf *.swp *~ diff --git a/spec/Makefile b/spec/Makefile index e79e671..6b9d295 100644 --- a/spec/Makefile +++ b/spec/Makefile @@ -1,13 +1,22 @@ +SHELL := bash PROJECT = spec all: protocol -protocol: $(subst .dia,.png,$(shell ls *.dia)) - pdflatex $(PROJECT) - pdflatex $(PROJECT) +protocol: $(PROJECT).tex $(subst .dia,.png,$(shell ls *.dia)) $(subst .tex,.pdf,$(shell ls sm/*.tex)) + pdflatex $(PROJECT).tex + pdflatex $(PROJECT).tex %.png: %.dia dia $< -e $@ -t png +%.pdf: %.tex + latex -output-directory=sm $< + dvips $(subst .tex,.dvi,$<) -o $(subst .tex,.ps,$<) + ps2pdf $(subst .tex,.ps,$<) $@ + pdfcrop $@ $(subst .pdf,.pdf2,$@) + mv $(subst .pdf,.pdf2,$@) $@ + rm sm/{*.dvi,*.ps,*.aux,*.log} + clean: - -rm -f *.aux *.log *.dvi *.toc *.out *.pdf *.png + -rm -f {,sm/}{*.aux,*.log,*.dvi,*.toc,*.out,*.pdf,*.png} diff --git a/spec/ProtocolHeader.sty b/spec/ProtocolHeader.sty index 748fe2a..f6cf7a2 100644 --- a/spec/ProtocolHeader.sty +++ b/spec/ProtocolHeader.sty @@ -12,6 +12,7 @@ \usepackage{amssymb} \usepackage{amsmath} \usepackage{longtable,colortbl} +\usepackage{pdfpages} \hypersetup{% colorlinks=true, @@ -138,4 +139,4 @@ \addtocounter{reqcounter}{1} \textbf{Req \arabic{reqcounter}} #1\\ \label{Req \arabic{reqcounter}} %this could be done better with a second argument, but that's tiresome to write in the text -} \ No newline at end of file +} diff --git a/spec/sm/rs232-rs.tex b/spec/sm/rs232-rs.tex new file mode 100644 index 0000000..6688f37 --- /dev/null +++ b/spec/sm/rs232-rs.tex @@ -0,0 +1,48 @@ +% http://ftp.univie.ac.at/packages/tex/graphics/pstricks/base/doc/pstricks-doc.pdf +% http://www.tug.org/PSTricks/main.cgi?file=doc/docs + +% 18:59:41 http://pastebin.com/tcp16Gp minimales "sample" +% 01:53:07 die nodes werden deine lieblinge sein ;) +% 01:53:19 ncline, ncarc und nccircle +% 01:53:32 angle und arcangle als parameter sind ganz nützlich ;) +% 01:54:08 rest siehst eh in dem "sample" von mir ;) +% 01:55:08 aja, was du auf jedenfall vermeiden solltest sind leere reihen in der psmatrix +% 01:55:14 da kommt dann immer blödsinn raus +% 01:55:39 wennst mehr platz zwischen den nodes brauchst solltest colsep und rowsep verändern +% 01:56:02 eine \mbox{ } als knoten hab ich noch nicht probiert, könnte vlt aber auch gehen +% 01:56:40 \ncarc[arcangle=20]{rs}{i}^{bla} setzt bla als label über die linie +% 01:56:45 \ncarc[arcangle=20]{rs}{i}_{bla} unter die linie +% 01:57:07 die ncput in dem sample in die linie (ohne * wird die linie auch nicht ausgeblendet) +% 01:57:55 ^ und _ sind eigentlich nur abkürzungen für naput oder so in die richtung +% 01:58:13 [npos=.4] ist auch ganz nett für die puts, damit veränderst die pos. der label auf der +% linie (zwischen start und ende) +% 01:58:33 und wennst böse kanten hast die du stark biegen musst +% 01:59:03 da ist es besser ncurv zu erhöhen als den arcangle (zumindest ab einem bestimmten arcangle +% auch die einzige möglichkeit mehr "kurve" zu bekommen) +\documentclass{minimal} +\pagestyle{empty} + +\usepackage{pstricks} +\usepackage{pst-node} + +\begin{document} + +\begin{psmatrix}[mnode=circle, colsep=2cm, rowsep=2cm] +[mnode=R,name=res]{RESET} & [name=i]{idle} & [name=rsp]{\shortstack{read \\ Stop-Bit}} \\ +& [name=rs]{\shortstack{read \\ Start-Bit}} & [name=rb]{read Bit}\\ +\end{psmatrix} + +\psset{arrows=->, shortput=nab} + +\ncline[linestyle=dotted]{res}{i} + +\ncarc[arcangle=25]{i}{rs}\ncput*[npos=.38]{\shortstack{falling\\edge rxd}} +\ncarc[arcangle=25]{rs}{i}\ncput*[npos=.36]{rxd=1} + +\ncline{rs}{rb}\ncput*{rxd=0} + +\ncline{rb}{rsp}\ncput*{bitcount=8} +\nccircle[angle=180]{rb}{.7cm}\ncput*{bitcount$<$8} + +\ncline{rsp}{i} +\end{document} diff --git a/spec/spec.tex b/spec/spec.tex index 8fa89e9..64a6a64 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -195,6 +195,13 @@ wie schauen interne strukturen aus? (speicher, logische bloecke, parallele proze \subsection{PS/2} \subsection{RS232} +%test, TODO +\begin{figure}[!ht] +\includegraphics[width=0.9\textwidth]{sm/rs232-rs.pdf} +\centering +\caption{Statemachine zum Empfangen auf der RS232 Schnittstelle (8N1)} +\label{fig:rs232-rs} +\end{figure} \subsection{History} -- 2.25.1