#camera #image #usb #connected #libgxccd

bin+lib gxccd

Rust wrapper around gxccd C library

1 unstable release

0.1.1 Aug 27, 2024

#835 in Hardware support

26 downloads per month

MIT and GPL-3.0 licenses

345KB
721 lines

Contains (static library, 270KB) lib/libgxccd.a

gxccd

Rust wrapper around gxccd C library.

Contributing

This repository is incomplete. All "advanced" features of the original library have been left out as they are unsupported. All other functions have been wrapped, but not all have been tested, though this is the goal. Idiomatic rust testing is complicated by the necessity of a connected camera, and by the opacity of the original library.

Setup

git clone https://github.com/jcranney/gxccd-wrap
cd gxccd-wrap
cargo build --release

This will build the main gxccd rust program, which connects to a camera, prints some states of the camera, and saves some dark and light images to disk. Obviously this will fail if you do not have a camera connected, but it should fail cleanly with the message:

$ gxccd
Error: "Cannot find USB camera"

If you get some other large output regarding libraries, you probably need to configure your dependencies. If you get something else entirely, please raise an issue.

Dependencies

libusb-1.0

This is a readily available library required by the libgxccd library. If you don't already have it, you can install it by (e.g.):

apt-get install libusb-1.0-0-dev

libgxccd

This crate is packaged with a copy of the original gxccd C library binary available from Moravian Instruments. This is permitted by the libgxccd license (reproduced here below). For now, only the x86_64 Linux (64-bit) binaries are shipped with this crate, but you can replace them with the version matching your machine by replacing ./lib/libgxccd.a with the same file for your machine, downloaded from the Moravian Instruments download page. If this doesn't work for you, let me know by raising an issue.

The Moravian Instruments (MI) camera library.
 
Copyright (c) 2016-2023, Moravian Instruments <http://www.gxccd.com, linux@gxccd.com>
All rights reserved.
 
Redistribution.  Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
 
- Redistributions must reproduce the above copyright notice and the
  following disclaimer in the documentation and/or other materials
  provided with the distribution.
- Neither the name of Moravian Instruments nor the names of its
  suppliers may be used to endorse or promote products derived from this
  software without specific prior written permission.
- No reverse engineering, decompilation, or disassembly of this software
  is permitted.
 
DISCLAIMER.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

This repository is not supported by - or related to - Moravian Instruments in any way, and all of the code in this library is covered by the (more permissive) MIT license (see ./LICENSE). If you wish to use the source code contained within this library, you need only satisfy the MIT license conditions, but if you include the Moravian Instruments binaries in ./lib/* in any future redistributions, you must also satisfy the license copied above regarding the redistribution and use in binary form.

Dependencies

~225KB