fix favicon
fix some documentation
@ -2,13 +2,18 @@
|
||||
\page api.html
|
||||
\title Overview of guh API's
|
||||
|
||||
The guh server provides two different API's:
|
||||
The guh server provides two different API's:
|
||||
\list
|
||||
\li \l{JSON-RPC API}{JSON-RPC}
|
||||
\li \l{https://github.com/guh/guh/wiki/REST-Api-documentation}{REST}
|
||||
\endlist
|
||||
|
||||
|
||||
|
||||
The \l{https://github.com/guh/guh/wiki/REST-Api-documentation}{REST API} is accessable on the \l{guhserver::WebServer}{WebServer}. The JSON-RPC API can be accessed from the \l {guhserver::TcpServer}{TcpServer} and the \l {guhserver::WebSocketServer}{WebSocketServer} interface. The command line interface \b {\tt guh-cli} communicates with the \l {guhserver::TcpServer}{TcpServer} and \l {JSON-RPC API}. The \b {\tt guh-webinterface} uses the \l{guhserver::WebServer}{WebServer} with the \l{https://github.com/guh/guh/wiki/REST-Api-documentation}{REST-API} and catches notifications from the \l {guhserver::WebSocketServer}{WebSocketServer}.
|
||||
|
||||
\image api-overview.png
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
include(html-template.qdocconf)
|
||||
|
||||
project = guh | documentation
|
||||
project = guh - developer
|
||||
description = Gear up your Home!
|
||||
|
||||
dita.metadata.default.author = Simon Stürz
|
||||
|
||||
BIN
doc/favicons/apple-touch-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
doc/favicons/apple-touch-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
doc/favicons/apple-touch-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
doc/favicons/apple-touch-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
doc/favicons/apple-touch-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
doc/favicons/apple-touch-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
doc/favicons/apple-touch-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
doc/favicons/apple-touch-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
doc/favicons/favicon-128.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
doc/favicons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 305 B |
BIN
doc/favicons/favicon-196x196.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
doc/favicons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 615 B |
BIN
doc/favicons/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
doc/favicons/favicon.ico
Normal file
|
After Width: | Height: | Size: 34 KiB |
57
doc/favicons/favicon.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
doc/favicons/mstile-144x144.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
doc/favicons/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
doc/favicons/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
doc/favicons/mstile-310x310.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
doc/favicons/mstile-70x70.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
@ -14,8 +14,28 @@ extraimages.HTML = images/logo.png \
|
||||
# Include the style sheets and scripts used.
|
||||
|
||||
HTML.headerstyles = \
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />\n" \
|
||||
" <link rel=\"shortcut icon\" type=\"image/ico\" href=\"favicon.ico\" />\n"
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"57x57\" href=\"apple-touch-icon-57x57.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"apple-touch-icon-114x114.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"apple-touch-icon-72x72.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"apple-touch-icon-144x144.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"60x60\" href=\"apple-touch-icon-60x60.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"120x120\" href=\"apple-touch-icon-120x120.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"76x76\" href=\"apple-touch-icon-76x76.png\" /> \n" \
|
||||
" <link rel=\"apple-touch-icon-precomposed\" sizes=\"152x152\" href=\"apple-touch-icon-152x152.png\" /> \n" \
|
||||
" <link rel=\"icon\" type=\"image/png\" href=\"favicon-196x196.png\" sizes=\"196x196\" /> \n" \
|
||||
" <link rel=\"icon\" type=\"image/png\" href=\"favicon-96x96.png\" sizes=\"96x96\" /> \n" \
|
||||
" <link rel=\"icon\" type=\"image/png\" href=\"favicon-32x32.png\" sizes=\"32x32\" /> \n" \
|
||||
" <link rel=\"icon\" type=\"image/png\" href=\"favicon-16x16.png\" sizes=\"16x16\" /> \n" \
|
||||
" <link rel=\"icon\" type=\"image/png\" href=\"favicon-128.png\" sizes=\"128x128\" /> \n" \
|
||||
" <meta name=\"guh\" content=\" \"/> \n" \
|
||||
" <meta name=\"msapplication-TileColor\" content=\"#FFFFFF\" /> \n" \
|
||||
" <meta name=\"msapplication-TileImage\" content=\"mstile-144x144.png\" /> \n" \
|
||||
" <meta name=\"msapplication-square70x70logo\" content=\"mstile-70x70.png\" /> \n" \
|
||||
" <meta name=\"msapplication-square150x150logo\" content=\"mstile-150x150.png\" /> \n" \
|
||||
" <meta name=\"msapplication-wide310x150logo\" content=\"mstile-310x150.png\" /> \n" \
|
||||
" <meta name=\"msapplication-square310x310logo\" content=\"mstile-310x310.png\" /> \n" \
|
||||
|
||||
|
||||
HTML.headerscripts =
|
||||
|
||||
|
||||
BIN
doc/images/api-overview.odg
Normal file
BIN
doc/images/api-overview.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 381 KiB |
@ -5,6 +5,8 @@
|
||||
|
||||
Assuming you are working on an Ubuntu system here are the steps how to set up the build environment. Basically you can choose your prefered SDK but all tutorials are based on the Qt Creator and we recommand to use that one. You can also use the Ubuntu SDK, which is basically a modified Qt Creator.
|
||||
|
||||
\note Please take care that you are using the Qt version from the system for building. The guh server will allways be built with the official Qt version for the appropriate system version. The plugin \underline{must} have the same version like the guh server.
|
||||
|
||||
\section2 Install Qt
|
||||
In the first step you need to install the Qt libraries:
|
||||
|
||||
|
||||
@ -6,14 +6,14 @@
|
||||
|
||||
This first tutorial shows you how to open, edit, build and load the first plugin.
|
||||
|
||||
\section1 Open
|
||||
\section1 Open the project
|
||||
Assuming you already have downloaded the \l{https://github.com/guh/plugin-templates}{plugin-templates} you can open the \tt {plugin-templates \unicode{0x2192} minimal \unicode{0x2192} minimal.pro} file with the Qt Creator.
|
||||
|
||||
\image minimal-project-open.png "Qt Creator"
|
||||
|
||||
Qt will create next to the \tt {plugin-templates \unicode{0x2192} minimal \unicode{0x2192}} folder the build directory (shadow build).
|
||||
|
||||
\section1 Build
|
||||
\section1 Build the plugin
|
||||
In order to compile your first plugin you can press the \b "Build" button in the lower left corner of the \e {Qt Creator} window. You can follow the build process in the \e {Compile Output} window (\tt alt + \tt 4).
|
||||
|
||||
The resulting build directory should look like this:
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
The \b {\tt libguh_devicepluginminimal.so} file is our fresh compiled deviceplugin.
|
||||
|
||||
\section1 Install
|
||||
\section1 Install the plugin
|
||||
|
||||
I you have installed guh using the repository (see \l{Set up the build environment}) you will find the installed plugins here:
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
|
||||
Once you have installed the new plugin you can test it.
|
||||
|
||||
\section1 Test
|
||||
\section1 Test the plugin
|
||||
|
||||
If order to test the new plugin we need to restart the guh daemon. Please make shore there is only one instance of guh running on your system, otherwise one of the daemons will colide with the ports of the other one. Once you have installed the \b {\tt libguh_devicepluginminimal.so} file you need a clean start of the guh daemon.
|
||||
|
||||
|
||||
@ -440,7 +440,7 @@
|
||||
You can see in the implementation that a new \l{Event} will be generated in guh. This is the way how you emit an Event for a device.
|
||||
|
||||
\section1 Test the plugin
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Tutorial 1 - The "Minimal" plugin}{Tutorial 1}).
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Install the plugin}{Tutorial 1 - Install the plugin}).
|
||||
|
||||
\list 1
|
||||
\li Start guh with following command:
|
||||
|
||||
@ -101,7 +101,7 @@
|
||||
\note You \underline don't have to check if the \l State value has changed or not when you set the value. i.e. if the current \l State value of the power \l State is \tt true, and the \l Action \l Param is also \tt true, this code will not generate the \l Event because the value has not changed.
|
||||
|
||||
\section1 Test the plugin
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Tutorial 1 - The "Minimal" plugin}{Tutorial 1}).
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Install the plugin}{Tutorial 1 - Install the plugin}).
|
||||
|
||||
\list 1
|
||||
\li Start guh with following command:
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
|
||||
|
||||
\section1 Test the plugin
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Tutorial 1 - The "Minimal" plugin}{Tutorial 1}).
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Install the plugin}{Tutorial 1 - Install the plugin}).
|
||||
|
||||
\list 1
|
||||
\li Start guh with following command:
|
||||
@ -94,10 +94,10 @@
|
||||
\li Use guh-cli to check the current power \l State, it should be \tt false (default value).
|
||||
\li Use guh-cli to execute the \b {set power} \l Action:
|
||||
|
||||
\tt "Devices" \unicode{0x2192} \tt "Execute an action" \unicode{0x2192} \tt {"Your device name (Alternative Power Button)"} \unicode{0x2192} \tt {set power} \unicode{0x2192} \tt {true}
|
||||
\tt "Devices" \unicode{0x2192} \tt {"Execute an action"} \unicode{0x2192} \tt {"Your device name (Alternative Power Button)"} \unicode{0x2192} \tt {set power} \unicode{0x2192} \tt {true}
|
||||
\endlist
|
||||
|
||||
In the guhd stdout you should see the debug output from you plugin. You will notice that the ActionTypeId, StateTypeId and EventTypeId are equal.
|
||||
In the guhd STDOUT you should see the debug output from you plugin. You will notice that the ActionTypeId, StateTypeId and EventTypeId are equal.
|
||||
|
||||
\code
|
||||
...
|
||||
@ -112,6 +112,5 @@
|
||||
|
||||
\endcode
|
||||
|
||||
|
||||
|
||||
Now you can take a look at \l{Tutorial 5 - The "Network Info" plugin}.
|
||||
*/
|
||||
|
||||
@ -1,13 +1,11 @@
|
||||
/*!
|
||||
\page tutorial5.html
|
||||
\title Tutorial 5 - The "Network Info" plugin
|
||||
\brief The plugin shows you how the Network Manager hardware resource works
|
||||
\brief The plugin shows you how to use the NetworkManager and how asynchronous actions work
|
||||
\ingroup tutorials
|
||||
|
||||
|
||||
In the second tutorial we make our own first plugin with the name \b {"Network Info"}. We will use this name for the naming concentions of the filenames.
|
||||
|
||||
This plugin will use the \l{NetworkManager} hardware resource to fetch the location and WAN ip of your internet connection from \l{http://ip-api.com/json}. It will have an \l Action called \e "update" which will refresh the \l{State}{States} of the \l{Device}.
|
||||
In the tutorial we make a plugin with the name \b {"Network Info"}. This plugin will use the \l{NetworkManager} hardware resource to fetch the location and WAN ip of your internet connection from \l{http://ip-api.com/json}. It will have an \l Action called \e "update" which will refresh the \l{State}{States} of the \l{Device}.
|
||||
|
||||
In order to get started with our new \b {"Network Info"} plugin we use the minimal plugin as template and start from there. Make a copy of the minimal folder and name the new folder \b networkinfo-diy. In this case \b{networkinfo-diy} because the folder \b networkinfo already exits from the \tt plugin-template repository.
|
||||
|
||||
@ -560,7 +558,7 @@ parameter from \l{The Plugin JSON file}.
|
||||
|
||||
\section1 Test the plugin
|
||||
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Tutorial 1 - The "Minimal" plugin}{Tutorial 1}).
|
||||
Rebuild the whole project to make shore all changes are registered and install the plugin (see \l{Install the plugin}{Tutorial 1 - Install the plugin}).
|
||||
|
||||
\list 1
|
||||
\li Start guh with following command:
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
/*!
|
||||
\page tutorials.html
|
||||
\title Tutorials
|
||||
|
||||
In order to getting started with your own \l DevicePlugin it is recommanded to walk trough following tutorials to understand how the mechanism works:
|
||||
|
||||
\annotatedlist tutorials
|
||||
*/
|
||||
|
||||
2
guh.pro
@ -25,7 +25,7 @@ tests.depends = libguh
|
||||
|
||||
doc.depends = libguh server
|
||||
doc.commands = cd $$top_srcdir/doc; qdoc config.qdocconf; cp images/logo.png html/images/; \
|
||||
cp images/favicon.ico html; cp -r $$top_srcdir/doc/html $$top_builddir/
|
||||
cp -v favicons/* html/; cp -r $$top_srcdir/doc/html $$top_builddir/
|
||||
|
||||
licensecheck.commands = $$top_srcdir/tests/auto/checklicenseheaders.sh $$top_srcdir
|
||||
|
||||
|
||||
@ -90,10 +90,10 @@ INSTALLS += generateplugininfo
|
||||
|
||||
# install header file with relative subdirectory
|
||||
for(header, HEADERS) {
|
||||
path = /usr/include/guh/$${dirname(header)}
|
||||
eval(headers_$${path}.files += $${header})
|
||||
eval(headers_$${path}.path = $${path})
|
||||
eval(INSTALLS *= headers_$${path})
|
||||
path = /usr/include/guh/$${dirname(header)}
|
||||
eval(headers_$${path}.files += $${header})
|
||||
eval(headers_$${path}.path = $${path})
|
||||
eval(INSTALLS *= headers_$${path})
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
\code https://localhost:3333\endcode
|
||||
|
||||
The URL for the insecure REST API access to a \l{RestResource}:
|
||||
\code http://localhost:3333/api/v1/{resource}\endcode
|
||||
\code http://localhost:3333/api/v1/{RestResource}\endcode
|
||||
|
||||
The URL for the secure HTTPS (TLS 1.2) REST API access to a \l{RestResource}:
|
||||
\code https://localhost:3333/api/v1/{RestResource}\endcode
|
||||
|
||||