global scope optimizations

This commit is contained in:
Mikayla Fischler 2022-05-07 13:39:12 -04:00
parent 4aab75b842
commit 96e535fdc4
3 changed files with 21 additions and 15 deletions

View File

@ -13,6 +13,8 @@ modbus.new = function (rtu_dev, use_parallel_read)
use_parallel = use_parallel_read
}
local insert = table.insert
local _1_read_coils = function (c_addr_start, count)
local tasks = {}
local readings = {}
@ -25,7 +27,7 @@ modbus.new = function (rtu_dev, use_parallel_read)
local addr = c_addr_start + i - 1
if self.use_parallel then
table.insert(tasks, function ()
insert(tasks, function ()
local reading, fault = self.rtu.read_coil(addr)
if fault then access_fault = true else readings[i] = reading end
end)
@ -68,7 +70,7 @@ modbus.new = function (rtu_dev, use_parallel_read)
local addr = di_addr_start + i - 1
if self.use_parallel then
table.insert(tasks, function ()
insert(tasks, function ()
local reading, fault = self.rtu.read_di(addr)
if fault then access_fault = true else readings[i] = reading end
end)
@ -111,7 +113,7 @@ modbus.new = function (rtu_dev, use_parallel_read)
local addr = hr_addr_start + i - 1
if self.use_parallel then
table.insert(tasks, function ()
insert(tasks, function ()
local reading, fault = self.rtu.read_holding_reg(addr)
if fault then access_fault = true else readings[i] = reading end
end)
@ -154,7 +156,7 @@ modbus.new = function (rtu_dev, use_parallel_read)
local addr = ir_addr_start + i - 1
if self.use_parallel then
table.insert(tasks, function ()
insert(tasks, function ()
local reading, fault = self.rtu.read_input_reg(addr)
if fault then access_fault = true else readings[i] = reading end
end)

View File

@ -18,6 +18,8 @@ rtu.init_unit = function ()
io_count_cache = { 0, 0, 0, 0 }
}
local insert = table.insert
local _count_io = function ()
self.io_count_cache = { #self.discrete_inputs, #self.coils, #self.input_regs, #self.holding_regs }
end
@ -31,7 +33,7 @@ rtu.init_unit = function ()
-- return : count of discrete inputs
local connect_di = function (f)
table.insert(self.discrete_inputs, f)
insert(self.discrete_inputs, f)
_count_io()
return #self.discrete_inputs
end
@ -47,7 +49,7 @@ rtu.init_unit = function ()
-- return : count of coils
local connect_coil = function (f_read, f_write)
table.insert(self.coils, { read = f_read, write = f_write })
insert(self.coils, { read = f_read, write = f_write })
_count_io()
return #self.coils
end
@ -70,7 +72,7 @@ rtu.init_unit = function ()
-- return : count of input registers
local connect_input_reg = function (f)
table.insert(self.input_regs, f)
insert(self.input_regs, f)
_count_io()
return #self.input_regs
end
@ -86,7 +88,7 @@ rtu.init_unit = function ()
-- return : count of holding registers
local connect_holding_reg = function (f_read, f_write)
table.insert(self.holding_regs, { read = f_read, write = f_write })
insert(self.holding_regs, { read = f_read, write = f_write })
_count_io()
return #self.holding_regs
end
@ -293,7 +295,7 @@ rtu.comms = function (modem, local_port, server_port)
if type ~= nil then
if type == RTU_ADVERT_TYPES.REDSTONE then
table.insert(advertisement, {
insert(advertisement, {
unit = i,
type = type,
index = units[i].index,
@ -301,7 +303,7 @@ rtu.comms = function (modem, local_port, server_port)
rsio = units[i].device
})
else
table.insert(advertisement, {
insert(advertisement, {
unit = i,
type = type,
index = units[i].index,

View File

@ -4,6 +4,8 @@
local comms = {}
local insert = table.insert
local PROTOCOLS = {
MODBUS_TCP = 0, -- our "MODBUS TCP"-esque protocol
RPLC = 1, -- reactor PLC protocol
@ -158,7 +160,7 @@ comms.modbus_packet = function ()
-- populate raw array
self.raw = { self.txn_id, self.unit_id, self.func_code }
for i = 1, self.length do
table.insert(self.raw, data[i])
insert(self.raw, data[i])
end
end
@ -248,7 +250,7 @@ comms.rplc_packet = function ()
-- populate raw array
self.raw = { self.id, self.type }
for i = 1, #data do
table.insert(self.raw, data[i])
insert(self.raw, data[i])
end
end
@ -331,7 +333,7 @@ comms.mgmt_packet = function ()
-- populate raw array
self.raw = { self.type }
for i = 1, #data do
table.insert(self.raw, data[i])
insert(self.raw, data[i])
end
end
@ -410,7 +412,7 @@ comms.coord_packet = function ()
-- populate raw array
self.raw = { self.type }
for i = 1, #data do
table.insert(self.raw, data[i])
insert(self.raw, data[i])
end
end
@ -489,7 +491,7 @@ comms.capi_packet = function ()
-- populate raw array
self.raw = { self.type }
for i = 1, #data do
table.insert(self.raw, data[i])
insert(self.raw, data[i])
end
end