function [a err] = det_CRC(type,b)

%% Detektory
% popis generátorů CRC za pomoci jejich polynomů a vytvoření detektorů

% gCRC24A: D24 + D23 + D18 + D17 + D14 + D11 + D10 + D7 + D6 + D5 + D4 + D3
% + D + 1
% polynom
gCRC24A_p = [1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1];
% detektor CRC za pomoci fce crc.detector
dCRC24A = crc.detector(gCRC24A_p);

% gCRC24B: D24 + D23 + D6 + D5 + D + 1
gCRC24B_p = [1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1];
dCRC24B = crc.detector(gCRC24B_p);

% gCRC16: D16 + D12 + D5 + 1
gCRC16_p = [1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];
dCRC16 = crc.detector(gCRC16_p);

% gCRC8: D8 + D7 + D4 + D3 + D + 1
gCRC8_p = [1 1 0 0 1 1 0 1 1];
dCRC8 = crc.detector(gCRC8_p);

%% Odebrání CRC a vyhodnocení chyby
% odebere z posloupnosti CRC ochranu a přidá informaci, zdali byla
% posloupnost přijata v pořádku
if(strcmp(type, 'gCRC24A')),
    % Detect the error
    [a err] = detect(dCRC24A, b);
elseif(strcmp(type, 'gCRC24B')),
    [a err] = detect(dCRC24B, b);
elseif(strcmp(type, 'gCRC16')),
    [a err] = detect(dCRC16, b);
elseif(strcmp(type, 'gCRC8')),
    [a err] = detect(dCRC8, b);
end 