diff --git a/rtu/modbus.lua b/rtu/modbus.lua index ac26fc1..bb1817a 100644 --- a/rtu/modbus.lua +++ b/rtu/modbus.lua @@ -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) diff --git a/rtu/rtu.lua b/rtu/rtu.lua index 9c22559..1f5c049 100644 --- a/rtu/rtu.lua +++ b/rtu/rtu.lua @@ -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, diff --git a/scada-common/comms.lua b/scada-common/comms.lua index f762c3b..d0e6fdf 100644 --- a/scada-common/comms.lua +++ b/scada-common/comms.lua @@ -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