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

View File

@ -1,4 +1,4 @@
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
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
\author[C\&F]{Clemens, Franz}
\title{IoT Night}
\subtitle{S stands for security}
\subtitle{ESP8266 \& parts}
%The day of the presentation
\date{\today}

View File

@ -7,11 +7,3 @@
@misc{micropython-doc,
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{fourier}
\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*{}
\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}
\tableofcontents
\end{frame}
@ -137,7 +118,6 @@ Cooler: \href{https://micropython.org/}{MicroPython}
\item Frei \& Open Source
\item Einige Funktionalität eingeschränkt (z.B. Multithreading)
\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}
Lowlevel: C, Arduino Studio
\end{frame}
@ -163,7 +143,7 @@ Windows
\end{itemize}
Mac
\begin{itemize}
\item Homebrew (\url{https://brew.sh}) installieren + \texttt{brew install python3 \&\& pip install esptool}
\item Irgendwie so ähnlich\dots
\end{itemize}
Offline pip: \textit{pip install -f http://iot.wiai/webrepl/}%TODO: --no-index?
\end{frame}
@ -173,15 +153,12 @@ Offline pip: \textit{pip install -f http://iot.wiai/webrepl/}%TODO: --no-index?
Windows-Spezial:
\begin{itemize}
\item Portbezeichner: Gerätemanager $\rightarrow$ Serielle Geräte (COM+LPT) $\rightarrow$ COM$X$
\item python -m esptool
\end{itemize}
Flashen:
\begin{itemize}
\item \url{https://micropython.org/download\#esp8266} %TODO: WIAI-link
\item[*nix] \texttt{esptool.py --port /dev/ttyUSB0 erase\_flash}
\item[win] \texttt{python -m esptool --port COM12 erase\_flash}
\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 \texttt{esptool.py --port /dev/ttyUSB0 erase\_flash}
\item \texttt{esptool.py --port /dev/ttyUSB0 --baud 460800 write\_flash --flash\_size=detect 0 esp8266-20170823-v1.9.2.bin}
\item reset
\end{itemize}
\end{frame}
@ -193,27 +170,27 @@ Flashen:
\item \texttt{picocom -b 115200 /dev/ttyUSB0}
\item $n$ beherzte \textit{<ENTER>}-Drücke
\item Docker: \texttt{docker-compose run esp} (evtl. TTY anpassen)
\item[exit] Ctrl-a Ctrl-x
\end{itemize}
Windows:
\begin{itemize}
\item PuTTY
\item puTTY
\item Serielle Verbindung
\item 115200 Baud
\item $n$ beherzte \textit{<ENTER>}-Drücke
\end{itemize}
%TODO: bild mit REPL (inkl ENTERs)
\end{frame}
\lstset{language=Python,captionpos=b}
\begin{frame}{REPL}
\framesubtitle{Hello World!}
\image{.7\textwidth}{repl}{REPL}{img:repl}
%TODO: bild
\end{frame}
\subsection{WLAN}
\begin{frame}[fragile]{WLAN}\framesubtitle{Put the I in IoT}
\subsection{Wlan}
\begin{frame}[fragile]{Wlan}\framesubtitle{Put the I in IoT}
\begin{lstlisting}[caption={Descriptive Caption Text},label=DescriptiveLabel]
import network
sta_if = network.WLAN(network.STA_IF)
@ -234,30 +211,13 @@ import webrepl_setup
\end{lstlisting}
\begin{itemize}
\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 enter your ESP's IP (\textit{sta\_if.ifconfig()}) \& connect
\end{itemize}
\end{frame}
\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}
\begin{frame}[fragile]{Gegenseite: Flask}
\begin{lstlisting}[caption={C\&C Server},label=cnc]
@ -274,16 +234,15 @@ Starten:
\begin{itemize}
\item[!] pip install Flask
\item python server.py
\item[||] docker-compose up (server.py in src/)
\item[||] FLASK\_APP=server.py flask run
\item docker-compose up (server.py in src/)
\item FLASK\_APP=server.py flask run
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Daten übertragen}
\begin{lstlisting}[caption={HTTP Requests},label=http]
import urequests
host = "http://your.host.ip.here:5000"
response = urequests.get(host)
response = urequests.get(host)q
print(response)
import machine
@ -299,21 +258,19 @@ urequests.post(post_url, data=data, headers=json_header)
\section{Basteln}
\subsection{Blinkende LED}
\begin{frame}{LED anschließen}
\image{.4\textwidth}{node-led}{LED \cite{node-led}}{img:led}
TODO schema
\end{frame}
\begin{frame}[fragile]{LEDs}
\setbeamercovered{invisible}
\lstset{tabsize=6}
\begin{lstlisting}[caption={LED},label=led,escapeinside={(*@}{@*)}]
\begin{lstlisting}[caption={LED},label=led]
import machine, time, math
pin = machine.Pin(0, machine.Pin.OUT)
pin.on()
pin.off()
(*@\onslide<2->@*)
pwm = machine.PWM(pin)
pwm.duty(512)
pwm.deinit()
(*@\onslide<3->@*)
def pulse(l, t):
for i in range(20):
l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500))
@ -323,23 +280,24 @@ pulse(led, 50)
for i in range(10):
pulse(led, 20)
\end{lstlisting}
\end{frame}
\subsection{Schalter und Taster}
\begin{frame}[fragile]{Input}
\image{.35\textwidth}{button-nodemcu}{Taster \cite{node-button}}{img:button}
TODO: schema
\begin{lstlisting}[caption={Input},label=input]
import machine
pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
# status = pin.value()
status = pin.value()
def callback(p):
print('changed', p)
pin.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING, handler=callback)
\end{lstlisting}
\end{frame}
\subsection{Sensoren}
\begin{frame}[fragile]{Sensoren}
\image{.35\textwidth}{nodemcu-dht22}{DHT22 \cite{node-dht}}{img:dht}
TODO: schema
\begin{lstlisting}[caption={Sensoren},label=senors]
import dht
import machine
@ -350,16 +308,6 @@ d.humidity()
\end{lstlisting}
\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 %%%%%%%%%%
@ -379,9 +327,7 @@ d.humidity()
\item \url{https://learn.adafruit.com/micropython-hardware-i2c-devices/overview}
\item \url{http://luftdaten.info/}
\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 Dateisystem
\end{itemize}
\end{frame}