Skip to content

A customizable IP remote control panel written in Java. It can be used to control TV's, switches, and other devices over the network using TCP.

License

Notifications You must be signed in to change notification settings

aphillip/MasterControl

Repository files navigation

MasterControl Documentation

MasterControl is a program that facilitates sending TCP commands to other devices, the execution of other programs, and the sending of keystrokes to the system. This is presented to the user as a series of button groups for easy execution.

Requirements

Java Virtual Machine

Jaxen Xpath library for Java (Included)

Compiling MasterControl

Compilation of the application requires Apache Ant. Build and run the application with the following command:

ant build

To view other options, just run:

ant

Usage

Use Java to execute the file MasterControl.jar:

java -jar MasterControl.jar

User Interface

Below is a screen capture that details the primary portion of the user interface:

The sections and the buttons within them can be customized from “File->Modify Configuration” menu.

Configuration

Choosing the “File->Modify Configuration” menu item displays a screen that can be used to configure the appearance of the primary portion of the user interface. Below is the configuration screen for the example in the previous screen capture:

Configuration Nodes

The configuration is displayed in a tree view on the left pane of the window (called the “Configuration pane”) comprised of items called nodes. Each node may or may not have child nodes. For example, the root node, labeled “Configuration”, has two child nodes labeled “TCP Clients” and “User Interface”. On the other hand, the selected node, labeled “Command – exec ‘notepad.exe’” has no child nodes. The configuration structure can be altered by adding, reordering, and removing nodes. Right clicking on a node causes a context menu to popup, having these three options:

  • Add Child – Adds a child node to the selected node. The new child will be the last node of all selected node’s children. For example, if the node “Button – Notepad” was currently selected, the new child would appear after the node, “Command – exec ‘notepad.exe’”.

  • Add Sibling – Adds a child node to the parent node of the selected node. The new child will appear after the selected node. For example, if the node “Button – Notepad” was currently selected, a new node would appear before the node “Button – Media Player” as a child of the node “Section – Extra”.

  • Remove Item – Removes the current node from the tree. Some nodes cannot be removed.

Nodes can be rearranged, as long as they will still have the same parent. To move a node, left click on the node and drag it to its new position. When the mouse button is released, the node will be moved.

Node Attributes

Each node may or may not have attributes. When a node is selected, its attributes are displayed in the right pane of the window (called the “Attributes pane”). They can be altered by typing in or selecting a new value. The changes will be saved and reflected once the Configuration screen has been closed. Attributes cannot be added or removed.

Configuration Management

To create a new configuration, select “New Configuration” from the File menu. Configurations can be loaded and saved using the “Load Configuration” and “Save Configuration As…” File menu items respectively.

The configuration file used by Master Control when it first starts can be specified on the command line using the following format:

java –jar MasterControl.jar YourConfigFileHere.dat

where “YourConfigFileHere.dat” is the name of the configuration file you wish to use. If a configuration file is not specified, the default configuration file “settings.dat” is used.

Configuration Format

For information on the MasterControl Configuration Format can be viewed here.

TCPCommunicator

TCPCommunicator is a java class that can act as a TCP server and a TCP client. It can be used as a dummy server for MasterControl’s tcpsend command. It is located in the src/test folder.

Compile it with javac TCPCommunicator.java and run with java TCPCommunicator to see usage instructions.

About

A customizable IP remote control panel written in Java. It can be used to control TV's, switches, and other devices over the network using TCP.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published