Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.

ID: 17740, MOON Lab Presentation/Control Server

by Sergey Kryukov Email: Anonymous

The MOON Lab Presentation/Control Server introduces novel concept –-"Asynchronous Process Control" -- possibility to control application's behavior via the Server's GUI using "registration of variables".
Download Details
FTP  download also available
CDN Login Required to Download. (You will be redirected to the login page if you click on the Download Link)
To download this, you must have registered:
A free membership

For Delphi, Version 2.0  to 6.0 500 downloads
Copyright: Commercial use requires permission

Size: 1,115,894 bytes
Updated on Wed, 08 Oct 2003 10:13:15 GMT
Originally uploaded on Thu, 28 Mar 2002 18:12:03 GMT
SHA1 Hash: 4D0E2E12915C9054089B52D5CB2278CBF7307F79
MD5 Hash: AC8EC460F87277A87B70169CB8F56211

    Explore the files in this upload

MOON Lab System: Presentation / Control Server
Copyright (c) 1995-2002 by Sergey A. Kryukov
To contact me please use
(not e-mail)

MOON Lab (stands for "Multitasking Object-Oriented Network Lab System") is a program research-oriented system for developing and running application. It was developed by the author (S. A. Kryukov) for WIN32 in 1995 at the Moscow Institute for Nuclear Research, Moscow, Russia [1-4].

Presently it serves as technological base for the beam diagnostics subsystem for the Moscow Meson Factory Linear Particle Accelerator. [5] Preliminary version of the technology (MOON Lab technology) was used for experimental linear accelerator project as a part of Japanese Hadron Project at KEK National Laboratory, Tsukuba, Japan [6]

The MOON Lab System was initially developed with Delphi 1.0 (the multitasking under WIN16 was a special issue!), then ported to WIN32 with Delphi 2.0. The API was adapted to Delphi 4.0 to 6.0 and ported to C, C++, and partially to Ada 95.

MOON Lab consists of three main independent parts:

MOON Lab Presentation / Control Server
Network Messaging Subsystem
Multi-dimensional Database Subsystem
Hardware Subsystem
The Presentation/Control Server introduces novel concept of the Asynchronous Process Control (ASP).

Asynchronous Process Control
The idea behind APC is to provide a run-time library for presentation of the user-defined task run in a separate thread. This task can be considered as a "scenario" of the application. This task behavior can be controlled via the GUI provided by the Presentation/Control Server library (ML.DLL).

Generally speaking, the user's code is not required to do any GUI call. Instead, MOON Lab introduces a special technique of registering of the client task's parameters. A parameter is just a variable, global or even local (if its lifetime lies within the lifetime its registration). Three fixed types of the variable are supported by the Server.

The client code must specify the attributes of the registration which are registered within the Server's metadata, such as name, valid range and modification callback. The callback is called by the Server when the user modifies the value of the variable via Server's GUI and the new value differs from the old one.

All the APIs and callbacks and can be called from any thread of the application. The client code may introduce and number of additional threads.

Special case of APC is the ability to suspend/resume client task and its thread via the Start/Pause/Continue button. Another special case is asynchronous termination of the client thread. This is implemented with the Presentation/Control Server. (For more general case, such termination is an interesting theoretical problem which has interesting approaches not to be discussed here.)

The APS provides an interesting approach to the problem of making decision during run-time.

Consider the demo application BIO.EXE (see bin/BIO.EXE and It models the non-linear behavior in ecology (Volterra model). Nobody can really anticipate and test all the modes of the system behavior and program all the possible interesting variation of the life parameters of the species. With MOON Lab and APC, however, one can decide just to "kill" several foxes and see what happens to the ecology!

[1] S. A. Kryukov, 'New Programming Technologies for Beam Diagnostics', Proc. International Conf. EPAC'96, CERN, Vol. 3, p. 1781-1783 (1996)

[2] S. A. Kryukov, 'Real-time Problem and Object-Oriented Multitasking', Proc. PCaPAC'96 Wokshop, DESY, Hamburg (1997)

[3] S. A. Kryukov, 'Shall we Replace LabVIEW(R) with Object-Oriented Instrument?', Proc. PCaPAC'96 Workshop, DESY, Hamburg (1997)

[4] S. A. Kryukov, 'On-Line and Off-Line Multi-Dimensional Data Presentation', Proc. International Conf. CHEP'97, DESY, Berlin, p. 109-112 (1997)

[5] S. A. Kryukov, 'Diagnostic network for the Moscow Meson Factory linear accelerator', Technical report, version 2.0, INR RAS, Moscow 1998
[6] A. V. Feschenko, V. A. Gaidach, S. A. Krioukov, A. A. Menshov, P. N. Ostroumov, A. Ueno, 'Bunch Length and Velocity Measurement of the JHP-RFQ Beam with INR BLVD'

For more information, see

   Latest Comments  View All Add New

Move mouse over comment to see the full text

Could not retrieve comments. Please try again later.

Server Response from: ETNACDC03