%sFtpTypeCast %change set the "type" of the read data % %in------------------------------------------------------------------------ %data: data read from file on remote server (in int8 format) %type: type in which "data" will be transformed % %out----------------------------------------------------------------------- %erg: "data" in "type" representation %########################################################################## function [ erg ] = sFtpTypeCast(data, type) if (strcmp(type,'char') || strcmp(type,'uchar') || strcmp(type,'uint8')) typeLen = 1; elseif (strcmp(type,'uint16') || strcmp(type,'short') || strcmp(type,'int16')) typeLen = 2; elseif (strcmp(type,'int32') || strcmp(type,'long')) typeLen = 4; end Len = length(data); loop1 = Len / typeLen; data = double(data); erg = []; for ii = 1:loop1 erg(ii) = 0; for i = 1:typeLen tmp = data(i); if (data(i) < 0) tmp = data(i) + 256; end erg(ii) = erg(ii) + tmp * 2^(8*(i-1)); end if (erg(ii) > (2^(((8*typeLen)-1)-1))) if ( strcmp(type,'int8') || strcmp(type,'int16') || strcmp(type,'short') || strcmp(type,'int32') || strcmp(type,'long') ) erg(ii) = erg(ii) - 2^(8*typeLen); end end; data(1:typeLen) = []; end if (strcmp(type,'char') || strcmp(type,'uchar')) erg = char(erg); elseif ( strcmp(type,'uint8') ) erg = uint8(erg); elseif ( strcmp(type,'uint16') ) erg = uint16(erg); elseif ( strcmp(type,'short') || strcmp(type,'int16') ) erg = int16(erg); elseif (strcmp(type,'int32') || strcmp(type,'long')) erg = int32(erg); end end