A A A A Автор Тема: ASCOM-драйвер для "Контроллера электрофокусера"  (Прочитано 21937 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
По просьбе Семеныча введено начальное смещение и сдвиг шкалы ...

Пойду упаду на пару часов, а пока тестируйте ...
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 022
  • Благодарностей: 768
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
На первой же команде #C# контроллер глючит и не выдает ответ. Прошивка вчерашняя.
Дома залью прошивку поновее, проверю с ней.

C сегодняшними прошивками еще веселее - на запрос #C# фокусер отвечает символом !
на что аском плагин ругается что не может законектиться. Были-бы исходники плагина, исправил. А так усё, тестировать пока нечего.  ::)

Кстати, при включении питания фокусер подает на мотор непонятно что, а не 0-е положение.
« Последнее редактирование: 07 Ноя 2007 [22:13:16] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Телеграм для связи, заказы временно не принимаю.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 022
  • Благодарностей: 768
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
А пока балуюсь с осцилографом. :)
1-я картинка - посылка по ком порту #S# и ответ текущего положения (2 байта - 00 0F)
2-я картинка - общение контроллера с датчиком температуры по шине i2s
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Телеграм для связи, заказы временно не принимаю.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
На первой же команде #C# контроллер глючит и не выдает ответ. Прошивка вчерашняя.
Дома залью прошивку поновее, проверю с ней.

C сегодняшними прошивками еще веселее - на запрос #C# фокусер отвечает символом !
на что аском плагин ругается что не может законектиться. Были-бы исходники плагина, исправил. А так усё, тестировать пока нечего.  ::)

Кстати, при включении питания фокусер подает на мотор непонятно что, а не 0-е положение.

Так оно и должно быть. С - от цельсия - новая команда, проверяющая наличие термодатчика. При наличиии термодатчика отвечает символом !, при его отсутсвии символом X - латинским.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
   Проверил на чем мог - FocusMax. Программа сообщает об отсутствии контроллера. Advanced serial port monitor - очень удобный гипертерминал для раскалывания протоколов показывает, что драйвер подал в контроллер команду - #C#, а в ответ получил символ !, как оно и должно быть. Вытащил термодатчик из макетки, программа с фокусером связалась. В этом случае на команду #C# поступает ответ X, т.е. если использовать эту команду для определения наличия контроллера, то надо проверять ответ на два символа - ! и X - латинский заглавный. Запустил jog focuser из Focusmax, на экранные кнопки перемещения контроллер на реагирует, но команду moveto выполняет, т.е. контроллер выполняет перемещение на заданную в окошке moveto координату.
« Последнее редактирование: 08 Ноя 2007 [09:44:16] от Александр Л. »

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
   После написания драйвера запросы deepскайщиков будут удовлетворены, а что делать остальным? Есть люди снимающие камерами, которые вообще не имеют поддержки каким либо астрософтом, пример - VAC135. Камерами этими снимают при помощи программы, которая вообще говоря предназначена для переноса записей с видеокассет на DVD. Програмное обеспечение для съемки планет web камерами и другими не астрокамерами  тоже как правило не имеют поддержки не только ASCOM фокусера, но и вообще поддержки какого либо фокусера. Исключения - Proguider - который поддерживает ASCOM фокусеры, и K3CCDTOOLS3, поддерживающая LX200. C последней фокусер работает. Proguider не работает с данным контроллером через ASCOM LX200. На мой взгляд существует необходимость в наличии программы, примерно такой как PCFOCUS. Т.Е. программы имеющий экранный интерфейс для управления фокусером, без всяких автофокусов. Может быть такая есть, а я о ней не знаю?

Оффлайн Дядя Вова

  • *****
  • Сообщений: 8 096
  • Благодарностей: 97
    • Сообщения от Дядя Вова
пример - VAC135. ...
 Исключения - Proguider - который поддерживает ASCOM фокусеры, и K3CCDTOOLS3, поддерживающая LX200. C последней фокусер работает. Proguider не работает с данным контроллером через ASCOM LX200.
