java - 如何发送红外代码,将字符串转换为 "IR string"

标签 java android infrared

我想尝试用一个简单的应用程序打开我的(旧)汽车(有红外线接收器)。

在 key 的电子板上,我有一张带有代码的纸(例如:06495 167.5) 我认为这个例子中的代码只是 06495,基于这个来源: http://farancullas.blogspot.fr/2012/10/recodificacion-receptor-infrarojo.html

在 android 上你必须发送一个转换为 dec 的 HEX 代码? 这是我的代码的一部分(工作是因为没有异常(exception),我的笔记 3 上有蓝色 LED)。

我只需要一些帮助来正确格式化 IR_CODE 变量。我可以发送任何它似乎有效的字符串,因为 LED 正在闪烁。 你有想法格式化这段代码吗? 我认为它类似于 hex2dec("195F") ? 195F 十六进制为 6495

它可以是: IR_CODE=hex2dec(Integer.toHexString(Integer.decode(IR_CODE))); 基于此来源:https://github.com/rngtng/IrDude/blob/master/src/com/rngtng/irdude/MainActivity.java ,但我不确定,我不能对应用程序进行太多测试。

String IR_CODE="06495";
Class irClass = irService.getClass();
Class params[] = new Class[1];
params[0] = String.class;
try {
    Method sendIR = irClass.getMethod("write_irsend", params);

for(int i=0;i<2;i++)
    sendIR.invoke(irService, IR_CODE);
}

你能帮我格式化 IR_CODE 吗? 谢谢!

最佳答案

其实,没那么容易。 “IR HEX”不是十六进制数,它是几个十六进制值的字符串,它编码频率和开/关模式,

因此,您的“06495”示例微不足道,您必须获得 IR 学习设备才能了解实际的 IR 模式。

我使用 IR TOY 作为硬件,使用 AnalysIR 作为软件,这为您提供了任何 IR 发射器(就像在您的 Remote 中)的“IR HEX”。

然后,有了“IR HEX”字符串,就可以使用hex2dec函数了。

关于java - 如何发送红外代码,将字符串转换为 "IR string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051695/

相关文章:

c - 如何通过esp32 rmt Ringbuffer接收长数据帧

c - 当设备都具有相同的 deviceID 时,除了枚举之外,还有其他方法可以获取许多 IrDA 设备的套接字吗?

java - 如何在JAVA中使用转义序列

java - 在 AppEngine 上使用谷歌云端点

java - 我可以有一个抽象类继承另一个抽象类吗? (java)

android - 我什么时候应该取消/杀死一个线程?

android - 套接字输入流和 Unicode

java - 在 SpriteBatch.begin/end 中嵌套 ShapeRenderer.begin/end

启动新 Activity 后 Android 服务连接泄漏

linux - 无法使用官方驱动程序从嵌入式 Linux 上的红外传感器获取数据