WItam
dostaje zakodowana informacje o stanie urzadzenia w postaci ciagu bitow
pytanie moje brzmi:
<B>jak sprawdzic po ktore bity maja wartosc 1 a ktore 0?</b>
moj pomysl to zaladowac te bity do odpowiedzniej dlugosci tablicy </b>byte</b>
i dalej:
var
bity: array[0..26] of boolean;
tab: array[0..3] of byte;
i: integer;
begin
ApdComPort1.GetBlock(tab,count); // odebranie danych - nie istotne dla problemu
for i := 1 to 4 do begin
if tab[i] and 1 = 1 then bity[i*8 + 0] := true;
if tab[i] and 2 = 2 then bity[i*8 + 1] := true;
if tab[i] and 4 = 4 then bity[i*8 + 2] := true;
if tab[i] and 8 = 8 then bity[i*8 + 3] := true;
if tab[i] and 16 = 16 then bity[i*8 + 4] := true;
if tab[i] and 32 = 32 then bity[i*8 + 5] := true;
if tab[i] and 64 = 64 then bity[i*8 + 6] := true;
if tab[i] and 128 = 128 then bity[i*8 + 7] := true;
end;
end;
no i mam po tym tablice z bity z wartosciami true
jesli bit byl '1'
no ale wydaje mi sie to niezbyt sprytne rozwiazanie...
czy ktos ma jakis pomysl jak to lepeij rozwiazac?
w tym przypadku mam akurat 27 bitow ale ta ilosc bedzie sie zmieniac.
pozdrawiam
i czekam na Wasze pomysly