1
0
mirror of https://github.com/XeonSquared/OC-Copper.git synced 2024-11-27 03:38:05 +11:00

Update IoT protocol for P9K-friendliness

This commit is contained in:
20kdc 2017-03-25 10:58:44 +00:00
parent 2cd85360c6
commit bb8671c202
4 changed files with 12 additions and 21 deletions

View File

@ -64,7 +64,7 @@ They are, as follows:
0: Void (Only useful for Actions. Think 'ignore anything out of here'. 0: Void (Only useful for Actions. Think 'ignore anything out of here'.
1: Human-Readable String (Generic string that a user could feasibly type. No special characters.) 1: Human-Readable String (Generic string that a user could feasibly type. No special characters.)
2: Boolean (Length > 0 means true, otherwise false. Odd definition, but also convenient.) 2: Boolean ("false" means false, "true" means true, anything else is disallowed.)
3: Float (See Human-Readable String, but translated to a number by the device.) 3: Float (See Human-Readable String, but translated to a number by the device.)
4: Descriptor (See Part 3.) 4: Descriptor (See Part 3.)

View File

@ -4,14 +4,12 @@
UR=CG("redstone") UR=CG("redstone")
function UT(p) function UT(p)
if ({["true"]=0,["false"]=15})[p]then
US=p US=p
if#p>0then UR.setOutput(1,UM[p])
UR.setOutput(1,15)
else
UR.setOutput(1,0)
end end
end end
UT("") UT("false")
function UG(t) function UG(t)
RS(t,4,"\xC0\x42active.\x81setName") RS(t,4,"\xC0\x42active.\x81setName")
end end
@ -19,8 +17,7 @@ N={
[0]=UG, [0]=UG,
[1]=function(f)RS(f,4,"\xC1"..US)end, [1]=function(f)RS(f,4,"\xC1"..US)end,
[0x41]=function(_,p)UT(p)end, [0x41]=function(_,p)UT(p)end,
[0x82]=function(_,p)if#p>0then CG("eeprom").setLabel(p)TH=p end end, [0x82]=function(_,p)if#p>0then CG("eeprom").setLabel(p)TH=p end end}
}
function UI(f,t,p,d) function UI(f,t,p,d)
local m=t==TH local m=t==TH
if p==1 and(t=="*"or m)then if p==1 and(t=="*"or m)then

View File

@ -21,7 +21,7 @@ local otext = text
local function pass() local function pass()
text = text:gsub(".\n+.", function(i) text = text:gsub(".\n+.", function(i)
local l = i:sub(1, 1) .. i:sub(#i) local l = i:sub(1, 1) .. i:sub(#i)
if not l:match("[^%(%)%{%}].") then if not l:match("[^%(%)%{%}%,].") then
return l return l
end end
return i:sub(1, 1) .. "\n" .. i:sub(#i) return i:sub(1, 1) .. "\n" .. i:sub(#i)

View File

@ -53,18 +53,12 @@ TS(t,g..S.char(a,1)..d)x=RP(j,R4)end
RN[t..g]=x RN[t..g]=x
end j()end end j()end
-- EXAMPLE IoT Redstone Top Controller -- -- EXAMPLE IoT Redstone Top Controller --
UR=CG("redstone")function UT(p)US=p UR=CG("redstone")function UT(p)if ({["true"]=0,["false"]=15})[p]then
if#p>0then US=p
UR.setOutput(1,15)else UR.setOutput(1,UM[p])end
UR.setOutput(1,0)end
end end
UT("")function UG(t)RS(t,4,"\xC0\x42active.\x81setName")end UT("false")function UG(t)RS(t,4,"\xC0\x42active.\x81setName")end
N={[0]=UG, N={[0]=UG,[1]=function(f)RS(f,4,"\xC1"..US)end,[0x41]=function(_,p)UT(p)end,[0x82]=function(_,p)if#p>0then CG("eeprom").setLabel(p)TH=p end end}function UI(f,t,p,d)local m=t==TH
[1]=function(f)RS(f,4,"\xC1"..US)end,
[0x41]=function(_,p)UT(p)end,
[0x82]=function(_,p)if#p>0then CG("eeprom").setLabel(p)TH=p end end,
}
function UI(f,t,p,d)local m=t==TH
if p==1 and(t=="*"or m)then if p==1 and(t=="*"or m)then
UG(f)end UG(f)end
if p==4 and m then if p==4 and m then