понедельник, 8 февраля 2016 г.

Работа с диагностическими весами USB Beurer BG64 через LibUSB

Данная библиотека (далее DLL) для работы с диагностическими весами USB Beurer BG64 (Beurer GmbH, Германия), через LibUSB.DLL в ОС NT/2000/2003/XP/7 и выше, позволяет получить список устройств на шине, в том числе считать внутренний буфер весов для 10-ти пользователей для осуществления долгосрочного фитнесс-анализа. Для использования DLL в своих проектах соблюдайте соглашение об stdcall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.
 
Пакет данных содержит следующую информацию:

  1. Weight kg
  2. Body fat %
  3. Water %
  4. Muscles %
  5. Bones kg
  6. Date
  7. Upper body fat % (not for BG64)
  8. Lower body fat % (not for BG64)
  9. Upper body muscles % (not for BG64)
  10. Lower body muscles % (not for BG64)
  11. BMR
  12. AMR
Таблица расшифровок входных и выходных параметров экспортируемой процедуры GETS() библиотеки:


Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL/XE5-7):
type tmas = array of pansichar;

var gets0:procedure(VID, PID: dword; var res: tmas);stdcall;
    gets:procedure(VID, PID: dword; var res: tmas);stdcall;
    LibHandle: THandle;

function LinkProc(ProcName: string):Pointer;
begin
 result:= GetProcAddress(LibHandle, PChar(ProcName))
end;

{ инициализация }
begin
 LibHandle:= LoadLibrary('holtek.dll');
 if LibHandle<>0 then begin
  gets0:= LinkProc('gets0');
  gets := LinkProc('gets');
 end;
...

{ деинициализация }
begin
 if LibHandle<>0 then
  FreeLibrary(LibHandle);
...

{ пример получения содержимого внутреннего буфера (данные не распарсены) }
var t: tmas;
    i: integer;
begin
 memo1.Clear;

 gets(SpinEdit1.Value, SpinEdit1.Value, t);
 for i := 0 to length(t)-1 do
  memo1.Lines.Add(t[i]);
...
ПОРЯДОК ИСПОЛЬЗОВАНИЯ

1. Задаваемые параметры для поиска устройства 'VID' и 'PID' функции GETS() могут быть пустыми, тогда по-умолчанию будут присвоены VID=$4D9, PID=$8010 весов Beurer BG64.
2. Данные внутреннего буфера требуется дополнительно распарсить.

3. Погрешность весов недостаточна для медицинских целей.

Кратко о диагностических весах:


скачать | мануал на весы 

Комментариев нет:

Отправить комментарий

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.