Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- SEG_A = $01; SEG_B = $02; SEG_C = $04; SEG_D = $08;
- SEG_E = $10; SEG_F = $20; SEG_G = $40; SEG_DP = $80;
- Digits : array [0..15, 0..1] of ansichar =
- ( // Знакогенератор
- ('0', chr(SEG_A or SEG_B or SEG_C or SEG_D or SEG_E or SEG_F)),
- // Skipped
- ('f', chr(SEG_A or SEG_E or SEG_F or SEG_G))
- );
- // Преобразование символа в картинку
- function decode(c : ansichar; dp : boolean): byte;
- var i : integer;
- begin
- Result := 0;
- for i := low(Digits) to high(Digits) do
- if Digits[i][0] = c then
- Result := ord(Digits[i][1]);
- Result := Result or ord(dp) * $80;
- end;<
- // Коллбек для поиска устройств
- function TForm1.hidEnumerate(HidDev: TJvHidDevice; const Idx: Integer): Boolean;
- const
- VID = $16C0;
- PID = $05DF;
- begin
- if (HidDev.Attributes.VendorID = VID) and (HidDev.Attributes.ProductID = PID) then begin
- Dev := HidDev;
- Dev.CheckOut; // Без него не заработает!
- end;
- end;
- // Отправка новой картинки
- procedure TForm1.Send(s : string; points: array of boolean; led : boolean);
- var i : integer;
- d : array [0..5] of byte;
- begin
- if Dev = nil then
- exit;
- if length(s) <> 4 then
- exit;
- if length(points) <> 4 then
- exit;
- d[0] := 0; // Report ID
- d[1] := ord(led);
- for i := 1 to 4 do
- d[i+1] := decode(ansichar(s[i]), points[i-1]);
- Dev.SetFeature(d,6); // Шлём feature репорт из 6 байт
- end;
Advertisement
Add Comment
Please, Sign In to add comment