А ведь в проге AlphaCrow так можно же сделать.urez83 писал(а):Нет, да и не смогу я кнопку старт нажать пока окно камеры не закрою.
Лазерная установка для засветки фоторезиста от AlphaCrow
- Сообщения: 5725
- Зарегистрирован: Чт июн 09, 2011 17:17:47
- Реклама
Можно, но мне надо отрыть причину проблемы а не симптомы. Завтра попробую на авторе светануть с включенной камерой. Кстати авторская прога тоже немного ускоряется если плеер запустить.
Как вариант попробовать команду start в cmd.
Например так:
Или лучше так, чтобы из нужного каталога запустилась, а то конфиги не прочитает:
Например так:
Код: Выделить всё
start /SEPARATE /REALTIME /WAIT C:\HLDI\HLDI_Host.exe
Код: Выделить всё
start /SEPARATE /REALTIME /WAIT /D C:\HLDI HLDI_Host.exe
Последний раз редактировалось zenon Вс апр 12, 2020 19:51:06, всего редактировалось 1 раз.
Если я правильно понял то эта команда переключает приоритет задачи в режим реального времени? Тогда скажу что уже пробовал перед запуском экспонирования это делать через диспетчер задач. Но попробую завтра так запустить.
Да, ну раз уж шаманим, то там вариантов настроек вроде побольше.
У Usb всякие энергосбережения вроде отключал...
У Usb всякие энергосбережения вроде отключал...
- Реклама
- Сообщения: 5725
- Зарегистрирован: Чт июн 09, 2011 17:17:47
urez83
Вообще не понятна связь запущенного плеера с отсутствием пропусков (с решением проблемы с пропусками).
Я сам не наблюдал у себя пропуски, но не факт что их нет, так как фокус скорей всего расфокусирован. За установкой в реальном времени не следил.
Дай гербер, где пропуски, завтра попробую. Какое разрешение поставить?
Вообще не понятна связь запущенного плеера с отсутствием пропусков (с решением проблемы с пропусками).
Я сам не наблюдал у себя пропуски, но не факт что их нет, так как фокус скорей всего расфокусирован. За установкой в реальном времени не следил.
Дай гербер, где пропуски, завтра попробую. Какое разрешение поставить?
zenon Спасибо за ссыль, завтра пошаманю.
Ruzik Когда идет экспонирование, то каретка бежит с равномерной скоростью, но как только дело доходит до смены направления и передачи очередной порции информации в буфер установки, то тут то и начинаются странные тупняки. Вроде как и монитор загрузки выше 1% не поднимается во время экспонирования. Но стоит включить км плеер, то все оживает. Скорость движения каретки как была, такой и остается, а уменьшается время необходимое на смену направления и вероятно загрузку буфера, появляется в общем стабильность в экспонировании. Ну и вероятно как то влияет на то что попадает в буфер.
Файл пару страниц назад выкладывал. Он маленький, удобно тестить. Скорость 1000, к=0.15, 720 dpi по каретке и 813 по столу. Я с этими параметрами всегда тестирую. Не обязательно светить плату, я просто смотрю на бегающую точку внимательно. Моргать не желательно.
Ruzik Когда идет экспонирование, то каретка бежит с равномерной скоростью, но как только дело доходит до смены направления и передачи очередной порции информации в буфер установки, то тут то и начинаются странные тупняки. Вроде как и монитор загрузки выше 1% не поднимается во время экспонирования. Но стоит включить км плеер, то все оживает. Скорость движения каретки как была, такой и остается, а уменьшается время необходимое на смену направления и вероятно загрузку буфера, появляется в общем стабильность в экспонировании. Ну и вероятно как то влияет на то что попадает в буфер.
Файл пару страниц назад выкладывал. Он маленький, удобно тестить. Скорость 1000, к=0.15, 720 dpi по каретке и 813 по столу. Я с этими параметрами всегда тестирую. Не обязательно светить плату, я просто смотрю на бегающую точку внимательно. Моргать не желательно.
А сейчас валидность данных как-то проверяется вообще? В принципе установке ничего не мешает ждать очередной строки в одном из крайних положений, а не фигачить пустые данные без проверки.
Могу только дополнить для полноты картины что те пустые строки должны быть с данными, то есть идет потеря строки и заполнение ее нулями. И еще... Давно в программу что то добавляли (когда в ней только uart был) , что то связанное с пустыми строками если мне не изменяет память.
Добавлено after 26 minutes 45 seconds:
Ruzik Заметил интересную особенность. Если включить программу автора, загрузить в нее гербер, установить точку привязки и запустить экспонирование, то скорость каретки плавает. И если в этот момент запустить камеру или перед экспонированием, то скорость такая как должна быть. Дальнейшие действия с плеером на скорость не влияют. Можно и гербер перезагрузить и км плеер включать и выключать, скорость остается стабильной. Но на программе SDimok запуск камеры перед экспонированием ничего не дает, только включенный плеер дает стабильность экспонирования.
Добавлено after 25 minutes 9 seconds:
zenon смена приоритетов с помощью start /SEPARATE /REALTIME /WAIT /D ..... особо не влияет. Приоритет то меняется а скорости и стабильности нет.
Добавлено after 3 minutes 40 seconds:
UPD Кстати mial последние платы делал на авторской программе. Он говорил что пропусков нет. Теперь понятно почему у него нет а у меня есть на этой же программе. Просто он камеру включает для прицела, а я кнопкой F2 только ноль выставляю и запускаю тест.
Добавлено after 26 minutes 45 seconds:
Ruzik Заметил интересную особенность. Если включить программу автора, загрузить в нее гербер, установить точку привязки и запустить экспонирование, то скорость каретки плавает. И если в этот момент запустить камеру или перед экспонированием, то скорость такая как должна быть. Дальнейшие действия с плеером на скорость не влияют. Можно и гербер перезагрузить и км плеер включать и выключать, скорость остается стабильной. Но на программе SDimok запуск камеры перед экспонированием ничего не дает, только включенный плеер дает стабильность экспонирования.
Добавлено after 25 minutes 9 seconds:
zenon смена приоритетов с помощью start /SEPARATE /REALTIME /WAIT /D ..... особо не влияет. Приоритет то меняется а скорости и стабильности нет.
Добавлено after 3 minutes 40 seconds:
UPD Кстати mial последние платы делал на авторской программе. Он говорил что пропусков нет. Теперь понятно почему у него нет а у меня есть на этой же программе. Просто он камеру включает для прицела, а я кнопкой F2 только ноль выставляю и запускаю тест.
Привет всем!
Давненько не заходил. Были серьезные проблемы со здоровьем и в семейной жизни. Вторые еще не кончились, поэтому со свободным временем очень плохо.
Почитал чего вы тут написали...
Выскажу свои мысли.
В версиях с UART портом был реализован контроль доставки пакетов с проверкой КС.
В версии с HID это убрано, видимо в связи с гарантией доставки репортов.
Протокол обмена полностью "слизан" с авторского варианта с помощью сниффера. Ни добавить ни убрать.
Моя версия написана на платформе .NET, что само по себе очень далеко от реального времени (поэтому плавает скорость в зависимости от загрузки и пр.)
Авторская написана на чистом API. Возможно поэтому она работает стабильнее.
Буфер строки заполняется не за один раз (ограничение HID пакетов), но переключение на подготовленный буфер происходит переключением
между буферами DMA (кто то может проверить как это реализовано в контроллере?) В контроллерах я не силен, поэтому сам проверить не смогу.
Почему то мне кажется, что затык именно в этом.
Если бы были пропуски части строки то да, проблема в передаче данных на каком то этапе и неважная их доставка.
Ничего такого не наблюдается. ТОЛЬКО ЦЕЛАЯ СТРОКА. То есть весь подготовленный буфер насмарку.
Есть у меня мысли перейти на другую платформу, но это пока для меня утопия.
Добавлено after 13 minutes 28 seconds:
[uquote="-= Александр =-",url="/forum/viewtopic.php?p=3826048#p3826048"]А сейчас валидность данных как-то проверяется вообще? В принципе установке ничего не мешает ждать очередной строки в одном из крайних положений, а не фигачить пустые данные без проверки.[/uquote]
В принтерах для этого есть флаг готовности к приему данных(ready).
В нашем варианте мы порциями скармливаем данные в дополнительный буфер DMA (доставку гарантирует HID протокол), потом даем команду переключиться между буферами, и далее даем команду на движение каретки.
Печать происходит во время движения по прерываниям энкодера из выбранного буфера.
Вот как тут реализовать контроль?
Пишите предложения.
Давненько не заходил. Были серьезные проблемы со здоровьем и в семейной жизни. Вторые еще не кончились, поэтому со свободным временем очень плохо.
Почитал чего вы тут написали...
Выскажу свои мысли.
В версиях с UART портом был реализован контроль доставки пакетов с проверкой КС.
В версии с HID это убрано, видимо в связи с гарантией доставки репортов.
Протокол обмена полностью "слизан" с авторского варианта с помощью сниффера. Ни добавить ни убрать.
Моя версия написана на платформе .NET, что само по себе очень далеко от реального времени (поэтому плавает скорость в зависимости от загрузки и пр.)
Авторская написана на чистом API. Возможно поэтому она работает стабильнее.
Буфер строки заполняется не за один раз (ограничение HID пакетов), но переключение на подготовленный буфер происходит переключением
между буферами DMA (кто то может проверить как это реализовано в контроллере?) В контроллерах я не силен, поэтому сам проверить не смогу.
Почему то мне кажется, что затык именно в этом.
Если бы были пропуски части строки то да, проблема в передаче данных на каком то этапе и неважная их доставка.
Ничего такого не наблюдается. ТОЛЬКО ЦЕЛАЯ СТРОКА. То есть весь подготовленный буфер насмарку.
Есть у меня мысли перейти на другую платформу, но это пока для меня утопия.
Добавлено after 13 minutes 28 seconds:
[uquote="-= Александр =-",url="/forum/viewtopic.php?p=3826048#p3826048"]А сейчас валидность данных как-то проверяется вообще? В принципе установке ничего не мешает ждать очередной строки в одном из крайних положений, а не фигачить пустые данные без проверки.[/uquote]
В принтерах для этого есть флаг готовности к приему данных(ready).
В нашем варианте мы порциями скармливаем данные в дополнительный буфер DMA (доставку гарантирует HID протокол), потом даем команду переключиться между буферами, и далее даем команду на движение каретки.
Печать происходит во время движения по прерываниям энкодера из выбранного буфера.
Вот как тут реализовать контроль?
Пишите предложения.
SDimok Дело явно не в буфере, а вот с фреймоврками соглашусь. Только что засветил 2 тестовых платки на авторской программе предварительно запустив и выключив камеру станка. Экспонирование прошло на ура, ни единой пустой строки. Так что дело явно не в контроллере.
А вчера на твоей проге запускал эту же плату (2шт) на этих же настройках. Так вот с включенным км плеером(на паузе) все засветилось четко, с выключенным были пропуски. Настройки и режиме везде одинаковые.
PS Там в твоей программе нет возможности прописать режим супер бога для операционки вин7 ?
А вчера на твоей проге запускал эту же плату (2шт) на этих же настройках. Так вот с включенным км плеером(на паузе) все засветилось четко, с выключенным были пропуски. Настройки и режиме везде одинаковые.
PS Там в твоей программе нет возможности прописать режим супер бога для операционки вин7 ?
Последний раз редактировалось urez83 Пн апр 13, 2020 06:59:50, всего редактировалось 1 раз.
Я мог бы изменить протокол программы предварив передаваемую строку ее размером, но и в контроллер придется внести изменения (например переключать буфер автоматически при достижении указанного размера строки).
ИМХО Как мне кажется протокол менять не нужно, потому что HID это гарантирует и проблем с доставкой нет. Если мы будем делать какую то сверку, то проблема останется. А нам надо решить проблему связанную со своевременностью доставки пакетов. А вот привелегии и статус программы для операционки как то можно поднять ?
[uquote="urez83",url="/forum/viewtopic.php?p=3826154#p3826154"]SDimok Дело явно не в буфере, а вот с фреймоврками соглашусь.[/uquote]
Возможно, из за задержек в работе usb HID, происходит несвоевременное переключение между буферами DMA, и информация теряется.
Есть спецы по STM32? Расскажите про подводные камни.
Добавлено after 2 minutes 13 seconds:
[uquote="urez83",url="/forum/viewtopic.php?p=3826162#p3826162"]А вот привелегии и статус программы для операционки как то можно поднять ?[/uquote]
Приоритеты поднять можно, надо попробовать.
Возможно, из за задержек в работе usb HID, происходит несвоевременное переключение между буферами DMA, и информация теряется.
Есть спецы по STM32? Расскажите про подводные камни.
Добавлено after 2 minutes 13 seconds:
[uquote="urez83",url="/forum/viewtopic.php?p=3826162#p3826162"]А вот привелегии и статус программы для операционки как то можно поднять ?[/uquote]
Приоритеты поднять можно, надо попробовать.
Очевидно запуская км плеер я вывожу ядра из спячки или еще что то. А с выключенным, та нагрузка, какую делает программа засветки не представляет ничего серьезного и ядра спят.
PS Прошивку читал, даже выпиливал uart из нее (на скорость не повлияло), но общую структуру чтоб понять, надо изрядно голову поломать. Все задефайнено так, пока одно ищешь другое забудешь.
Добавлено after 2 minutes 55 seconds:
PS Прошивку читал, даже выпиливал uart из нее (на скорость не повлияло), но общую структуру чтоб понять, надо изрядно голову поломать. Все задефайнено так, пока одно ищешь другое забудешь.
Добавлено after 2 minutes 55 seconds:
Я пробовал доступными средствами из командной строки, не особо помогло. Тут надо как то в исходниках вероятно, из недр программы так сказать.Приоритеты поднять можно, надо попробовать.
[uquote="urez83",url="/forum/viewtopic.php?p=3826169#p3826169"]Все задефайнено так, пока одно ищешь другое забудешь.[/uquote]
Автор очень хорошо знает C
Автор очень хорошо знает C
Знать то си знает, главное что он знает критические ко времени места и общую структуру своей программы. Где то допилив ее, мы можем нарушить работу критичных ко времени участков и появятся новые проблемы о которых можно сразу и не узнать.
Кто тут у нас наследник AlphaCrow? KPG ?
Скажи нам на каком приоритете работает экспонирование?
У автора скорее всего экспортируется функция:
[DllImport("Kernel32.dll")]
static extern bool SetPriorityClass(IntPtr hProcess, int dwPriorityClass);
Можно проверить экспериментально, конечно догадки urez83.
Вечером соберу версию со сменой приоритета... Нужны бэта тестеры
Скажи нам на каком приоритете работает экспонирование?
У автора скорее всего экспортируется функция:
[DllImport("Kernel32.dll")]
static extern bool SetPriorityClass(IntPtr hProcess, int dwPriorityClass);
Можно проверить экспериментально, конечно догадки urez83.
Вечером соберу версию со сменой приоритета... Нужны бэта тестеры
- Сообщения: 54
- Зарегистрирован: Чт сен 27, 2018 23:50:01
[uquote="SDimok",url="/forum/viewtopic.php?p=3826166#p3826166"]Возможно, из за задержек в работе usb HID, происходит несвоевременное переключение между буферами DMA, и информация теряется.
Есть спецы по STM32? Расскажите про подводные камни.[/uquote]
Есть исходники прошивки с hid? в архиве только с UART.
Могу usb cdc добавить.
Есть спецы по STM32? Расскажите про подводные камни.[/uquote]
Есть исходники прошивки с hid? в архиве только с UART.
Могу usb cdc добавить.
Последний раз редактировалось andryblack Пн апр 13, 2020 07:32:14, всего редактировалось 1 раз.
Всегда пожалуйста.SDimok писал(а): Нужны бэта тестеры
Прототипы печатных плат на заказ https://radiokot.ru/forum/viewtopic.php?f=54&t=122701


