LogicMachine Forum
Problem with require - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: Problem with require (/showthread.php?tid=3084)



Problem with require - DGrandes - 30.12.2020

Hi,

I have a problem with a library. I don´t know how exactly works require but a function doesn´t work sometimes.

In my library user.Varios I have a function like this:

Code:
local TemporizadoresActivos = {   {       {Nombre = "ACK_Temp_Extractor_Aseo", Input = "1/1/115", Output = "1/1/15", Tiempo = "0/3/31", DG_Tempo_Activo = "34/6/1", DG_Tempo = "34/6/101", Condicion = '3/4/141', ACKCondicion = '3/4/41', T_Activo = false},   },   {   },  } function Revisar_Temporizadores ()     now = os.time()     for i = 1,#TemporizadoresActivos, 1 do         local tf = "_on"         if i == 2 then tf = "_off" end         for _, pir in ipairs(TemporizadoresActivos[i]) do             if next(pir) then                 --log(pir)                 key = 'pir_timer_' .. pir.Input .. tf                 delta = now - storage.get(key, 0)                 if grp.getvalue(pir.DG_Tempo_Activo) and pir.T_Activo then                     grp.checkupdate(pir.DG_Tempo,delta)                 end                 t = grp.getvalue(pir.Tiempo)*60                 if pir.Condicion == nil then                     if delta > t then                         if pir.Output ~= nil then                             grp.checkwrite(pir.Output, 0)                         end                         grp.checkupdate(pir.DG_Tempo_Activo,false)                     end                 end             end          end    -     end end

And from resident script (15seg) I call this function

Code:
require('user.Varios') local Revisar_Temporizadores ()


But sometimes objects doesn´t update and when I save again resident script they update correctly. I don´t change nothing in function only save again.

Why does this happend?

Thanks


RE: Problem with require - admin - 30.12.2020

Check Error log entries. The scripts you've posted are incorrect. There's "-" sign in line 31 of the library and local Revisar_Temporizadores () is not valid syntax.


RE: Problem with require - DGrandes - 30.12.2020

Sorry... I change some parts to reduce the code and I put wrong...
No mistakes in syntax and no mistakes in error log

This is the original code in user.varios
Code:
function Revisar_Temporizadores ()   now = os.time()   for i = 1,#TemporizadoresActivos, 1 do   local tf = "_on"   if i == 2 then tf = "_off" end       for _, pir in ipairs(TemporizadoresActivos[i]) do         if next(pir) then           --log(pir)           CrearDG ("ACK_Temp_"..pir.Nombre, pir.DG_Tempo_Activo, dt.bool,"ACK_Tiempo_Activo")           CrearDG ("Delta_"..pir.Nombre, pir.DG_Tempo, dt.uint32)           key = 'pir_timer_' .. pir.Input .. tf           delta = now - storage.get(key, 0)           if grp.getvalue(pir.DG_Tempo_Activo) and pir.T_Activo then             grp.checkupdate(pir.DG_Tempo,delta)           end           t = grp.getvalue(pir.Tiempo)*60           if pir.Condicion == nil then             if delta > t then               if pir.Output ~= nil then                 grp.checkwrite(pir.Output, 0)               end               grp.checkupdate(pir.DG_Tempo_Activo,false)             end           else             local cumple = (grp.getvalue(pir.Condicion) - 200) > grp.getvalue(pir.ACKCondicion)             if (delta > t) and (cumple) then               grp.checkwrite(pir.Output, 0)               grp.checkupdate(pir.DG_Tempo_Activo,false)             elseif (delta > t) and (not cumple) and ((grp.getvalue(pir.DG_Tempo_Activo))) then               storage.set(key, now)             end                      end             end     end    --End for temporizadores on off   end --End for temporizadores   return ("Temporizadores Revisados") end --End funcion


And this in resident

Code:
require('user.Varios') local Revisados = Revisar_Temporizadores ()



RE: Problem with require - admin - 04.01.2021

Add some extra log() calls to your script to check where a logic error might be.