mirror of
https://github.com/ShadowKatStudios/OC-Minitel.git
synced 2024-11-23 10:38:05 +11:00
added some embedded stuff, still WIP and probably buggy
This commit is contained in:
parent
46509f0da0
commit
bce7d5d30f
108
Embedded/microtel-3.lua
Normal file
108
Embedded/microtel-3.lua
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
_G.net = {}
|
||||||
|
net.port = 4096
|
||||||
|
net.hostname = computer.address():sub(1,8)
|
||||||
|
net.hostname = "micro"
|
||||||
|
net.debug = false
|
||||||
|
net.rctime = 30
|
||||||
|
net.pctime = 30
|
||||||
|
net.retry = 30
|
||||||
|
|
||||||
|
do
|
||||||
|
|
||||||
|
local rcpe, pcache, rcache, pqueue, modems = computer.pullSignal, {}, {}, {}, {}
|
||||||
|
--subhere
|
||||||
|
|
||||||
|
for a,t in component.list("modem") do
|
||||||
|
modems[#modems+1] = component.proxy(a)
|
||||||
|
modems[#modems].open(net.port)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function genPacketID()
|
||||||
|
local npID = ""
|
||||||
|
for i = 1, 16 do
|
||||||
|
npID = npID .. string.char(math.random(32,126))
|
||||||
|
end
|
||||||
|
return npID
|
||||||
|
end
|
||||||
|
|
||||||
|
local function sendPacket(packetID,packetType,dest,sender,vport,data)
|
||||||
|
if rcache[dest] then
|
||||||
|
component.invoke(rcache[dest][1],"send",rcache[dest][2],net.port,packetID,packetType,dest,sender,vport,data)
|
||||||
|
else
|
||||||
|
for k,v in pairs(modems) do
|
||||||
|
v.broadcast(net.port,packetID,packetType,dest,sender,vport,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function pruneCache()
|
||||||
|
for k,v in pairs(rcache) do
|
||||||
|
if v[3] < computer.uptime() then
|
||||||
|
rcache[k] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for k,v in pairs(pcache) do
|
||||||
|
if v < computer.uptime() then
|
||||||
|
pcache[k] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function checkPCache(packetID)
|
||||||
|
for k,v in pairs(pcache) do
|
||||||
|
if k == packetID then return true end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
local function packetPusher()
|
||||||
|
for k,v in pairs(pqueue) do
|
||||||
|
if v[5] < computer.uptime() then
|
||||||
|
sendPacket(k,v[1],v[2],net.hostname,v[3],v[4])
|
||||||
|
if v[1] ~= 1 or v[6] == 255 then
|
||||||
|
pqueue[k] = nil
|
||||||
|
else
|
||||||
|
pqueue[k][5]=computer.uptime()+net.retry
|
||||||
|
pqueue[k][6]=pqueue[k][6]+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function computer.pullSignal(t)
|
||||||
|
pruneCache()
|
||||||
|
packetPusher()
|
||||||
|
local tev = {rcpe(t)}
|
||||||
|
if tev[1] == "modem_message" and tev[4] == net.port and not checkPCache(tev[6]) then
|
||||||
|
if tev[8] == net.hostname then
|
||||||
|
if tev[7] == 1 then
|
||||||
|
sendPacket(genPacketID(),2,tev[9],net.hostname,tev[10],tev[6])
|
||||||
|
end
|
||||||
|
if tev[7] == 2 then
|
||||||
|
pqueue[tev[11]] = nil
|
||||||
|
computer.pushSignal("net_ack",data)
|
||||||
|
end
|
||||||
|
if packetType ~= 2 then
|
||||||
|
computer.pushSignal("net_msg",tev[9],tev[10],tev[11])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
sendPacket(tev[6],tev[7],tev[8],tev[9],tev[10],tev[11])
|
||||||
|
end
|
||||||
|
if not rcache[tev[9]] then
|
||||||
|
rcache[tev[9]] = {tev[2],tev[3],computer.uptime()+net.rctime}
|
||||||
|
end
|
||||||
|
if not pcache[tev[6]] then
|
||||||
|
pcache[tev[6]] = computer.uptime()+net.pctime
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function net.send(ptype,to,vport,data,npID)
|
||||||
|
npID = npID or genPacketID()
|
||||||
|
pqueue[npID] = {ptype,to,vport,data,0,0}
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
while true do
|
||||||
|
computer.pullSignal()
|
||||||
|
end
|
15
Embedded/minify.sh
Executable file
15
Embedded/minify.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
cp $1 $2
|
||||||
|
sed -i -e 's/pcache/PC/g' $2
|
||||||
|
sed -i -e 's/rcache/RC/g' $2
|
||||||
|
sed -i -e 's/pqueue/pQ/g' $2
|
||||||
|
sed -i -e 's/modems/M/g' $2
|
||||||
|
sed -i -e 's/genPacketID/gP/g' $2
|
||||||
|
sed -i -e 's/sendPacket/sP/g' $2
|
||||||
|
sed -i -e 's/pruneCache/pC/g' $2
|
||||||
|
sed -i -e 's/checkPCache/cPC/g' $2
|
||||||
|
sed -i -e 's/packetPusher/pP/g' $2
|
||||||
|
sed -i -e 's/component.invoke/cI/g' $2
|
||||||
|
sed -i -e 's/computer.uptime/cU/g' $2
|
||||||
|
sed -i -e 's/--subhere/local cI,cU = component.invoke,computer.uptime/g' $2
|
||||||
|
lua strip.lua $2 $2
|
38
Embedded/strip.lua
Normal file
38
Embedded/strip.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
tA={...}
|
||||||
|
f=io.open(tA[1])
|
||||||
|
ss=f:read("*a")
|
||||||
|
f:close()
|
||||||
|
print("Optimising source")
|
||||||
|
sl=tostring(ss:len())
|
||||||
|
no=0
|
||||||
|
replacements={
|
||||||
|
{" "," "},
|
||||||
|
{"\n ","\n"},
|
||||||
|
{"\n\n","\n"},
|
||||||
|
{" == ","=="},
|
||||||
|
{" ~= ","~="},
|
||||||
|
{" >= ",">="},
|
||||||
|
{" <= ","<="},
|
||||||
|
{" > ",">"},
|
||||||
|
{" < ","<"},
|
||||||
|
{" = ","="},
|
||||||
|
{", ",","},
|
||||||
|
{" %+ ","+"},
|
||||||
|
{" %- ","-"},
|
||||||
|
{" %/ ","/"},
|
||||||
|
{" %* ","*"},
|
||||||
|
{" \n","\n"},
|
||||||
|
{"%-%-.-\n",""},
|
||||||
|
}
|
||||||
|
for k,v in ipairs(replacements) do
|
||||||
|
while ss:find(v[1]) ~= nil do
|
||||||
|
ss=ss:gsub(v[1],v[2])
|
||||||
|
io.write(".")
|
||||||
|
no=no+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
print("\nBefore: "..sl.."\nAfter: "..tostring(ss:len()).."\nDelta: "..tostring(sl-ss:len()))
|
||||||
|
|
||||||
|
f=io.open(tA[2],"wb")
|
||||||
|
f:write(ss)
|
||||||
|
f:close()
|
Loading…
Reference in New Issue
Block a user