Александр, поясни: ПГ не работает с такой камерой? Или картинка идет? Если идет, то проблема не ясна- фокусер должен работать
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg
Meade ETX-90PE

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
   Не знаю работает ли VAC135 c прогайдером. С K3CCD работает, но никто не снимает с ее помощью, здесь проблемма в быстродействии. VAC135 льет по USB ровно 480 мбит/сек. Упомянутая программа с таким потоком справляется. Вопрос ширше. Чем управлять фокусером через этот драйвер, думаю не я один хочу простую программу, которая фактически дублирует кнопки пульта контроллера. Неужели нет такой программы универсальной для ручного управления фокусером через ASCOM?
 

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
   Повозился еще с focusmax. Во первых кнопки в jog focuser работают и выполняют перемещение на заданное кол-во шагов. Во вторых при запуске считываются данные шкалы фокусера и помещаются в окошко программы. При этом считывается правильно и отрицательное значение шкалы. Не удается записать данные во флаш о люфте, скоростях и температурной компенсации. Делаю так, вхожу в setup, выставляю значения, ставлю галку save made changes и нажимаю OK. Также не удается прописать значение шкалы.

Оффлайн Дядя Вова

  • *****
  • Сообщений: 8 096
  • Благодарностей: 97
    • Сообщения от Дядя Вова
Неужели нет такой программы универсальной для ручного управления фокусером через ASCOM?
Если есть такое желание, то панель управления фокусером нужно встроить в сам драйвер. Как это делается я не знаю, но Zalex точно знает. Он в драйвере QHY EQ4/EQ5 такую панель делал.
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg
Meade ETX-90PE

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
Вот отдуплился от вахты, перечитал отзывы...

Правильно сказал Саша, надо было выспаться - я драйвер переписал, а вот ссылки на старую
свою прошивку не снес. А она, при записи в ЕПРОМ, ждала подтверждения.

Вот, попробуйте так ... (в архиве просто библиотека - куда и как ставить уже знаете)

Если фокусер на автомате, драйвер запишет только скорости, люфт и коэффициент. Положение
записано не будет, так как это лишено смысла ...

« Последнее редактирование: 08 Ноя 2007 [15:09:16] от Mefody »
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 022
  • Благодарностей: 768
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Вот отдуплился от вахты, перечитал отзывы...

Правильно сказал Саша, надо было выспаться - я драйвер переписал, а вот ссылки на старую
свою прошивку не снес. А она, при записи в ЕПРОМ, ждала подтверждения.

Вот, попробуйте так ... (в архиве просто библиотека - куда и как ставить уже знаете)

Если фокусер на автомате, драйвер запишет только скорости, люфт и коэффициент. Положение
записано не будет, так как это лишено смысла ...

Все без изменений. Не коннектится.
Цитата
Порт открыт процессом "MaxIm_DL.exe" (PID: 2748)

Запрос:08.11.2007 15:22:05.20464

 23 43 23                                          #C#             

Ответ:08.11.2007 15:22:05.21964 (+0.0156 seconds)

 21                                                !               

Порт закрыт
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Телеграм для связи, заказы временно не принимаю.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
  Нет не работает. Мефодий у Вас ошибка такая. Для Определения наличия фокусера Вы даете команду #C#. Вы, поскольку у Вас нет термодатчика получаете ответ X и фокусер определяется. Поскольку у меня стоит термодатчик, драйвер получает ответ ! и говорит, что контроллера нет. Если я вытаскиваю термодатчик, то драйвер определяет наличие контроллера и часть функций работает.
  Драйвер переустанавливал так. Переписал новый файл DLL во вчерашнюю папку с install b uninstal. Старый естественно затерся. Затем запустил uninstall и install.
 

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
Сейчас гляну ... Может действительно так !

Можете кидать в  меня камням, пока я буду биться головой об угол стола ...

Port->WritePort ( (unsigned char *) "#C#", strlen ( "#C#" ) ); // Port opened -  if we have AstroFocuser online

BOOL Ok = Port->ReadPort ( Buf, 1 );
if (Ok && (( (int) Buf[ 0 ] == 21) || ((int) Buf[ 0 ] == 88)) )   // If we have got "!" or "X" - we connected to AstroFocuser

Ну правильно, "!" - это же и есть 21 (правда шестнадцатеричное)

Ладно, заменим на 0х21 -> на 33

Пробуйте ...
« Последнее редактирование: 08 Ноя 2007 [16:45:21] от Mefody »
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
  А 88 десятичное, сейчас попробую.  Кстати посмотри сразу запись в eeprom, иногда надо сказать запись происходит, но при каких условиях так и не смог найти.


Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 022
  • Благодарностей: 768
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
if (Ok && (( (int) Buf[ 0 ] == 21) || ((int) Buf[ 0 ] == 88)) )   // If we have got "!" or "X" - we connected to AstroFocuser

