Subject:
|
Re: RCX program editor review (second version)
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Thu, 14 Jan 1999 21:28:06 GMT
|
Original-From:
|
B van Dam <bvandam@westbrabant.netSAYNOTOSPAM>
|
Viewed:
|
935 times
|
| |
![Post a public reply to this message](/news/icon-reply.gif) | |
Maybe you should take a look at Visual Basic.
CU Bert
Visit my site on Lego, Robot's and Visual Basic at
http://home.concepts.nl/~bvandam/index.html
-----Oorspronkelijk bericht-----
Van: Denis Cousineau <decousin@indiana.edu>
Aan: lego-robotics <lego-robotics@crynwr.com>
Datum: donderdag 14 januari 1999 21:04
Onderwerp: RCX program editor review (second version)
> Hi guys,
>
> I continue my survey on the RCX program editors. In response to
> the first version of this message, I received a lot of response,
> thanks to you. It also helped me deepen my understanding of the
> various factors that makes a program editor a good one, and
> clarify the software requierements that comes with the RCX.
> You'll find this update profoundly modified, and greatly extended.
>
> Again, I would like you to review it, and send any comment/
> corrections that are required. If this overview is adequate, I
> will try to find a site to put it.
> PLEASE SEND BY E-MAIL your comments or corrections that are needed
> to COUSINED@INDIANA.EDU
> Thank for your collaboration.
>
>
> //////////////////////////////////////////////////////////////////////
> PART 1: OVERVIEW
> //////////////////////////////////////////////////////////////////////
>
> What the RCX graphic interface program editor should bring:
> 1- An editor
> 2- A syntax checker/compiler
> 3- A download utility
>
> Obviously, we want a graphic interface to be friendly-user, and
> integrating all the required tools in one place. The 3 requirements
> listed are to my opinion essentials, and cannot be omitted from
> the program editor, otherwise, it is not convenient/usefull.
>
> What the language should bring:
> 1- A complete language
> 2- A symbolic language
> 3- Interactions with on-computer programs
>
> A good language for programming must be complete, i.e. offerings all
> the commands that makes the RCX capable of completing any computation.
> Of prime importance therefore are the operations Addition,
> Multiplication...
> which are not present on the LEGO RIS software that you bought with
> the kit. (Technically, a complete language is said to be Turing-machine
> equivalent, a label that assures you that you will always find a way
> to compute whatever you are trying to compute).
>
> Also, a good language should be symbolic, e.g. we should be able to
> give arbitrary names to variables, tasks, and other components that
> can be adressed in a computer. Otherwise, we have to use addresses.
> Using only addresses can make good programs, but forget about
> readability!
> and the debug time is multiplied a large number of times.
>
> Finally, the RCX is a computer of its own. As most companies now knows,
> using a network is much more powerfull than using only stand-alone
> computers. That way, data can be shared, or located on computers having
> a larger capacity, tasks can be modularized (print servers are good
> example of this), etc. In order to realize this, the RCX and the
> computer
> must agree on a way to interact on each other. In the present case,
> clearly,
> the computer can alter the RCX (just ask to close the RCX), but the
> other
> way around is a totally different question: Your RCX cannot ask your
> computer to shut-down (at least not with the LEGO program editor).
>
> These six points will be used to evaluate the different capabilities
> of the program editors available on the net. I mostly concentrate
> on Graphic-interfaced program editors, but the third section covers
> some of the non-graphical alternatives.
>
>
> //////////////////////////////////////////////////////////////////////
> PART 2: SOFTWARE REVIEW
> //////////////////////////////////////////////////////////////////////
>
> Table 1 presents a review of the 6 currently known to me Graphic
> interface program editors. They are abbreviated, but you can look at
> the last part, using the number, for a complete name of the software,
> with authors, and web site.
>
> Table 1: completedeness of the package
> =======================================================================
> Graphic Interface Langage
> ----------------------- -----------------------
> editor syntax download complet symbol computer
> ------ ------- ------- ------- ------- -------
> A.1 lego RIS x x x NO NO NO
> A.2 RCXCC x x x x x NO
> A.3 BotCode x x x x x NO
> A.4 BCommand x x x x x -
> A.5 Mcontrol NO x x x x NO
> A.6 GordonBP x x x x x NO
> =======================================================================
> - currently being programmed; check for next beta version.
>
> You may notice first that the LEGO interface fails in all respect
> to provide an adequate language. It is clearly not a recommanded
> interface for serious (or moderate) RCX applications.
>
> Second, the MindControl does not offers an editor. In order to
> create programs, you have to call notepad (or any other text processor),
> (dont forget to) save, and then ask for a download.
>
> Most of the software do not implement in any way RCX-computer
> interaction
> with the noticable exception of Brick Command.
> With Brick Command, the RCX will be able to ask the computer to perform
> complex operations (provided you have made a .EXE program with the
> computer-programming language of your choice that can perform that
> operation), and receive a response, or even a new program.
>
>
> Table 2 looks at other aspects of the graphic interface. These aspect
> are not as crucial, but may help you make a choice.
>
> In this table, I also mention what library the editor relies on for
> its normal functioning. The name "library" refers to a set of
> procedures that are needed to established the communication with the
> RCX, and to download programs (among other things). The library is
> intended only for your computer, not the RCX (but the RCX must be able
> to understand request send through the IR tower-this is the role of
> the RCX firmware; see Part 3).
>
> Table 2: other quality of the integrated environements
> =======================================================================
> Help Library other comments (+good, -bad, --very bad)
> ------- ------- ------- -------------------------------
> A.1 lego RIS x SPIRIT 1 --interface slow and too large
> +visual editor
> A.2 RCXCC no NQC 1 -relies on SPIRIT for some operations.
> A.3 BotCode x SPIRIT 1
> A.4 BCommand no SPIRIT 1,2
> A.5 Mcontrol no SPIRIT 1
> A.6 GordonBP x SPIRIT 1 +visual editor
> =======================================================================
> 1: also provides an immediat test of the commands: motor outputs and
> sensor readings
> 2: also provides memmap/poll/datalog readings that get back to the
> computer
>
> Most editors relies on the SPIRIT.ocx library provided by LEGO corp.
> This does not mean that the language that you see on your editor IS
> the same as the name of the procedures available in the SPIRIT.OCX.
> BotCode for example provide a language that is only roughly inspired
> by the SDK documentations of the library SPIRIT.OCX
>
> LEGO RIS and GordonBP both have a visual editor in which the notion of
> syntax is no longer a concern.
>
> Finally, RCXCC is the exception: it does not use SPIRIT.OCX at all
> (well, it seems that it uses it for some download operation?). It uses
> a language defined by Dave Baum, which is a kind of cross-over between
> c and SPIRIT.OCX.
>
> Since most of the programs are relying on SPIRIT.ocx, the absence of
> help is
> a sad thing, but the SDK document is available at:
> http://www.LEGOMindStorms.com
> For RCXCC, the NQC language implemented in the editor is fully described
> at:
> http://www.enteract.com/~dbaum/lego/nqc/nqcc.html
>
>
> //////////////////////////////////////////////////////////////////////
> PART 3: TECHNICAL ISSUES
> //////////////////////////////////////////////////////////////////////
>
> In order to be able to use and program the RCX, two software are
> required:
> a) an operating system (OS): this is the equivalent of DOS on old-time
> computer. Without DOS, the computer could not use its input/output
> (such as the keyboard of the terminal). The same is true for the
> RCX: without an OS, it does not know how to communicate with a computer,
> how to run a downloaded program. The OS is for the RCX only.
> The OS is also called firmware by the lego corp. (Also, it can be ROM
> -the cybermaster brick- or downloadable -the RCX brick-)
>
> [Technically, the OS of the RCX is double: on part is ROM and is
> concerned with receiving and starting an OS, the second part is the
> received OS; without OS, the RCX still can use its IR-receiver, but
> only to receive one program, which will automatically be its OS).]
>
> b) a set of communication procedures (called improperly "library" in
> this text) are also required. They are used by the computer to
> send information to the RCX or retrieve data from it. The library
> is for the computer only. The library can be composed of a kit of
> executable files (.EXE), or stored in dll or activeX (.OCX) files.
> Formally, the library must be able to send/store/retrieve
> information/prg
> to and back from the brick.
>
> Although the OS and the library are meant for two different computers
> (the RCX and your PC computer), they must be compatible so that they can
> communicate. For instance, the SPIRIT library requires that the
> OS/firmware firm0309.lgo provided by lego corp. be loaded on the RCX.
> The converse is not true however: Other libraries can be compatible with
> the OS/firware firm0309.lgo, as seen in Table 3.
>
> Table 3: compatibility between the OS and the libraries
> =======================================================================
> Libraries (on the remote computer)
> Operating System -----------------------------------------------
> (on the brick) (size) spirit NQC** compiler* other comment
> --------------- ------- ------- ------- ------------ ---------------
> firm0309.lgo (16 kb) x x
>
> legOS** (5 kb?) x -good knowledge
> of UNIX required
> =======================================================================
> *: The only compiler that can be configure to H8 opcode to my
> knowledge is the GNU compilers (c and fortran). That's fine
> since it is freeware, and of a very good quality (yet text based).
> **: NQC and LegOS are not Win32-based software; they can or are
> also available for Mac (NQC), and a variety of UNIX computer (NQC and
> LegOS).
>
> As seen, the only alternative library (the NQC) is also meant to
> communicate with a RCX under the lego OS (firmware firm0309.lgo).
>
> LegOS is in a totally different cluster, it uses text-based compiler,
> a program-downloader (also text-based). However, the new OS allows
> programming with pointer (true c language), memory managment, etc.
>
> As you can notice by the size of the firm0309.lgo, it is a rather
> huge OS compared to the total memory size available on the RCX.
> [Technically, on the display, when uploading the OS, each increment up
> to 1740 or so is 10 byte long. The firmware binary image is exactly
> 16K counting the zero padding at the end. If you use firmdl.c,
> you don't send the zero bytes at the end, and you end up downloading
> around 15.5K, saving 0.5 kbytes. -Kekoa]. If memory is a concern,
> you definitely need an alternative OS.
>
>
> //////////////////////////////////////////////////////////////////////
> PART 4: REFERENCES
> //////////////////////////////////////////////////////////////////////
>
> A- Graphic Interface Program Editors
>
> A.1-RIS LEGO program editor
> version 1.0
> Written by Lego corporation
> http://www.legomindstorms.com
>
> A.2-RCX Command Center
> version 1.0
> Written by Mark Overmars
> using NQC from Dave Baum
> markov@cs.uu.nl
> http://www.cs.ruu.nl/people/markov/lego/rcxcc/index.html
>
> A.3-BotCode
> Version 1.1
> Written by ?
> marty@desktopmusic.com
> http://www.desktopmusic.com/botcode.htm
>
> A.4-BrickCommand
> Version 1.0
> Written by Brian Cwikla
> iguano_design@yahoo.com.
> http://www.geocities.com/Area51/Nebula/8488/lego.html
>
> A.5-Mind Control
> version 1.0.2
> written by Eric Brok
> http://homepages.svc.fcj.hvu.nl/brok/legomind/robo/
> brok@fcjsvc.hvu.nl
>
> A.6-GORDON'S BRICK PROGRAMMER
> Version 1.3
> written by Malcolm S Powell (not Gordon)
> http://www.umbra.demon.co.uk/gbp.html
> msp@umbra.co.uk
>
> B- Non-integrated, non-graphic Program Editor or Library
>
> B.1-SPIRIT.OCX (comes as a ActiveX library)
> version 1.0
> written by lego corp.
> http://www.legomindstorms.com
>
> B.2-NQC and RCX Utilities (comes as a set of EXE files run in a DOS
> window)
> version 1.0 b4
> written by Dave Baum (with contributors for RCX utilities)
> http://www.enteract.com/~dbaum/lego/nqc/
> dbaum@enteract.com
>
> C- Replacement OS (firware)
>
> C.1-LegOS
> Version 0.1.4
> written by Markus L. Noga
> noga@inrialpes.fr
> http://www.multimania.com/legos/
>
>
> --
>
> Denis Cousineau, ****************************
> Cognitive psychology * *
> Indiana University * Niaisez pas avec le pok! *
> Psychology Building * (latin maxime) *
> Bloomington, 47405 ****************************
>
> Office: (812) 856-5217 Fax: (812) 855-1086
> E-mail: decousin@indiana.edu
> http://Prelude.PSY.UMontreal.CA/~cousined
> --
> Did you check the web site first?: http://www.crynwr.com/lego-robotics
--
Did you check the web site first?: http://www.crynwr.com/lego-robotics
|
|
1 Message in This Thread: ![You are here](/news/here.gif)
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|