我正在写一个使用Tasmota设备的家庭自动化程序。我有一个YTF IR桥,在我的大多数遥控器上都工作得很好。例如,我可以发送一台Apple TV
{"Protocol":"NEC","Bits":32,"Data":0x77E14005}要选择菜单,请执行以下操作。
我想出了一个Foxtel遥控器的问题我在网上找到了这方面的代码。例如:
Vol +0000 0073 0000 0012 000F 000A 0006 000A 0006 0016 0006 0006 0010 0006 0016 0006 0016 0006 000A 0006 0006 000A 0006 0016 0006 0010 0006 0016 0006 0016 0006 000A 0006 0010 0006 000A 0006 000A 0006 0CA0
Vol - 0000 0073 0000 0012 000F 000A 0006 000A 0006 0016 0006 000A 0006 0010 0006 0016 0006 0016 0006 000A 0006 0006 0006 000A 0006 0016 0006 0010 0006 0016 0006 000A 0006 0010 0006 000A 0006 0010 0006 0006 0C9B
然后我将它们从十六进制转换为ascii并发送
cmnd/ir-bridge/IRSend 0,115,0,18,15,10,6,10,6,22,6,10,6,16,6,22,6,22,6,10,6,10,6,10,6,22,6,16,6,22,6,10,6,16,6,10,6,10,6,3232在Foxtel盒子里没有结果。谁能给出一些关于如何发送这些原始数据的线索。
发布于 2019-08-04 13:47:54
我在另一个小组中取得了成功,并找到了如何解码它。下面是我使用的Basic4Java代码。
Dim sb As StringBuilder
sb.Initialize
Dim Spllited() As String
Spllited = Regex.Split(" ",payload)
Dim N As Int
N = Bit.ParseInt(Spllited(1), 16)
Dim Frequency As Int = (1000000/(N * .241246)/1000)
Dim pulse As Float = (1000/Frequency)
sb.Append(Frequency).Append(",") ' Add frequency
Dim OneTime As Int = Bit.ParseInt(Spllited(2), 16)
Dim Repeat As Int = Bit.ParseInt(Spllited(3), 16)
For z = 4 To Spllited.Length-1
Dim Int_Number As Int
Int_Number = Bit.ParseInt(Spllited(z), 16)
Dim t As Int = Int_Number * pulse
sb.Append(t)
If z <> Spllited.Length-1 Then sb.Append(",")
Next
payload = sb.ToString汤姆
https://stackoverflow.com/questions/57319065
复制相似问题