I did it!!!

Keep up to date with EG related information here.
User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Thu Jul 27, 2017 11:12 pm

ok so here is another update.

I have sorted out a couple of bugs that I have happened across.
I also added an Event Manager Dialog that will show you what events are running and if there are Events that are in queue to be run.

the dialog shows
thread id - the identifier of the thread for the event
queue time - the time the event came in
start time - the time the event actually started being processed
stop time - the time when the event finished being processed
run time - how long it took the event to be processed, in milliseconds
result - this would be eg.result
payload - the payload data the event has
macro complete - how much of the current macro that is being processed is complete. this is based on the number of actions in a macro
event complete - how much of the event that is being processed has been completed. this is based on the number of macros that have to be processed
running action - name of the action that is currently being processed
running macro - the name of the macro that is currently being processed

The dialog also gives you the ability to stop an event from being processed. Now you can keep a specific thread in a loop and I have designed a method to loop properly and I will explain that below.
The dialog will only hold information for an ended event while the dialog is open. as soon as you close the dialog any event that has finished will not be able to be viewed once you reopen the dialog.
The dialog defaults to being sorted by the event name. it groups the events together if they are like events (ones that are in queue) by clicking on the header for a specific column it will regroup the items based on the columns you have selected. it will only group together like items in that column. so for instance if you click on the thread id column since no 2 thread id's are the same it will not group any of them together.

I also changed the tray icon and the icon in the UI that shows the processing state of EG. I did this because of the more complex manner of the threading system. but to also be able to give the user some choices with this.
The tray icon and the processing indicator inside the UI is now going to be 2 vertical 5 segment "UV meters" the left meter will show the progress of a running macro. and the right will show the progress of the event. as of the moment it will select a random color for the right side for each event. the color of it will remain the same through that session of eg for that specific event. I am going to provide a mechanism so the user will be able to choose a color for a specific event but that is going to be in the near future (this is a specific feature for Snowbird)
I have also changed the tooltip that shows up to list all of the events that are currently running. I will be adding a means to be able to select a specific event from the menu for the tray icon to be able to perform actions like stopping the event. or whatever. I haven't yet decided what else to add.


threaded events and python scripts.

since you now can loop in a macro without it causing EG to hang I have devised a method of properly doing a loop that will allow that thread to close properly. say for things like writing a file we do not want to have any data corruption or hung sockets so these things need to be shutdown properly.

here is an example of how to properly use the loop in a python script

Code: Select all


# put your startup code here

while not eg.event.stop:
    # do your looping code here

    # if you need to wait a specific amount of time instead of using sleep we
    # want to use a non blocking way of causing the thread to wait so that if 
    # EG is closing or something caused the event to stop the wait can be exited

    eg.event.Wait(1.0)

    # if we want to stop the thread from running because we have the data we need
    eg.event.stop = True

# do closing code here
Now the beauty of this system is we can cause another event to wait until this one is finished processing before continuing. so in the next example we are going to have an event wait until the other one is finished

Code: Select all


# get the other event
other_event = eg.EventManager.GetEvent('Some.Other.Event')

# checking to make sure the other event is running
if other_event.queue:
    # use the Wait from that event with no time set and it will wait until the stop 
    # has been issued for that event. either by EG closing, the event finishing, or
    # some other mechanism.
    other_event.Wait()

# do your code here if the other event is not running or the other event has finished

another example is if you have a looping event that is running but what it to stop if a different event comes in.

Code: Select all


# get the other event
other_event = eg.EventManager.GetEvent('Some.Other.Event')

# checking to make sure the other event is running
if other_event.queue:
    # tell that other thread to stop
    other_event.stop = True
    # join the other event which will make your current program wait until the other event has finished.
    other_event.thread.join()
    
at the current moment if you wanted to change the color of a specific event

Code: Select all


# get event
event = eg.EventManager.GetEvent('Some.Event')

# change color to gray (Red, Green, Blue).
# Each of the colors can be a number between 0 and 255
event.colour = (125, 125, 125)


