From de75ef32d9b40f3b7608f5b4ffb0698cf3b95d94 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 26 May 2023 13:01:44 +0200 Subject: [PATCH] start docu for update_ptu --- doc/update_ptu.pdf | Bin 0 -> 59140 bytes doc/update_ptu.tex | 110 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 doc/update_ptu.pdf create mode 100644 doc/update_ptu.tex diff --git a/doc/update_ptu.pdf b/doc/update_ptu.pdf new file mode 100644 index 0000000000000000000000000000000000000000..657e8b374fe5ac5512aeb4c4fe6b8acd546da779 GIT binary patch literal 59140 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 literal 0 HcmV?d00001 diff --git a/doc/update_ptu.tex b/doc/update_ptu.tex new file mode 100644 index 0000000..08515af --- /dev/null +++ b/doc/update_ptu.tex @@ -0,0 +1,110 @@ +\documentclass[12pt]{article} +\usepackage{euler} +\usepackage[english]{babel} +\usepackage{lipsum} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=red]{hyperref} +\newcounter{Chapcounter} +\newcommand\showmycounter{\addtocounter{Chapcounter}{1}\themycounter} +\newcommand{\chapter}[1] +{{\centering + \addtocounter{Chapcounter}{1} \Large \underline{\textbf{ \color{blue} Chapter \theChapcounter: ~#1}} } + \addcontentsline{toc}{section}{ \color{blue} Chapter:~\theChapcounter~~ #1} +} +\hypersetup{colorlinks=true} +\hypersetup{linkcolor=black} + +\title{Update PTU} +\author{Gerhard Hoffmann} +\date{\today} + +\begin{document} +\maketitle +\chapter{Introduction} + \section{Motivation} + The two main components of a PSA are + \begin{itemize} + \item PTU software. + \item Device controller (DC) firmware. + \end{itemize} + While the DC firmware is basically the same for each PSA (even for different + customers), the PTU software is highly dependent on customer requirements.\par + Hence, each customer is assigned an own git-repository, which will be loaded + ("cloned") on the PSA when configuring the machine for the first time.\par + Two special tools, the {\bf UpdateController} (a \href{https://doc.qt.io/qt-5/}{Qt} + binary [{\bf \nameref{UpdateTool}}]) and the {\bf UpdateScript} + (a \href{https://www.gnu.org/software/bash/manual/bash.html}{bash} + script [{\bf \nameref{UpdateScript}}]), work together to finish a PSA installation.\par + + \section{PSA: Initial configuration} + For the initial configuration, a PSA loads a customer-specific git-repository, + which structure is detailed below [{\bf \nameref{repostructure}}].\par + The "git clone" for the repository is done by the UpdateScript [{\bf \nameref{UpdateScript}}]. + It updates the file + \begin{center} + \fbox{ + /opt/app/tools/atbupdate/update\_log.csv + } + \end{center} + which will be interpreted by the UpdateController [{\bf \nameref{UpdateTool}}]. + The structure of {\bf update\_log.csv} is detailed below [{\bf \nameref{updatelogcsv}}].\par + Each line of {\bf update\_log.csv} represents a command for the UpdateController, + which will either download certain files to the DC or execute some + \href{https://openwrt.org/docs/guide-user/additional-software/opkg}{opkg} + commands [{\bf \nameref{opkg}}]. + + \section{PSA: Update} + + \newpage + +\chapter{Update-Tool "up\_dev\_ctrl"} + \section{up\_dev\_ctrl} + \label{UpdateTool} + + The update-tool is a Qt binary ("up\_dev\_ctrl") and called by the + system-controller application. It is installed under + \begin{center} + \fbox{ + /opt/app/tools/atbupdate/up\_dev\_ctrl + } + \end{center} + + and has two responsibilities: + \begin{itemize} + \item Call update-script "update\_psa". + \item Update the device controller firmware. + \end{itemize} + \subsection{Calling the update-script "update\_psa"} + The update-script "update\_psa" is about executing all git-commands + necessary to clone and pull a customer repository. + + \newpage + +\chapter{Update-Script "update\_psa"} + \section{update\_psa} + \label{UpdateScript} + + Inside of such a + repository, there are at least the following directories: + \begin{itemize} + \item {\bf etc} + \item {\bf etc/dc}\newline + Contains the device controller firmware as binary file. + \item {\bf etc/psa\_config}\newline + Contains the printer template files (JSON). + \item {\bf etc/psa\_tariff}\newline + Contains the tariff files (JSON). + \item {\bf etc/psa\_update}\newline + Contains a single file for opkg-commands. + \end{itemize} + \newpage + +\chapter{Annex} + \section{Structure of a customer git-repository} + \label{repostructure} + + \section{Structure of "update\_log.csv"} + \label{updatelogcsv} + + \section{The package manager "opkg"} + \label{opkg} +\end{document}