А зачем цифры писать? Можно сами символы использовать, код проще, возможности ошибиться меньше. Примерно так -

if (Ok && (( Buf[ 0 ] == '!' ) || ( Buf[ 0 ] == 'X' )) )   // If we have got "!" or "X" - we connected to AstroFocuser

Плагин заработал. :)
Отрицательные цифры тоже появились в максиме. :)
только я задал в диалоге shift =3000, а реально он =1 (позиция в максиме 19, на фокусере 18).
« Последнее редактирование: 08 Ноя 2007 [17:08:49] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Телеграм для связи, заказы временно не принимаю.

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
if (Ok && (( (int) Buf[ 0 ] == 21) || ((int) Buf[ 0 ] == 88)) )   // If we have got "!" or "X" - we connected to AstroFocuser

А зачем цифры писать? Можно сами символы использовать, код проще, возможности ошибиться меньше. Примерно так -

if (Ok && (( Buf[ 0 ] == '!' ) || ( Buf[ 0 ] == 'X' )) )   // If we have got "!" or "X" - we connected to AstroFocuser

Можно и так, но в силу сложившейся практики я стараюсь сравнивать не сами символы, а их машинные
представления (часто пишу под другие платформы)
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
  А 88 десятичное, сейчас попробую.  Кстати посмотри сразу запись в eeprom, иногда надо сказать запись происходит, но при каких условиях так и не смог найти.



Дело в том, что у тебя как-то странно происходит переход из автоматического в ручной режим.
Зашиваю я прошивку с авторежимом. Подключаю фокусер. Нажимаю TempUpdate но ручной режим
не включается. Выключаю+включаю - нажимаю TempUpdate - включается ручной режим.
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн MefodyАвтор темы

  • *****
  • Сообщений: 1 444
  • Благодарностей: 3
  • Служу ЗВЕЗДАМ !!!
    • Сообщения от Mefody
Цитата
Плагин заработал.
Отрицательные цифры тоже появились в максиме.
только я задал в диалоге shift =3000, а реально он =1 (позиция в максиме 19, на фокусере 18).

Возможно ты не запускал install.bat. Там несколько ключей в реестре изменились.
В частности появились строковые Shift и LastPos ...
MAK200, Equinox80, QHY6, EOS 350D -> EQ6 PRO SynScan etc.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 684
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
  Переставил драйвер, заработало, контроллер связался и правильно вывел температуру. Не работает запись во флаш. Т.Е. как я уже писал иногда это получается, но при каких условиях непонятно. Так же не записывается в контроллер данные шкалы, но иногда тоже получается. Я пользуюсь focusmax. Возможно запись не работает вот почему. Для входа в меню драйвера я нажимаю кнопку focusmax - setup. После этого сразу же появляется надпись - disconect. Т.Е. связь с фокусером сразу же разрывается. После установки данных и флажка записи нажимаю OK и после этого надо сразу же коннектиться заново.
Что работает.
Считываются данные шкалы при коннекте причем и отрицательные.
Работает перемещение на заданное кол-во шагов от кнопки MOVETO, но ниже нуля не ходит, говорит не могу, но это фича focusmax.
Работает перемещение от кнопок JOG фокусера на опять таки заданное кол-во шагов.
Работает термодатчик, при отрицательных температурах проверю завтра.

  А 88 десятичное, сейчас попробую.  Кстати посмотри сразу запись в eeprom, иногда надо сказать запись происходит, но при каких условиях так и не смог найти.



Дело в том, что у тебя как-то странно происходит переход из автоматического в ручной режим.
Зашиваю я прошивку с авторежимом. Подключаю фокусер. Нажимаю TempUpdate но ручной режим
не включается. Выключаю+включаю - нажимаю TempUpdate - включается ручной режим.

    Так оно и должно быть. Дело в том, что контроллер при переходе из ручного в автомат проверяет наличие термодатчика и если его нет в автомат не переходит. При этом на экран выводиться надпись - termometer error и далее Manual Mode. При этом переменная, которая читается командой определяющей режимы остается такой как для для ручного режима. Если же Вы принудительно при прожиге прожгли режим автомат, то контроллер в него попадет, поскольку при старте микропрограмма анализирует именно это ячейку флаш и включает режим по ее содержимому.
« Последнее редактирование: 08 Ноя 2007 [17:29:50] от Александр Л. »