INDIForJava is a set of libraries (written in the Java programming language) to implement clients (graphical and not graphical ones), drivers and servers that follow the INDI distributed control protocol, a protocol designed to operate astronomical instrumentation.
The project is fully open-source and is available on GitHub.
The provided libraries are focused on the development of Drivers, Clients and Servers using the INDI protocol in the Java programming language. If you are a regular software user, you are looking for a simple program to control your astronomical devices and you don't know anything about drivers, programming, Java probably this page is not for you. Try looking at INDI Clients for a list of programs that may be useful for your purposes.
However, if you are a programmer and you want to start your own astronomical control program or you want to program a driver for a particular astronomical device, this might be your starting point.
Please note that this libraries do not pretend to substitute or even replace the original INDI libraries which are still used and actively developed. Moreover, this project does not pretend to mimic every single option that the original libraries offer and, in fact, the programming ideas behind this library differ in some points to the original ones: particularly, INDI for Java tries to provide a truly object oriented approach in the development of INDI compatible software.
If you are interested in the project, you might want to check the repository available for the project. There you have all the necessary tools to begin developing you're own INDI Clients and Drivers: You'll find the source code for the library, the compiled libraries (in .jar format), all the Java Docs for the libraries and even some example files to start experimenting.
It is also recommended that you check the original INDI Library web page in which you will find lots of information about the INDI protocol, the original INDI libraries (written in C and C++) and many more resources (including a forum if you have questions or want to report errors) that might help you start developing your own INDI related projects.
Coming soon...
- IntelliJ IDEA 2020.3 or greater
- The Gradle IntelliJ plugin
- Java Development Kit ≥8
- Simple Logging Facade for Java (SLF4J), MIT license
- Glassfish Tyrus, multiple licenses
- XStream, BSD license
- Apache Commons Codec , Apache 2.0 license
- nom-tam-fits , public domain
- Pi4J, LGPL 3.0 license
- jssc by java-native, LGPL 3.0 license
- Quickhull3d , BSD 2-Clause "Simplified" License
- JBoss Jandex , Apache 2.0 license
core
: the base library.driver
: the module that represents an INDI driver.client
: an INDI client module, which can connect to INDI servers and control drivers.server
: an INDI server module, which can load drivers and connect to clients.driver-telescope
: a telescope abstract driver.driver-focuser
: a telescope abstract driver.driver-ccd
: a telescope abstract driver.driver-filterwheel
: a telescope abstract driver.driver-raspberrypigpio
: an example driver that can control Raspberry Pi GPIOs.driver-active-extension
: a driver extension used to create active drivers (drivers that can manage other drivers on the same server).driver-serial-extension
: a driver extension that provides support for serial ports.fits-utils
: an utility module which can be used together with the CCD module.gnu-scientific-lib
: a Java port of the GNU Scientific Library, used internally in the telescope driver.
Feel free to report bugs in the GitHub issue tracker!
This library is licensed under the GNU Lesser General Public License v3.0. A copy of the license is available in the GitHub repository
- Marco Cipriani (@marcocipriani01), project admin
- John Knight (@jk-murcia), developer
- Richard van Nieuwenhoven (@ritchieGitHub), java for all
- Sergio Alonso (@zerjillo), Software Engineering Department, University of Granada
- Antonio Román: testing.
- Alexander Tuschen: testing and bug reporting.
- Romain Fafet and Gerrit Viola for their input, testing and code.