I will be adding Actions to handle a lot of the looping bits to make it easier. but those are a little ways off. there is still alot of the core functionality I have fo finish up adding.
well here it is and enough with the changes. I am sure I have not added some of them but I will keep on adding docs on how to use specific things as i go along.

https://ci.appveyor.com/api/buildjobs/t ... _Setup.exe
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Fri Jul 28, 2017 3:53 pm

hmmm... not sure i like the new tray icon... can we have an option to have the old one back? :mrgreen:

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Fri Jul 28, 2017 4:32 pm

yeah I can do that...
But the issue is it's not going to change color properly.

It is just something that I came across and I thought it would be useful to be able to see based on color what event is running and also have in the tooltips what events are running as well.
If you like the work I have been doing then feel free to Image

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Fri Jul 28, 2017 4:33 pm

Update.

Added wild carding to the events.
Fixed issue with tray icon not disappearing when you close EG

https://ci.appveyor.com/api/buildjobs/i ... _Setup.exe
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Fri Jul 28, 2017 4:58 pm

I guess I will get to used to the new icon! I do have a very bad issue that I just can't figure out. Sometimes when my computer wakes from standby mode nothing works properly anymore and i have to hit my hard reset button! Even telling windows to restart/power off doesn't work! I know this is very vague and totally unhelpful but i can tell you that this NEVER happened with any previous versions until these WIP's

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Fri Jul 28, 2017 5:03 pm

well that is why this is an alpha test version.. extremely experimental/temperamental.....

Can you enable the debugging for EG and have it hang.. perform the hard reset and then get me a copy of the log file.. send the log file to me in a PM. you will have to zip it up first. This may give me a clue as to what is screwing up.
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Fri Jul 28, 2017 5:24 pm

Sure I can do that. Its gonna be a while though I'm not at home today. When you say debugging, is that selecting debugging from the menu or starting eg in debugging mode or both? Or are both these options the same thing anyway? lol

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Fri Jul 28, 2017 5:34 pm

i prefer if it is done from the command line as this will make sure that it picks up on any of the core loading debugging messages enabling it in the UI only starts debugging after all of the core stuff has loaded. I want to capture everything
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Fri Jul 28, 2017 5:49 pm

Ah ok, I see... good to know! I will do it as soon as I can.

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Sat Jul 29, 2017 1:42 am

@Diz

TY for helping out with testing. I think this is going to be a great addition to EG if I can get all of the kinks out of it.. This thing has got to be 100% before I would even consider it being a release. Even then I might do up another version of it. or simply go through it all line by line and really organize and tighten up the code. In the last version I cleaned up alot of how the events are stored and managed I am trying to remove having to iterate through all of the events every single time one is generated. Even when using fnmatch for the wild carding. I have successfully done it but i know there has to be a better way i just have to think about it for a while. I have to many storages for things going on in to many places. and i really do not like it. I am going to do more centralizing everything into one object that way if it needs to be deleted it can be done all at once.

I don't know if you checked out the Event Manager it's in the view dropdown menu.

