Devices infrastructure and minimal server

starts and creates (server-side) devices
no daemonizing and servicing yet

hint: try starting:
$ bin/server.py -v start

Change-Id: I6ac7a78dfff309a459cc0338a8d0d319ee72ada5
This commit is contained in:
Enrico Faulhaber
2016-06-20 18:36:12 +02:00
parent 8a9d2da503
commit d3c430e1b9
25 changed files with 1390 additions and 57 deletions

View File

@ -1,6 +1,8 @@
Markdown docu to be generated
=============================
[Notes](notes.html)
TODO's
======

39
doc/notes.md Normal file
View File

@ -0,0 +1,39 @@
------
No installation required or recommended.
-----
everything runs directly from the checkout.
you need:
- python2.7.*
- pip
- linux OS (Mac may work as well)
install requirements with pip:
$ sudo pip install -r requirements.txt
to execute a program, prefix its name with bin/, e.g.:
$ bin/make_doc.py
$ bin/server.py start test
a testsuite is planned but nothing is there yet.
## structure ##
* bin contains the executables (make_doc.py, server.py)
* doc is the root node of the docu (see index.md)
* etc contains the configurations for the server(s) and devices
* html contains the docu after make_doc.py was run
* log contains some (hopefully) log output from the servers
* pid contains pidfiles if a server is running
* src contains the python source
* src/client: client specific stuff (proxy)
* src/devices: devices to be used by the server (and exported via SECoP)
* src/lib: helper stuff (startup, pidfiles, etc)
* src/protocol: protocol specific stuff
* src/errors.py: internal errors
* src/server.py: device-managing part of the server (transport is in src/protocol/transport)
* src/validators.py: validators used by the devices. may be moved to src/protocol
# THERE IS STILL MUCH WORK TO DO! #

View File

@ -6,6 +6,7 @@
* src/server for everything server related
* src/client for everything client related (ProxyDevice!)
* src/protocol for protocol specific things
* need subtree for different implementations to play with
* src/lib for helpers and other stuff
* possibly a parallel src tree for cpp version
@ -20,16 +21,31 @@
## A Server ##
* evaluate config.ini
* handle cmdline args (specify different server.ini)
* get daemonizing working
* handle -d (nodaemon) and -D (default, daemonize) cmd line args
* support Async data units
* support feature publishing and selection
* rewrite MessageHadler to be agnostic of server
* rewrite MessageHandler to be agnostic of server
## Device framework ##
* unify PARAMS and CONFIG (if no default value is given,
it needs to be specified in cfgfile, otherwise its optional)
* supply properties for PARAMS to auto-generate async data units
## Testsuite ##
* embedded tests inside the actual files grow difficult to maintain
* needed ?
=> need a testsuite (nose+pylint?)
## docu ##
* mabe use sphinx to generate docu: a pdf can then be auto-generated....
* transfer build docu into wiki via automated jobfile
Problem: wiki does not understand .md or .html