AHRSInterface.AHRS.handle_packet_configuration C# (CSharp) Method

handle_packet_configuration() private method

private handle_packet_configuration ( byte type, int length, byte data ) : void
type byte
length int
data byte
return void
        private void handle_packet_configuration(byte type, int length, byte[] data)
        {
            int i = 4;
            // int endid=0;

            byte[] Data_tmp = new byte[4];
            float[] data_tmp_acc_alig = new float [9];
            float[] data_tmp_acc_bias = new float[3];

            float[] data_tmp_mag_alig = new float[9];
            float[] data_tmp_mag_bias = new float[3];

            float[] data_tmp_gyro_alig = new float[9];
            float[] data_tmp_gyro_bias = new float[3];

            float acc_covariance = 0;
            float mag_covariance = 0;
            float[] q_biasr = new float[4];
            float[] quat_initr = new float[4];
            float[] gainr = new float[4];
            float filter_typer = 0;
            float convolution_timer = 0;

            int output_enabler = 0;
            int output_rater = 0;
            int badurater = 0;
            int portr = 0;
            int id_dispositivo = 0;
            int FW_version = 0;

            //acc
            configuration_String="";

            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[2] = BitConverter.ToSingle(Data_tmp, 0);
             i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[3] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[4] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[5] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[6] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[7] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_alig[8] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_bias[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_bias[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_acc_bias[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //mag

            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[3] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[4] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[5] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[6] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[7] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_alig[8] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_bias[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_bias[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_mag_bias[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //gyro

            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[3] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[4] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[5] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[6] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[7] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_alig[8] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_bias[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_bias[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            data_tmp_gyro_bias[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //acc covariance
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            acc_covariance = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //mag covariance
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            mag_covariance = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //quat init
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            quat_initr[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            quat_initr[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            quat_initr[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            quat_initr[3] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //qbias init
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            q_biasr[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            q_biasr[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            q_biasr[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //gain init
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            gainr[0] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            gainr[1] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            gainr[2] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            gainr[3] = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //filter_type_parser
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            filter_typer = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //convolution_time_parser
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            convolution_timer = BitConverter.ToSingle(Data_tmp, 0);
            i += 4;

            //output_enabler
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            output_enabler = BitConverter.ToInt32(Data_tmp, 0);
            i += 4;

            //output_rater
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            output_rater = BitConverter.ToInt32(Data_tmp, 0);
            i += 4;

            //badurater
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            badurater = BitConverter.ToInt32(Data_tmp, 0);
            i += 4;

            //portr
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            portr = BitConverter.ToInt32(Data_tmp, 0);
            i += 4;

            //id_dispositivo
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            id_dispositivo = BitConverter.ToInt32(Data_tmp, 0);
            i += 4;

            //FW_version
            Data_tmp[0] = data[i + 0];
            Data_tmp[1] = data[i + 1];
            Data_tmp[2] = data[i + 2];
            Data_tmp[3] = data[i + 3];
            FW_version = BitConverter.ToInt32(Data_tmp, 0);

            configuration_String += "Id ";

            configuration_String += id_dispositivo.ToString();
            configuration_String += "\n\n";

            configuration_String += "FW_version ";

            configuration_String += FW_version.ToString();
            configuration_String += "\n\n";

            configuration_String += "acc alignment \n";
            for (int j = 0; j <=8 ; j++)
            {
                configuration_String += data_tmp_acc_alig[j].ToString();
                configuration_String += " ";
                if (j == 2 || j == 5)
                {
                    configuration_String += "\n";
                }

            }
            configuration_String += "\n\n";

            configuration_String += "acc bias  \n";
            for (int j = 0; j <=2; j++)
            {
                configuration_String += data_tmp_acc_bias[j].ToString();
                configuration_String += " ";

            }
            configuration_String += "\n\n";

            configuration_String += "mag alignment \n";
            for (int j = 0; j <= 8; j++)
            {
                configuration_String += data_tmp_mag_alig[j].ToString();
                configuration_String += " ";
                if (j == 2 || j == 5)
                {
                    configuration_String += "\n";
                }

            }
            configuration_String += "\n\n";

            configuration_String += "mag bias \n";
            for (int j = 0; j <=2; j++)
            {
                configuration_String += data_tmp_mag_bias[j].ToString();
                configuration_String += " ";

            }
            configuration_String += "\n\n";

            configuration_String += "gyro alignment \n";
            for (int j = 0; j <= 8; j++)
            {
                configuration_String += data_tmp_gyro_alig[j].ToString();
                configuration_String += " ";
                if (j == 2 || j == 5)
                {
                    configuration_String += "\n";
                }

            }
            configuration_String += "\n\n";

            configuration_String += "gyro bias \n";
            for (int j = 0; j <=2; j++)
            {
                configuration_String += data_tmp_gyro_bias[j].ToString();
                configuration_String += "   ";

            }
            configuration_String += "\n\n";

            configuration_String += "q_bias \n";
            for (int j = 0; j <=2; j++)
            {
                configuration_String += q_biasr[j].ToString();
                configuration_String += "   ";

            }
            configuration_String += "\n\n";

            configuration_String += "quat_init \n";
            for (int j = 0; j <=3; j++)
            {
                configuration_String += quat_initr[j].ToString();
                configuration_String += "   ";

            }
            configuration_String += "\n\n";

            configuration_String += "gain \n";
            for (int j = 0; j <=3; j++)
            {
                configuration_String += gainr[j].ToString();
                configuration_String += "   ";

            }
            configuration_String += "\n\n";

            configuration_String += "acc_covariance ";
            configuration_String += acc_covariance.ToString();
            configuration_String += "\n";

            configuration_String += "mag_covariance ";
            configuration_String += mag_covariance.ToString();
            configuration_String += "\n";

            configuration_String += "filter_type ";
            configuration_String += filter_typer.ToString();
            configuration_String += "\n";

            configuration_String += "convolution_time ";
            configuration_String += convolution_timer.ToString();
            configuration_String += "\n";

            configuration_String += "output_enable ";
            configuration_String += output_enabler.ToString();
            configuration_String += "\n";

            configuration_String += "output_rate ";
            configuration_String += output_rater.ToString();
            configuration_String += "\n";

            configuration_String += "badurate ";
            configuration_String += badurater.ToString();
            configuration_String += "\n";

            configuration_String += "port ";
            configuration_String += portr.ToString();
            configuration_String += "\n";
        }