Giter Site home page Giter Site logo

zulu's Introduction

zulu

Keep the clock correct on your old AV gear.

Install

go get github.com/ironiridis/zulu

Example

Single device at 192.168.0.1, unauthenticated, update once an hour until error or terminated

zulu -driver crestron2seriesctp 192.168.0.1

Three devices at 192.168.0.2-4, two with a password, quit after setting time

zulu -driver crestron2seriesctp -oneshot 192.168.0.2 :[email protected] :[email protected]

Set time every 4 hours, ignore errors, connect on a non-default port

zulu -driver crestron2seriesctp -permissive -rate 4h 192.168.0.5:8080

Why

zulu is a modular application intended for managing the internal clock on devices as they age. The initial target of this is Crestron 2-series processors (discontinued September 2015) as these often rely on some time-of-day based logic, yet do not have any means for synchronizing their clock to an authoritative time source. These devices often run perfectly well otherwise, but experience clock drift and RTC reset on power loss. zulu gives these devices additional usable lifetime.

Usage

The only mandatory flag is -driver. Use -driver list or run with no arguments to see the available drivers. At this time the only included driver is crestron2seriesctp, but I intend to write more (and pull requests are of course welcome).

Invoke using zulu -driver {driver} [flags] [user:password@host:port]...

Flags

  • oneshot Exit after setting time once on all specified hosts.
  • permissive Continue (instead of exiting) after printing any errors to console.
  • sequential Instead of trying to connect to as many hosts as possible, connect to each host individually in order and wait for the operation to complete before continuing.
  • rate {duration} Specify the duration to sleep after all devices have been attempted before looping. Ignored if -oneshot is specified.
  • driver {driver} Choose the device and connection types for all hosts specified in this invocation.

Hosts

In general, zulu will be using TCP-IP to connect to each device. Unless otherwise specified by a driver, hosts are in the traditional ssh-style format:

[[user][:password]@]hostname-or-ip[:non-default-port]

Only the hostname/ip is required, and hostnames should be resolvable given an appropriately configured network. Drivers will supply any unspecified parameters with typical defaults. Hence, these are all (theoretically) valid:

Drivers

Drivers will generally be as simple as possible to accomplish the task. Robust error handling or recovery is not a priority in this application. Some drivers will be OS-specific (eg any drivers written with RS232 or USB connectivity in mind).

  • crestron2seriesctp connects to the ethernet-enabled Crestron processors of the 2-series generation (ie AV2/PRO2/PAC2/RACK2 with a C2ENET card, or CNX-DVP4/CP2e/DIN-AP2/MC2e/MP2e/PAC2M/QM-RMC/QM-RMCRX[-BA], and others). Tested with firmware 4.008. Might work with other basic Crestron CTP devices, like the CEN-TVAV.

Drivers on my radar but not implemented yet (lacking hardware for the moment):

  • crestron2series232 connects to any Crestron 2-series processor with a basic serial console port (in particular this excludes the PAC2M and the DIN-AP2)
  • amxnix000 connects to most NI-x000 series controllers from AMX (eg NI-2000/NI-3000/NI-4000/NI-700) over IP

zulu's People

Contributors

ironiridis avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

rbsystems

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.