\item Monitoring (Temperature, Electricity, Humidity, Heartbeat)
\item Acting (Servo's, Motors)
\item Tracking (GPS, WiFi tracking)
- \item Relaying (SMS, Whatsapp)
+ \item Communication (SMS, Whatsapp)
\pause{}
- \item Combinations: e.g. Thermostat
- \item Smart clothing, smart watches
+ \item Combinations: e.g. Thermostat, Smart Clothing, Smart Watches
\end{itemize}
\end{block}
\end{frame}
\pause{}
\item Heaps of communication methods: LoRa (Sigfox, KPN, TTN), BTLE, WiFi, ZigBee\ldots
\pause{}
- \item But\ldots
- \pause{}
\item Separated logic
\item Integration problems
- \item Reprogramming, write cycles
\end{itemize}
\end{frame}
\frametitle{And there is TOP/iTasks}
\begin{block}{iTasks}
\begin{itemize}[<+->]
- \item Basic blocks
+ \item Tasks are basic blocks
\item Generated web interface
\item Type driven
\item EDSL
\item iTasks server
\item IoT device client
\item EDSL to make IoT tasks
- \item Interpreted on the client
- \item No reprogramming
+ \item Internalship
\end{itemize}
- \pause{}
- Internalship
\end{frame}
\begin{frame}
\item Write client software
\item Write server software
\item Connect them up
+ \item But first some theory
+ \item Reprogramming, write cycles
\end{itemize}
\end{frame}
\begin{itemize}[<+->]
\item Read function
\item Write function
+ \item Both have access to the world
\end{itemize}
\end{block}
\end{lstlisting}
\end{frame}
-\begin{frame}[fragile]
- \frametitle{SDS (2)}
- \framesubtitle{Parametric Lenses}
- \begin{block}{What is the \CI{p} for in \CI{RWShared p r w}}
- \pause{}
- \begin{itemize}
- \item Parameter fixed when writing
- \item Used for notifications
- \end{itemize}
- \end{block}
-
- \begin{lstlisting}
-sdsFocus :: p1 (RWShared p1 r w) -> RWShared p2 r w | iTask p
-
-:: SDSNotifyPred p :== p -> Bool
-:: SDSLensRead p r rs = SDSRead (p -> rs -> MaybeError TaskException r)
- | SDSReadConst (p -> r)
-:: SDSLensWrite p w rs ws = SDSWrite (p -> rs -> w -> MaybeError TaskException (Maybe ws))
- | SDSWriteConst (p -> w -> MaybeError TaskException (Maybe ws))
-:: SDSLensNotify p w rs = SDSNotify (p -> rs -> w -> SDSNotifyPred p)
- | SDSNotifyConst (p -> w -> SDSNotifyPred p)
-
-sdsLens :: String (p -> ps) (SDSLensRead p r rs) (SDSLensWrite p w rs ws)
- (SDSLensNotify p w rs) (RWShared ps rs ws) -> RWShared p r w | iTask ps
- \end{lstlisting}
-\end{frame}
-
\begin{frame}
- \frametitle{Why add IoT devices to iTasks}
- \begin{block}{Why?}
- \begin{itemize}
- \item Execute Tasks
- \item Monitoring
- \item Hardware
- \end{itemize}
- \end{block}
-
- \pause{}
-
- \begin{block}{Current possibilities}
- \begin{itemize}
- \item Implement a device as an SDS
- \pause{}
- \item Tailor made SDS for every task
- \item Difficult to get logic in
- \pause{}
- \item Arjan's Distributed iTasks
- \pause{}
- \item Requires fast hardware
- \pause{}
- \end{itemize}
- \end{block}
-\end{frame}
-
-\begin{frame}
- \frametitle{Solution}
- \pause{}
- \begin{block}{EDSL to the rescue}
- \pause{}
- After the break.
- \end{block}
+ \frametitle{But not all Tasks or SDSs are suitable for microcontrollers\ldots}
+ \pause\centering\Large EDSLs to the rescue
\end{frame}