Modularer Client zum erfassen von Schüssen, mit Unterstützung für Häring ESA
Anlagen.
nodejs
(stable/ lts)npm
- `g++``
- node-canvas
texlive-full
to render PDFlp
command to trigger print- configured
cups
Falls aktiv:
- mongodb
dsc
user sudo
Rechte für den shutdown
Befehl geben
dsc ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown
# clone and update submodules
git clone --recursiv https://github.com/DigitalShooting/DSC.git
cd DSC
# NPM rebuild
npm rebuild
# Build Hearing API
./lib/Haering/buildAPI.sh
# configure (more under /docs/config.md)
ls config/
# start
node index.js
Access DSC in you browser for localhost on http://127.0.0.1 (read), or with auth key http://127.0.0.1/?key=123 (write). 123
is the default auth key, defined in config/auth.js.
Alle APIs mit Schreibzugriff erfordern eine Authentifizierung mittels mitgeschicktem code. Der Code wird mittels GET Parameter an den URL vom DSC angefügt, z.b. https://<url>:<port>/?key?<code>
.
Zur Authentifizierung werden 2 Passwörter akzeptiert, welche unter config/auth.js
festgelegt werden. Eine statisches für den Standrechner/ DSM, sowie ein beim Start dynamisch erzeugtes, z.b. zum anzeigen als QR-Code.
Optionale anbindung an MySQL.
Es 2 Interfaces, welche Schüsse generieren, eines zum testen (demo) und eines um die Häring Anlage zu steuern (esa).
Title/ Nummer der Linie, Einstellungen für die Anzeige sowie Drucker und Logo.
IPs/ Ports für DSC Web interface und API.
Die beiden Modie Probe/ Match sind in "Parts" eingeteilt um einer Disziplin mehrere Parts zuweisen zu können.
Probe ist erkennbar an der Farbigen oberen rechten Ecke, sowie an dem Label "Probe" unter Modus.
Folgende Tasten sind Belegt:
Taste | Aktion |
---|---|
Links | Wählt die nachfolgende Serie aus |
Rechts | Wählt die vorhergehenden Serie aus |
Hoch | Wählt den vorhergehenden Schuss aus |
Runter | Wählt den nachfolgenden Schuss aus |
Menu | Öffnet das Disziplinen Menü |
Exit | Schließt alle Overlays |
Neue Scheibe | Erzeugt eine neue Session mit dem gleichen Part Type |
Druckt die Gesamte Session | |
Probe/ Match | Schaltet auf den nächsten Part |
Taste | Aktion |
---|---|
M |
Schaltet auf den nächsten Part |
UP | Wählt den vorhergehenden Schuss aus |
DOWN | Wählt den nachfolgenden Schuss aus |
RIGHT | Wählt den nachfolgenden Serie aus |
LEFT | Wählt den vorhergehenden Serie aus |
Der aktuelle Verbindungsstatus ist erkennbar an dem schwarzen Block links oben in der Infoleiste. Ist dieser nicht vorhanden, ist alles in Ordnung.
- Schwarz: Keine Verbindung zum Server
- Rot: Keine Verbindung zum Interface
Methode | Parameter | Auth | Beschreibung |
---|---|---|---|
getData |
false | Sendet das Aktuelle Data Obejct (Alle Sessions) | |
getConfig |
false | Sendet die Aktuelle Config | |
setNewTarget |
true | Neue Scheibe (TODO: Validation if enabled) | |
setDisziplin |
id | true | Wechselt die Disziplin |
setSelectedSerie |
index | true | Ausgewählte Serie ändern |
setSelectedShot |
index | true | Ausgewählte Serie ändern |
setUser |
user object | true | Aktuelle Session neuem User zuweisen |
setData |
data object | true | Läd das gegebene Data Object und weist ihm eine neue ID zu |
setPart |
id | true | Aktiven Part ändern |
setSessionIndex |
index | true | Aktive Session wechseln |
print |
printTemplate | true | Alle Sessions Drucken |
showMessage |
Mesage Object | true | Zeigt ein Overlay mit title vom type (alert |
hideMessage |
true | Schliest die Message |
Methode | Parameter | Beschreibung |
---|---|---|
setData |
Data Object | Sendet alle Session (Data) (bei Veränderung) |
setConfig |
Config Object | Sendet die aktuelle Config |
showMessage |
Mesage Object | Zeigt ein Overlay mit title vom type (alert |
hideMessage |
Schliest die Message |
URL | Parameter | Beschreibung |
---|---|---|
/api/data |
limit/ page | Gibt alle Data Objects zurück, für gegebene Parameter |
Mail an: [email protected]
GNU GENERAL PUBLIC LICENSE Version 3