将IR Pattern Android从~4.4.2转换为4.4.3

时间:2014-10-16 14:13:39

标签: android converter infrared

有没有办法将IR模式从Android~4.4.2转换为4.4.3兼容模式。 Android~4.4.2使用多个周期,4.4.3使用μs的开启和关闭时间。

以下是它们的外观示例

private static final int SAMPLE_FREQ = 38400;
private static final int[] IR_SIGNAL_PULSE_COUNT = {171,171,22,64,22,64,22,64,22,21,22,21,22,21,22,21,22,21,22,64,22,64,22,64,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,64,22,21,22,21,22,21,22,21,22,21,22,64,22,64,22,21,22,64,22,64,22,64,22,64,22,64,22,876};

private static final int[] IR_SIGNAL_TIME_LENGTH = {4499,4499,578,1683,578,1683,578,1683,578,552,578,552,578,552,578,552,578,552,578,1683,578,1683,578,1683,578,552,578,552,578,552,578,552,578,552,578,552,578,552,578,1683,578,552,578,552,578,552,578,552,578,552,578,1683,578,1683,578,552,578,1683,578,1683,578,1683,578,1683,578,1683,578,23047};

理论上这应该有效,但它没有

private int[] toCompIR(IrDataCompat data){
    int inUs = 1000000/data.getFrequency();
    int[] frame = data.getFrame();
    int[] arrayOfInt = new int[-1 + frame.length];
    for (int j = 1; j < frame.length; j++)
        arrayOfInt[(j - 1)] = frame[(j - 1)] * inUs;

    return arrayOfInt;
}

1 个答案:

答案 0 :(得分:0)

您可能会遇到舍入错误。

请尝试

  

float inUs = 1000000.0f / data.getFrequency()