任何人都可以识别此代码段的编程语言吗?
Can anyone identify the programming language of this code snippet?
我一直在尝试创建一个 Android 应用程序来使用我 phone 上的 IR blaster 控制各种设备。作为起点,我想获得另一个应用程序使用的脉冲,即小米的 "Mi Remote" 应用程序。
我安装了该应用程序,并从 Android 上的 /data
目录复制了该应用程序的数据。我设法找到了一个 SQLite 数据库,其中包含我的设备的频率和脉冲信息。它被存储为代码片段,如下所示。谁能认出这是什么语言?
if(exts~=nil) then
timing_on=exts[9]
timing_off=exts[10]
bytes1={}
for i=1,9,1 do bytes1[i]=bytes[i] bytes1[i+9]=bytes[i] end
bytes1[13]=0x60
if(((timing_on==0)or(timing_on==nil))and((timing_off==0) or(timing_off==nil)))then return end
if(timing_on~=nil)and(timing_on>0) then
if(timing_on<600) then
if(timing_on%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0x80
else bytes1[2]=(bytes1[2]&0x0F)+0x90
end
elseif(timing_on>=600)and(timing_on<1200) then
if(timing_on%60==0) then
bytes1[2]=(bytes[2]&0x0F)+0xA0
else bytes1[2]=(bytes1[2]&0x0F)+0xB0
end
elseif(timing_on>=1200) then
if(timing_on%60==0) then
bytes[2]=(bytes1[2]&0x0F)+0xC0
else bytes1[2]=(bytes1[2]&0x0F)+0xD0
end
end
bytes1[3]=bytes1[3]+math.floor((timing_on\/60)%10)
bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)
bytes1[11]=bytes1[2]
bytes1[12]=bytes1[3]
bytes1[15]=(timing_on&0xFF)
bytes1[16]=((timing_on>>8)&0x0F)
bytes1[17]=0
bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x02
elseif(timing_off~=nil)and(timing_off>0)then
if(timing_off<600) then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0x80
else
bytes1[2]=(bytes1[2]&0x0F)+0x90
end
elseif(timing_off>=600)and(timing_off<1200) then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0xA0
else bytes1[2]=(bytes1[2]&0x0F)+0xB0
end
elseif(timing_off)>=1200 then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0xC0
else bytes1[2]=(bytes1[2]&0x0F)+0xD0
end
end
bytes1[3]=bytes1[3]+math.floor((timing_off\/60)%10)
bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)
bytes1[11]=bytes1[2]
bytes1[12]=bytes1[3]
bytes1[16]=((timing_off&0x0F)<<4)
bytes1[17]=(timing_off>>4)
bytes1[15]=0
bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x01
end
bytes=bytes1
end
看起来像编程语言Lua、https://www.lua.org/
我不知道它是否是某种方言,但它似乎是有效的 Lua 它正在创建与正在发送的红外命令相关联的字节。
\/
部分似乎是某种类型的转义,因为那不是 Lua 代码 afaik 的有效片段。 (https://www.tutorialspoint.com/lua/lua_operators.htm).
另见
可能是Lua。它有 elseif
和 nil
以及一个带有 .floor()
函数的数学库。
我一直在尝试创建一个 Android 应用程序来使用我 phone 上的 IR blaster 控制各种设备。作为起点,我想获得另一个应用程序使用的脉冲,即小米的 "Mi Remote" 应用程序。
我安装了该应用程序,并从 Android 上的 /data
目录复制了该应用程序的数据。我设法找到了一个 SQLite 数据库,其中包含我的设备的频率和脉冲信息。它被存储为代码片段,如下所示。谁能认出这是什么语言?
if(exts~=nil) then
timing_on=exts[9]
timing_off=exts[10]
bytes1={}
for i=1,9,1 do bytes1[i]=bytes[i] bytes1[i+9]=bytes[i] end
bytes1[13]=0x60
if(((timing_on==0)or(timing_on==nil))and((timing_off==0) or(timing_off==nil)))then return end
if(timing_on~=nil)and(timing_on>0) then
if(timing_on<600) then
if(timing_on%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0x80
else bytes1[2]=(bytes1[2]&0x0F)+0x90
end
elseif(timing_on>=600)and(timing_on<1200) then
if(timing_on%60==0) then
bytes1[2]=(bytes[2]&0x0F)+0xA0
else bytes1[2]=(bytes1[2]&0x0F)+0xB0
end
elseif(timing_on>=1200) then
if(timing_on%60==0) then
bytes[2]=(bytes1[2]&0x0F)+0xC0
else bytes1[2]=(bytes1[2]&0x0F)+0xD0
end
end
bytes1[3]=bytes1[3]+math.floor((timing_on\/60)%10)
bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)
bytes1[11]=bytes1[2]
bytes1[12]=bytes1[3]
bytes1[15]=(timing_on&0xFF)
bytes1[16]=((timing_on>>8)&0x0F)
bytes1[17]=0
bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x02
elseif(timing_off~=nil)and(timing_off>0)then
if(timing_off<600) then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0x80
else
bytes1[2]=(bytes1[2]&0x0F)+0x90
end
elseif(timing_off>=600)and(timing_off<1200) then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0xA0
else bytes1[2]=(bytes1[2]&0x0F)+0xB0
end
elseif(timing_off)>=1200 then
if(timing_off%60==0) then
bytes1[2]=(bytes1[2]&0x0F)+0xC0
else bytes1[2]=(bytes1[2]&0x0F)+0xD0
end
end
bytes1[3]=bytes1[3]+math.floor((timing_off\/60)%10)
bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)
bytes1[11]=bytes1[2]
bytes1[12]=bytes1[3]
bytes1[16]=((timing_off&0x0F)<<4)
bytes1[17]=(timing_off>>4)
bytes1[15]=0
bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x01
end
bytes=bytes1
end
看起来像编程语言Lua、https://www.lua.org/
我不知道它是否是某种方言,但它似乎是有效的 Lua 它正在创建与正在发送的红外命令相关联的字节。
\/
部分似乎是某种类型的转义,因为那不是 Lua 代码 afaik 的有效片段。 (https://www.tutorialspoint.com/lua/lua_operators.htm).
另见
可能是Lua。它有 elseif
和 nil
以及一个带有 .floor()
函数的数学库。