To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcxOpen lugnet.robotics.rcx in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / 1235
1234  |  1236
Subject: 
Re: HELP, has anyone ever seen SPIRIT.OCX events ??
Newsgroups: 
lugnet.robotics.rcx
Date: 
Fri, 27 Apr 2001 18:21:13 GMT
Viewed: 
1656 times
  
In lugnet.robotics.rcx, Stef Mientki writes:
Ian Warfield wrote:
In lugnet.robotics.rcx, Stef Mientki writes:
The spirit.ocx definies a number of events (far more than in the ocx
documentation are mentioned), but neither one of them seems to work.
I've logged them all, but a never saw one comming up.
Someone reported the same problem with the cybermaster.
Has anyone ever seen a spirit.ocx event (i.e. ondownloaddone) ??

Stef Mientki

Have you enabled the events?  You need to both define an event and enable it
before it will work.


I mean the active-X events, like "ondownloaddone".
I've never seen an active-X component for which you should enable the events.
So I presume spirit.ocx will fire an "ondownloaddone" event, when it's ready
with the download. But spirit doesn't !!

I just hacked together a quick-n-dirty C++ program to talk to Spirit.ocx.
It unlocks the brick and downloads new firmware into the RCX, all using the
public methods exposed by Spirit.ocx.  I sink events from the .ocx, and I
don't get any COM errors, but I am not seeing any events either!  I am
reasonably confident that my event sinking code is working properly.  This
is the case whether I implement my event sink interface either as a generic
IDispatch or as a _DSpiritEvents interface with all of the LEGO-specific
interface methods.

For this experiment, I used the RIS 1.0 version of Spirit.ocx.  This appears
to be the same version that ships with the RIS 1.5, and as far as I can
tell, the RIS 2.0 will not update the .OCX, either.  So if this is a bug in
Spirit.ocx, don't hold your breath that it'll ever be fixed.

Sorry that it's not good news!

p.s.  The "events" that Ian is referring to that you must enable are the
notifications from the RCX to the PC.  These are passed through to the
application via ActiveX events from the OCX, but you are correct in thinking
that you should see other events (such as OnDownloadDone) even without
enabling any of these.  [See the SetEvent(), ClearEvent() and
ClearAllEvents() methods in the Spirit.ocx SDK documentation for more
details about RCX events.]  I did not try to enable any of these
RCX-generated events to see if they work, but I am definitely not getting
any of the firmware download status events.

Also remember that if you are programming in Visual Basic, you might need to
use the WithEvents and/or DoEvents keywords in order to see any events fired
by the component.  But again, I don't think this would help here, since
Spirit does not seem to be firing its events as advertised.



Message has 1 Reply:
  Re: HELP, has anyone ever seen SPIRIT.OCX events ??
 
Thanks Chris, I was just looking for that confimation. There are more bugs in the spirit.ocx, ever tried to read the sensor mode ? Well you'll probably get the sensor mode multiplied with 32. I've just reported these bugs to Lego. I've also asked (...) (24 years ago, 28-Apr-01, to lugnet.robotics.rcx)

Message is in Reply To:
  Re: HELP, has anyone ever seen SPIRIT.OCX events ??
 
(...) I mean the active-X events, like "ondownloaddone". I've never seen an active-X component for which you should enable the events. So I presume spirit.ocx will fire an "ondownloaddone" event, when it's ready with the download. But spirit (...) (24 years ago, 25-Apr-01, to lugnet.robotics.rcx)

5 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR