Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Пт ноя 11, 2016 16:23:00
Мурик писал(а):ART_ME писал(а):Ничего плохого в этом нет, если есть ТЗ. А вот если его нет?
Не совсем понял связь между ТЗ (техническим заданием?) и описанием переменных. Как одно с другим связанно?
Тоже интересно...На кой ТЗ к переменным ?
Добавлено after 1 minute 45 seconds:Мурик писал(а):Сделано по таймеру и время изменения цвета соответствует одному тику таймера. Задержки нежелательны в том же потоке в котором выполняется обработчик событий окон.
Ну таймер-то прерывания вызывает ?
Пт ноя 11, 2016 16:36:16
Таймер привязан к окну и является одним из его событий, т. е. виртуальный таймер. Винда не позволит приложениям работать с прерываниями. Это привилегия ядра системы и драйверов.
Пт ноя 11, 2016 18:08:19
Мурик писал(а):Хорошо, спрошу по другому. Допустим я знаю что мне нужна переменная....
Допустим, что Вы пока еще не знаете, что Вам нужна некая переменная... У Вас что, и вправду, такой вариант в голове не укладывается?
Перед Вами коробка с 64 входами и 64 выходами. Откуда Вы заранее можете знать, что и когда на какой вход подать когда абсолютно никакой техдокументации у Вас на эту коробку нет и никогда не будет?
Добавлено after 15 minutes 40 seconds:Мурик писал(а):ART_ME писал(а):Легко и просто - это НЕ 150 строк. Это одна-две, ну в худшем случае три строки.
Код открывающий порт COM1 и устанавливающий логическую единицу на выходе DTR.
А можно посмотреть и проверить работу сего феномена?
Пт ноя 11, 2016 18:39:02
ART_ME писал(а):Допустим, что Вы пока еще не знаете, что Вам нужна некая переменная
Если я пишу программу то точно знаю что нужно. Если размер данных заранее неизвестен, то применяют динамические массивы или динамическое выделение памяти необходимого размера.
ART_ME писал(а):Перед Вами коробка с 64 входами и 64 выходами. Откуда Вы заранее можете знать, что и когда на какой вход подать когда абсолютно никакой техдокументации у Вас на эту коробку нет и никогда не будет?
Это как "пойди туда не знаю куда и принеси то не знаю что"?
Если ничего не известно о взаимодействии с устройством, то использовать его не получится и ProfiLab в этом не поможет.
ART_ME писал(а):А можно посмотреть и проверить работу сего феномена?
Можно
https://www.purebasic.com/download.phpРусификатор найти в сети не сложно.
Запуск программы IDE - меню "Компилятор" --> "Компиляция/запуск".
Создание исполняемого файла - меню "Компилятор" --> "Создать приложение".
Пт ноя 11, 2016 18:52:49
Мурик писал(а):ART_ME писал(а):Допустим, что Вы пока еще не знаете, что Вам нужна некая переменная
Если я пишу программу то точно знаю что нужно.
В этом и состоит разница между монтажкой (проектированием) и его конечным исполнением (распайкой).
Мурик писал(а):Если ничего не известно о взаимодействии с устройством, то использовать его не получится и ProfiLab в этом не поможет.
То есть если Вам не дали на прибор инструкцию, то Вы его выкинете?
Увы, я не увидел в его системе команд команды вывода бита на Tx.
Пт ноя 11, 2016 19:02:58
ART_ME писал(а):То есть если Вам не дали на прибор инструкцию, то Вы его выкинете?
Если о приборе ничего не известно (какую функцию он выполняет и как с ним взаимодействовать) то для чего его применить?
ART_ME писал(а):Увы, я не увидел в его системе команд команды вывода бита на Tx.
Это есть
https://www.purebasic.com/documentation ... tatus.html#PB_SerialPort_TXD: Set TXD signal status (value can be 0 or 1)
Пт ноя 11, 2016 19:45:59
Мурик писал(а):Если о приборе ничего не известно (какую функцию он выполняет и как с ним взаимодействовать) то для чего его применить?
Такой прибор и называется "черный ящик", который Вы каждый раз видите перед собой после самостоятельной разработки чего-нибудь.
Т.к. вследствие ошибок Вы не в состоянии предсказать реакцию прибора на воздействия, Вам придется изучать эти реакции, но
перечень и порядок воздействий определяются по ходу получения реакций. Иными словами, Вы эти воздействия предсказать не в состоянии.
Мурик писал(а):#PB_SerialPort_TXD: Set TXD signal status (value can be 0 or 1)
И 75 строк до неё и еще 75 строк после?
Пт ноя 11, 2016 19:54:44
- Код:
OpenSerialPort(0, "COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
SetSerialPortStatus(0, #PB_SerialPort_TXD, 1)
Delay(4000)
Сколько строк получается?
Последнюю можно не считать.
Пт ноя 11, 2016 20:10:10
Означает ли это, что если я напишу всего лишь:
cikl:
OpenSerialPort(0, "COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
SetSerialPortStatus(0, #PB_SerialPort_TXD, 1)
OpenSerialPort(0, "COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
SetSerialPortStatus(0, #PB_SerialPort_TXD, 0)
goto cikl
то я получу на пине 3 порта COM генератор?
Пт ноя 11, 2016 20:17:30
Нет смысла постоянно отрывать порт. Достаточно сделать раз при старте программы.
- Код:
OpenSerialPort(0, "COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
Repeat
SetSerialPortStatus(0, #PB_SerialPort_TXD, 1)
SetSerialPortStatus(0, #PB_SerialPort_TXD, 0)
ForEver
Сб ноя 12, 2016 07:17:59
Спасибо, я попробую.
Добавлено after 39 minutes 41 second:https://www.youtube.com/watch?v=6S6BbxhAF8cА сделайте плиз мне такие же 3-5 строк для управления пином порта LPT. А вдруг?
ЗЫ. Попробовал Ваш исходник TestComPort. Не заработал и выдал вот такое сообщение:
Сб ноя 12, 2016 11:47:37
Для LPT порта нужен драйвер... Для установки драйвера необходимы права администратора.
Установка лог. 1 на первом пине LPT1.
- Код:
XIncludeFile "pbdriverio_Framework.pbi"
hDriver = OpenDriver_PB_IO()
PortOut(hDriver, $378, 1)
CloseDriver(hDriver)
- Вложения
-
- COM_LPT.zip
- (58 KiB) Скачиваний: 254
Сб ноя 12, 2016 12:58:42
- Код:
XIncludeFile "pbdriverio_Framework.pbi"
hDriver = OpenDriver_PB_IO()
Repeat
PortOut(hDriver, $378, 1)
PortOut(hDriver, $378, 0)
ForEver
CloseDriver(hDriver)
Так?
Сб ноя 12, 2016 13:14:52
Да.
Сб ноя 12, 2016 19:52:46
Новый TestComPort работает.
Остальное попозже.
Вс ноя 13, 2016 07:42:41
При запуске PB_LPT_Pins_pbdriverio выскакивает "Ошибка доступа к драйверу" Код ошибки 0".
Ни запуск от администратора, ни размещение драйверов в system32 эффекта не дают.
Может этот pbdriverio_x64 нужно как-то отдельно инсталлировать?
----------
Увы, все те же грабли....
Данный плагин позволит получить доступ к любому порту компьютера в обход защиты Windows.
Это например, нужно для работы с LPT портом.
В отличие от других плагинов, этот не требует других файлов, типа InpOut32.dll (плагин сам является аналогом этой библиотеки). И он работает не только на x86 (32 бита), но и на x64 (64 бита) системах.
Плагин использует для работы с портами, драйверы pbdriverio.sys и pbdriverio_x64.sys (устанавливается соответствующий разрядности системы).
Работа плагина была проверена на системах Windows 2000 / XP / 7.
Плагин и драйверы были написаны мною на PureBasic (исходники прилагаются).
Учтите, драйверы не имеют цифровой подписи майкрософт (она стоит несколько сотен вечнозеленых и для бесплатных проектов это непозволительная роскошь), поэтому в Windows 7 x64, драйвер удастся загрузить только переведя систему в тестовый режим.
.... Любопытно, а существует хоть одна программерская фирма, у которой есть подписанный у мелкомягких драйвер LPT?
Вс ноя 13, 2016 11:34:31
Если винда x64 то драйвер должен иметь цифровую подпись или тестовую, но тогда винда должна работать в тестовом режиме.
Вс ноя 13, 2016 12:16:49
Мурик писал(а):Если винда x64 то драйвер должен иметь цифровую подпись или тестовую, но тогда винда должна работать в тестовом режиме.
Ну дык я о том и спрашиваю: существует ли в мире хоть одна программерская фирма, располагающая подписанным драйвером на доступ к LPT?
Вс ноя 20, 2016 13:38:06
Скоро сказка сказывается, да не скоро дело делается.
Китайцы не все прислали, пришлось паять из того, что было.
Плата приложена.
Добавлено after 5 minutes 46 seconds:А вот это имитатор энкодера в профилабе, который работает с платой выше.
В данном случае мне оказалось неизмеримо легче использовать готовое схемное решение, чем самому писать программу.
То есть происходит сравнение ни того, что можно сделать, или того, что лучше сделать, а того, что имеется в свободном доступе - на блюдечке с голубой каемочкой.
Схем квадратурных энкодеров в инете и литературе полно, а вот программ, их эмулирующих, я не встречал ни разу.
В результате трудозатраты несоизмеримы - профилаб на коне.
- Вложения
-
- Энкодер.JPG
- (77.56 KiB) Скачиваний: 384
-
- ProfiLab_OY_2+COM_8.lay6
- (116.21 KiB) Скачиваний: 231
Пн дек 05, 2016 13:25:14
Попал в исследования мощный драйвер ШД.
Ну, думаю, счас ему профилаб на степ\дир прицеплю, схему с разгоном частоты сотворю и буду ШД гонять на всяких-разных режимах.
Благо что уж очень удобен для этой цели профилаб оказался - универсальный ГУН готовым блоком имеется, и всё получается
совсем легко и просто.
Но случился облом - импульсы на выходе профилаба до такой степени вышли "грязные", что возникло сомнение в исправности ШД.
Ладно если на 15 кГц такое приключилось, на 100 Гц ШД трясет!!!
Пришлось достать из архивов платку с крутилками, которая и показала, что ШД исправен.
Отсюда вывод - профилаб в динамике абсолютно непригоден для практического использования, только в статике - супер набор тумблеров,
и не более того.
Красивая у немцев вышла... игрушка.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.