Compare commits

..

No commits in common. "dcbf8d6b8c9a78cc771be105e018622679ff2b4f" and "610ca471dc9eb6b502897c146b054334757aba30" have entirely different histories.

21 changed files with 50 additions and 9746 deletions

7
.latexmkrc Normal file
View File

@ -0,0 +1,7 @@
$pdf_mode = 1;
$pdflatex = 'pdflatex --shell-escape -interaction=nonstopmode %O %S -file-line-error -synctex=1';
# Custom dependency and function for nomencl package
add_cus_dep( 'nlo', 'nls', 0, 'makenlo2nls' );
sub makenlo2nls {
system( "makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\"" );
}

14
.travis.yml Normal file
View File

@ -0,0 +1,14 @@
services:
- docker
script:
- make
- ls -la | grep pdf
deploy:
provider: releases
api_key:
secure: $GITHUB_TOKEN
file: presentation.pdf
skip_cleanup: true
on:
repo: uniba-ktr/PresTeX
tags: true

View File

@ -4,9 +4,9 @@ services:
esp: esp:
image: iot.wiai:1337/esp8266 image: iot.wiai:1337/esp8266
build: ./esp build: ./esp
devices: volumes:
- /dev/ttyUSB0:/dev/ttyUSB0 - /dev/ttyUSB0:/dev/ttyUSB0
environment: env:
- PORT=/dev/ttyUSB0 - PORT=/dev/ttyUSB0
@ -15,7 +15,7 @@ services:
image: iot.wiai:1337/flask image: iot.wiai:1337/flask
volumes: volumes:
- ./src/:/flask/ - ./src/:/flask/
environment: env:
- FLASK_APP=server.py - FLASK_APP=server.py
ports: ports:
- 5000:5000 - 5000:5000

View File

@ -1,4 +1,4 @@
FROM alpine:edge FROM alpine:edge
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories && apk --update add picocom esptool RUN apk --update --no-cache-dir add picocom esptool
ENV PORT /dev/ttyUSB0 ENV PORT /dev/ttyUSB0
CMD ["sh", "-c", "picocom -b 115200 ${PORT}"] CMD ["picocom", "-b", "115200", "${PORT}"]

View File

@ -1,250 +0,0 @@
%Berkeley / Goettingen / Hannover / Marburg / PaloAlto / Rochester
\usetheme{Rochester}
\RequirePackage{pgf}
\RequirePackage{tikz}
\tikzset{
rectangle with rounded corners north west/.initial=4pt,
rectangle with rounded corners south west/.initial=4pt,
rectangle with rounded corners north east/.initial=4pt,
rectangle with rounded corners south east/.initial=4pt,
}
%\makeatletter
\pgfdeclareshape{rectangle with rounded corners}{
\inheritanchorborder[from=rectangle]
\savedmacro{\neoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\let\neoffset\pgf@rectc
}
\savedmacro{\nwoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\let\nwoffset\pgf@rectc
}
\savedmacro{\seoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\let\seoffset\pgf@rectc
}
\savedmacro{\swoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\let\swoffset\pgf@rectc
}
\savedanchor{\north}{
\pgf@y=.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\south}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\savedanchor{\east}{
\pgf@y=0pt
\pgf@x=.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
}
\savedanchor{\west}{
\pgf@y=0pt
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
}
\savedanchor{\northeast}{
\pgf@y=.5\ht\pgfnodeparttextbox % height of the box
\pgf@x=.5\wd\pgfnodeparttextbox % width of the box
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\southwest}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
% \pgf@x=0pt
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\anchor{text}{%
\northeast%
\pgf@x=-.5\wd\pgfnodeparttextbox%
\pgfmathsetlength{\pgf@y}{-.5ex}
}
\anchor{north east}{
\northeast
\pgfmathsetmacro{\nw}{(1-sin(45))*\neoffset}
\addtolength{\pgf@x}{-\nw pt}
\addtolength{\pgf@y}{-\nw pt}
}
\anchor{center}{
\pgf@x=0pt
\pgf@y=0pt
}
\anchor{south west}{
\southwest
\pgfmathsetmacro{\nw}{(1-sin(45))*\swoffset}
\addtolength{\pgf@x}{\nw pt}
\addtolength{\pgf@y}{\nw pt}
}
\anchor{north west}{
\northeast
\pgfmathsetmacro{\temp@x}{\pgf@x}
\southwest
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\northeast
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\
\pgfmathsetmacro{\nw}{(1-sin(45))*\nwoffset}
\def\pgf@xaa{\pgf@xa+\nw}
\def\pgf@yaa{\pgf@y-\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south east}{
\southwest
\pgfmathsetmacro{\temp@x}{\pgf@x}
\northeast
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\southwest
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\pgfmathsetmacro{\nw}{(1-sin(45))*\seoffset}
\def\pgf@xaa{\pgf@xa-\nw}
\def\pgf@yaa{\pgf@y+\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south}{\south}
\anchor{north}{\north}
\anchor{east}{\east}
\anchor{west}{\west}
\backgroundpath{% this is new
% store lower right in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% construct main path
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathclose
}
}
%\makeatother
\pgfdeclareimage[width=0.115\textwidth]{uniheader}{\meta/config/images/logow}
\setbeamertemplate{blocks}[shadow=false]
\setbeamercovered{transparent}
\beamer@headheight=0.13\paperwidth
\setbeamercolor*{Title bar}{fg=white}
\setbeamercolor*{Location bar}{fg=unibablueI,bg=unibagrayV}
\setbeamercolor*{frametitle}{parent=Title bar}
\setbeamercolor*{block title}{bg=unibablueI,fg=white}
\setbeamercolor*{block body}{bg=unibagrayV,fg=black}
\setbeamercolor*{block title alerted}{bg=nounibaredII,fg=white}
\setbeamercolor*{block body alerted}{bg=unibaredV,fg=black}
\setbeamercolor*{block title example}{bg=unibayellowII,fg=black}
\setbeamercolor*{block body example}{bg=unibayellowV,fg=black}
\setbeamercolor*{normal text}{bg=white,fg=black}
\setbeamercolor*{alerted text}{fg=nounibaredII}
\setbeamercolor*{section in head/foot}{bg=unibablueI,fg=white}
\setbeamercolor*{item}{fg=unibablueI, bg=unibagrayV}
\usecolortheme[named=nounibagreenII]{structure}
\setbeamerfont{section in head/foot}{size=\tiny,series=\normalfont}
\setbeamerfont{frametitle}{size=\large}
\setbeamertemplate{frametitle}
{
\vskip-0.3\beamer@headheight
\vskip-\baselineskip
\vskip-0.2cm
\hskip-0.5cm\usebeamerfont*{frametitle}\insertframetitle
\vskip+0.1cm
\hskip-0.25cm\usebeamerfont*{framesubtitle}\insertframesubtitle
\vskip+0.15cm
}
\setbeamertemplate{headline}
{
\begin{tikzpicture}
\node[
anchor=south west,
draw=unibablueI,
thin,
fill=unibablueI,
shape=rectangle with rounded corners,
minimum height=\beamer@headheight, minimum width=\textwidth,
rectangle with rounded corners north west=0pt,
rectangle with rounded corners south west=0pt,
rectangle with rounded corners north east=25pt,
rectangle with rounded corners south east=0pt,
] at (0,0) (b) {};
\draw (b.east) +(-.7em,0) node(logo) [anchor=east] { \pgfuseimage{uniheader} };
\draw[white] node(uniba) [left of=logo, anchor=east]{\scriptsize\uni};
\end{tikzpicture}
\vskip -1.75cm
\linethickness{0pt}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.3\beamer@headheight]{Title bar}
\usebeamerfont{section in head/foot}%
\insertsectionnavigationhorizontal{0pt}{\hskip0.22cm}{}%
\end{beamercolorbox}}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.7\beamer@headheight]{Title bar}
\end{beamercolorbox}}
}
\setbeamertemplate{footline}
{
\linethickness{0.2pt}
\framelatex{
\begin{beamercolorbox}[leftskip=.3cm,wd=\paperwidth,ht=0.25\beamer@headheight,sep=0.1cm]{Location bar}
\usebeamerfont{section in head/foot}%
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south west] at ($(current page.south west)+(.1,0)$){\insertshorttitle \ | \insertshortauthor \ | \insertshortinstitute};
\node[anchor=south] at (current page.south){\ifgit\gitMarkFormat{\gitMarkPref\,\textbullet{}\,\gitMark}\fi};
\node[anchor=south east] at ($(current page.south east)+(-.1,0)$){\insertframenumber/\inserttotalframenumber};
\end{tikzpicture}
\end{beamercolorbox}}
}

