eibdgm - description and tips - Printable Version +- Logic Machine 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: eibdgm - description and tips (/showthread.php?tid=1592) |
eibdgm - description and tips - buuuudzik - 15.09.2018 Could you explain eibdgm? How to use it? Based on codes from forum I've prepared such simple script: Code: if not client then So every time when resident script is running clienttep() is executed. 1) But should I set some os.sleep() between next clienttep()? 2) How client works internally? Does it has some table with telegrams which appeared but that aren't handled and when they are handled then they are dropped from that table? 3) Could I declare 1 handler to a few events by typing 'groupwrite groupread' etc.? 4) Could I check telegrams not so often like 1s or less but e.g. 1 minute? PS. This post is also for creating some documentation for forum users, because unfortunately currently there is no such doc. When I've logged: Code: log(client) Then the result is: Code: * table: So e.g. I am not see I don't see method clienttep(). Also I see that when I've set Resident interval to 5s and eibdgm timeout to 5 seconds then telegrams appeared more sooner in Objects than by handler with eibdgm (more sooner than 5 seconds, e.g. 30s). Is there a possibility that eibdgm could not log all telegrams but only e.g. 1 from 3 which appeared on bus? What is optimum configuration. I know that minimum duration of 1 telegram on TP is 0.05s so how eibdgm works on timeout 0.5s? RE: eibdgm - description and tips - Erwin van der Zwart - 15.09.2018 Hi, You should set resident to 0 seconds, there is no need for a os.sleep(). You can set several handlers on different events and execute a function when a specific event occurs (like groupwrite) and perform a action. BR, Erwin RE: eibdgm - description and tips - buuuudzik - 15.09.2018 What really means timeout in eibdgm? Because when I've set 0.25 or 5s and Resident with 0s then it seems to work the same. Is bigger value works better when LM CPU has a lot to do? So Erwin, every step command execute only 1 command, not all from current queue? You wrote, that there is no need to os.sleep() so is it already used in step() method? Sory for a lot of questions but I want understand really well this topic RE: eibdgm - description and tips - Erwin van der Zwart - 15.09.2018 Hi, After timeout the next step is executed, so there is no need to change it without a reason. Yes every step handles 1 event and based on type of handlers a function may be executed. BR, Erwin |