Re: [comtypes-users] Events for device not working since version 0.3.2

2008-09-25 Thread Thomas Heller
Malte Skarupke schrieb:
 I'm trying to get the 3D Space Navigator
 (http://www.3dconnexion.com/) to work in Python. I quickly found a
 solution using comtypes on the 3DConnexion developer forum: 
 http://www.3dconnexion.com/forum/viewtopic.php?t=984start=30
 
 However that solution only works with comtypes version 0.2.1. Any
 newer version will result in the events not registering.

I've looked up the thread in the forum.  A user codenamed 'kitsu' wrote:

Note that there is a error in the comtypes 0.3.2 GetEvents function which
causes it to miss all events. I've reported it to the mailing list, but
until it is fixed use comtypes 0.2.1.

I have not found the 'report' he mentions on the mailing list.
Dois the code snippet that he posted here
  http://www.3dconnexion.com/forum/viewtopic.php?t=984start=33
work with comtypes 0.2.1, and not with later comtypes?

 This is the output I get from the GetEvents() function when using
 version 0.2.1:
 
 
   Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit 
 (Intel)] on win32
   Type help, copyright, credits or license for more information.
import logging
logging.basicConfig(level=logging.DEBUG)
class EventHandler:
   ... def __getattr__(self, name):
   ... print name
   ...
from comtypes.client import *
   DEBUG:comtypes:CoInitializeEx(None, 2)
x = CreateObject(TDxInput.Device)
   DEBUG:comtypes.client:TDxInput.Device - 
 {82C5AB54-C92C-4D52-AAC5-27E25E22604C}
   
 DEBUG:comtypes.client:CoCreateInstance({82C5AB54-C92C-4D52-AAC5-27E25E22604C},
  clsctx=None, interface=None)
   INFO:comtypes.client:wrap(POINTER(IUnknown) object c108a0)
   INFO:comtypes.client:Does implement IProvideClassInfo
   INFO:comtypes.client:Implements default interface from typeinfo class 
 'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0.ISimpleDevice'
   INFO:comtypes.client:Final result is POINTER(ISimpleDevice) object 
 c2c080
x.Connect()
   0
test = GetEvents(x.sensor, EventHandler)
   INFO:comtypes.client:wrap_outparam(POINTER(ISensor) object c108a0)
   DEBUG:comtypes.client:POINTER(ISensor) object c108a0 using 
 sinkinterface class 
 'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
   DEBUG:comtypes.client:Start advise class 
 'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
   DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
 0x00C12590.QueryInterface({E6929A4A-6F41-46C6-9252-A8CC53472CB1}) - S_OK
   DEBUG:comtypes._comobject:1 active COM objects: Added   
 comtypes.client.DispEventReceiver object at 0x00C12590
   DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
 0x00C12590.AddRef() - 1
   DEBUG:comtypes.client:End advise class 
 'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
   DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
 0x00C12590.Release() - 0
   DEBUG:comtypes._comobject:0 active COM objects: Removed 
 comtypes.client.DispEventReceiver object at 0x00C12590
   
 
 
 
 And this is the output I get when I use version 0.5.1:
 
 
   Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit 
 (Intel)] on win32
   Type help, copyright, credits or license for more information.
import logging
logging.basicConfig(level=logging.DEBUG)
from comtypes.client import *
   DEBUG:comtypes:CoInitializeEx(None, 2)
x = CreateObject(TDxInput.Device)
   DEBUG:comtypes.client:TDxInput.Device - 
 {82C5AB54-C92C-4D52-AAC5-27E25E22604C}
   
 DEBUG:comtypes.client:CoCreateInstance({82C5AB54-C92C-4D52-AAC5-27E25E22604C},
  clsctx=None, interface=None)
   DEBUG:comtypes.client:GetBestInterface(POINTER(IUnknown) ptr=0x9f3fc0 
 at c0e3f0)
   DEBUG:comtypes.client:Does implement IProvideClassInfo
   DEBUG:comtypes.client:Default interface is 
 {CB3BF65E-0816-482A-BB11-64AF1E837812}
   DEBUG:comtypes:Release POINTER(IUnknown) ptr=0x9f3fc0 at c14080
   
 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={7858B9E0-5793-4BE4-9B53-661D922790D2},
  Version=1.0, LCID=0, FLags=0x8))
   DEBUG:comtypes.client:Implements default interface from typeinfo class 
 'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0.ISimpleDevice'
   DEBUG:comtypes.client:Final result is POINTER(ISimpleDevice) 
 ptr=0x9f3fc0 at c14d00
   DEBUG:comtypes:Release POINTER(IProvideClassInfo) ptr=0x9f68a8 at 
 c0ed00
   DEBUG:comtypes:Release POINTER(ITypeInfo) ptr=0x24c5f4 at c0eda0
   DEBUG:comtypes:Release POINTER(ITypeInfo) ptr=0x24c620 at c0ee90
   DEBUG:comtypes:Release POINTER(ITypeLib) ptr=0x24bd88 at c0ef80
   DEBUG:comtypes:Release POINTER(IUnknown) ptr=0x9f3fc0 at c0e3f0
x.Connect()
   0
test = ShowEvents(x.sensor)
   

Re: [comtypes-users] Events for device not working since version 0.3.2

2008-09-22 Thread Thomas Heller
[Resending, the first answer seemed to get lost somewhere]