View File

@ -2,7 +2,7 @@
%Necessary Information %Necessary Information
\author[C\&F]{Clemens, Franz} \author[C\&F]{Clemens, Franz}
\title{IoT Night} \title{IoT Night}
\subtitle{S stands for security} \subtitle{ESP8266 \& parts}
%The day of the presentation %The day of the presentation
\date{\today} \date{\today}

View File

@ -6,12 +6,4 @@
} }
@misc{micropython-doc, @misc{micropython-doc,
url={https://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html} url={https://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html}
} }
@misc{node-dht,
url={https://www.mikrocontroller.net/topic/389850}}
@misc{node-led,
url={https://www.pinterest.de/pin/658088564269958262/}}
@misc{node-button,
url={https://alexbloggt.com/esp8266-pushover/}}
@misc{mp-interrupt,
url={{https://docs.micropython.org/en/latest/esp8266/reference/isr_rules.html}}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

View File

@ -151,4 +151,3 @@
\usepackage{pifont} \usepackage{pifont}
\usepackage{fourier} \usepackage{fourier}
\usepackage{menukeys} \usepackage{menukeys}
\usepackage{eurosym}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,315 +0,0 @@
%Berkeley / Goettingen / Hannover / Marburg / PaloAlto / Rochester
\usetheme[hideothersubsections]{Goettingen}
\RequirePackage{pgf}
\RequirePackage{tikz}
\RequirePackage{pdfrender}
\tikzset{
rectangle with rounded corners north west/.initial=4pt,
rectangle with rounded corners south west/.initial=4pt,
rectangle with rounded corners north east/.initial=4pt,
rectangle with rounded corners south east/.initial=4pt,
}
%\makeatletter
\pgfdeclareshape{rectangle with rounded corners}{
\inheritanchorborder[from=rectangle]
\savedmacro{\neoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\let\neoffset\pgf@rectc
}
\savedmacro{\nwoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\let\nwoffset\pgf@rectc
}
\savedmacro{\seoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\let\seoffset\pgf@rectc
}
\savedmacro{\swoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\let\swoffset\pgf@rectc
}
\savedanchor{\north}{
\pgf@y=.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\south}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\savedanchor{\east}{
\pgf@y=0pt
\pgf@x=.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
}
\savedanchor{\west}{
\pgf@y=0pt
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
}
\savedanchor{\northeast}{
\pgf@y=.5\ht\pgfnodeparttextbox % height of the box
\pgf@x=.5\wd\pgfnodeparttextbox % width of the box
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\southwest}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
% \pgf@x=0pt
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\anchor{text}{%
\northeast%
\pgf@x=-.5\wd\pgfnodeparttextbox%
\pgfmathsetlength{\pgf@y}{-.5ex}
}
\anchor{north east}{
\northeast
\pgfmathsetmacro{\nw}{(1-sin(45))*\neoffset}
\addtolength{\pgf@x}{-\nw pt}
\addtolength{\pgf@y}{-\nw pt}
}
\anchor{center}{
\pgf@x=0pt
\pgf@y=0pt
}
\anchor{south west}{
\southwest
\pgfmathsetmacro{\nw}{(1-sin(45))*\swoffset}
\addtolength{\pgf@x}{\nw pt}
\addtolength{\pgf@y}{\nw pt}
}
\anchor{north west}{
\northeast
\pgfmathsetmacro{\temp@x}{\pgf@x}
\southwest
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\northeast
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\
\pgfmathsetmacro{\nw}{(1-sin(45))*\nwoffset}
\def\pgf@xaa{\pgf@xa+\nw}
\def\pgf@yaa{\pgf@y-\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south east}{
\southwest
\pgfmathsetmacro{\temp@x}{\pgf@x}
\northeast
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\southwest
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\pgfmathsetmacro{\nw}{(1-sin(45))*\seoffset}
\def\pgf@xaa{\pgf@xa-\nw}
\def\pgf@yaa{\pgf@y+\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south}{\south}
\anchor{north}{\north}
\anchor{east}{\east}
\anchor{west}{\west}
\backgroundpath{% this is new
% store lower right in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% construct main path
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathclose
}
}
\pgfdeclareimage[width=1.4em]{uniheader}{\meta/config/images/logo}
\pgfdeclareimage[width=2.8em]{uniheadertitle}{\meta/config/images/logo}
\setbeamertemplate{blocks}[shadow=false]
\setbeamercovered{transparent}
\beamer@headheight=0.1\paperheight
\setbeamercolor*{Title bar}{fg=unibablueI}
\setbeamercolor*{Location bar}{fg=unibablueI,bg=white}
\setbeamercolor*{frametitle}{parent=Title bar}
\setbeamercolor*{block title}{bg=unibablueI,fg=white}
\setbeamercolor*{block body}{bg=unibagrayV,fg=black}
\setbeamercolor*{block title alerted}{bg=nounibaredII,fg=white}
\setbeamercolor*{block body alerted}{bg=unibaredV,fg=black}
\setbeamercolor*{block title example}{bg=unibayellowII,fg=black}
\setbeamercolor*{block body example}{bg=unibayellowV,fg=black}
\setbeamercolor*{normal text}{bg=white,fg=black}
\setbeamercolor*{alerted text}{fg=nounibaredII}
\setbeamercolor*{section in head/foot}{fg=unibablueI}
\setbeamercolor*{item}{fg=unibablueI, bg=unibagrayV}
\usecolortheme[named=unibablueI]{structure}
\setbeamerfont{section in head/foot}{size=\tiny,series=\normalfont}
\setbeamerfont{frametitle}{size=\large}
\setbeamertemplate{title page}{
\begin{tikzpicture}[remember picture,overlay]
\node[
anchor=south east,
draw=unibablueV,
thin,
fill=unibablueV,
shape=rectangle with rounded corners,
minimum height=\paperheight-.2cm, minimum width=\beamer@sidebarwidth-.2cm,
rectangle with rounded corners north west=0pt,
rectangle with rounded corners south west=0pt,
rectangle with rounded corners north east=18pt,
rectangle with rounded corners south east=0pt,
] at ($(current page.south east)+(-.1,.1)$) (b) {};
\draw[anchor=north east] node(logo) at ($(b.north east)+(.15,.15)$) { \pgfuseimage{uniheadertitle} };
%\draw[unibablueI] node(uniba) [below of=logo, anchor=center]{\scriptsize\unibastring};
\end{tikzpicture}
\vskip-0.3\beamer@headheight
\begin{beamercolorbox}[sep=8pt]{institute}
\usebeamerfont{institute}\insertinstitute
\end{beamercolorbox}
\vskip2em\par
\begin{beamercolorbox}[sep=16pt]{title}
\usebeamerfont{title}\inserttitle\par%
\ifx\insertsubtitle\@empty%
\else%
\vskip0.25em%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\end{beamercolorbox}%
\vskip2em\par
\begin{beamercolorbox}[sep=16pt]{date}
\usebeamerfont{date}\insertdate
\end{beamercolorbox}\vskip-0.5em
\begin{beamercolorbox}[sep=16pt]{author}
\usebeamerfont{author}\insertauthor
\end{beamercolorbox}
\vfill
}
\setbeamertemplate{frametitle}
{
\ifx\insertframesubtitle\empty
\vskip+0.1cm
\usebeamerfont*{frametitle}\insertframetitle
\vskip+0.15cm
\else
\usebeamerfont*{frametitle}\insertframetitle
\vskip+0.1cm
\hskip+0.5cm\usebeamerfont*{framesubtitle}\insertframesubtitle
\vskip+0.15cm
\fi
}
%\setbeamertemplate{headline}
%{
% \vskip -\beamer@headheight
% \linethickness{0pt}
% \framelatex{
% \begin{beamercolorbox}[wd=\paperwidth,ht=\beamer@headheight]{Title bar}
% \usebeamerfont{section in head/foot}
% %\insertsectionnavigationhorizontal{0pt}{\hskip0.22cm}{}%
% \end{beamercolorbox}}
%}
\setbeamertemplate{footline}
{
\begin{tikzpicture}[remember picture, overlay]
\draw[thick, unibablueI] ($(current page.south west)+(.1,0.37\beamer@headheight)$) -- ($(current page.south east)+(-.1,0.37\beamer@headheight)$);
\end{tikzpicture}
\linethickness{0pt}
\framelatex{
\begin{beamercolorbox}[leftskip=0.2cm, rightskip=0.2cm, wd=\paperwidth,ht=0.35\beamer@headheight,sep=0.05cm]{Location bar}
\usebeamerfont{section in head/foot}%
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south west] at ($(current page.south west)+(.1,0)$){\insertshorttitle \ | \insertshortauthor \ | \insertshortinstitute};
\node[anchor=south] at (current page.south){\ifgit\gitMarkFormat{\gitMarkPref\,\textbullet{}\,\gitMark}\fi};
\node[anchor=south east] at ($(current page.south east)+(-.1,0)$){\insertframenumber/\inserttotalframenumber};
\end{tikzpicture}
\end{beamercolorbox}}
}
\setbeamertemplate{sidebar canvas \beamer@sidebarside}[vertical shading]
[top=white,bottom=white]
\setbeamertemplate{sidebar \beamer@sidebarside}
{
\begin{tikzpicture}[remember picture,overlay]
\node[
anchor=south east,
draw=unibablueV,
thin,
fill=unibablueV,
shape=rectangle with rounded corners,
minimum height=\paperheight-.2cm, minimum width=\beamer@sidebarwidth-.2cm,
rectangle with rounded corners north west=0pt,
rectangle with rounded corners south west=0pt,
rectangle with rounded corners north east=18pt,
rectangle with rounded corners south east=0pt,
] at ($(current page.south east)+(-.1,.1)$) (b) {};
\draw[anchor=north east] node(logo) at ($(b.north east)+(.15,.15)$) { \pgfuseimage{uniheadertitle} };
\end{tikzpicture}
\vskip12em%
\hskip1em\insertverticalnavigation{\beamer@sidebarwidth}%
\vfill
\ifx\beamer@sidebarside\beamer@lefttext%
\else%
\usebeamercolor{normal text}%
\llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
\vskip2pt%
\fi%
%
\ifx\beamer@sidebarside\beamer@lefttext%
\defbeamertemplate*{sidebar right}{sidebar theme}
{%
\vfill%
\llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
\vskip2pt}
\fi
}

View File

@ -1,250 +0,0 @@
%Berkeley / Goettingen / Hannover / Marburg / PaloAlto / Rochester
\usetheme{Rochester}
\RequirePackage{pgf}
\RequirePackage{tikz}
\tikzset{
rectangle with rounded corners north west/.initial=4pt,
rectangle with rounded corners south west/.initial=4pt,
rectangle with rounded corners north east/.initial=4pt,
rectangle with rounded corners south east/.initial=4pt,
}
%\makeatletter
\pgfdeclareshape{rectangle with rounded corners}{
\inheritanchorborder[from=rectangle]
\savedmacro{\neoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\let\neoffset\pgf@rectc
}
\savedmacro{\nwoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\let\nwoffset\pgf@rectc
}
\savedmacro{\seoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\let\seoffset\pgf@rectc
}
\savedmacro{\swoffset}{
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\let\swoffset\pgf@rectc
}
\savedanchor{\north}{
\pgf@y=.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\south}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=0pt
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\savedanchor{\east}{
\pgf@y=0pt
\pgf@x=.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
}
\savedanchor{\west}{
\pgf@y=0pt
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
}
\savedanchor{\northeast}{
\pgf@y=.5\ht\pgfnodeparttextbox % height of the box
\pgf@x=.5\wd\pgfnodeparttextbox % width of the box
\addtolength{\pgf@x}{2ex}
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x<.5\pgf@xa
\pgf@x=.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y<.5\pgf@ya
\pgf@y=.5\pgf@ya
\fi
}
\savedanchor{\southwest}{
\pgf@y=-.5\ht\pgfnodeparttextbox
\pgf@x=-.5\wd\pgfnodeparttextbox
\addtolength{\pgf@x}{-2ex}
% \pgf@x=0pt
\setlength{\pgf@xa}{\pgfshapeminwidth}
\ifdim\pgf@x>-.5\pgf@xa
\pgf@x=-.5\pgf@xa
\fi
\setlength{\pgf@ya}{\pgfshapeminheight}
\ifdim\pgf@y>-.5\pgf@ya
\pgf@y=-.5\pgf@ya
\fi
}
\anchor{text}{%
\northeast%
\pgf@x=-.5\wd\pgfnodeparttextbox%
\pgfmathsetlength{\pgf@y}{-.5ex}
}
\anchor{north east}{
\northeast
\pgfmathsetmacro{\nw}{(1-sin(45))*\neoffset}
\addtolength{\pgf@x}{-\nw pt}
\addtolength{\pgf@y}{-\nw pt}
}
\anchor{center}{
\pgf@x=0pt
\pgf@y=0pt
}
\anchor{south west}{
\southwest
\pgfmathsetmacro{\nw}{(1-sin(45))*\swoffset}
\addtolength{\pgf@x}{\nw pt}
\addtolength{\pgf@y}{\nw pt}
}
\anchor{north west}{
\northeast
\pgfmathsetmacro{\temp@x}{\pgf@x}
\southwest
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\northeast
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\
\pgfmathsetmacro{\nw}{(1-sin(45))*\nwoffset}
\def\pgf@xaa{\pgf@xa+\nw}
\def\pgf@yaa{\pgf@y-\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south east}{
\southwest
\pgfmathsetmacro{\temp@x}{\pgf@x}
\northeast
\pgfmathsetmacro{\temp@xtwo}{\pgf@x}
\southwest
\pgfmathsetmacro{\xdiff}{\temp@x-\temp@xtwo}
\def\pgf@xa{\pgf@x-\xdiff}
\pgfmathsetmacro{\nw}{(1-sin(45))*\seoffset}
\def\pgf@xaa{\pgf@xa-\nw}
\def\pgf@yaa{\pgf@y+\nw}
\pgfpoint{\pgf@xaa}{\pgf@yaa}
}
\anchor{south}{\south}
\anchor{north}{\north}
\anchor{east}{\east}
\anchor{west}{\west}
\backgroundpath{% this is new
% store lower right in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% construct main path
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners north east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south east}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfkeysgetvalue{/tikz/rectangle with rounded corners south west}{\pgf@rectc}
\pgfsetcornersarced{\pgfpoint{\pgf@rectc}{\pgf@rectc}}
\pgfpathclose
}
}
%\makeatother
\pgfdeclareimage[width=0.115\textwidth]{uniheader}{\meta/config/images/logow}
\setbeamertemplate{blocks}[shadow=false]
\setbeamercovered{transparent}
\beamer@headheight=0.13\paperwidth
\setbeamercolor*{Title bar}{fg=white}
\setbeamercolor*{Location bar}{fg=unibablueI,bg=unibagrayV}
\setbeamercolor*{frametitle}{parent=Title bar}
\setbeamercolor*{block title}{bg=unibablueI,fg=white}
\setbeamercolor*{block body}{bg=unibagrayV,fg=black}
\setbeamercolor*{block title alerted}{bg=nounibaredII,fg=white}
\setbeamercolor*{block body alerted}{bg=unibaredV,fg=black}
\setbeamercolor*{block title example}{bg=unibayellowII,fg=black}
\setbeamercolor*{block body example}{bg=unibayellowV,fg=black}
\setbeamercolor*{normal text}{bg=white,fg=black}
\setbeamercolor*{alerted text}{fg=nounibaredII}
\setbeamercolor*{section in head/foot}{bg=unibablueI,fg=white}
\setbeamercolor*{item}{fg=unibablueI, bg=unibagrayV}
\usecolortheme[named=nounibagreenII]{structure}
\setbeamerfont{section in head/foot}{size=\tiny,series=\normalfont}
\setbeamerfont{frametitle}{size=\large}
\setbeamertemplate{frametitle}
{
\vskip-0.3\beamer@headheight
\vskip-\baselineskip
\vskip-0.2cm
\hskip-0.5cm\usebeamerfont*{frametitle}\insertframetitle
\vskip+0.1cm
\hskip-0.25cm\usebeamerfont*{framesubtitle}\insertframesubtitle
\vskip+0.15cm
}
\setbeamertemplate{headline}
{
\begin{tikzpicture}
\node[
anchor=south west,
draw=unibablueI,
thin,
fill=unibablueI,
shape=rectangle with rounded corners,
minimum height=\beamer@headheight, minimum width=\textwidth,
rectangle with rounded corners north west=0pt,
rectangle with rounded corners south west=0pt,
rectangle with rounded corners north east=25pt,
rectangle with rounded corners south east=0pt,
] at (0,0) (b) {};
\draw (b.east) +(-.7em,0) node(logo) [anchor=east] { \pgfuseimage{uniheader} };
\draw[white] node(uniba) [left of=logo, anchor=east]{\scriptsize\uni};
\end{tikzpicture}
\vskip -1.75cm
\linethickness{0pt}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.3\beamer@headheight]{Title bar}
\usebeamerfont{section in head/foot}%
\insertsectionnavigationhorizontal{0pt}{\hskip0.22cm}{}%
\end{beamercolorbox}}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.7\beamer@headheight]{Title bar}
\end{beamercolorbox}}
}
\setbeamertemplate{footline}
{
\linethickness{0.2pt}
\framelatex{
\begin{beamercolorbox}[leftskip=.3cm,wd=\paperwidth,ht=0.25\beamer@headheight,sep=0.1cm]{Location bar}
\usebeamerfont{section in head/foot}%
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south west] at ($(current page.south west)+(.1,0)$){\insertshorttitle \ | \insertshortauthor \ | \insertshortinstitute};
\node[anchor=south] at (current page.south){\ifgit\gitMarkFormat{\gitMarkPref\,\textbullet{}\,\gitMark}\fi};
\node[anchor=south east] at ($(current page.south east)+(-.1,0)$){\insertframenumber/\inserttotalframenumber};
\end{tikzpicture}
\end{beamercolorbox}}
}

View File

@ -1,138 +0,0 @@
% gitexinfo.sty
% Copyright 2015 Brent Longborough
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% The Current Maintainer of this work is Brent Longborough.
%
% This work consists of these files:
% gitinfo2.sty, gitexinfo.sty, gitinfo2.tex, gitinfo2.pdf,
% gitinfo2test.tex, post-xxx-sample.txt,
% and gitHeadLocal.gin
% -----------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{gitexinfo}[2015/11/22 v2.0.7 Auxiliary package for gitinfo2]
\SetupKeyvalOptions{family=gitinfo,prefix=gitInf@}
\DeclareStringOption{shash}
\DeclareStringOption{lhash}
\DeclareStringOption{authname}
\DeclareStringOption{authemail}
\DeclareStringOption{authsdate}
\DeclareStringOption{authidate}
\DeclareStringOption{authudate}
\DeclareStringOption{commname}
\DeclareStringOption{commemail}
\DeclareStringOption{commsdate}
\DeclareStringOption{commidate}
\DeclareStringOption{commudate}
\DeclareStringOption{refnames}
\DeclareStringOption{firsttagdescribe}
\DeclareStringOption{reltag}
\ProcessKeyvalOptions*
\renewcommand{\gitAbbrevHash}{\gitInf@shash}
\renewcommand{\gitHash}{\gitInf@lhash}
\renewcommand{\gitAuthorName}{\detokenize\expandafter{\gitInf@authname}}
\renewcommand{\gitAuthorEmail}{\gitWrapEmail{\gitInf@authemail}}
\renewcommand{\gitAuthorDate}{\gitInf@authsdate}
\renewcommand{\gitAuthorIsoDate}{\gitInf@authidate}
\renewcommand{\gitAuthorUnixDate}{\gitInf@authudate}
\renewcommand{\gitCommitterName}{\detokenize\expandafter{\gitInf@commname}}
\renewcommand{\gitCommitterEmail}{\gitWrapEmail{\gitInf@commemail}}
\renewcommand{\gitCommitterDate}{\gitInf@commsdate}
\renewcommand{\gitCommitterIsoDate}{\gitInf@commidate}
\renewcommand{\gitCommitterUnixDate}{\gitInf@commudate}
\renewcommand{\gitFirstTagDescribe}{\detokenize\expandafter{\gitInf@firsttagdescribe}}
\renewcommand{\gitReferences}{\detokenize\expandafter{\gitInf@refnames}}
\newcommand{\git@vtag}[1]{%
\def\do##1{%
\StrCut{##1}{tag: }\lcut\rcut%
\IfEq{\rcut}{}{%
\IfDecimal{\lcut}{% case where we have decimal e.g. 1.0
\renewcommand{\gitVtag}{\lcut}
\renewcommand{\gitVtags}{\space\lcut}
\renewcommand{\gitVtagn}{\space\lcut}
\listbreak
}{}%
}{%
\IfDecimal\rcut{% case where we have string: decimal e.g. tag: 1.0
\renewcommand{\gitVtag}{\rcut}
\renewcommand{\gitVtags}{\space\rcut}
\renewcommand{\gitVtagn}{\space\rcut}
\listbreak
}{}%
}%
}%
\expandafter\docsvlist\expandafter{#1}%
\StrDel{#1}{(}[\bcut]%
\StrDel{\bcut}{)}[\bcut]%
\IfSubStr{\bcut}{->}{% git version 2+?
\StrBetween{\bcut,}{HEAD -> }{,}[\bcut]% yes - no problem
}{%
\StrCount{\bcut}{, }[\xcut]%
\IfEq{\xcut}{0}{% detached head?
}{% no
\StrCut[\xcut]{\bcut}{, }{\lcut}{\bcut}% git vv < 2 - take last token
}% (not always accurate)
}
\IfEq{\bcut}{}{}{%
\IfEq{\bcut}{HEAD}{% detached head?
}{% no - we have the branch name
\renewcommand{\gitBranch}{\detokenize\expandafter{\bcut}}%
}%
}%
}%
\newcommand{\git@taglist}[1]{%
\def\do##1{%
\StrCut{##1}{tag: }\llcut\rrcut%
\IfEq{\rrcut}{}{%
\IfDecimal{\llcut}{% case where we have decimal e.g. 1.0
\StrGobbleLeft{\gitTags,\space\llcut}{0}[\gitTags]
}{}%
}{%
\StrGobbleLeft{\gitTags,\space\rrcut}{0}[\gitTags]
}%
}%
\expandafter\docsvlist\expandafter{#1}%
\StrGobbleLeft{\gitTags}{2}[\gitTags]
}%
\newcommand{\git@rtag}[1]{%
\IfEq{#1}{}{}{%
\StrRight{#1}{2}[\gitInf@dirtflag]
\StrDel{#1}{-*}[\gitInf@describe]
\IfEq{\gitInf@dirtflag}{-*}{\renewcommand{\gitDirty}{\gitInf@dirty}}{}
\StrGobbleRight{\gitInf@describe}{9}[\gitInf@describe]% Remove -g<hash>
\StrCount{\gitInf@describe}{-}[\gitInf@mcount]% Find last -
\StrCut[\gitInf@mcount]{\gitInf@describe}{-}{\gitInf@rel}{\gitInf@off}
\renewcommand{\gitRel}{\detokenize\expandafter{\gitInf@rel}}
\renewcommand{\gitRels}{\space\gitRel}
\renewcommand{\gitReln}{\space\gitRel}
\renewcommand{\gitRoff}{\gitInf@off}
\renewcommand{\gitDescribe}{#1}
}%
}%
\git@vtag{\gitInf@refnames}
\git@taglist{\gitInf@refnames}
\git@rtag{\gitInf@reltag}
\newcommand{\git@tagmark}{}
\IfEq{\gitTags}{}{%
\renewcommand{\gitTags}{\gitInf@notags}
\ifbool{gitInf@marknotags}{%
\renewcommand{\git@tagmark}{\\Head tags: \gitTags}
}{%
}
}{%
\renewcommand{\git@tagmark}{\\Head tags: \gitTags}
}
\renewcommand{\gitMark}{%
Branch: \gitBranch\,@\,\gitAbbrevHash{}
\textbullet{}
Release:\gitReln{}
(\gitAuthorDate)\git@tagmark%
}

View File

@ -1,218 +0,0 @@
% gitinfo2.sty
% Copyright 2015 Brent Longborough
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% The Current Maintainer of this work is Brent Longborough.
%
% This work consists of these files:
% gitinfo2.sty, gitexinfo.sty, gitinfo2.tex, gitinfo2.pdf,
% gitinfo2test.tex, post-xxx-sample.txt,
% and gitHeadLocal.gin
% -----------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{gitinfo2}[2015/11/22 v2.0.7 git revision information]
\RequirePackage{etoolbox}
\RequirePackage{xstring}
\RequirePackage{kvoptions}
\RequirePackage{eso-pic}
\SetupKeyvalOptions{family=gitinfo,prefix=gitInf@}
\DeclareBoolOption{draft}
\DeclareBoolOption{grumpy}
\DeclareBoolOption{local}
\DeclareBoolOption{pcount}
\DeclareBoolOption{footinfo}
\DeclareBoolOption{mark}
\DeclareBoolOption{markifdraft}
\DeclareBoolOption{markifdirty}
\DeclareBoolOption{marknotags}
\DeclareStringOption[(None)]{missing}
\DeclareStringOption[(None)]{notags}
\DeclareStringOption[(*)]{dirty}
\DeclareStringOption[4]{maxdepth}
\DeclareStringOption[1.5\baselineskip]{raisemark}
\ProcessKeyvalOptions*
\newcommand{\gitAbbrevHash}{\gitInf@missing}
\newcommand{\gitHash}{\gitInf@missing}
\newcommand{\gitAuthorName}{\gitInf@missing}
\newcommand{\gitAuthorEmail}{\gitInf@missing}
\newcommand{\gitAuthorDate}{\gitInf@missing}
\newcommand{\gitAuthorIsoDate}{\gitInf@missing}
\newcommand{\gitAuthorUnixDate}{\gitInf@missing}
\newcommand{\gitCommitterName}{\gitInf@missing}
\newcommand{\gitCommitterEmail}{\gitInf@missing}
\newcommand{\gitCommitterDate}{\gitInf@missing}
\newcommand{\gitCommitterIsoDate}{\gitInf@missing}
\newcommand{\gitCommitterUnixDate}{\gitInf@missing}
\newcommand{\gitTags}{}
\newcommand{\gitFirstTagDescribe}{\gitInf@missing}
\newcommand{\gitReferences}{\gitInf@missing}
\newcommand{\gitBranch}{\gitInf@missing}
\newcommand{\gitVtag}{}
\newcommand{\gitVtags}{}
\newcommand{\gitVtagn}{\space\gitInf@missing}
\newcommand{\gitRel}{}
\newcommand{\gitRels}{}
\newcommand{\gitReln}{\space\gitInf@missing}
\newcommand{\gitDirty}{}
\newcommand{\gitRoff}{}
\newcommand{\gitDescribe}{(None)}
\newcommand{\gitMarkPref}{[git]}
\@ifpackageloaded{xcolor}{%
\newcommand{\gitMarkFormat}{\color{gray}\small\sffamily}%
}{%
\newcommand{\gitMarkFormat}{\small\sffamily}%
}
\newcommand{\gitMark}{}
\newcommand{\gitWrapEmail}[1]{#1}
% private values
\newif\ifGI@is@a@repo@
% private constants
\providecommand{\GI@repo@prefix}{}
\ifbool{gitInf@local}{%
\providecommand{\GI@githeadinfo@file}{gitHeadLocal.gin}
\def\gitInf@maxdepth{0}
}{%
\providecommand{\GI@githeadinfo@file}{\GI@repo@prefix.git/gitHeadInfo.gin}
}
\newcommand{\gitInf@dirtflag}{}
\newcommand{\gitInf@describe}{}
\newcommand{\gitInf@mcount}{}
\newcommand{\gitInf@rel}{}
\newcommand{\gitInf@off}{}
% \TeX{}nical tools
\newcommand\GI@export@macro[1]{%
\edef\@tempa{\endgroup
\def\noexpand#1{#1}}%
\@tempa}
% finding the .git directory
\newcommand\GI@check@repo@prefix{%
\GI@is@a@repo@true
\IfFileExists{./\GI@githeadinfo@file}{%
\edef\GI@repo@prefix{./}%
}{%
\GI@set@repo@prefix}}
\newcommand\GI@set@repo@prefix{%
\begingroup \count@\gitInf@maxdepth\relax
\GI@set@repo@prefix@}
\newcommand\GI@set@repo@prefix@{%
\advance\count@\m@ne
\ifnum\count@<\z@
% \expandafter\GI@not@a@git@repo
\endgroup\relax
\else
\edef\GI@repo@prefix{../\GI@repo@prefix}%
\IfFileExists{\GI@githeadinfo@file}{%
\PackageInfo{gitinfo2}{%
gitinfo2 found : \GI@githeadinfo@file \MessageBreak
}%
\GI@export@macro\GI@githeadinfo@file
}{%
\expandafter\GI@set@repo@prefix@}%
\fi}
\GI@check@repo@prefix
\InputIfFileExists{\GI@githeadinfo@file}{}{%
\ifbool{gitInf@grumpy}{%
\PackageError{gitinfo2}{I can't find the file '\GI@githeadinfo@file'\MessageBreak
Please check the manual (gitinfo2.pdf) \MessageBreak
if you need more details}{}
}{%
\PackageWarningNoLine{gitinfo2}{I can't find the file '\GI@githeadinfo@file'.\MessageBreak
All git metadata has been set to '\gitInf@missing'}
}
}
% ---------------------------------------------------------------------
% Memoir support
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\@ifclassloaded{memoir}{%
\ifbool{gitInf@pcount}{
\newcommand{\@gitPage}{\thepage/\thelastpage}
\addtodef{\frontmatter}{\renewcommand{\@gitPage}{\thepage}}{}
\addtodef{\mainmatter}{}{\renewcommand{\@gitPage}{\thepage/\thelastpage}}
}{%
\newcommand{\@gitPage}{\thepage}
}
\newcommand{\@gitFootRev}{Release\gitRels: \gitAbbrevHash{} (\gitAuthorDate)}
\newcommand{\@gitrFootRev}{%
\tiny\textsf{\raggedleft \@gitFootRev}%
}%
\newcommand{\@gitlFootRev}{%
\tiny\textsf{\@gitFootRev}%
}%
\copypagestyle{giplain}{plain}
\copypagestyle{giruled}{ruled}
\copypagestyle{giheadings}{headings}
\makeevenfoot{giplain}{\@gitPage}{}{\@gitrFootRev}
\makeoddfoot{giplain}{\@gitlFootRev}{}{\@gitPage}
\makeevenfoot{giruled}{\@gitPage}{}{\@gitrFootRev}
\makeoddfoot{giruled}{\@gitlFootRev}{}{\@gitPage}
\makeevenfoot{giheadings}{\@gitPage}{}{\@gitrFootRev}
\makeoddfoot{giheadings}{\@gitlFootRev}{}{\@gitPage}
\makeevenhead{giheadings}{}{}{\slshape\leftmark}
\makeoddhead{giheadings}{\slshape\rightmark}{}{}
}{}%
% ---------------------------------------------------------------------
% Watermarking
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\ifbool{gitInf@markifdirty}{%
\IfEq{\gitDirty}{}{}{%
\booltrue{gitInf@mark}
\renewcommand{\gitMarkPref}{[Dirty]}
}%
}{}%
\ifbool{gitInf@markifdraft}{%
\ifbool{gitInf@draft}{%
\booltrue{gitInf@mark}
\renewcommand{\gitMarkPref}{[Draft]}
}{}%
}{}%
\ifbool{gitInf@mark}{%
\AddToShipoutPictureBG{%
\AtPageLowerLeft{%
\raisebox{\gitInf@raisemark}{%
\makebox[\paperwidth]{%
\begin{minipage}[b]{\paperwidth}%
\renewcommand{\baselinestretch}{1}%
\centering{\gitMarkFormat\gitMarkPref{} \textbullet{} \gitMark}%
\end{minipage}%
}%
}%
}%
}%
}{}%
% ---------------------------------------------------------------------
% Datetime integration
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\@ifpackageloaded{datetime2}{%
\IfEq{\gitAuthorDate}{\gitInf@missing}{%
\DTMsavedate{gitdate}{\THEDAY-\THEMONTH-\THEYEAR}
}{%
\StrCut{\gitAuthorDate}{-}{\gitInf@year}{\gitInf@md}
\StrCut{\gitInf@md}{-}{\gitInf@month}{\gitInf@day}
\DTMsavenoparsedate{gitdate}{\gitInf@year}{\gitInf@month}{\gitInf@day}{-1}
}
}{}%
\@ifpackageloaded{datetime}{%
\IfEq{\gitAuthorDate}{\gitInf@missing}{%
\newdate{gitdate}{\THEDAY}{\THEMONTH}{\THEYEAR}
}{%
\StrCut{\gitAuthorDate}{-}{\gitInf@year}{\gitInf@md}
\StrCut{\gitInf@md}{-}{\gitInf@month}{\gitInf@day}
\newdate{gitdate}{\gitInf@day}{\gitInf@month}{\gitInf@year}
}
}{}%

View File

@ -81,25 +81,6 @@ compress
\section*{} \section*{}
\phantomsection \phantomsection
\begin{frame}{First things first}\framesubtitle{Hardwareausgabe}
\begin{itemize}
\item Verfügbare Sets: 20
\item Reserviert: ~19
\item Kosten: \EUR{8} pro Set
\begin{itemize}
\item Bank of WIAI
\item \url{https://www.paypal.me/clkl/8}
\item Cash
\end{itemize}
\end{itemize}
\begin{figure}[H]
%\centering
%\flushright
\includegraphics[width=.3\textwidth]{qr}
\label{img:qr}
\end{figure}
\end{frame}
\begin{frame}{Content} \begin{frame}{Content}
\tableofcontents \tableofcontents
\end{frame} \end{frame}
@ -137,7 +118,6 @@ Cooler: \href{https://micropython.org/}{MicroPython}
\item Frei \& Open Source \item Frei \& Open Source
\item Einige Funktionalität eingeschränkt (z.B. Multithreading) \item Einige Funktionalität eingeschränkt (z.B. Multithreading)
\item Verscheidene Boards/Controller unterstützt: PyBoard, ESP32, \dots \item Verscheidene Boards/Controller unterstützt: PyBoard, ESP32, \dots
\item Doku: \url{http://docs.micropython.org/en/latest/esp8266/index.html} (\url{http://iot.wiai/doc})
\end{itemize} \end{itemize}
Lowlevel: C, Arduino Studio Lowlevel: C, Arduino Studio
\end{frame} \end{frame}
@ -163,7 +143,7 @@ Windows
\end{itemize} \end{itemize}
Mac Mac
\begin{itemize} \begin{itemize}
\item Homebrew (\url{https://brew.sh}) installieren + \texttt{brew install python3 \&\& pip install esptool} \item Irgendwie so ähnlich\dots
\end{itemize} \end{itemize}
Offline pip: \textit{pip install -f http://iot.wiai/webrepl/}%TODO: --no-index? Offline pip: \textit{pip install -f http://iot.wiai/webrepl/}%TODO: --no-index?
\end{frame} \end{frame}
@ -173,15 +153,12 @@ Offline pip: \textit{pip install -f http://iot.wiai/webrepl/}%TODO: --no-index?
Windows-Spezial: Windows-Spezial:
\begin{itemize} \begin{itemize}
\item Portbezeichner: Gerätemanager $\rightarrow$ Serielle Geräte (COM+LPT) $\rightarrow$ COM$X$ \item Portbezeichner: Gerätemanager $\rightarrow$ Serielle Geräte (COM+LPT) $\rightarrow$ COM$X$
\item python -m esptool
\end{itemize} \end{itemize}
Flashen: Flashen:
\begin{itemize} \begin{itemize}
\item \url{https://micropython.org/download\#esp8266} %TODO: WIAI-link \item \url{https://micropython.org/download\#esp8266} %TODO: WIAI-link
\item[*nix] \texttt{esptool.py --port /dev/ttyUSB0 erase\_flash} \item \texttt{esptool.py --port /dev/ttyUSB0 erase\_flash}
\item[win] \texttt{python -m esptool --port COM12 erase\_flash} \item \texttt{esptool.py --port /dev/ttyUSB0 --baud 460800 write\_flash --flash\_size=detect 0 esp8266-20170823-v1.9.2.bin}
\item[*nix] \texttt{esptool.py --port /dev/ttyUSB0 --baud 460800 write\_flash --flash\_size=detect 0 esp8266-20170823-v1.9.2.bin}
\item[win] \texttt{python -m esptool --port COM12 --baud 460800 write\_flash --flash\_size=detect 0 esp8266-20170823-v1.9.2.bin}
\item reset \item reset
\end{itemize} \end{itemize}
\end{frame} \end{frame}
@ -193,27 +170,27 @@ Flashen:
\item \texttt{picocom -b 115200 /dev/ttyUSB0} \item \texttt{picocom -b 115200 /dev/ttyUSB0}
\item $n$ beherzte \textit{<ENTER>}-Drücke \item $n$ beherzte \textit{<ENTER>}-Drücke
\item Docker: \texttt{docker-compose run esp} (evtl. TTY anpassen) \item Docker: \texttt{docker-compose run esp} (evtl. TTY anpassen)
\item[exit] Ctrl-a Ctrl-x
\end{itemize} \end{itemize}
Windows: Windows:
\begin{itemize} \begin{itemize}
\item PuTTY \item puTTY
\item Serielle Verbindung \item Serielle Verbindung
\item 115200 Baud \item 115200 Baud
\item $n$ beherzte \textit{<ENTER>}-Drücke \item $n$ beherzte \textit{<ENTER>}-Drücke
\end{itemize} \end{itemize}
%TODO: bild mit REPL (inkl ENTERs)
\end{frame} \end{frame}
\lstset{language=Python,captionpos=b} \lstset{language=Python,captionpos=b}
\begin{frame}{REPL} \begin{frame}{REPL}
\framesubtitle{Hello World!} \framesubtitle{Hello World!}
\image{.7\textwidth}{repl}{REPL}{img:repl} %TODO: bild
\end{frame} \end{frame}
\subsection{WLAN} \subsection{Wlan}
\begin{frame}[fragile]{WLAN}\framesubtitle{Put the I in IoT} \begin{frame}[fragile]{Wlan}\framesubtitle{Put the I in IoT}
\begin{lstlisting}[caption={Descriptive Caption Text},label=DescriptiveLabel] \begin{lstlisting}[caption={Descriptive Caption Text},label=DescriptiveLabel]
import network import network
sta_if = network.WLAN(network.STA_IF) sta_if = network.WLAN(network.STA_IF)
@ -234,30 +211,13 @@ import webrepl_setup
\end{lstlisting} \end{lstlisting}
\begin{itemize} \begin{itemize}
\item \textit{import webrepl\_setup} \item \textit{import webrepl\_setup}
\item reset/start webrepl (\textit{import webrepl \& webrepl.start()}) \item reset/start webrepl (import webrepl \& webrepl.start())
\item visit \url{http://iot.wiai/webrepl/} or \url{http://micropython.org/webrepl/} \item visit \url{http://iot.wiai/webrepl/} or \url{http://micropython.org/webrepl/}
\item enter your ESP's IP (\textit{sta\_if.ifconfig()}) \& connect \item enter your ESP's IP (\textit{sta\_if.ifconfig()}) \& connect
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\subsection{Init} \subsection{Init}
\begin{frame}[fragile]{main.py}
Wird beim starten ... gestartet
\begin{lstlisting}[caption={main.py},label=mainpy]
def connect_wifi(ssid, passphrase):
#TODO ;)
pass
def setup():
#TODO configure sensors, ...
pass
connect_wifi()
setup()
\end{lstlisting}
\end{frame}
\subsection{Exkurs: Flask-Server} \subsection{Exkurs: Flask-Server}
\begin{frame}[fragile]{Gegenseite: Flask} \begin{frame}[fragile]{Gegenseite: Flask}
\begin{lstlisting}[caption={C\&C Server},label=cnc] \begin{lstlisting}[caption={C\&C Server},label=cnc]
@ -274,16 +234,15 @@ Starten:
\begin{itemize} \begin{itemize}
\item[!] pip install Flask \item[!] pip install Flask
\item python server.py \item python server.py
\item[||] docker-compose up (server.py in src/) \item docker-compose up (server.py in src/)
\item[||] FLASK\_APP=server.py flask run \item FLASK\_APP=server.py flask run
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile]{Daten übertragen} \begin{frame}[fragile]{Daten übertragen}
\begin{lstlisting}[caption={HTTP Requests},label=http] \begin{lstlisting}[caption={HTTP Requests},label=http]
import urequests import urequests
host = "http://your.host.ip.here:5000" host = "http://your.host.ip.here:5000"
response = urequests.get(host) response = urequests.get(host)q
print(response) print(response)
import machine import machine
@ -299,21 +258,19 @@ urequests.post(post_url, data=data, headers=json_header)
\section{Basteln} \section{Basteln}
\subsection{Blinkende LED} \subsection{Blinkende LED}
\begin{frame}{LED anschließen} \begin{frame}{LED anschließen}
\image{.4\textwidth}{node-led}{LED \cite{node-led}}{img:led} TODO schema
\end{frame} \end{frame}
\begin{frame}[fragile]{LEDs} \begin{frame}[fragile]{LEDs}
\setbeamercovered{invisible} \begin{lstlisting}[caption={LED},label=led]
\lstset{tabsize=6}
\begin{lstlisting}[caption={LED},label=led,escapeinside={(*@}{@*)}]
import machine, time, math import machine, time, math
pin = machine.Pin(0, machine.Pin.OUT) pin = machine.Pin(0, machine.Pin.OUT)
pin.on() pin.on()
pin.off() pin.off()
(*@\onslide<2->@*)
pwm = machine.PWM(pin) pwm = machine.PWM(pin)
pwm.duty(512) pwm.duty(512)
pwm.deinit() pwm.deinit()
(*@\onslide<3->@*)
def pulse(l, t): def pulse(l, t):
for i in range(20): for i in range(20):
l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500)) l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500))
@ -323,23 +280,24 @@ pulse(led, 50)
for i in range(10): for i in range(10):
pulse(led, 20) pulse(led, 20)
\end{lstlisting} \end{lstlisting}
\end{frame} \end{frame}
\subsection{Schalter und Taster} \subsection{Schalter und Taster}
\begin{frame}[fragile]{Input} \begin{frame}[fragile]{Input}
\image{.35\textwidth}{button-nodemcu}{Taster \cite{node-button}}{img:button} TODO: schema
\begin{lstlisting}[caption={Input},label=input] \begin{lstlisting}[caption={Input},label=input]
import machine import machine
pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP) pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
# status = pin.value() status = pin.value()
def callback(p): def callback(p):
print('changed', p) print('changed', p)
pin.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING, handler=callback) pin.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING, handler=callback)
\end{lstlisting} \end{lstlisting}
\end{frame} \end{frame}
\subsection{Sensoren} \subsection{Sensoren}
\begin{frame}[fragile]{Sensoren} \begin{frame}[fragile]{Sensoren}
\image{.35\textwidth}{nodemcu-dht22}{DHT22 \cite{node-dht}}{img:dht} TODO: schema
\begin{lstlisting}[caption={Sensoren},label=senors] \begin{lstlisting}[caption={Sensoren},label=senors]
import dht import dht
import machine import machine
@ -350,16 +308,6 @@ d.humidity()
\end{lstlisting} \end{lstlisting}
\end{frame} \end{frame}
\subsection{Interrupts}
\begin{frame}{Here be dragons}
\begin{itemize}
\item Z.B. Callbacks von Tastern
\item pausieren main
\item dürfen keinen Speicher allozieren
\item Emergency exception buffer: \textit{micropython.alloc\_emergency\_exception\_buf(100)}
\end{itemize}
\cite{mp-interrupt}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% References %%%%%%%%%% %%%%%%%%%% References %%%%%%%%%%
@ -379,9 +327,7 @@ d.humidity()
\item \url{https://learn.adafruit.com/micropython-hardware-i2c-devices/overview} \item \url{https://learn.adafruit.com/micropython-hardware-i2c-devices/overview}
\item \url{http://luftdaten.info/} \item \url{http://luftdaten.info/}
\item \url{https://micropython-on-esp8266-workshop.readthedocs.io/en/latest/index.html} \item \url{https://micropython-on-esp8266-workshop.readthedocs.io/en/latest/index.html}
\item \url{http://micropython-iot-hackathon.readthedocs.io/en/latest/index.html}
\item MQTT, \href{http://nsq.io/}{nsq.io} \item MQTT, \href{http://nsq.io/}{nsq.io}
\item Dateisystem
\end{itemize} \end{itemize}
\end{frame} \end{frame}