了解Ringdroid代码+ Android

时间:2011-11-29 06:21:10

标签: java android

这个问题适合那些熟悉Ringdroid代码的人。 我在理解Ringdroid CheapAMR.java的'code'文件时遇到了一些困难。我必须在我的Blackberry项目中实现此代码,但首先我想要正确理解代码。 我无法理解此文件中后续数组的用法:

  1. int[] adaptiveIndex
  2. int[] adaptiveGain
  3. int[] fixedGain
  4. int[][] pulse
  5. 此外,我无法理解如何填充这些数组的值。我不知道如何谷歌这个问题,因为我不知道他们在这个代码中做了什么:

        void getMR122Params(int[] bits,
                                int[] adaptiveIndex,
                                int[] adaptiveGain,
                                int[] fixedGain,
                                int[][] pulse) {
                adaptiveIndex[0] =
                    0x01 * bits[45] +
                    0x02 * bits[43] +
                    0x04 * bits[41] +
                    0x08 * bits[39] +
                    0x10 * bits[37] +
                    0x20 * bits[35] +
                    0x40 * bits[33] +
                    0x80 * bits[31] +
                    0x100 * bits[29];
                adaptiveIndex[1] =
                    0x01 * bits[242] +
                    0x02 * bits[79] +
                    0x04 * bits[77] +
                    0x08 * bits[75] +
                    0x10 * bits[73] +
                    0x20 * bits[71];
                adaptiveIndex[2] =
                    0x01 * bits[46] +
                    0x02 * bits[44] +
                    0x04 * bits[42] +
                    0x08 * bits[40] +
                    0x10 * bits[38] +
                    0x20 * bits[36] +
                    0x40 * bits[34] +
                    0x80 * bits[32] +
                    0x100 * bits[30];
                adaptiveIndex[3] =
                    0x01 * bits[243] +
                    0x02 * bits[80] +
                    0x04 * bits[78] +
                    0x08 * bits[76] +
                    0x10 * bits[74] +
                    0x20 * bits[72];
    
                adaptiveGain[0] =
                    0x01 * bits[88] +
                    0x02 * bits[55] +
                    0x04 * bits[51] +
                    0x08 * bits[47];
                adaptiveGain[1] =
                    0x01 * bits[89] +
                    0x02 * bits[56] +
                    0x04 * bits[52] +
                    0x08 * bits[48];
                adaptiveGain[2] =
                    0x01 * bits[90] +
                    0x02 * bits[57] +
                    0x04 * bits[53] +
                    0x08 * bits[49];
                adaptiveGain[3] =
                    0x01 * bits[91] +
                    0x02 * bits[58] +
                    0x04 * bits[54] +
                    0x08 * bits[50];
    
                fixedGain[0] =
                    0x01 * bits[104] +
                    0x02 * bits[92] +
                    0x04 * bits[67] +
                    0x08 * bits[63] +
                    0x10 * bits[59];
                fixedGain[1] =
                    0x01 * bits[105] +
                    0x02 * bits[93] +
                    0x04 * bits[68] +
                    0x08 * bits[64] +
                    0x10 * bits[60];
                fixedGain[2] =
                    0x01 * bits[106] +
                    0x02 * bits[94] +
                    0x04 * bits[69] +
                    0x08 * bits[65] +
                    0x10 * bits[61];
                fixedGain[3] =
                    0x01 * bits[107] +
                    0x02 * bits[95] +
                    0x04 * bits[70] +
                    0x08 * bits[66] +
                    0x10 * bits[62];
    
                pulse[0][0] =
                    0x01 * bits[122] +
                    0x02 * bits[123] +
                    0x04 * bits[124] +
                    0x08 * bits[96];
                pulse[0][3] =
                    0x01 * bits[125] +
                    0x02 * bits[126] +
                    0x04 * bits[127] +
                    0x08 * bits[100];
                pulse[0][2] =
                    0x01 * bits[128] +
                    0x02 * bits[129] +
                    0x04 * bits[130] +
                    0x08 * bits[108];
                pulse[0][3] =
                    0x01 * bits[131] +
                    0x02 * 
    
    bits[132] +
                0x04 * bits[133] +
                0x08 * bits[112];
            pulse[0][4] =
                0x01 * bits[134] +
                0x02 * bits[135] +
                0x04 * bits[136] +
                0x08 * bits[116];
            pulse[0][5] =
                0x01 * bits[182] +
                0x02 * bits[183] +
                0x04 * bits[184];
            pulse[0][6] =
                0x01 * bits[185] +
                0x02 * bits[186] +
                0x04 * bits[187];
            pulse[0][7] =
                0x01 * bits[188] +
                0x02 * bits[189] +
                0x04 * bits[190];
            pulse[0][8] =
                0x01 * bits[191] +
                0x02 * bits[192] +
                0x04 * bits[193];
            pulse[0][9] =
                0x01 * bits[194] +
                0x02 * bits[195] +
                0x04 * bits[196];
            pulse[1][0] =
                0x01 * bits[137] +
                0x02 * bits[138] +
                0x04 * bits[139] +
                0x08 * bits[97];
            pulse[1][4] =
                0x01 * bits[140] +
                0x02 * bits[141] +
                0x04 * bits[142] +
                0x08 * bits[101];
            pulse[1][2] =
                0x01 * bits[143] +
                0x02 * bits[144] +
                0x04 * bits[145] +
                0x08 * bits[109];
            pulse[1][3] =
                0x01 * bits[146] +
                0x02 * bits[147] +
                0x04 * bits[148] +
                0x08 * bits[113];
            pulse[1][4] =
                0x01 * bits[149] +
                0x02 * bits[150] +
                0x04 * bits[151] +
                0x08 * bits[117];
            pulse[1][5] =
                0x01 * bits[197] +
                0x02 * bits[198] +
                0x04 * bits[199];
            pulse[1][6] =
                0x01 * bits[200] +
                0x02 * bits[201] +
                0x04 * bits[202];
            pulse[1][7] =
                0x01 * bits[203] +
                0x02 * bits[204] +
                0x04 * bits[205];
            pulse[1][8] =
                0x01 * bits[206] +
                0x02 * bits[207] +
                0x04 * bits[208];
            pulse[1][9] =
                0x01 * bits[209] +
                0x02 * bits[210] +
                0x04 * bits[211];
            pulse[2][0] =
                0x01 * bits[152] +
                0x02 * bits[153] +
                0x04 * bits[154] +
                0x08 * bits[98];
            pulse[2][5] =
                0x01 * bits[155] +
                0x02 * bits[156] +
                0x04 * bits[157] +
                0x08 * bits[102];
            pulse[2][2] =
                0x01 * bits[158] +
                0x02 * bits[159] +
                0x04 * bits[160] +
                0x08 * bits[110];
            pulse[2][3] =
                0x01 * bits[161] +
                0x02 * bits[162] +
                0x04 * bits[163] +
                0x08 * bits[114];
            pulse[2][4] =
                0x01 * bits[164] +
                0x02 * bits[165] +
                0x04 * bits[166] +
                0x08 * bits[118];
            pulse[2][5] =
                0x01 * bits[212] +
                0x02 * bits[213] +
                0x04 * bits[214];
            pulse[2][6] =
                0x01 * bits[215] +
                0x02 * bits[216] +
                0x04 * bits[217];
            pulse[2][7] =
                0x01 * bits[218] +
                0x02 * bits[219] +
                0x04 * bits[220];
            pulse[2][8] =
                0x01 * bits[221] +
                0x02 * bits[222] +
                0x04 * bits[223];
            pulse[2][9] =
                0x01 * bits[224] +
                0x02 * bits[225] +
                0x04 * bits[226];
            pulse[3][0] =
                0x01 * bits[167] +
                0x02 * bits[168] +
                0x04 * bits[169] +
                0x08 * bits[99];
            pulse[3][6] =
                0x01 * bits[170] +
                0x02 * bits[171] +
                0x04 * bits[172] +
                0x08 * bits[103];
            pulse[3][2] =
                0x01 * bits[173] +
                0x02 * bits[174] +
                0x04 * bits[175] +
                0x08 * bits[111];
            pulse[3][3] =
                0x01 * bits[176] +
                0x02 * bits[177] +
                0x04 * bits[178] +
                0x08 * bits[115];
            pulse[3][4] =
                0x01 * bits[179] +
                0x02 * bits[180] +
                0x04 * bits[181] +
                0x08 * bits[119];
            pulse[3][5] =
                0x01 * bits[227] +
                0x02 * bits[228] +
                0x04 * bits[229];
            pulse[3][6] =
                0x01 * bits[230] +
                0x02 * bits[231] +
                0x04 * bits[232];
            pulse[3][7] =
                0x01 * bits[233] +
                0x02 * bits[234] +
                0x04 * bits[235];
            pulse[3][8] =
                0x01 * bits[236] +
                0x02 * bits[237] +
                0x04 * bits[238];
            pulse[3][9] =
                0x01 * bits[239] +
                0x02 * bits[240] +
                0x04 * bits[241];
        }
    

    如果有人对此有所了解,那么请帮助我理解它。

1 个答案:

答案 0 :(得分:1)

我的解释是(输入)位数组被分配到其他(输出)数组,这样某些“位掩码”就会进入输出数组中的int值。

在任何索引处,

位应仅包含0和1,然后使用此示例

bits[88]=1;
bits[55]=0;
bits[51]=1;
bits[47]=0;

adaptiveGain[0] =
                0x01 * bits[88] +
                0x02 * bits[55] +
                0x04 * bits[51] +
                0x08 * bits[47];

adaptiveGain [0]将包含1 * 1 + 0 * 2 + 1 * 4 + 0 * 8 = 5

请记住0x是十六进制表示法。所以0x100十六进制= 256十进制。