Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> libubs usb термометр. перевод кода на delphi 
:(
    Опции темы
maloicds
Дата 26.2.2012, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 20.10.2009
Где: Москва

Репутация: нет
Всего: нет



Всем привет. Есть схема usb термометра и к ней программа USB Thermometer написанная на с++ (как я понимаю). Подробности здесь. В архиве исходники прошивки мк и программы для пк. Пытаюсь софт переписать на Delphi с использованием libusb. Начал с простого. Включение (выключение) каналов. В интеренте нашел только код инициализации устройства. Всё остальное идёт для HID устройств.
Код

function USBDeviceOpen(var devhandle:pusb_dev_handle;VID, PID: word): bool;
var
  bus: pusb_bus;
  dev: pusb_device;
begin
  usb_init;
  usb_find_busses;
  usb_find_devices;
  bus := usb_get_busses;
  Result := false;
  while Assigned(bus) do
    begin
      dev := bus^.devices;
      while Assigned(dev) do
        begin
          if (dev.descriptor.idVendor = VID) and (dev.descriptor.idProduct = PID) then
          begin
            devhandle := usb_open(dev);
            Result := true;
          end;
          dev := dev^.next
        end;
      bus := bus^.next;
    end;
end;


Дальше делаю так:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  res: byte;
  Buffer: array [0..63] of byte;
  udev: pusb_dev_handle;
begin
  if USBDeviceOpen(udev,$0000, $10B0) = true then
  begin
    res := usb_set_configuration(udev, 1);
    if res = 0 then
      begin
        res := usb_claim_interface(udev, 0);
        if res = 0 then
          begin
            Form1.Memo1.Lines.Add('Connection OK');
            usb_bulk_write(udev,  USB_ENDPOINT_OUT, Buffer, 64, 100);
            usb_release_interface(udev, 0);
            usb_close(udev);
          end;
      end;
  end;
end;

Что писать в функции usb_bulk_write я не знаю. Естественно и как получить значения температуры и номера датчиков тоже  smile . Нужна помощь!!
PM MAIL   Вверх
Pr0100Man
Дата 22.12.2013, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.12.2013

Репутация: нет
Всего: нет



Тоже начал биться над этой темой, подскажите пожалуйста удалось ли вам написать программу на Delphi?
PM MAIL   Вверх
Alexeis
Дата 23.12.2013, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: нет
Всего: 459



  У меня работает связь через Libusb, по bulk . Вообще, maloicds по логике делал все правильно, нужно смотреть коды ошибок. Для тестов можно использовать его код.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 24.12.2013, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



код показан дельфовый , а вопрос по коду в МК .... 



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Pr0100Man
Дата 26.12.2013, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.12.2013

Репутация: нет
Всего: нет



Вот я тоже скачал LibUSB но додуматься не могу... если все исправно работает подилитесь пожалуйста кодом!! smile  а то верхний пример вроде работает а вроде нет )) на массив почему то ругается ))) и вот на res := usb_set_configuration(udev, 1); 
PM MAIL   Вверх
Alexeis
Дата 27.12.2013, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: нет
Всего: 459



  Нууу в этом разделе обучать основам языка Object Pascal никто не будет. Открываем описание функции usb_set_configuration в модуле libusb, читаем какой тип оно хочет, делаем переменную соответствующего типа. Тоже самое с функцией usb_bulk_write . У меня вообще, код на С++, так что как там в делфи назвали соответствующие типы данных загадка.  Может вместо 

usb_bulk_write(udev,  USB_ENDPOINT_OUT, Buffer, 64, 100);

usb_bulk_write(udev,  USB_ENDPOINT_OUT, @Buffer[0], 64, 100);

В делфи есть разные правильные варианты как описать одну и ту же функцию С++, можно через массив, можно через указатель или даже через var параметр.




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.