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:
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
|
|
|
|