Compare commits

..

11 Commits

Author SHA1 Message Date
Thomas Klaehn
ddefac3f65 wip 2016-05-17 11:34:25 +02:00
Thomas Klaehn
eab74f64e5 wip 2016-05-02 06:12:57 +02:00
Thomas Klaehn
e9af178104 wip 2016-04-29 13:17:25 +02:00
Thomas Klaehn
0dadfe3253 wip 2016-04-28 17:55:10 +02:00
Thomas Klaehn
5bb283a6ed wip 2016-04-28 17:24:34 +02:00
Thomas Klaehn
417a6966c3 wip 2016-04-28 16:05:56 +02:00
Thomas Klaehn
64bda9fe50 wip 2016-04-28 15:03:04 +02:00
Thomas Klaehn
44bb058368 Make deps changed 2016-04-28 14:56:14 +02:00
Thomas Klaehn
7e5040e734 progress 2016-04-19 15:38:42 +02:00
Thomas Klaehn
ebd59ef6c8 work ar release image 2016-04-18 08:26:40 +02:00
Thomas Klaehn
22a389e98c image of litlab dev workflow 2016-04-15 14:11:07 +02:00
13 changed files with 508 additions and 1034 deletions

View File

@ -3,15 +3,12 @@ SRC := config/$(basename $(MAIN)).tex
DEP := \
config/headfoot.tex \
config/sourcelst.tex \
content.tex \
config/titlepage.tex \
Makefile
all: $(MAIN)
DEP += $(wildcard ./*.tex)
one_page: $(DEP)
@latex config/framework_one_page.tex
latex config/framework_one_page.tex
dvipdf framework_one_page.dvi framework_one_page.pdf
all: $(MAIN)
clean:
rm -f \
@ -20,8 +17,7 @@ clean:
$(basename $(MAIN)).log \
$(basename $(MAIN)).out \
$(basename $(MAIN)).toc \
$(MAIN) \
framework_one_page.*
$(MAIN)
$(MAIN): $(DEP)
@latex $(SRC)

View File

@ -1,6 +0,0 @@
# Tex-framework
...
## Dependencies
* texlive
* texlive-latex-extras

View File

@ -40,10 +40,11 @@ citecolor = black]{hyperref}%
\pagestyle{scrheadings} % switch on head and foot line
\newpage
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\input{config/headfoot.tex}
\newpage
\lstsetdefault
\input{content.tex}
\lstsetdefault
\end{document}

View File

@ -1,40 +0,0 @@
\documentclass[a4paper,12pt,oneside]{article}%
\usepackage[utf8]{inputenc}%
\usepackage[T1]{fontenc}%
\usepackage{caption}%
\usepackage{placeins}%
\usepackage{graphicx}%
\usepackage[colorlinks,
pdfpagelabels,
pdfstartview = FitH,
bookmarksopen = true,
bookmarksnumbered = true,
linkcolor = black,
plainpages = false,
hypertexnames = false,
citecolor = black]{hyperref}%
\usepackage{amsmath}%
\usepackage{amssymb}%
\usepackage{amstext}%
\usepackage{amsfonts}%
\usepackage{mathrsfs}%
\usepackage{hyperref}%
\usepackage{xcolor}%
\usepackage{scrpage2}%
\newcommand*\euler{\mathrm{e}}
%\input{title.tex}
\input{config/font.tex}
\input{config/sourcelst.tex}
\begin{document}
\clearscrheadfoot
\clearscrplain
\clearscrheadings
\pagestyle{scrheadings} % switch on head and foot line
\input{config/headfoot.tex}
\lstsetdefault
\input{content.tex}
\end{document}

View File

@ -1,5 +1,4 @@
\ihead{\includegraphics[scale=0.30]{config/u-blox_logo_46pix.eps}}
%\ihead{\includegraphics[scale=0.30]{config/Laird_Logo_TM_Mark_RGB_200.eps}}
\ihead{\includegraphics[scale=0.30]{config/Laird_Logo_TM_Mark_RGB_200.eps}}
%\ihead{\includegraphics[scale=0.16]{config/novero_logo_web_500px.eps}}
\ohead{\today}
\setheadsepline{1pt}

View File

@ -1,26 +1,9 @@
\usepackage{listings}%
\usepackage{courier}%
\newcommand{\lstsetdefault}
{\lstset
{
aboveskip=\baselineskip,
belowskip=\baselineskip,
language=bash,
tabsize=4,
frame=single,
%basicstyle=\ttfamily\small,
basicstyle=\ttfamily\scriptsize,
commentstyle=\color{black},
keywordstyle=\color{black}
}
}
\newcommand{\lstsetc}
{\lstset
{
aboveskip=\baselineskip,
belowskip=\baselineskip,
language=[ANSI]C,
numbers=left,
tabsize=4,
@ -34,8 +17,6 @@ keywordstyle=\color{blue}\textbf
\newcommand{\lstsetmake}
{\lstset
{
aboveskip=\baselineskip,
belowskip=\baselineskip,
language=make,
numbers=left,
tabsize=4,
@ -49,8 +30,6 @@ keywordstyle=\color{blue}\textbf
\newcommand{\lstsetbash}
{\lstset
{
aboveskip=\baselineskip,
belowskip=\baselineskip,
language=bash,
tabsize=4,
frame=single,

View File

@ -16,6 +16,6 @@ Version: \docversion\\
\begin{flushright}
Date: \today\\
\hfill Author: \docauthor\\
\hfill Dept: Software Host Short Range, u-blox GmbH%
\hfill Dept: Development, novero dabendorf GmbH%
\end{flushright}

View File

@ -1,716 +0,0 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: (ImageMagick)
%%Title: (/srv/www/vhosts/releases/3/save/queued/a/d/b/adb76f511389daa5ad8ee18193c02514/intermediate1/o_fb7c2a074343e5cf.eps)
%%CreationDate: (2017-01-05T15:32:01+01:00)
%%BoundingBox: -0 -0 122 56
%%HiResBoundingBox: 0 0 122 56
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Pages: 1
%%EndComments
%%BeginDefaults
%%EndDefaults
%%BeginProlog
%
% Display a color image. The image is displayed in color on
% Postscript viewers or printers that support color, otherwise
% it is displayed as grayscale.
%
/DirectClassPacket
{
%
% Get a DirectClass packet.
%
% Parameters:
% red.
% green.
% blue.
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/DirectClassImage
{
%
% Display a DirectClass image.
%
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ DirectClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayDirectClassPacket } image
} ifelse
} bind def
/GrayDirectClassPacket
{
%
% Get a DirectClass packet; convert to grayscale.
%
% Parameters:
% red
% green
% blue
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/GrayPseudoClassPacket
{
%
% Get a PseudoClass packet; convert to grayscale.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassPacket
{
%
% Get a PseudoClass packet.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassImage
{
%
% Display a PseudoClass image.
%
% Parameters:
% class: 0-PseudoClass or 1-Grayscale.
%
currentfile buffer readline pop
token pop /class exch def pop
class 0 gt
{
currentfile buffer readline pop
token pop /depth exch def pop
/grays columns 8 add depth sub depth mul 8 idiv string def
columns rows depth
[
columns 0 0
rows neg 0 rows
]
{ currentfile grays readhexstring pop } image
}
{
%
% Parameters:
% colors: number of colors in the colormap.
% colormap: red, green, blue color packets.
%
currentfile buffer readline pop
token pop /colors exch def pop
/colors colors 3 mul def
/colormap colors string def
currentfile colormap readhexstring pop pop
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ PseudoClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayPseudoClassPacket } image
} ifelse
} ifelse
} bind def
/DisplayImage
{
%
% Display a DirectClass or PseudoClass image.
%
% Parameters:
% x & y translation.
% x & y scale.
% label pointsize.
% image label.
% image columns & rows.
% class: 0-DirectClass or 1-PseudoClass.
% compression: 0-none or 1-RunlengthEncoded.
% hex color packets.
%
gsave
/buffer 512 string def
/byte 1 string def
/color_packet 3 string def
/pixels 768 string def
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
x y translate
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
currentfile buffer readline pop
token pop /pointsize exch def pop
x y scale
currentfile buffer readline pop
token pop /columns exch def
token pop /rows exch def pop
currentfile buffer readline pop
token pop /class exch def pop
currentfile buffer readline pop
token pop /compression exch def pop
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
grestore
} bind def
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 122 56
userdict begin
DisplayImage
0 0
122 56
12
122 56
1
0
0
256
000000
800000
008000
808000
000080
800080
008080
C0C0C0
C0DCC0
A6CAF0
646664
64666C
646A6C
6C6A6C
6C6E6C
6C6E74
6C7274
747274
747674
74767C
7C7A7C
7C7E7C
7C7E84
E4021C
E4061C
E40624
E40E24
E4122C
E4162C
E41634
E41A34
E41E34
EC1E34
E4223C
E4263C
EC223C
EC263C
EC2A3C
EC2A44
EC2E44
EC3244
EC324C
EC364C
EC3A4C
EC3A54
EC3E54
EC4254
EC425C
EC465C
EC4A5C
EC4E64
EC566C
EC5A6C
EC6274
F46674
F4667C
F46A7C
F46E7C
F47284
F47684
F47E8C
848284
848684
84868C
8C8A8C
8C8E8C
8C9294
949294
94969C
949A9C
9C9A9C
9C9E9C
A4A2A4
A4A6AC
ACAAAC
ACAEAC
ACAEB4
ACB2B4
B4B2B4
B4B6B4
B4B6BC
BCBABC
BCBEBC
BCBEC4
BCC2C4
F48A94
F48E9C
F4929C
F496A4
F49AA4
F49AAC
FCA2AC
F4AAB4
F4AEB4
FCA6B4
FCAAB4
FCAEB4
FCB2BC
FCB6BC
FCBAC4
FCBEC4
C4C2C4
C4C6C4
CCCACC
CCCECC
D4D2D4
DCDADC
DCDEDC
FCC2CC
FCC6CC
FCCAD4
FCCED4
FCD2D4
FCD2DC
FCDADC
FCDEE4
E4E2E4
E4E6E4
ECEAEC
ECEEEC
ECF2F4
FCE2E4
FCE6E4
FCE6EC
FCEAEC
FCEEEC
FCEEF4
F4F2F4
F4F6F4
FCF2F4
FCF6F4
FCF6FC
FCFAFC
FCFEFC
FFFFFF
240FBB
000000
AB57D0
240FBB
18F38C
41E9D5
B41C60
18F3E0
F4ECFB
18F398
000157
00018F
00011B
FBBB10
000007
000129
00018A
000518
0001AA
240FBB
000000
AB57D0
18F3CC
426A8E
000007
310AE2
000000
000000
18F3F8
F262FA
0101F8
000157
00018F
18F45C
F32A72
FBBB10
000000
8F0157
000000
407D3C
000000
240FBB
0101F8
18F470
F26D91
F26D51
908880
000007
240FBB
000000
000024
000001
000000
000000
000070
FFFFFF
FFFFFF
F26CE9
F26D91
55E56C
000000
000000
000000
0400E8
18F47C
F2CFEF
FBBB10
000000
000084
000000
8F0157
000001
18F4C4
F2D048
0400E8
000084
000000
F2D05F
908834
000000
000000
407D3C
000000
000001
000003
18F4EC
B76D10
000018
000000
000000
000028
000000
B76B30
B76C31
050923
000054
18F89C
18F7A8
B78644
050923
000054
18F89C
18F8DC
B78650
000000
18F530
A80EF8
18F8DC
B7AD80
000000
000000
FFFBF0
A0A0A4
808080
FF0000
00FF00
FFFF00
0000FF
FF00FF
00FFFF
FFFFFF
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868686868686868686868686868686868686868686868686868686868686
8686868686868686868585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858686868686858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585868686868685858585858585858585858585
8585858585807057352B1F1F1F1F2834556D8085858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858586868686868585858585
8585858585858585858585793C251817171717171717171717171F3670808585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858686
8686868585858585858585858585858585753618171717171717171717171717171717171831
6F85858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
858585858585868686868685858585858585858585858585571A171717171717171717171717
1717171717171717183980858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585868686868685858585858585858585857731171717171717
1717171717171717171717171717171717172870858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858586868686868585858585858585858572
2517171717171717171717171717171717171717171717171717171C62858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858686868686858585
8585858585857222171717171717171717171717171717171717171717171717171717171A64
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8686868686858585858585858577281717171717171717171717171717171717171717171717
171717171717171A708585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585868686868685858585858585853217171717171717171717171717171717
1717171717171717171717171717171722828585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858586868686868585858585858559181717171717171717
171739717B5F2117171717171717171717171717171717171735858585858585858585768085
8585858585858585858585858585858585758585858585858585858585858585858585858585
85858585858585858585858585858585858585858585858586868686868585858585857A1C17
17171717171717171756858585857B1C1717171717171717171717171717171717186D858585
85858574480B76858585858585858585858585858585856A413D848585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585868686868685
85858585853B171717171717171717171C8285858585853C1717171717171717171717171717
171717172E8485858576490D0A0A7485858585858585858585858585856A430B0A1684858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585868686868685858585857718171717171717171717172E8585858585855D171717171717
1717171717171717171717171864858585440A0B0A0B75858585858585858585858585857F12
0A0A0A1684858585858585858585858585858585858585858585858585858585858585858585
85858585858585858585868686868685858585855717171717171717171717171C8585858585
85551717171717171717171717171717171717171734858585440A0A0A0B7485858585858585
8585858585857F110B0A0B158485858585858585858585858585858585858585858585858585
858585858585858585858585858585858585868686868685858585802B171717171717171717
1717175985858585771F171717171717171717171717171717171717171B7C8585430A0B0A0A
758585858585858585858585858578110A0A0A15848585858585858585858585858585858585
85858585858585858585858585858585858585858585858585858686868686858585857A1717
1717171717171717171717183C747D6225171717171717171717171717171717171717171717
618585440A0A0A0B74858585858585858585858585857F110A0B0A1684858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858586868686
86858585855C17171717171717171717171717171718181717171717182D2D2D2E1F17171717
17182B2D2D2D22173B8585430A0B0A0B74764F44444A6A848585858585857F110A0A0A168485
85858585858581674844444968838585858585856A6867676769848585858267676767686B85
858585858686868686858585853C171717171717171717171717171717171717171717171C85
8585855817171717171C818585855B172F8585440A0A0A0A440F0A0A0B0A0B43768585858585
7F110A0B0A158485858585858567130A0A0A0A0B0A13688585858585670D0A0A0A0A51858585
4C0A0A0A0A0B6985858585858686868686858585853317171717171717171717171717171717
1717171717171C858585855717171717171F818585855B171F8585430A0B0A0B0A0A0B0A0A0A
0A0A14788585858578110A0A0A168485858585844C0B0A0B0A0B0A0A0A0A0B50858585858544
0A0B0A0B0F76857A0F0A0A0A0A488585858585858686868686858585852E1717171717171717
17171717171717171717171717171C858585855817171717171C818585855B171B8185440A0A
0A0A0A0B0A0A0B0A0A0B0A46858585857F110B0A0B158485858585650A0A0A0A0A0A0B0A0B0A
0A0B678585858577110A0A0A0A4884440A0B0A0B137F8585858585858686868686858585852B
171717171717171717171717171717171717171717171C858585855717171717171F81858585
5B171A7E85430A0A0B0A0B0A0D0D0A0B0A0A0A0D748585857F110A0A0A15848585857C0F0B0A
0A0A0B0A0A0A0A0A0B0A117E85858585660B0A0B0A0D500B0A0A0A0A69858585858585858686
868686858585852D171717171717171717171717171717171717171717171C85858585581717
1717171C818585855B171A7D85440A0A0A0A11678585670D0A0B0A0A4A8585857F110A0B0A16
848585854C0A0A0A0B0D528380510D0A0A0B0A4E8585858585430A0A0A0B0A0A0B0A0B468585
8585858585858686868686858585852B17171717171717171717171717171717171717171717
1C858585855717171717171F818585855B171B8385430A0B0A0A6A858585854D0A0A0A0A3F85
858578110A0A0A1684858585130A0B0A0A5385858585500B0A0A0A168585858585760F0B0A0A
0A0B0A0A127F8585858585858585868686868685858585341717171717171717171717171717
17171717171717171C858585855817171717171C818585855B171F8585440A0A0A0B74858585
857E0A0B0A0B0D8485857F110A0B0A15848585760A0A0A0A0F8285858585820D0A0B0A0D7685
85858585650A0B0A0A0A0A0B678585858585858585858686868686858585853B171717171717
171717171717171717171717171717171C858585855717171717171F818585855B172F858543
0B0A0B0A7585858585850F0A0A0A0D7785857F110A0A0A168485856A0A0B0A0A428585858585
853F0A0A0A0B6A858585858584400A0A0A0B0A44858585858585858585858686868686858585
8560171717171717171717171717171717171717171717171C858585855817171717171C8285
85855B173A8585440A0A0A0B7485858585853D0A0B0A0B7685857F110B0A0B15848585680A0A
0A0B47858585858585440A0B0A0A69858585858585470B0A0B0A0A4985858585858585858585
86868686868585858579171717171717171717171717171717171717171717171C8585858557
171717171720818585855B17618585430A0A0B0A768585858585160A0A0A0D7685857F110A0A
0A15848585670B0A0B0A46858585858585440A0A0A0A6A8585858585690B0A0A0A0A0A0B6B85
8585858585858585868686868685858585852C17171717171717171717171717171717171717
17171C858585855A17171717171F858585855B1C7C8585440A0A0A0A748585858585130A0B0A
0B7785857F100A0B0A168485856B0A0A0A0A3F858585858585160A0B0A0B6B858585857F140A
0B0A0B0A0B0A1683858585858585858586868686868585858585571717171717171717171717
171717171717171717171C8485858564171717171731858585855B34858585430A0B0A0B7585
8585857F0A0A0A0A0E8485857F110A0A0B158485857F0B0A0B0A0B7785858585750B0A0A0A0E
7F85858585490A0A0A0A0A0A0A0A0A4E8585858585858585868686868685858585857E1A1717
1717171717171717171717171717171717171A728585858126171717175E858585855E638585
85440A0A0A0A5385858584500A0B0A0B3F8585857F110A0A0A16848585853D0A0A0A0B488485
8584440A0A0B0A40858585856A0B0A0B0A0B470B0A0B0A0D6B85858585858585868686868685
85858585853B171717171717171717171717171717171717171717628585858570321E295985
858585857384858585430A0B0A0A0B486974500F0A0A0A0A4F8585857F100A0B0A1584858585
510A0B0A0A0A446767400B0A0A0A0A6585858582160A0A0A0A42823F0A0A0A0B3E8485858585
858586868686868585858585857B1C1717171717171717171717171717171717171717358585
8585858585858585858585858585858585440A0A0A0B0A0A0A0A0A0A0A0B0A0F768585857F11
0B0A0A168485858583150A0A0B0A0A0B0A0A0A0A0B0A3D808585854C0A0B0A0B0D74856A0C0A
0B0A0A5085858585858586868686868585858585858559171717171717171717171717171717
17171717171A73858585858585858585858585858585858585430A0B0A0A0A0B0A0A0B0A0B0A
0A4E858585857F110A0A0A1684858585856A0D0A0A0B0A0A0A0A0B0A0A0F748585856B0C0A0A
0A0A4B858585480A0A0B0A0D7585858585858686868686858585858585858533171717171717
17171717171717171717171717172B77858585858585857E858585858585858585440A0A0A0B
0A0A0A0B0A0A0A0A4484858585857F100A0B0A15848585858585690F0A0A0B0A0B0A0A0A116A
858585843D0B0A0B0A14838585857F110A0A0A0B3F8585858585868686868685858585858585
857C271717171717171717171717171717171717171717256277858585815C2C728185858585
858585450E0F0D0E4D140A0A0A0A114E8485858585857F140E0E0E3F8485858585858575440D
0A0A0A0A0F467685858585510E0E0E0D0F688585858585540E0F0E0D0E658585858586868686
8685858585858585858573241717171717171717171717171717171717171717171F2E322E1F
1717236D85858585858585807E77777884826A5365697F85858585858585857F777E777F8585
858585858585857769535269778585858585857F777E777778858585858585857E7777787C80
8585858586868686868585858585858585858572261717171717171717171717171717171717
1717171717171717171D63858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
858585858585858585858585868686868685858585858585858585857E311717171717171717
17171717171717171717171717171717276F8585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585868686868685858585858585858585858585
571B1717171717171717171717171717171717171717193A8185858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858586868686868585858585
85858585858585858579371A1717171717171717171717171717171718306E85858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858686
86868685858585858585858585858585858585733C2617171717171717171717171720386E85
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858686868686858585858585858585858585858585858585837058352D231F231F
2A34566C81858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585868686868685858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858586868686868585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
8585858585858585858585858585858585858585858585858585858585858585858585858585
858585858585858585858585858585858585858585858585858585858585
end
%%PageTrailer
%%Trailer
%%EOF

View File

@ -1,241 +1,195 @@
\section{Installation}
\subsection{SD card preparation}
\subsubsection{Partitions}
Format the SD card with two new partitions:
\lstsetbash
\begin{lstlisting}
fdisk /dev/mmcblk0
\end{lstlisting}
\section{Gitlab workflow} \label{sec:glw}
\begin{figure}
\begin{center}
\input{img_gitlab.tex}
\caption{Gitlab workflow}
\label{fig:gitlab_workflow}
\end{center}
\end{figure}
Figure \ref{fig:gitlab_workflow} gives an overview of the gitlab workflow.
The workflow is splitted in different phases:\\
\begin{itemize}
\item Implementation phase
\item Code freeze
\item Release phase
\end{itemize}
For these different phases The continuous integration/delivery system
triggers different build stages. For further details please refer to
section \ref{sec:ci}.
\subsection{Implementation phase}
While in implementation phase every implementation for the next release is
done. Every implementation has to be done on a seperate branch. After
finishing an implementation the branch it was made on has to be merged back
to the master branch. As defined an implementation could be one of:\\
\begin{itemize}
\item Feature
\item Fix
\end{itemize}
\subsubsection{Feature implementation}
A feature is a a new piece of code that implements new functionality into
the system.
\subsubsection{Fix implementation}
If in any testing phase an issue is detected these issue can be fixed with
a fix implementation.
\subsubsection{Further kinds of implementation}
Beside these defined implementations any other kind of implementation is
possible but has to be made also on a seperate branch.
\subsection{Code freeze}
The transition between implementation phase and release phase is called
code freeze. Code freeze means each for the upcoming release planned
feature is implemented and merged to the main branch (normally master) of
the project's git repository (see figure \ref{fig:gitlab_workflow}). For
the upcoming release a "\texttt{release/...}" named branch is created.
For a proper release configuration it is necessary to configure the ci
build job before creating the release branch (see section \ref{sec:ci_conf})
.
\subsection{Release phase}
Any release relevant issue that is detected while release phase has to be
fixed at the release branch. The release phase is splitted into different
stages:
\begin{itemize}
\item Internal release(s)
\item External release
\end{itemize}
\subsubsection{Internal release(s)}
Each push to a release branch triggers the creation of an internal release.
Only internal releases must be used to system test the release branch. For
details please refer to section \ref{sec:ci_int}.
\subsubsection{External release}
If no further release relevant issues could be found (or are accepted as
known issues) an external release is created by tagging the commit which
should be delivered to the customer. For details please refer to section
\ref{sec:ci_ext}.
\section{Continuous integration/delivery} \label{sec:ci}
As continuous integration system the gitlab built in ci-system
\textit{gitlab-ci} is used. Beside the most important task of ci, ensure
constant high code quality, the ci system is used for various tasks:
\FloatBarrier
\begin{itemize}
\item Automated static code analysis
\item Automated build
\item Automated test (not implemented yet)
\item Internal release deployment
\item External release deployment
\item Automated release note generation (not implemented yet)
\end{itemize}
\FloatBarrier
\subsection{Internal release deployment} \label{sec:ci_int}
\begin{figure}
\begin{center}
\input{img_deploy.tex}
\caption{Deployment of release candidats and releases}
\label{fig:deployment}
\end{center}
\end{figure}
For a branch named \texttt{release/...} the creation of a release candidate
is triggered automatically. Figure \ref{fig:deployment} illustrates the
deployment process. The internal release is processing the following steps:
\\
\begin{enumerate}
\item Type \textbf{o} to erase all former partitions
\item Type \textbf{p} to list all existing partitions
\item Type \textbf{n}, then \textbf{p} to create the boot partition. Press
\textbf{RETURN} to accept the first sector, then \textbf{+100M} for the
last sector
\item Type \textbf{t}, then \textbf{c} to set the partition type to FAT32
\item Type \textbf{n}, then \textbf{p} to create the root partition. Press
\textbf{RETURN} to accept the first sector, then \textbf{RETURN} for the
last sector
\item Type \textbf{w} to write the new partition table
\item Build project variant specific configuration
\item Static code analysis of project variant specific configuration
\item Name the release depending on the release naming convention
\item Build release notes for the release candidate
\item Deploy the release to the project's release candidate deploy
location
\end{enumerate}
\subsubsection{File systems}
Create the file systems for the new partitions:
\begin{lstlisting}
mkfs.vfat /dev/mmcblk0p1
mkfs.ext4 /dev/mmcblk0p2
\end{lstlisting}
Create mount points and mount the new partitions:
\begin{lstlisting}
mkdir boot
mkdir root
mount /dev/mmcblk0p1 boot
mount /dev/mmcblk0p2 root
\subsection{External release deployment} \label{sec:ci_ext}
To create an external release the commit to be released must be tagged
using the following naming convention:\\
\texttt{release/<project\_specific\_name>}.\\
The project specific naming convention for Agricola ruby is:\\
\texttt{release/174\_AG*}.\\
\begin{enumerate}
\item Build project variant specific configuration
\item Static code analysis of project variant specific configuration
\item Name the release depending on the release naming convention
\item Build release notes for the release
\item Deploy the release to the project's release deploy location
\end{enumerate}
\subsection{Release note generation} \label{sec:rel_note}
\begin{figure}
\begin{center}
\input{img_history.tex}
\caption{Git commit history}
\label{fig:git_commit_history}
\end{center}
\end{figure}
To generate release notes by commit messages special tagged commit messages
are used. Release notes are generated for release candidats and releases.
For release candidats (internal releases) more tags are analyzed. The
definition of the commit tag rules are somewhere in the Polarion :) Because
the release notes content is taken from the log history of a release branch
each commit in it's history has to use tagged commits. To show logs only of
direct parents (commits on the current release branch and commits on the
master) the log command\\
\texttt{git log <first\_commit>..HEAD --first parent master}\\
can be used. Figure \ref{fig:git_commit_history} illustrates the flow of the
log history of the release branch shown in figure \ref{fig:gitlab_workflow}.
\subsection{Configuring the build jobs} \label{sec:ci_conf}
The configuration of gitlab-ci is made in the \texttt{.gitlab-ci.yml} file
in the root directory of the project's repository. The certain build stages
are using variables to customize the build. These variables are defined in
the \texttt{variables} section of the config file. Table \ref{tab:conf_var}
and listing \ref{lst:ag_cfg} gives an overview about customizing a release
phase.
\captionof{table}{Variables to customize a release phase}
\label{tab:conf_var}
\begin{tabular}{l l l}
\cellcolor{black}\color{white}variable & \cellcolor{black}\color{white}meaning & \cellcolor{black}\color{white}example\\
PRODUCT\_NAME & Short of the product name & AG\\
PRODUCT\_VARIANT & Short of the product variant & NA\\
PROJECT\_VERSION & ?? & 10\\
SW\_MAJOR & Software major number & 1\\
SW\_MINOR & Software minor number & 2\\\\
\end{tabular}
\newline
\lstsetbash
\begin{lstlisting}[caption=variables configuration, label=lst:ag_cfg]
variables:
PRODUCT_NAME: "AG"
PRODUCT_VARIANT: "NA"
PROJECT_VERSION: "10"
SW_MAJOR: "1"
SW_MINOR: "2"
\end{lstlisting}
\subsubsection{Download and extract root file system}
\begin{lstlisting}
wget http://archlinuxarm.org/os/\
ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync
mv root/boot/* boot
\end{lstlisting}
Enable ssh root login:
\begin{lstlisting}
vim root/etc/ssh/sshd\_config
\end{lstlisting}
Find \texttt{\#PermitRootLogin yes} and uncommend it
\begin{lstlisting}
PermitRootLogin yes
\end{lstlisting}
Unmount both partitions
\begin{lstlisting}
umount boot root
\end{lstlisting}
\section{Configuration}
\subsection{User management}
\subsubsection{Create new user}
\begin{lstlisting}
useradd -m -g users -G wheel -s /bin/bash tkl
\end{lstlisting}
\begin{tabular}{ l l }
\texttt{-m} & create user name home directory\\
\texttt{-g} & initial login group\\
\texttt{-G} & list of supplementary groups - comma separated\\
\texttt{-s} & path and file name of default login shell\\
\end{tabular}\\
Set password for the new user:
\begin{lstlisting}
passwd tkl
\end{lstlisting}
Enable wheel group members as sudoers:
\begin{lstlisting}
EDITOR=vim visudo
\end{lstlisting}
Uncomment:
\begin{lstlisting}
%wheel ALL=(ALL) ALL
\end{lstlisting}
\subsection{Aliasing}
\begin{lstlisting}
cd ~
vi .bashrc
\end{lstlisting}
Add:\\
\texttt{alias vi='vim'}
\subsection{Customize vim}
Edit \texttt{.vimrc}:
\begin{lstlisting}
syntax on "Syntax highlightning
set number "Line numbering
\end{lstlisting}
\subsection{Wifi}
Configure wifi network:
\begin{lstlisting}
wifi-menu
\end{lstlisting}
Enable wifi network permanent:
\begin{lstlisting}
netctl enable wlan0-<network_name>
\end{lstlisting}
\subsubsection{Deactivate wifi device sleep mode}
\begin{lstlisting}
pacman -S iw
echo ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*", \
RUN+="/usr/bin/iw dev \%k set power\_save off\" \
> etc/udev/rules.d/70-wifi-powersave.rules
\end{lstlisting}
\subsection{Ssh key login}
\begin{itemize}
\item Create \texttt{.ssh/} folder in users home directory
\item Copy public key file (i.e. \texttt{id\_rsa.pub}) into \texttt{.ssh}
folder
\item Authorize public key:
\begin{lstlisting}
cat id_rsa.pub >> authorized_keys
\end{lstlisting}
\end{itemize}
\subsection{Interfaces}
\subsubsection{I2C}
To enable i2c interface edit \texttt{/boot/config.txt}. \\
Uncomment \texttt{\#device\_tree\_param=i2c\_arm=on}\\
Load i2c modules while boot:
\begin{lstlisting}
/etc/modules-load.d/raspberry.conf
i2c-dev
i2c-bcm2708
\end{lstlisting}
Install package \texttt{i2c-tools}
Test i2c bus after reboot:
\begin{lstlisting}
i2cdetect -y 1
\end{lstlisting}
Set permissions for i2c device access:
\begin{lstlisting}
/etc/udev/rules.d/99-i2c.rules
KERNEL=="i2c-1", MODE="0777"
\end{lstlisting}
\subsubsection{SPI}
To enable spi interface edit \texttt{/boot/config.txt}. \\
Uncomment \texttt{\#device\_tree\_param=spi=on}
\subsubsection{GPIO}
Create an udev rule to enable others than root accessing the gpio files:
\begin{lstlisting}
/etc/udev/rules.d/98-gpio.rules
SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'chown -R root:gpio\
/sys/class/gpio; chmod -R 0777 /sys/class/gpio; chown -R \
root:gpio /sys/devices/virtual/gpio; chmod -R 0777 \
/sys/devices/virtual/gpio'"
\end{lstlisting}
\subsection{tools}
\begin{itemize}
\item \texttt{fakeroot}
\item \texttt{gcc}
\item \texttt{git}
\item \texttt{make}
\item \texttt{patch}
\item \texttt{python2, python2-pip}
\item \texttt{wget}
\end{itemize}
\subsection{Hostname}
\begin{lstlisting}
echo "hostname" > /etc/hostname
\end{lstlisting}
\section{Applications}
\subsection{I2C-OLED}
\subsubsection{Oled Test application}
Clone test application:
\begin{lstlisting}
git clone git@dabgit01.internal.novero.com:raspberry/\
oledpi.git
\end{lstlisting}
\subsubsection{Install driver}
Clone oled driver:
\begin{lstlisting}
git clone https://github.com/rm-hull/ssd1306.git
\end{lstlisting}
Install it:
\begin{lstlisting}
python2 setup.py install
\end{lstlisting}
\subsubsection{Dependencies}
\begin{itemize}
\item \texttt{python-smbus/python2-smbus} (AUR)
\item \texttt{i2c-tool-git} (AUR)
\item \texttt{libjpeg-turbo}
\item \texttt{pillow} install using pip \texttt{(pip/pip2 install pillow)}
\end{itemize}
\subsection{Weatherpi}
\subsubsection{Usb weatherstation test application}
Clone test application:
\begin{lstlisting}
git clone git@dabgit01.internal.novero.com:raspberry/\
weatherpi.git
\end{lstlisting}
\subsubsection{Dependencies}
\begin{itemize}
\item \texttt{python2-pyusb} (AUR) (edit \texttt{PKGBUILD} and add
\texttt{'armv7h'} to \texttt{arch})
\item \texttt{libusb-compat}
\end{itemize}
\subsection{MQTT Broker}
Install mosquitto (AUR)\\
Install paho-mqtt client library:\\
\begin{lstlisting}
pip2 install paho-mqtt
\end{lstlisting}
Create config file:
\begin{lstlisting}
cp /etc/mosquitto.conf.example /etc/mosquitto.conf
\end{lstlisting}
Start mosquitto broker service:
\begin{lstlisting}
systemctl enable mosquitto.service
systemctl start mosquitto.service
\end{lstlisting}
\subsubsection{Test}
Subscribe to a topic:
\begin{lstlisting}
mosquitto_sub -t "topic/path"
\end{lstlisting}
Populate a message:
\begin{lstlisting}
mosquitto_pub -t "topic/path" -m "message payload"
\end{lstlisting}

97
img_deploy.tex Normal file
View File

@ -0,0 +1,97 @@
\psset{griddots=0,gridlabels=8pt,subgriddiv=5}
\psset{xunit=10mm,yunit=10mm}
\begin{pspicture}(12,10)
% \psgrid
\newcommand{\clr}{black}
% phases
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,2)(12,2)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,8)(12,8)
\rput{0}(1.5,2){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{code freeze}}
}
\psline[linewidth=1pt,linecolor=\clr]{<->}(11.5,2)(11.5,8)
\rput{90}(11.5,5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release phase}}
}
% master
\newcommand{\masterx}{10}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\masterx,1)(\masterx,9)
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,2)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,8)
\rput(\masterx,0.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{master}}
}
% feature/anti_osc
\renewcommand{\clr}{RedOrange}
\newcommand{\featurex}{8}
\psline[linewidth=2pt,linecolor=\clr](\masterx,2)(\featurex,3)
\psline[linewidth=2pt,linecolor=\clr](\featurex,3)(\featurex,7)
\psline[linewidth=2pt,linecolor=\clr,linestyle=dashed,arrowsize=15pt]{->}(\featurex,7)(\masterx,8)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\featurex,2)(\featurex,8)
\multido{\nA=3+2}{3}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\featurex,\nA)
}
\rput(\featurex,1.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release/NAR\_C0}}
}
\newcommand{\rccolor}{Blue}
\psset{fillcolor=\rccolor}
\psdot[dotsize=5pt,dotstyle=o,linecolor=\rccolor](\masterx,2)
\psdot[dotsize=5pt,dotstyle=o,linecolor=\rccolor](\featurex,3)
\psdot[dotsize=5pt,dotstyle=o,linecolor=\rccolor](\featurex,5)
\psline[linewidth=1pt,linecolor=\rccolor,arrowsize=10pt]{->}(\masterx,2)(5.7,2.8)
\psline[linewidth=1pt,linecolor=\rccolor,arrowsize=10pt]{->}(\featurex,3)(5.7,4.6)
\psline[linewidth=1pt,linecolor=\rccolor,arrowsize=10pt]{->}(\featurex,5)(5.7,6.6)
\rput(3,3){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\rccolor}
\psset{framearc=.5}
\psframebox{\textcolor{\rccolor}{deploy: release candidate 1}}
}
\rput(3,5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\rccolor}
\psset{framearc=.5}
\psframebox{\textcolor{\rccolor}{deploy: release candidate 2}}
}
\rput(3,7){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\rccolor}
\psset{framearc=.5}
\psframebox{\textcolor{\rccolor}{deploy: release candidate 3}}
}
\newcommand{\rcolor}{ForestGreen}
\psset{fillcolor=\rcolor}
\psdot[dotsize=5pt,dotstyle=o,linecolor=\rcolor](\featurex,7)
\psline[linewidth=1pt,linecolor=\rcolor,arrowsize=10pt]{->}(\featurex,7)(4.6,8.6)
\rput(3,9){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\rcolor}
\psset{framearc=.5}
\psframebox{\textcolor{\rcolor}{deploy: release}}
}
\end{pspicture}

136
img_gitlab.tex Normal file
View File

@ -0,0 +1,136 @@
\psset{griddots=0,gridlabels=8pt,subgriddiv=5}
\psset{xunit=10mm,yunit=10mm}
\begin{pspicture}(14,16)
% \psgrid
\newcommand{\clr}{black}
% phases
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,2)(14,2)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,8)(14,8)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](0,14)(14,14)
\rput{0}(1.5,8){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{code freeze}}
}
\psline[linewidth=1pt,linecolor=\clr]{<->}(13.5,2)(13.5,8)
\rput{90}(13.5,5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{implementation phase}}
}
\psline[linewidth=1pt,linecolor=\clr]{<->}(13.5,8)(13.5,14)
\rput{90}(13.5,11){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release phase}}
}
% master
\newcommand{\masterx}{7}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\masterx,1)(\masterx,15)
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,2)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,3)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,7)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,8)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\masterx,14)
\rput(\masterx,0.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{master}}
}
% feature/anti_osc
\renewcommand{\clr}{ForestGreen}
\newcommand{\featurex}{5}
\psline[linewidth=2pt,linecolor=\clr](\masterx,2)(\featurex,3)
\psline[linewidth=2pt,linecolor=\clr](\featurex,3)(\featurex,7)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\featurex,7)(\masterx,8)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\featurex,2)(\featurex,8)
\multido{\nA=3+2}{3}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\featurex,\nA)
}
\rput(\featurex,1.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{feature/anti\_osc}}
}
% old_branch
\renewcommand{\clr}{Gray}
\newcommand{\xpos}{9}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\xpos,2)(\masterx,3)
\psline[linewidth=2pt,linecolor=\clr](\xpos,1)(\xpos,2)
% fix/calibration_crc
\renewcommand{\clr}{Maroon}
\newcommand{\fixx}{9}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr](\fixx,4)(\fixx,6)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,6)(\masterx,7)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,3)(\fixx,7)
\multido{\nA=4+2}{2}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,\nA)
}
\rput(\fixx,2.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{fix/calibration\_crc}}
}
% feature/dynamic_monitoring
\renewcommand{\clr}{RoyalBlue}
\renewcommand{\fixx}{11}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,4)(\fixx,12)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,3)(\fixx,4)
\rput(\fixx,12.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{feature/dyn\_mon}}
}
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,4)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,6)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,8)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,10)
% release/NAR_C0
\renewcommand{\clr}{RedOrange}
\renewcommand{\fixx}{5}
\psline[linewidth=2pt,linecolor=\clr](\masterx,8)(\fixx,9)
\psline[linewidth=2pt,linecolor=\clr](\fixx,9)(\fixx,13)
\psline[linewidth=1pt,linecolor=\clr,linestyle=dashed](\fixx,8)(\fixx,14)
\psline[linewidth=2pt,linecolor=\clr,linestyle=dashed,arrowsize=15pt]{->}(\fixx,13)(\masterx,14)
\rput(\fixx,14.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{\clr}{release/NAR\_C0}}
}
\rput(2.5,13){
\psset{fillcolor=\clr}
\psset{fillstyle=solid}
\psset{linecolor=\clr}
\psset{framearc=.5}
\psframebox{\textcolor{white}{\shortstack{tags/release/\\174\_AG\_NA\_10-01.02}}}
}
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,9)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,11)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,13)
\end{pspicture}

74
img_history.tex Normal file
View File

@ -0,0 +1,74 @@
\psset{griddots=0,gridlabels=8pt,subgriddiv=5}
\psset{xunit=10mm,yunit=10mm}
\begin{pspicture}(14,16)
% \psgrid
\newcommand{\clr}{Gray}
\newcommand{\bclr}{RedOrange}
\newcommand{\hclr}{Blue}
\newcommand{\mclr}{black}
% master
\newcommand{\masterx}{7}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\masterx,8)(\masterx,15)
\psline[linewidth=2pt,linecolor=\hclr](\masterx,1)(\masterx,8)
\psset{fillcolor=\hclr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,2)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,3)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,7)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\masterx,8)
\rput(\masterx,0.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\mclr}
\psset{framearc=.5}
\psframebox{\textcolor{\mclr}{master}}
}
% feature/anti_osc
\newcommand{\featurex}{5}
\psline[linewidth=2pt,linecolor=\clr](\masterx,2)(\featurex,3)
\psline[linewidth=2pt,linecolor=\clr](\featurex,3)(\featurex,7)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\featurex,7)(\masterx,8)
\multido{\nA=3+2}{3}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\featurex,\nA)
}
% old_branch
\newcommand{\xpos}{9}
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\xpos,2)(\masterx,3)
\psline[linewidth=2pt,linecolor=\clr](\xpos,1)(\xpos,2)
% fix/calibration_crc
\newcommand{\fixx}{9}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr](\fixx,4)(\fixx,6)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,6)(\masterx,7)
\multido{\nA=4+2}{2}{
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,\nA)
}
% feature/dynamic_monitoring
\renewcommand{\fixx}{11}
\psline[linewidth=2pt,linecolor=\clr](\masterx,3)(\fixx,4)
\psline[linewidth=2pt,linecolor=\clr,arrowsize=15pt]{->}(\fixx,4)(\fixx,12)
\psset{fillcolor=\clr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,4)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,6)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,8)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\clr](\fixx,10)
% release/NAR_C0
\renewcommand{\fixx}{5}
\psline[linewidth=1pt,linecolor=\bclr,linestyle=dashed](\fixx,8)(\fixx,14)
\psline[linewidth=2pt,linecolor=\hclr](\masterx,8)(\fixx,9)
\psline[linewidth=2pt,linecolor=\hclr](\fixx,9)(\fixx,13)
\rput(\fixx,14.5){
\psset{fillcolor=white}
\psset{fillstyle=solid}
\psset{linecolor=\bclr}
\psset{framearc=.5}
\psframebox{\textcolor{\bclr}{release/NAR\_C0}}
}
\psset{fillcolor=\hclr}
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,9)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,11)
\psdot[dotsize=10pt,dotstyle=o,linecolor=\hclr](\fixx,13)
\end{pspicture}

View File

@ -1,4 +1,4 @@
\newcommand{\docname}{HowTo}
\newcommand{\prjname}{arch linux on raspberry pi}
\newcommand{\docname}{Release Process}
\newcommand{\prjname}{Agricola}
\newcommand{\docversion}{0.1}
\newcommand{\docauthor}{Thomas Klaehn}