![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Приобрел такую "игрушку". Не получается с ним работать. Как написано в описание к устройстве, управление осуществляется текстовыми командами ($KE). Ни как не выходит у меня отправить на устройство команду, получить ответ, или получить данные с АЦП. Если может кто подсказать, буду благодарен. Страница откуда узнал про устройство-http://www.kernelchip.ru/Jerome.php На этой странице пример кода на С+ - http://www.kernelchip.ru/articles/KA013.php А на этой странице передача команд через СОМ http://www.pcports.ru/articles/ke_usb7.php Есть огромное желание заставить его работать из под Delphi. Я так понимаю если есть возможность работы через СОМ порт то получится и через Ethernet.
|
#2
|
||||
|
||||
![]() Причем тут COM? Модуль сделан для работы через Ethernet, и судя по коду на си, через TCP/IP. COM никакого отношения к этому не имеет. Почему? Потому что COM (RS232) это дергание напряжения на проводке Tx для передачи команды "как есть", отправил байт - получил байт. TCP/IP же при отправке пакета (даже одного байта) оборачивает его большим количеством заголовоков и работает с IP адресами. Работа через COM возможно только при наличии переходника COM->Ethernet, что, имхо, является бредом.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() Да я СОМ для примера привел (типа как команды отправляются), прекрасно понимаю что разные протоколы передачи.
|
#4
|
||||
|
||||
![]() ИМХО проще всего было бы перевести код си на делфи, поменяв тамошние TCP/IP на какие-нибудь делфовые сокеты (или через WinSock).
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() Пока у меня получилось к нему только подключится. Использовал TClientSocket.
Если верить выполнению этой процедуры PHP код:
Так пытаюсь отправить команду устройству PHP код:
В ComboBox1 у меня несколько команд типа такой - $KE |
#6
|
||||
|
||||
![]() Вообще-то
Код:
ComboBox1.Items.Strings[i]; jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
![]() Я из этого примера исходил.
PHP код:
Хотя конечно ни к месту. Это к USB подключается, и определяется как СОМ. В вопросе ссылка есть. А хочется разобраться. ![]() |
#8
|
||||
|
||||
![]() тут на форуме уже как то спрашивали про работу с именно этим устройством. там смысл в том, что нужно напрямую слать ему команды, например:
Код:
ClientSocket1.Socket.SendText('$KE'); Пишу программы за еду. __________________ |
#9
|
||||
|
||||
![]() Пробовал найти информацию по управлению и связью с модулем, не отыскал. Потому и обратился к спецам
![]() Пробую отправить пароль модулю, как пишут в мануале, без ввода пароля он не будет реагировать на команды. PHP код:
От модуля не могу ни чего получить, получаю так PHP код:
PHP код:
|
#10
|
||||
|
||||
![]() вся информация тут: http://www.kernelchip.ru/download/Je...mandsGuide.pdf команда $KE работает без пароля.
алгоритм такой: -кидаешь на форму TClientSocket. Address = '192.168.0.101', Port = 2424 -назначаешь OnConnect и OnRead -на OnConnect просто выводишь сообщение, что подключился -на OnRead что-то типа: Код:
Memo1.Text:=Socket.ReceiveText; Код:
ClientSocket1.Socket.SendText('$KE'#13#10); Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
fofka (24.12.2011)
|
#11
|
||||
|
||||
![]() NumLock благодарю за совет. Все получилось. Я забыл про перевод строки. Все получилось. По крайней мере команды на включение и выключение каналов работают. Теперь буду пробовать получить с АЦП информацию.
Еще раз спасибо за помощь ![]() |
#12
|
||||
|
||||
![]() Не так просто оказалось получить данные с АЦП.
Если отправить запрос на получение данных PHP код:
Решение отыскал, но опять все на СОМ порт написано. Помогите разобраться ![]() http://www.pcports.ru/articles/ke_usb13.php Выделение данных от АЦП из потока |
#13
|
||||
|
||||
![]() ну так в OnRead обрабатывай ответ. если он начинается с "#ADC", то значит это данных АЦП и их нужно записать в Edit.
Пишу программы за еду. __________________ |
#14
|
||||
|
||||
![]() В общем разобрался с этим устройством. Все в проекте. Сделал по минимуму. Подключение, отправка тестового запроса, отправка пароля устройства (без пароля ни чего не управляется). Управление тремя каналами (подача лог 1 или 0). Получение данных с АЦП1 как через таймер так и через кнопку "Проверить". Как пример может кому еще и пригодится.
P.S. Оформление кода так себе, все таки тестовая версия. Всем спасибо за помощь. Последний раз редактировалось fofka, 03.01.2012 в 20:07. |