Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
Drops on reading from serial port
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
ok here goes
button presses are fixed.
i am not sure if this is an ir remote or not. but i am going to sort the latter in a little while. but if you click and hold the button. i am not sure as to how the remote works with the button presses if it will fire repetitive codes on a click and hold of the button. but. say it doesn't (which i wouldn't think that it would) and you want to drag and drop something it would be rather annoying if the timer to release the button timed out before you got there. so no timer. also i had to set this thing up that if by change it doesn't pick up on the fact that you released the button it would release it next time you pressed either the right or the left.
so the behavior is as follows. it will single fire an event now. and release when released. and if the release is missed for some reason it will release it next time you press either the left or the right.
that being said if for some reason it doesn't get the release code and then you move the directional pad it will act as thou the button is pressed. this can be dealy with by a quick tap of either the left or the right. this will do a release, a press, and then a release again.
it now posts events properly when check boxes are selected.
i also moved that sleep to the close function of the plugin because the problem only occurred when you were restarting the plugin
i added the millisecond notification to the debug so fine tuning of the timers can take place
i added more resolution to the mouse speed. that way the control is a lot finer giving a greater range of speed adjustment.
the speed is all based mas speed and how fast it will get to max speed. and this is all adjusted based on the codes it receives. so the longer you hold it in a direction the faster it will become. if you want to slow down. release the button and press again (not sure how the timer function of eg is set up if it's done in ms. if it is it will take 100ms for the speed to reset. if it not then please let me know and i will make a change to deal with that.
so what i need to know is this.. do the mouse left and right fire in succession when held
and how fast it will allow for a slow down of the mouse on release of the direction and then press again
i am still trying to understand your term of delta x, y. because the x and y values are used to calculate the angle in which to go. i do not have this remote you have to remember so i can't see the hex values it spits out to get a better handle of how that portion of it work. i really don't think that the remote would be designed with a strain gauge for each direction button or a joystick style potentiometer inside to know what direction you are headed based on how hard you push. you can easily know by pressing a direction. if you hear a "click" then it's a single button and that would explain why it will only work to a 45 degree angle. because you can only push 2 of them at the same time.
i am thinking that you are expecting way to much functionality from this remote. it's not a top of the line URC or a control 4 remote that costs 1000.00 dollars. it's going to provide the most basic of control types available.
tho adding a joy style mouse control wouldn't have been a whole lot more expensive but from a warranty standpoint. because of what people do to their remotes LOL
i just lost power and my computer restarted i am pretty sure it saved the code. but if it goofs that's why. (still haven't gotten around to finishing up the wiring for my battery backup) maybe i should do that now. LOL
attached is the file.
button presses are fixed.
i am not sure if this is an ir remote or not. but i am going to sort the latter in a little while. but if you click and hold the button. i am not sure as to how the remote works with the button presses if it will fire repetitive codes on a click and hold of the button. but. say it doesn't (which i wouldn't think that it would) and you want to drag and drop something it would be rather annoying if the timer to release the button timed out before you got there. so no timer. also i had to set this thing up that if by change it doesn't pick up on the fact that you released the button it would release it next time you pressed either the right or the left.
so the behavior is as follows. it will single fire an event now. and release when released. and if the release is missed for some reason it will release it next time you press either the left or the right.
that being said if for some reason it doesn't get the release code and then you move the directional pad it will act as thou the button is pressed. this can be dealy with by a quick tap of either the left or the right. this will do a release, a press, and then a release again.
it now posts events properly when check boxes are selected.
i also moved that sleep to the close function of the plugin because the problem only occurred when you were restarting the plugin
i added the millisecond notification to the debug so fine tuning of the timers can take place
i added more resolution to the mouse speed. that way the control is a lot finer giving a greater range of speed adjustment.
the speed is all based mas speed and how fast it will get to max speed. and this is all adjusted based on the codes it receives. so the longer you hold it in a direction the faster it will become. if you want to slow down. release the button and press again (not sure how the timer function of eg is set up if it's done in ms. if it is it will take 100ms for the speed to reset. if it not then please let me know and i will make a change to deal with that.
so what i need to know is this.. do the mouse left and right fire in succession when held
and how fast it will allow for a slow down of the mouse on release of the direction and then press again
i am still trying to understand your term of delta x, y. because the x and y values are used to calculate the angle in which to go. i do not have this remote you have to remember so i can't see the hex values it spits out to get a better handle of how that portion of it work. i really don't think that the remote would be designed with a strain gauge for each direction button or a joystick style potentiometer inside to know what direction you are headed based on how hard you push. you can easily know by pressing a direction. if you hear a "click" then it's a single button and that would explain why it will only work to a 45 degree angle. because you can only push 2 of them at the same time.
i am thinking that you are expecting way to much functionality from this remote. it's not a top of the line URC or a control 4 remote that costs 1000.00 dollars. it's going to provide the most basic of control types available.
tho adding a joy style mouse control wouldn't have been a whole lot more expensive but from a warranty standpoint. because of what people do to their remotes LOL
i just lost power and my computer restarted i am pretty sure it saved the code. but if it goofs that's why. (still haven't gotten around to finishing up the wiring for my battery backup) maybe i should do that now. LOL
attached is the file.
- Attachments
-
- X10RemoteMouse.0.6b.zip
- (15.32 KiB) Downloaded 114 times
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
the angle parameter is derived from the x, and y. that is why i believe the x, and y data have no step value to them. and since i had it i threw it in there. if a user wants to move the mouse via the eg plugin only wen a specific x, y parameter comes up they would have to do the conversion to pass off to the mouse emulator anyways. so i figured since i had already done that to put it into the payload for use.
the x, y parameter from how i interpret the code is for direction not location, speed step but i could be wrong without seeing a complete layout of the hex codes it's hard to say. but i can't think that there is a way to take 2 hex values and derive direction, speed, number of steps to take.
it could have been location but the remote has no clue as to the resolution of your screen. so it can't be that.
i am not sure i would really need to dig hard into it.
and the x, y values should be the same exact thing as what as produced before i left that calculation alone. it would only produce 8 different xy values before. i know that it uses the first hex in it's calculation for the x, y but it's all bit wise and bit shifting so unless i break it all down into binary i am clueless
i would have to read up on it again
the x, y parameter from how i interpret the code is for direction not location, speed step but i could be wrong without seeing a complete layout of the hex codes it's hard to say. but i can't think that there is a way to take 2 hex values and derive direction, speed, number of steps to take.
it could have been location but the remote has no clue as to the resolution of your screen. so it can't be that.
i am not sure i would really need to dig hard into it.
and the x, y values should be the same exact thing as what as produced before i left that calculation alone. it would only produce 8 different xy values before. i know that it uses the first hex in it's calculation for the x, y but it's all bit wise and bit shifting so unless i break it all down into binary i am clueless
i would have to read up on it again
Re: Drops on reading from serial port
X10 MouseRemote is RF remote (very important feature).kgschlosser wrote: i am not sure if this is an ir remote or not.
You mean codes from remote or movement of the cursor?kgschlosser wrote: do the mouse left and right fire in succession when held
and how fast it will allow for a slow down of the mouse on release of the direction and then press again
Because the codes are fired quite rapidly - you could see it from debug log.
There are no clicks, although the accuracy is quite limited.kgschlosser wrote: i am still trying to understand your term of delta x, y. because the x and y values are used to calculate the angle in which to go. i do not have this remote you have to remember so i can't see the hex values it spits out to get a better handle of how that portion of it work. i really don't think that the remote would be designed with a strain gauge for each direction button or a joystick style potentiometer inside to know what direction you are headed based on how hard you push. you can easily know by pressing a direction. if you hear a "click" then it's a single button and that would explain why it will only work to a 45 degree angle. because you can only push 2 of them at the same time.
What I would like to see is events for each case of changing X or Y for mouse movement. Because now I see only single event like this one:
Code: Select all
X10Mouse.Mouse.MovingCursor {'y': -1, 'x': 0, 'angle': 0.0}That was the meaning of asking if Enduring event has something to do with it. Without this info, I won't be able to tell for sure how the values change depending on the direction and force of presses.
But it could be enough for the simple control I in fact need.
I also see the following extra event when pressing mouse button:
Code: Select all
X10Mouse.Mouse.LeftButton.Pressed
X10Mouse.Mouse.LeftButton.Released
X10Mouse.Mouse.MovingCursor {'y': 0, 'x': 0, 'angle': 0.0}- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
well yeah enduring will have something to do with it. because enduring will only post a single event. i think i can alter the code to end the enduring event of the data changes at all. but the enduring event is good for a state change. not something like a mouse movemen. i would have to create an action that could be polled to get any updated movements. unless i put the x, y in the actual eventname so it changes when you move it, but at that point you may as well disable the enduring events
enduring events are really designed around holding a state and not having to change. if you are looking for a change then enduring is not the way to go.
it for holding down a volume button or a channel button. that way it doesn't keep on firing off events. you can just keep a loop going to press the button for as long as you hold it. i really don't see a difference between doing that and the normal event action way without the polling it accomplishes the same with just with more visible data and in all actually not using enduring is probably better because if you have a loop running in a macro, nothing else can be done. it stops eg essentially. and eg will Que any event for as long as that loop is going. because EG uses exec to run a python script i do not believe that you can start a thread in a script because it's not technically apart of the main thread.
it would have provided far more functionality if the script was written to a temp file and then loaded as a module. that would allow for greater code use and not so cryptic traceback errors. like the one about something wrong with print and you have to go and hunt through each script because it doesn't tell you what one is causing the error or what line it's on.
when you have a tree like mine it takes a very very long time to find an error like that unless it was from a script you were just working on.
that was one thing i don't like about eg is that any macro that is running is running in the same thread it doesn't create new ones for each event or even give an option to
because i have been forced to make a plugin for something really simple but could sit there for a little bit and to not have events generated during this time is batty LOL
enduring events are really designed around holding a state and not having to change. if you are looking for a change then enduring is not the way to go.
it for holding down a volume button or a channel button. that way it doesn't keep on firing off events. you can just keep a loop going to press the button for as long as you hold it. i really don't see a difference between doing that and the normal event action way without the polling it accomplishes the same with just with more visible data and in all actually not using enduring is probably better because if you have a loop running in a macro, nothing else can be done. it stops eg essentially. and eg will Que any event for as long as that loop is going. because EG uses exec to run a python script i do not believe that you can start a thread in a script because it's not technically apart of the main thread.
it would have provided far more functionality if the script was written to a temp file and then loaded as a module. that would allow for greater code use and not so cryptic traceback errors. like the one about something wrong with print and you have to go and hunt through each script because it doesn't tell you what one is causing the error or what line it's on.
when you have a tree like mine it takes a very very long time to find an error like that unless it was from a script you were just working on.
that was one thing i don't like about eg is that any macro that is running is running in the same thread it doesn't create new ones for each event or even give an option to
because i have been forced to make a plugin for something really simple but could sit there for a little bit and to not have events generated during this time is batty LOL
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
i would need to see the hex data i am going to remove the single byte data from the logging because that was for seeing if it was losing any data. which it's not
so that isn't needed anymore.
and i will turn off the event generation during the logging and have it add the information to the hex values instead. and try to get everything down to one line per completed code
so that isn't needed anymore.
and i will turn off the event generation during the logging and have it add the information to the hex values instead. and try to get everything down to one line per completed code
Re: Drops on reading from serial port
Well, I don't need ending the enduring event for mouse pad presses.
For the purpose of debugging I will simply disable the enduring, you are right.
Here are examples of changing direction and force of mouse pad presses:
All the rest is actually working fine.
Although I changed the names of buttons to be as much compatible with my configuration (which used X10 MouseRemote old plugin and Firefly remote) as possible.
Here are the names:
I also preferred the name Mouse.Move instead of Mouse.MovingCursor:
Sorry for this, this simplified the configuration (and I am reusing simple event names).
For the purpose of debugging I will simply disable the enduring, you are right.
Here are examples of changing direction and force of mouse pad presses:
Code: Select all
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:21 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:22 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:22 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:22 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:23 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:25 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:25 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 0, 'angle': 0.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': 0, 'angle': 0.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:26 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:27 X10Mouse.Mouse.Move {'y': 0, 'x': -2, 'angle': 270.0}
01:51:27 X10Mouse.Mouse.Move {'y': 0, 'x': -2, 'angle': 270.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -2, 'angle': 225.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -2, 'angle': 225.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': -2, 'angle': 207.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': -2, 'angle': 207.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': 0, 'angle': 180.0}
01:51:27 X10Mouse.Mouse.Move {'y': 2, 'x': 0, 'angle': 180.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:27 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:28 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:28 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:28 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:28 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -1, 'angle': 315.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -1, 'angle': 315.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -2, 'angle': 297.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -2, 'angle': 297.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -2, 'angle': 297.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -2, 'angle': 297.0}
01:51:29 X10Mouse.Mouse.Move {'y': -1, 'x': -2, 'angle': 297.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:29 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:30 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:30 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:30 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:30 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:30 X10Mouse.Mouse.Move {'y': -2, 'x': 0, 'angle': 0.0}
01:51:31 X10Mouse.Mouse.Move {'y': -2, 'x': 0, 'angle': 0.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': -2, 'angle': 333.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:31 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:32 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:32 X10Mouse.Mouse.Move {'y': 0, 'x': 2, 'angle': 90.0}
01:51:32 X10Mouse.Mouse.Move {'y': 0, 'x': 2, 'angle': 90.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': 2, 'angle': 117.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': 1, 'angle': 153.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': 1, 'angle': 153.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': 0, 'angle': 180.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': 0, 'angle': 180.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:32 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:33 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:33 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:33 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -2, 'x': -4, 'angle': 297.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:33 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:34 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:34 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:34 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:34 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:34 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:34 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:34 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:34 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:34 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:34 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:34 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:34 X10Mouse.Mouse.Move {'y': -2, 'x': 4, 'angle': 63.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': 4, 'angle': 117.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': 2, 'angle': 153.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': -1, 'angle': 207.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': -2, 'angle': 207.0}
01:51:34 X10Mouse.Mouse.Move {'y': 4, 'x': -2, 'angle': 207.0}
01:51:34 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:35 X10Mouse.Mouse.Move {'y': 2, 'x': -4, 'angle': 243.0}
01:51:35 X10Mouse.Mouse.Move {'y': 8, 'x': -16, 'angle': 243.0}
01:51:35 X10Mouse.Mouse.Move {'y': 8, 'x': -16, 'angle': 243.0}
01:51:35 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:35 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:35 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:35 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:35 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:35 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:36 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:37 X10Mouse.Mouse.Move {'y': -8, 'x': 8, 'angle': 45.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:37 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:38 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:38 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:38 X10Mouse.Mouse.Move {'y': 0, 'x': 8, 'angle': 90.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 8, 'angle': 135.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': 0, 'angle': 180.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 8, 'x': -8, 'angle': 225.0}
01:51:38 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:38 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': -8, 'angle': 270.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': -8, 'angle': 315.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -8, 'x': 0, 'angle': 0.0}
01:51:39 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:39 X10Mouse.Mouse.Move {'y': -4, 'x': 2, 'angle': 27.0}
01:51:39 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:39 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:39 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:39 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:39 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:39 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:40 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:40 X10Mouse.Mouse.Move {'y': 0, 'x': 1, 'angle': 90.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': 1, 'angle': 135.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': 0, 'angle': 180.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -1, 'angle': 225.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:40 X10Mouse.Mouse.Move {'y': 1, 'x': -2, 'angle': 243.0}
01:51:40 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:40 X10Mouse.Mouse.Move {'y': 0, 'x': -1, 'angle': 270.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': -1, 'angle': 315.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': -1, 'angle': 315.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': 0, 'angle': 0.0}
01:51:40 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:40 X10Mouse.Mouse.Move {'y': -2, 'x': 1, 'angle': 27.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:40 X10Mouse.Mouse.Move {'y': -1, 'x': 1, 'angle': 45.0}
01:51:41 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}
01:51:41 X10Mouse.Mouse.Move {'y': -1, 'x': 2, 'angle': 63.0}Although I changed the names of buttons to be as much compatible with my configuration (which used X10 MouseRemote old plugin and Firefly remote) as possible.
Here are the names:
Code: Select all
BUTTONS = {
'0x44': {
'0x3': 'ChannelDown',
'0x2': 'ChannelUp',
'0x7': 'VolumeDown',
'0x6': 'VolumeUp',
'0x5': 'VolumeMute',
'0x2b': 'PC',
'0x1d': 'Forward',
'0x1c': 'Rewind',
'0xf': 'Power',
'0xe': 'Stop',
'0xd': 'Play'
},
'0x45': {
'0x9': 'Pad9',
'0x8': 'Pad8',
'0x3': 'Pad3',
'0x2': 'Pad2',
'0x1': 'Pad1',
'0x0': 'Pad0',
'0x7': 'Pad7',
'0x6': 'Pad6',
'0x5': 'Pad5',
'0x4': 'Pad4',
'0x2d': 'Guide',
'0x2b': 'Shift',
'0xb': 'Phone',
'0xa': 'Enter',
'0x1d': 'AB',
'0x1c': 'Disp',
'0xf': 'Last',
'0xe': 'Pause'
},
'0x46': {
'0x2b': 'CD',
'0xb': 'Web',
'0x13': 'Select'
},
'0x47': {
'0xb': 'DVD',
'0x3f': 'Record'
}
}
Code: Select all
try: return self.TriggerEvent(suffix='Mouse.Move', payload=copy(self.lastDirection))- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
sure edit away. i know the change can make it a pain if you already have everything set up. i was going to add a second set of actions for ya with a parameter to generate old, or generate new or generate both for changing.
the reason why i did want to change them is for that wild carding. it is a very handy feature if you script at all. because you can handle multiple events inside one script. and normally you would do that when processing like groups. instead of having to put 10 different events inside one macro. for something like emulating a key press where the way i set it you can just put the .*after Number and then inside the script do eg.suffix.split('.')[:-1][0] and it would produce just the number very easily. just a little for thought can save the user a huge amount of code. that's why i like to have all of the actual event name being after the last dot if possible.
makes cutting up an event very easy without having to worry about string slicing.
i have another version. i fixed the event being posted for the mouse movement when you click the mouse button. it was dumb actually. had one to few tabs for the function that triggers that
it's funny what something small like that can cause. i will upload it in a little bit i want to go back through it. and i also wanted to know if you tried omitting out that sleep line yet???..
i have a funny feeling it was how the thread was closing and has nothing to do with sleeping. but i could be wrong.
i just want to make sure before i remove it
the reason why i did want to change them is for that wild carding. it is a very handy feature if you script at all. because you can handle multiple events inside one script. and normally you would do that when processing like groups. instead of having to put 10 different events inside one macro. for something like emulating a key press where the way i set it you can just put the .*after Number and then inside the script do eg.suffix.split('.')[:-1][0] and it would produce just the number very easily. just a little for thought can save the user a huge amount of code. that's why i like to have all of the actual event name being after the last dot if possible.
makes cutting up an event very easy without having to worry about string slicing.
i have another version. i fixed the event being posted for the mouse movement when you click the mouse button. it was dumb actually. had one to few tabs for the function that triggers that
it's funny what something small like that can cause. i will upload it in a little bit i want to go back through it. and i also wanted to know if you tried omitting out that sleep line yet???..
i have a funny feeling it was how the thread was closing and has nothing to do with sleeping. but i could be wrong.
i just want to make sure before i remove it
Re: Drops on reading from serial port
Omitting sleep entirely produces the following error (I've already verified this while determining a lower timeout):
By the way, why are there two different sets of parameters in the plugin, each with different prefix:X-10 Mouse Plugin Has Stopped
[SerialException("could not open port: (5, 'CreateFile', 'Access is denied.')",)]
X-10 Mouse Plugin Has Stopped
Code: Select all
def __start__(
self,
port,
longpresstimeout,
prefix='X10-Mouse',Code: Select all
def Configure(
self,
port=0,
longpresstimeout=0.145,
prefix='X10-Remote',Re: Drops on reading from serial port
About the names of events:
I prefer to configure only the last part of event name: e.g. "Play", meaning that both Firefly.Play and X10Mouse.Button.Play will trigger the action and you don't need to set up several events for each action.
Besides, the configuration was first made long ago, and looks like this is the most convenient thing (for this kind of setup).
I prefer to configure only the last part of event name: e.g. "Play", meaning that both Firefly.Play and X10Mouse.Button.Play will trigger the action and you don't need to set up several events for each action.
Besides, the configuration was first made long ago, and looks like this is the most convenient thing (for this kind of setup).
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
what was the lowest value you got to??? it doesn't matter neways because it doesn't cause eg to hiccup when loading because i moved it to the __stop__ which only gets called when you alter the config or disable the plugin.igvk wrote:Omitting sleep entirely produces the following error (I've already verified this while determining a lower timeout):X-10 Mouse Plugin Has Stopped
[SerialException("could not open port: (5, 'CreateFile', 'Access is denied.')",)]
X-10 Mouse Plugin Has Stopped
but that is good to know. it could be that my computer is just so blazing fast that it closes windows cleans up after closing the serial port fast enough. IDK.
but what i do know is that the plugin thinks the port is still in use so if a delay is needed then a delay is needed
igvk wrote: By the way, why are there two different sets of parameters in the plugin, each with different prefix:Code: Select all
def __start__( self, port, longpresstimeout, prefix='X10-Mouse',Code: Select all
def Configure( self, port=0, longpresstimeout=0.145, prefix='X10-Remote',
because i forgot to change one of them. they are for defaulting anyways. and usually with a new plugin i do not put defaults on the __start__ for the plugin.
i only will have defaults for parameters i have to add to an already made plugin or something i made and added on to. because what happens is if the plugin is already installed it has the data for say 6 parameters and if i ad another 2. it will cause EG to bomb. because there aren't enough parameters. so by adding the defaults to the __start__ parameters i have added this will allow EG to load and the plugin to function. and when the user goes into the config it will update the xml file and add the ones that are missing.
it's a way to not have to remove a plugin and reinstall it in EG. as long as i don't change the position of what was already there without compensating for it. because EG places the parameters by positional not by keyname.
it doesn't affect a thing.
Re: Drops on reading from serial port
Sleep(.1) is the lowest, seems like something artificially holds the port open for exactly this time.
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
ok then that solves that issue.
i attached the most recent version of the plugin. i set it so that when you enable the debug it stops generating events and also puts all of the data onto one line.
i am not sure if there is anything else that has to be fixed.
i attached the most recent version of the plugin. i set it so that when you enable the debug it stops generating events and also puts all of the data onto one line.
i am not sure if there is anything else that has to be fixed.
Re: Drops on reading from serial port
Actually, it's working perfectly already. And not a single drop yet.
Great work!
Great work!
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
the issue with it posting a direction change when you press a mouse button still there???
i don't remember if i fixed it in an earlier version
i don't remember if i fixed it in an earlier version
- kgschlosser
- Site Admin
- Posts: 5190
- Joined: Fri Jun 05, 2015 5:43 am
- Location: Rocky Mountains, Colorado USA
Re: Drops on reading from serial port
well i am very happy that i was able to remedy the problem for you, and sorry it took a while, there was a lot of reading and learning going on. on my side of things. i didn't know a thing about how a mouse worked.
now i do. another tool in my belt.
and i do appreciate the help. i am going to make a new thread for this plugin. is it ok if i mention your forum name in a thank you for the testing in the plugin file??
now i do. another tool in my belt.
and i do appreciate the help. i am going to make a new thread for this plugin. is it ok if i mention your forum name in a thank you for the testing in the plugin file??
