Невозможно понять объект «Модуль», который невозможно вызвать — невозможно понять эту ошибку в функции motion_start.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно понять объект «Модуль», который невозможно вызвать — невозможно понять эту ошибку в функции motion_start.

Сообщение Anonymous »

Я работаю над кодом Python, включающим две камеры (камеру Flir и Logitech), и я использую USB-реле для управления освещением для каждой камеры и получаю эту ошибку внутри motion_start. Реле 1 включается, но потом появляется ошибка. Я прикрепил блок кода, в котором возникает ошибка. Светодиодный индикатор на камере загорается

Код: Выделить всё

    def motion_start(self):
check = self.initialize_devices()

if len(self.devices) < 3:
print(len(self.devices))
return None

self.move(Decimal(self.motion_params.x_cam2), Decimal(self.motion_params.y_cam2), Decimal(self.motion_params.z_cam2))

relay_controller = RelayApp()
relay_controller.get_Hid_USBRelay()
relay_controller.open_device()

camera_app = SecondaryCameraApp()
cap = camera_app.initialize_camera()

try:
relay_controller.turn_off_all_relays()
time.sleep(0.5)
relay_controller.turn_on_relay(1)
time.sleep(4)  # Wait for 4 seconds

# Capture image using the secondary camera
frame = camera_app.capture_image(cap)
transformed_image = camera_app.apply_perspective_transform(frame)

relay_controller.turn_off_relay(1)
time.sleep(0.5)
relay_controller.turn_on_relay(2)
time.sleep(0.5)
relay_controller.turn_off_relay(2)

self.current_data.set_stop_acquisition(False)

for i in range(self.motion_params.y_steps):
if self.current_data.get_stop_acquisition():
print("Acquisition stopped in y loop.")
break
y_position = Decimal(self.motion_params.y_start + i * self.motion_params.y_increment)
print(f"New y_position: {y_position}")

for j in range(self.motion_params.x_steps):
if self.current_data.get_stop_acquisition():
print("Acquisition stopped in x loop.")
break
x_position = Decimal(self.motion_params.x_start + j * self.motion_params.x_increment)
print(f"New x_position: {x_position}")

if not self.motion_params.optimal_z_movement:
print(f"Calling z_movement_incremental for x: {x_position}, y: {y_position}")
self.z_movement_incremental(x_position, y_position, j)
else:
print(f"Calling z_movement_optimal for x: {x_position}, y: {y_position}")
self.z_movement_optimal(x_position, y_position, j)

if j == 0:
self.current_data.set_row_start_z(self.current_data.get_best_z())
print(f"Set row start z to: {self.current_data.get_best_z()}")

print("Homing")
self.move(Decimal(0.1), Decimal(0.1), Decimal(0.1))
print("Homing completed")

time.sleep(0.1)
self.update_positions()

except Exception as e:
print(f"Error during relay or camera control: {e}")
return None

finally:
cap.release()  # Ensure the camera is released
relay_controller.close_device()  # Ensure the relay device is closed

Я изолировал два класса SecondaryCameraApp и RelayApp в отдельном файле Python с классом Controller, и код работает нормально

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-error-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»