James replied to the topic 'Support for Redhat' in the forum. 1 year ago

Yes, I figured that might be the case. Thank you so much for your reply.

I work for a client that only allows production code to be deployed on Red Hat for security/auditing/etc purposes. That requirement is non-negotiable, unfortunately. I'll try to see if I make any headway with doing things this way.

The main things that need to be accomplished

1. Install indi sever from source [check]
2. Install python wrappers for indi lib (issues with dependencies)
3. Install gphoto2, indi cannon ccd drivers, etc for red hat (figuring out what needs to be done right now, I have the backend library installed for C/C++ but no python interface or command line interface yet it seems).

Will follow up to let know if the package extensions help.

Thanks!
James

Read More...

James created a new topic ' Support for Redhat' in the forum. 1 year ago

A few months back I wrote some code to take pictures with a few cameras in ubuntu because all of the tutorials here worked with ubuntu. Those are working great. I need to migrate everything over to a Red Hat server, but I'm having trouble translating the directions from ubuntu and debian based packages over to a red hat based installation.

Namely I need to install python bindings for gphoto2, python bindings for the indi lib itself, etc. All of the tutorials seem to assume an ubuntu based distribution.

Can anyone provide guidance on how I'd set up an indi server running indi cannon ccd driver accessible through python in Red Hat? The environment that I have to work on must be Red Hat, so I don't have much of a choice on how I do this.

Is it a matter of compiling some C libraries and pulling over some python files to wrap them?

Thanks!

Read More...

Good news, I managed to get it working so that the camera shutter is opening an closing, and a blob is being generated.

Unfortunately, the blob is nothing but a fits header and no actual image data. I am guessing I need to set the sensor size or something. The files that are being generated are about 86k in size. Obviously no image data.

Read More...

Thank you for replying -- I think I understand how to interact with the INDI server a little better now. I think the problem is finding the correct properties to set. I have modified one of the example programs to simplify it, mainly taking only one exposure and setting the CCD to my camera model . An odd thing I noticed was that I have to set the camera to bulb mode (not manual) to expose the CCD_EXPOSURE property. I've tried setting it to different values, but nothing seems to work. Do you know what could be going wrong in the script below that is just trying to connect to a simple camera and take a picture?

import PyIndi
import time
import sys

class IndiClient(PyIndi.BaseClient):
def __init__(self):
super(IndiClient, self).__init__()
def newDevice(self, d):
pass
def newProperty(self, p):
pass
def removeProperty(self, p):
pass
def newBLOB(self, bp):
global blobEvent
print("new BLOB ", bp.name)
blobEvent.set()
pass
def newSwitch(self, svp):
pass
def newNumber(self, nvp):
pass
def newText(self, tvp):
pass
def newLight(self, lvp):
pass
def newMessage(self, d, m):
pass
def serverConnected(self):
pass
def serverDisconnected(self, code):
pass

# connect the server
indiclient=IndiClient()
indiclient.setServer("localhost",7624)
indiclient.connectServer()

# Let's take some pictures
ccd="Canon DSLR EOS 5D Mark III"
device_ccd=indiclient.getDevice(ccd)
while not(device_ccd):
print('attempting to get the canon device from the indi server')
time.sleep(0.5)
device_ccd=indiclient.getDevice(ccd)

ccd_connect=device_ccd.getSwitch("CONNECTION")
while not(ccd_connect):
time.sleep(0.5)
ccd_connect=device_ccd.getSwitch("CONNECTION")

if not(device_ccd.isConnected()):
ccd_connect[0].s=PyIndi.ISS_ON # the "CONNECT" switch
ccd_connect[1].s=PyIndi.ISS_OFF # the "DISCONNECT" switch
indiclient.sendNewSwitch(ccd_connect)

ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")
while not(ccd_exposure):
time.sleep(0.5)
ccd_exposure=device_ccd.getNumber("CCD_EXPOSURE")

# we should inform the indi server that we want to receive the
# "CCD1" blob from this device
indiclient.setBLOBMode(PyIndi.B_ALSO, ccd, "CCD1")

ccd_ccd1=device_ccd.getBLOB("CCD1")
while not(ccd_ccd1):
time.sleep(0.5)
ccd_ccd1=device_ccd.getBLOB("CCD1")

ccd_exposure[0].value = 10.0
indiclient.sendNewNumber(ccd_exposure)

# and meanwhile process the received one
for blob in ccd_ccd1:
print("name: ", blob.name," size: ", blob.size," format: ", blob.format)
# pyindi-client adds a getblobdata() method to IBLOB item
# for accessing the contents of the blob, which is a bytearray in Python
fits=blob.getblobdata()
print("fits data type: ", type(fits))

Read More...

I'm trying to find a good guide for writing a PyIndi script to control a Canon EOS 5D Mark III DSLR camera in x86_64 LInux. I've installed kstars/Ekos, PyIndi, IndiLib, gphoto2. I've tested that I can connect to the camera itself.

I don't currently have an SD card (it's not my setup), but i can get one if necessary. I'm saving the photos locally.

So far I've had little luck interacting with the camera beyond changing the example CCD_Simulator script from this site "Canon DSLREOS 5D Mark III" and successfully connecting.

Does anyone know where I can find a good tutorial for doing this?

I'm just trying to do things like take a picture of stars with multiple exposure lengths. I just can't even get the thing to take a picture.

It seems like most people are using Ekos directly, but that will not be sufficient for what I'm trying to do I don't believe. Any guidance would be very helpful.

Read More...