Skip to content

hnJaermuseet/Java-System-Controller

Repository files navigation

## Java system control (JSC) ##

Program used to turn on and off machines and projectors at Vitenfabrikken, a science center in Sandnes, Norway.

Author: Hallvard Nygård <hn@jaermuseet.no> (hnJaermuseet). 
Contributor: Christer Nordbø (Cnordbo)
Copyright 2008-2011 Jærmuseet, Vitenfabrikken
Released under CC-BY-SA lisence.

Tested for startup and shutdown on Windows XP, Windows Vista (?) and Windows 7.

Supported projectors:
- NEC NP1150
- Projection Design F30
- Projection Design F20
- Hitachi Cp-a100

Versions of JSC
v1.0 - Used from Vitenfabrikkens opening in may 2008 to jan 2011. Turned on and off most of the exhibitions.
v1.1 - Improved handling of projectors. PD F30 introduced. Better status handling. Also a lot of cleanup of the codebase.
v1.2 - New main interface. Includes only button for turning on/off some selected groups and status for those groups.
v1.2.2 - When turning on/off a group from main window, there can be displayed a message. Can also disable turn on/off for a group in main window. Also added logging of communications.
v1.2.3 - Bug fix for NEC projectors. The projectors sometimes return no status and this made the program display the projector with an error. 
v1.2.4 - Detailed view of machine, projectors, etc. Turn on/off Hitachi Cp-a100 is supported.
v1.2.5 - Projection Design F20 is tested. Bug fix for groups.conf reader so that PD projectors har parsed correctly

## How it works ##
- Client software (jsc_systray) runs on all computers we want controll over
- The client software knows its name, its mac-address and what server to connect to
- Client machine has has wake on lan (WOL) enabled
- Client software connects to the server (jsc_server running on another computer)
- Each time the client connects to server, the server saves status to XML file
- If the server doesn't know the client, it creates a XML file for it and saves the settings.  
- JSC_controller is refreshing the files each 60 seconds to update the interface
- JSC_controller communicates directly with the projectors.

## Group config - groups.conf ##

Example:
[Groupname]
00:00:00:00:00:00

[Next group]
00:00:00:00:00:00
projectorNEC Projectorname
projectorPD Projectorname2
00:00:00:00:00:00

[Group in mainwindow]
mainwindow
00:00:00:00:00:00
00:00:00:00:00:00

[Group without shutdown and wakeup]
shutdown_msg This group can not be shut down
shutdown_disabled
wakeup_msg No wakeup
wakeup_disabled

etc.

## Making / Deploying a new version of JSC ##

- Commit your changes to the Git repository
- Make the JAR file (export to JAR in Eclipse) and put it in the "jar" folder
- Add a line in README (This file) about the new version (there is a list of version and what the changes where)
- Commit the JAR file and the new README to repo with the message "Version X.Y.Z"
- Open Git bash and run the following command:
	git tag -m "Version X.Y.Z" vX.Y.Z
- Open Git Gui and push to origin including tags (a little checkbox you have to check)
- Go to the machine running JSC and download the JAR file from Github

About

System for controlling startup and shutdown of computers and projectors

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages