function [Packet,Error] = i3dmgx2_WriteGyroBiasCM(SerialLink,GyroBias,SampleRate)
%Writes the gyroscope bias correction to sensor
%
%Arguments: SerialLink - Handle of serial link
%           GyroBias - Vector of gyroscope bias correction values
%           SampleRate - Rate at which device sends out packets
%
%Returns:   Packet - The data packet
%           Error - Error number

Error = purgePort(SerialLink); %Clear buffer
if Error == 0
    Error = i3dmgx2_SendBuffData(SerialLink,'CMD_WRITE_GYRO_BIAS'); %Write command to device
    if Error == 0
        for ByteNum = 1:length(GyroBias)
            fwrite(SerialLink,GyroBias(ByteNum))
        end
        [Packet,Record,Error] = i3dmgx2_ReceiveDataContinuous(SerialLink,'CMD_WRITE_GYRO_BIAS',SampleRate); %Read data from device
        if Error ~= 0
            Packet = [];
        end
    else
        Packet = [];
    end
else
    Packet = [];
end