Dean Allen Kelley created a new topic ' PyINDI Sequencing Question' in the forum. 4 years ago

Hi All,
I’ve been researching and playing with Kstars/Ekos a little bit with my Raspberry Pi and having some success. I have a current imaging solution using an old copy of Maxim DL5 that a friend gave me some time ago, but I'm looking to try something new. I want to start building a small array a la Dragonfly. I'm planning on using a Pi for each imaging camera and controlling each of them by way of Fabric. I currently have two cameras: an SBIG STF-8300C and an ST-8300M that will both be paired with an Orion ED80T CF and hopefully expanded if I can get this to work. I recently came across PyINDI and after a little bit of playing around with it, I’ve been able to figure out to take exposures via IndiClient Python script. To test that the concept will work, I connect each camera to a Pi and each Pi connects to a switch. I have a python script using Fabric that uses each Pi’s IP address to send the same command to each in parallel. I open two terminals and use one to send the INDI server connect command to get them up and running and then use the other terminal to get down to business. I have a script that when run, uploads the exposure instructions and then another script runs the uploaded code to make the cameras take an exposure. When I give the go-ahead, they each begin an exposure simultaneously.

Wanting to be able to set up sequences, I found the sequence article here on indilib.org/develop/tutorials/172-pyindi-sequence.html . I installed all of the sources per the article, I’m trying to run the provided simple.py script shown below with the system path updated accordingly.

import sys
import os
sys.path.append(os.path.join(os.environ['HOME'], 'indi-lite-tools')) # Change this to the module installation path

from pyindi_sequence import SequenceBuilder

sb = SequenceBuilder('M42', camera_name='CCD Simulator', upload_path = '/tmp/M42')

def camera_settings():
    sb.camera.set_switch('CCD_COMPRESSION', ['CCD_RAW'])

sb.add_message_step('Adjusting camera settings')
sb.add_function(camera_settings)
sb.add_user_confirmation_prompt('Press Enter to start Shooting')
sb.add_sequence('RGB', exposure=3, count=2)
sb.add_user_confirmation_prompt('Please cover your camera lens for Dark Frames. Press Enter to continue')
sb.add_auto_dark()

print(sb)
sb.start()

The issue I'm finding is that it always crashes after trying to call interface.acquire() on line 105 of device.py as shown below.
pi@raspberrypi:~ $ python3 simple.py
Traceback (most recent call last):
  File "/home/pi/indi-lite-tools/pyindi_sequence/indiclient.py", line 41, in newDevice
    device = Device(d.getDeviceName(), self)
  File "/home/pi/indi-lite-tools/pyindi_sequence/device.py", line 18, in __init__
    self.interfaces = Device.find_interfaces(self.device)
  File "/home/pi/indi-lite-tools/pyindi_sequence/device.py", line 105, in find_interfaces
    interface.acquire()
AttributeError: 'int' object has no attribute 'acquire'


I can’t find an acquire method, let alone an interface class, in any of the code that came from the source, which explains why it fails at that point, and I’m really not sure what to do. Has anyone been able to use the PyINDI script from this page that might be able to help me figure out how to correct this? Is there something I'm missing to get this working? I tried sending an email to the author on his Github page but I haven’t heard back after a couple of weeks.

Thanks for your time!

Read More...