| | Re: NQC's RCX Communication Code
|
|
(...) You'll need a bunch of files from the rcxlib directory (primarily RCX_Link.cpp, which implements the communication protocol). You'll also need the serial interface code which resides in platform/PSerial_unix.cpp (plus a few include files in (...) (24 years ago, 12-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | NQC's RCX Communication Code
|
|
Hi- This message is probably only answerable by Dave, but someone else might know the answer. I'm trying to build a GNOME (a linux GUI) application for controlling the RCX, ala the tools menu of RCXcc. Anyway, I wanted to know what files I would (...) (24 years ago, 12-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
(...) I knew Scout didn't support the opcode, but overlooked the Cybermaster case. I'll fix it for NQC as well. The return value for an unsupported opcode doesn't really matter since nothing is going to come back anyway, so predictive will fail no (...) (24 years ago, 12-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
(...) I made PredictReplyLength a member of the RCXLink class so it can return a different value for case 0x20 (it returns 20 if the Target is Cybermaster and 0 if it is Scout - since the Scout doesn't support that opcode). Of course, in Object (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
(...) Correct - dynamic timing is turned off when predictive is being used (which is the default). Predictive is relatively new, and I wasn't sure which code you started with (or how you ported/used it), so that's why I explained the dynamic timing. (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
hi John, I'm curious to see your "Fakespirit" class. At this moment I only need a limit set of commands, so I send by a couple of simple routines to my serial commport driver (indepent thread). Here is the basic code I use, timing is very a stable (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
(...) I'm using AutoLink.Send for most things. Initially I was always closing the link at the end of each method (which mostly map to the Spirit OCX API). I've made that configurable and at present I'm running with it set to leave the link open. (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
(...) I looked into this a bit more and the poll bytecode (0x12) didn't have a case in the PredictReplyLength() switch. If you add... case 0x12: // poll return 2; then poll will be a lot faster. If you run into other bytecodes that you use a lot, (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | Re: NQC vs Spirit communication speed
|
|
The retry timing for RCX_Link uses a dynamic backoff, which is a good general purpose solution if you're going to be sending lots of packets (like a typical NQC download) and the latency through the serial driver is unknown and/or unpredictable (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|
|
| | NQC vs Spirit communication speed
|
|
This is more a general RCX communication question, actually. As I mentioned here previously, I've ported the NQC communication code to Delphi for the purposes of modifying RcxCC to not use the Spirit OCX. At present I have a version of RcxCC that (...) (24 years ago, 11-May-01, to lugnet.robotics.rcx.nqc)
|