Приехал одноканальный контроллер Velleman K8096. Была робкая наивная надежда, что «оно» будет assembled (собрано-спаяно). Ан нет, оказалась вполне хардкорная версия: всё аккуратной россыпью и паять-собирать его придется самому.
Пока нет в наличии ШД и другого «железа», собираю программный интерфейс (использую Free Pascal с Lazarus), да заодно изучаю API. Выяснился довольно интересный нюанс API: коннект с контроллером, видимо, подразумевает простое открытие заданного порта, без проверки сигнатур или чего-то похожего. Т.е. можно без проблем открыть COM1 и получить «Подключение ОК», если к нему что-то там подключено (был этим весьма удивлен). Проверка подключения, видимо, работает аналогично: просто проверяя, был ли ранее открыт порт устройства. В результате, пришлось контроль подключения к контроллеру усложнить с одного вызова аж до трех (проверять еще и возвращаемые параметры устройства, используя их в качестве эрзац-сигнатуры): if ele if else...
Задал вопрос на форуме Velleman'а. Интересно, что они ответят. Не хотелось бы оставлять программу без контроля подключения именно к контроллеру, а не «в белый свет как в копеечку».
Пока нет в наличии ШД и другого «железа», собираю программный интерфейс (использую Free Pascal с Lazarus), да заодно изучаю API. Выяснился довольно интересный нюанс API: коннект с контроллером, видимо, подразумевает простое открытие заданного порта, без проверки сигнатур или чего-то похожего. Т.е. можно без проблем открыть COM1 и получить «Подключение ОК», если к нему что-то там подключено (был этим весьма удивлен). Проверка подключения, видимо, работает аналогично: просто проверяя, был ли ранее открыт порт устройства. В результате, пришлось контроль подключения к контроллеру усложнить с одного вызова аж до трех (проверять еще и возвращаемые параметры устройства, используя их в качестве эрзац-сигнатуры): if ele if else...
ОтветитьУдалить«В результате, пришлось контроль подключения к контроллеру усложнить», но и это не помогло. Цепляется почти на любой существующий COM-порт.
ОтветитьУдалитьЗадал вопрос на форуме Velleman'а. Интересно, что они ответят. Не хотелось бы оставлять программу без контроля подключения именно к контроллеру, а не «в белый свет как в копеечку».
ОтветитьУдалитьОтветили. Я предположил верно, API DLL никаких функций проверки не обеспечивает. Посоветовали проверять через VendorID/ProductID.
ОтветитьУдалитьПривез шаговый двигатель (NEMA 17) на 12 В, 0,3 А, 0,28 Нм.
ОтветитьУдалитьВариант косвенной проверки подключения контроллера все-таки найден.
ОтветитьУдалитьЭто проще, чем через VendorID/ProductID.