Malte Skarupke schrieb:
  I'm trying to get the 3D Space Navigator
  (http://www.3dconnexion.com/) to work in Python. I quickly found a
  solution using comtypes on the 3DConnexion developer forum: 
  http://www.3dconnexion.com/forum/viewtopic.php?t=984start=30
  
  However that solution only works with comtypes version 0.2.1. Any
  newer version will result in the events not registering.
  
  
  I believe, that this is enough output, because I believe the line
  DEBUG:comtypes:Release POINTER(ISensor) ptr=0x9f2170 at c14d50
  shows, where the bug originates. If you need any further testing, I
  would be glad to help.

Does it work when you keep a reference to the sensor object?  Something like 
this:

  import logging logging.basicConfig(level=logging.DEBUG) from
  comtypes.client import * x = CreateObject(TDxInput.Device) 
  x.Connect()
0
  s = x.sensor test = ShowEvents(s)
  

-- Thanks, Thomas 

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
comtypes-users mailing list
comtypes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/comtypes-users


[comtypes-users] Events for device not working since version 0.3.2

2008-09-19 Thread Malte Skarupke
I'm trying to get the 3D Space Navigator (http://www.3dconnexion.com/) to work 
in Python. I quickly found a solution using comtypes on the 3DConnexion 
developer forum:
http://www.3dconnexion.com/forum/viewtopic.php?t=984start=30

However that solution only works with comtypes version 0.2.1. Any newer version 
will result in the events not registering.

This is the output I get from the GetEvents() function when using version 0.2.1:


Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit 
(Intel)] on win32
Type help, copyright, credits or license for more information.
 import logging
 logging.basicConfig(level=logging.DEBUG)
 class EventHandler:
... def __getattr__(self, name):
... print name
...
 from comtypes.client import *
DEBUG:comtypes:CoInitializeEx(None, 2)
 x = CreateObject(TDxInput.Device)
DEBUG:comtypes.client:TDxInput.Device - 
{82C5AB54-C92C-4D52-AAC5-27E25E22604C}

DEBUG:comtypes.client:CoCreateInstance({82C5AB54-C92C-4D52-AAC5-27E25E22604C}, 
clsctx=None, interface=None)
INFO:comtypes.client:wrap(POINTER(IUnknown) object c108a0)
INFO:comtypes.client:Does implement IProvideClassInfo
INFO:comtypes.client:Implements default interface from typeinfo class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0.ISimpleDevice'
INFO:comtypes.client:Final result is POINTER(ISimpleDevice) object 
c2c080
 x.Connect()
0
 test = GetEvents(x.sensor, EventHandler)
INFO:comtypes.client:wrap_outparam(POINTER(ISensor) object c108a0)
DEBUG:comtypes.client:POINTER(ISensor) object c108a0 using 
sinkinterface class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
DEBUG:comtypes.client:Start advise class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
0x00C12590.QueryInterface({E6929A4A-6F41-46C6-9252-A8CC53472CB1}) - S_OK
DEBUG:comtypes._comobject:1 active COM objects: Added   
comtypes.client.DispEventReceiver object at 0x00C12590
DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
0x00C12590.AddRef() - 1
DEBUG:comtypes.client:End advise class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
DEBUG:comtypes._comobject:comtypes.client.DispEventReceiver object at 
0x00C12590.Release() - 0
DEBUG:comtypes._comobject:0 active COM objects: Removed 
comtypes.client.DispEventReceiver object at 0x00C12590




And this is the output I get when I use version 0.5.1:


Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit 
(Intel)] on win32
Type help, copyright, credits or license for more information.
 import logging
 logging.basicConfig(level=logging.DEBUG)
 from comtypes.client import *
DEBUG:comtypes:CoInitializeEx(None, 2)
 x = CreateObject(TDxInput.Device)
DEBUG:comtypes.client:TDxInput.Device - 
{82C5AB54-C92C-4D52-AAC5-27E25E22604C}

DEBUG:comtypes.client:CoCreateInstance({82C5AB54-C92C-4D52-AAC5-27E25E22604C}, 
clsctx=None, interface=None)
DEBUG:comtypes.client:GetBestInterface(POINTER(IUnknown) ptr=0x9f3fc0 
at c0e3f0)
DEBUG:comtypes.client:Does implement IProvideClassInfo
DEBUG:comtypes.client:Default interface is 
{CB3BF65E-0816-482A-BB11-64AF1E837812}
DEBUG:comtypes:Release POINTER(IUnknown) ptr=0x9f3fc0 at c14080

DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={7858B9E0-5793-4BE4-9B53-661D922790D2},
 Version=1.0, LCID=0, FLags=0x8))
DEBUG:comtypes.client:Implements default interface from typeinfo class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0.ISimpleDevice'
DEBUG:comtypes.client:Final result is POINTER(ISimpleDevice) 
ptr=0x9f3fc0 at c14d00
DEBUG:comtypes:Release POINTER(IProvideClassInfo) ptr=0x9f68a8 at 
c0ed00
DEBUG:comtypes:Release POINTER(ITypeInfo) ptr=0x24c5f4 at c0eda0
DEBUG:comtypes:Release POINTER(ITypeInfo) ptr=0x24c620 at c0ee90
DEBUG:comtypes:Release POINTER(ITypeLib) ptr=0x24bd88 at c0ef80
DEBUG:comtypes:Release POINTER(IUnknown) ptr=0x9f3fc0 at c0e3f0
 x.Connect()
0
 test = ShowEvents(x.sensor)
DEBUG:comtypes.client:wrap_outparam(POINTER(ISensor) ptr=0x9f2170 at 
c14d50)
DEBUG:comtypes.client._events:POINTER(ISensor) ptr=0x9f2170 at c14d50 
using sinkinterface class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'
DEBUG:comtypes:Release POINTER(IProvideClassInfo2) ptr=0x9f2194 at 
a91530
# event found: _ISensorEvents_SensorInput
DEBUG:comtypes.client._events:Start advise class 
'comtypes.gen._7858B9E0_5793_4BE4_9B53_661D922790D2_0_1_0._ISensorEvents'