if you past this into your tree and run the run me it will run a threading test which will populate the Event Manager so you can see how the organization is done. This does take a while to complete roughly a minute for all of the threads to finish up.

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="WIP">
    <Folder Name="Test Threads" XML_Guid="{17C8BE70-8A2C-4CDE-B0E5-B0EE7F50B536}" Expanded="True">
        <Macro Name="Macro 1" XML_Guid="{8AEA7213-E2F7-457E-9A5E-BBE54CC8C85E}">
            <Event Name="Main.*" XML_Guid="{D9D12AEB-3A1A-48E6-BE8C-5C50DE6F0114}" />
            <Action Name="Python Script1" XML_Guid="{43640E0A-C27F-4C3F-BD32-F341F4A17DBD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 1" XML_Guid="{1C4BDFBC-8647-4D78-B780-E09B6AECAB6E}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script2" XML_Guid="{58BB4073-6F5E-4D82-B20B-01B09F26E5DA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 2" XML_Guid="{4F11EAF4-B012-4CEA-8DED-398185DCA9C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script3" XML_Guid="{07CE0A48-DF91-4CF8-8002-223CAD8446A3}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 3" XML_Guid="{B4FC1EFD-9DF0-4FC1-B696-F58E2AD01A4C}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script4" XML_Guid="{6F5A455D-EADD-44E8-BF9C-695DB16F144B}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 4" XML_Guid="{601D19D9-CB92-422D-8E89-1075AAE34FAB}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script5" XML_Guid="{70E7262A-B164-4504-9B62-1CA071DBA0A5}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 5" XML_Guid="{6D848D9A-EA49-4C05-B112-EE183948C3C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script6" XML_Guid="{1DC56F70-E536-4105-9987-803DC1D17772}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 6" XML_Guid="{AC9C8105-0077-4D5B-B582-C9BD0EADD713}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script7" XML_Guid="{3D7B120F-A7C7-40C9-9D3D-977431E3A7CA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 7" XML_Guid="{A409E560-9B65-4294-A6C8-7706CABB78AA}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script8" XML_Guid="{BF00F1B3-D859-43DA-A8FD-B9F166748FF2}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 8" XML_Guid="{5A8A2987-BA01-48BB-95F0-7A3918E57CC2}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script9" XML_Guid="{DD38D0C4-16E9-407F-878B-2F4E6CB00470}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 9" XML_Guid="{CF8AC93E-FA9D-4D3C-919F-05D4D9D89968}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script10" XML_Guid="{B54B432A-9F05-4767-AAF4-7E6C1FAA10BD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 10" XML_Guid="{0C337C62-3C31-433A-AA1B-34E76E9B8C8F}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{1414A098-4DFD-49A8-9965-6B00C6607632}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{0E72F49C-FAE4-4B56-97C5-BACC40EFFBE9}">
                EventGhost.Wait(0.5)
            </Action>
        </Macro>
        <Macro Name="Macro 2" XML_Guid="{D74E04C2-AE9B-4CE1-AD17-D5ABB42335A0}">
            <Event Name="Main.*" XML_Guid="{D9D12AEB-3A1A-48E6-BE8C-5C50DE6F0114}" />
            <Action Name="Python Script1" XML_Guid="{43640E0A-C27F-4C3F-BD32-F341F4A17DBD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 1" XML_Guid="{1C4BDFBC-8647-4D78-B780-E09B6AECAB6E}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script2" XML_Guid="{58BB4073-6F5E-4D82-B20B-01B09F26E5DA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 2" XML_Guid="{4F11EAF4-B012-4CEA-8DED-398185DCA9C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script3" XML_Guid="{07CE0A48-DF91-4CF8-8002-223CAD8446A3}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 3" XML_Guid="{B4FC1EFD-9DF0-4FC1-B696-F58E2AD01A4C}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script4" XML_Guid="{6F5A455D-EADD-44E8-BF9C-695DB16F144B}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 4" XML_Guid="{601D19D9-CB92-422D-8E89-1075AAE34FAB}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script5" XML_Guid="{70E7262A-B164-4504-9B62-1CA071DBA0A5}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 5" XML_Guid="{6D848D9A-EA49-4C05-B112-EE183948C3C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script6" XML_Guid="{1DC56F70-E536-4105-9987-803DC1D17772}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 6" XML_Guid="{AC9C8105-0077-4D5B-B582-C9BD0EADD713}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script7" XML_Guid="{3D7B120F-A7C7-40C9-9D3D-977431E3A7CA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 7" XML_Guid="{A409E560-9B65-4294-A6C8-7706CABB78AA}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script8" XML_Guid="{BF00F1B3-D859-43DA-A8FD-B9F166748FF2}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 8" XML_Guid="{5A8A2987-BA01-48BB-95F0-7A3918E57CC2}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script9" XML_Guid="{DD38D0C4-16E9-407F-878B-2F4E6CB00470}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 9" XML_Guid="{CF8AC93E-FA9D-4D3C-919F-05D4D9D89968}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script10" XML_Guid="{B54B432A-9F05-4767-AAF4-7E6C1FAA10BD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 10" XML_Guid="{0C337C62-3C31-433A-AA1B-34E76E9B8C8F}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{1414A098-4DFD-49A8-9965-6B00C6607632}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{0E72F49C-FAE4-4B56-97C5-BACC40EFFBE9}">
                EventGhost.Wait(0.5)
            </Action>
        </Macro>
        <Macro Name="Macro 3" XML_Guid="{588643F8-BBED-42C0-A1E8-D9EBC2396C7B}">
            <Event Name="Main.*" XML_Guid="{D9D12AEB-3A1A-48E6-BE8C-5C50DE6F0114}" />
            <Action Name="Python Script1" XML_Guid="{43640E0A-C27F-4C3F-BD32-F341F4A17DBD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 1" XML_Guid="{1C4BDFBC-8647-4D78-B780-E09B6AECAB6E}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script2" XML_Guid="{58BB4073-6F5E-4D82-B20B-01B09F26E5DA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 2" XML_Guid="{4F11EAF4-B012-4CEA-8DED-398185DCA9C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script3" XML_Guid="{07CE0A48-DF91-4CF8-8002-223CAD8446A3}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 3" XML_Guid="{B4FC1EFD-9DF0-4FC1-B696-F58E2AD01A4C}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script4" XML_Guid="{6F5A455D-EADD-44E8-BF9C-695DB16F144B}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 4" XML_Guid="{601D19D9-CB92-422D-8E89-1075AAE34FAB}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script5" XML_Guid="{70E7262A-B164-4504-9B62-1CA071DBA0A5}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 5" XML_Guid="{6D848D9A-EA49-4C05-B112-EE183948C3C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script6" XML_Guid="{1DC56F70-E536-4105-9987-803DC1D17772}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 6" XML_Guid="{AC9C8105-0077-4D5B-B582-C9BD0EADD713}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script7" XML_Guid="{3D7B120F-A7C7-40C9-9D3D-977431E3A7CA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 7" XML_Guid="{A409E560-9B65-4294-A6C8-7706CABB78AA}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script8" XML_Guid="{BF00F1B3-D859-43DA-A8FD-B9F166748FF2}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 8" XML_Guid="{5A8A2987-BA01-48BB-95F0-7A3918E57CC2}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script9" XML_Guid="{DD38D0C4-16E9-407F-878B-2F4E6CB00470}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 9" XML_Guid="{CF8AC93E-FA9D-4D3C-919F-05D4D9D89968}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script10" XML_Guid="{B54B432A-9F05-4767-AAF4-7E6C1FAA10BD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 10" XML_Guid="{0C337C62-3C31-433A-AA1B-34E76E9B8C8F}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{1414A098-4DFD-49A8-9965-6B00C6607632}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{0E72F49C-FAE4-4B56-97C5-BACC40EFFBE9}">
                EventGhost.Wait(0.5)
            </Action>
        </Macro>
        <Macro Name="Macro 4" XML_Guid="{CEEEA082-8E1C-4916-AE00-8EBD8DAEB247}">
            <Event Name="Main.*" XML_Guid="{D9D12AEB-3A1A-48E6-BE8C-5C50DE6F0114}" />
            <Action Name="Python Script1" XML_Guid="{43640E0A-C27F-4C3F-BD32-F341F4A17DBD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 1" XML_Guid="{1C4BDFBC-8647-4D78-B780-E09B6AECAB6E}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script2" XML_Guid="{58BB4073-6F5E-4D82-B20B-01B09F26E5DA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 2" XML_Guid="{4F11EAF4-B012-4CEA-8DED-398185DCA9C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script3" XML_Guid="{07CE0A48-DF91-4CF8-8002-223CAD8446A3}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 3" XML_Guid="{B4FC1EFD-9DF0-4FC1-B696-F58E2AD01A4C}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script4" XML_Guid="{6F5A455D-EADD-44E8-BF9C-695DB16F144B}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 4" XML_Guid="{601D19D9-CB92-422D-8E89-1075AAE34FAB}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script5" XML_Guid="{70E7262A-B164-4504-9B62-1CA071DBA0A5}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 5" XML_Guid="{6D848D9A-EA49-4C05-B112-EE183948C3C4}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script6" XML_Guid="{1DC56F70-E536-4105-9987-803DC1D17772}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 6" XML_Guid="{AC9C8105-0077-4D5B-B582-C9BD0EADD713}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script7" XML_Guid="{3D7B120F-A7C7-40C9-9D3D-977431E3A7CA}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 7" XML_Guid="{A409E560-9B65-4294-A6C8-7706CABB78AA}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script8" XML_Guid="{BF00F1B3-D859-43DA-A8FD-B9F166748FF2}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 8" XML_Guid="{5A8A2987-BA01-48BB-95F0-7A3918E57CC2}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script9" XML_Guid="{DD38D0C4-16E9-407F-878B-2F4E6CB00470}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 9" XML_Guid="{CF8AC93E-FA9D-4D3C-919F-05D4D9D89968}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Python Script10" XML_Guid="{B54B432A-9F05-4767-AAF4-7E6C1FAA10BD}">
                EventGhost.PythonScript(u"import threading\nimport time\nimport random\nimport math\n\n\nargs1 = random.randint(1, 45)\nargs2 = random.randint(1, 45)\nresult = 0\nfor i in range(args1):\n    angle_rad = math.radians(args2)\n    result += math.tanh(angle_rad)/math.cosh(angle_rad)/args1\n        \neg.PrintNotice(str(threading.currentThread()) + ' : ' + str(result) + ' : ' + eg.eventString)\n\n\n")
            </Action>
            <Action Name="Wait 10" XML_Guid="{0C337C62-3C31-433A-AA1B-34E76E9B8C8F}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{1414A098-4DFD-49A8-9965-6B00C6607632}">
                EventGhost.Wait(0.5)
            </Action>
            <Action Name="Wait 10" XML_Guid="{0E72F49C-FAE4-4B56-97C5-BACC40EFFBE9}">
                EventGhost.Wait(0.5)
            </Action>
        </Macro>
        <Macro Name="Run Me" XML_Guid="{25A6B6A2-665F-4888-A6B3-54EB1D0245A0}">
            <Action Name="TriggerEvents 0-9" XML_Guid="{236032A5-AC9E-4A99-83FC-5EC8E343678F}">
                EventGhost.PythonScript(u'import threading\nimport time\n\nimport random\n\n\neg.globals.runEvents = True\n\n\nfor i in range(10):\n   eg.TriggerEvent(str(i))\n\nfor i in range(10):\n   eg.TriggerEvent(str(i))\n\nfor i in range(10):\n   eg.TriggerEvent(str(i))\n\nfor i in range(10):\n   eg.TriggerEvent(str(i))\n')
            </Action>
        </Macro>
    </Folder>
</EventGhost>
If you like the work I have been doing then feel free to Image

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Sat Jul 29, 2017 1:44 am

@ Diz

also check to see if the computer does this without EG running. I want to make sure that it is EG that is causing the problem and not something else.
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Sun Jul 30, 2017 3:23 am

ok... i pm'd you the log file... hope it helps

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Sun Jul 30, 2017 5:42 am

I just replied.. and yes it does help. I sent you a file to try out and let me know if it solves the problem.
If you like the work I have been doing then feel free to Image

Diz
Experienced User
Posts: 121
Joined: Tue Jan 10, 2017 4:49 pm

Re: I did it!!!

Post by Diz » Sun Jul 30, 2017 6:54 pm

no change at all to my issue but it did fix that traceback in the log

User avatar
kgschlosser
Site Admin
Posts: 5498
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: I did it!!!

Post by kgschlosser » Sun Jul 30, 2017 9:01 pm

ok that's one problem gone...

I still need to get more information from your logs when the computer hangs
If you like the work I have been doing then feel free to Image

Post Reply