- Jan 25, 2011
-
-
Ruud Overeem authored
Bug 1000: Introduced a TestTask that makes it easier to test the behaviour of a GCFTask. See headerfile for usage. Moved Protocol numbers to MACIO/Protocodefs.h Made a ControllerProtMenu that allows you to send CONTROL events to a simple TCPport. Works without the ChildController task.
-
- Jan 22, 2010
-
-
Marcel Loose authored
Bug 1448: Fixed remaining MAC sources, so that they also compile with the new package-version structure
-
- Apr 19, 2009
-
-
Ruud Overeem authored
Some major changes are made in GCF/TM: 1) GCFScheduler replaces all global GCFTask functions and variables. 2) An event-queue is introduced 3) Return value NEXT_STATE is added 4) The function autoOpen is added to TCP ports 5) 'fast' mode available for low level drivers. Ad. 1 The GCFTask class had a lot of global functions and variables that were not bound to one task but were multi-task items. All these things are moved to a new class GCFScheduler. This class is a singleton class. Consequence of this is that 'init', 'run' and 'stop' are not longer connected to the GCFTask class but are now part of the Scheduler. old code: GCFTask::init(argc, argv, argv[0]); myTask a("a"); myTasl b("b"); a.start(); b.start(); GCFTask::run(); new code: GCFScheduler::instance()->init(argc, argv, argv[0]); myTask a("a"); myTasl b("b"); a.start(); b.start(); GCFScheduler::instance()->run(); In the same the stop function should be called with GCFScheduler::instance()->stop(); Ad. 2 The events are now stored in a queue before they are passed to the tasks. This has two benefits: - The code does not have to be re-entrant anymore because TRAN drops the F_EXIT and F_ENTRY in the queue in stead of executing them during the TRAN-line. - The values for GCFEvent::TResult you return DO MATTER NOW. See Ad 3. The disadvantage of the queue is that the scheduler has to make a copy of the event before placing it in the queue. To avoid needless copies all events that are NO framework events (F_FSM_PROTOCOL and F_PORT_PROTOCOL) are passed immediately to the task. When the task returns HANDLED we save ourselves the effort of a copy. When anything else is returned the event is treated accordingly. See Ad 3. Ad. 3 Since there is a queue now, the value returned by the task matters: HANDLED: event is removed from the queue. NEXT_STATE: event is parked on the queue until the task changes state with TRAN(...). After the F_ENTRY event all events that were parked with NEXT_STATE are passed to the task again. NOT_HANDLED: this value will become OBSOLETE since it doesn't tell the scheduler what to do. FOR NOW the event will be destroyed. Remark: In the future the return values may be extended with values like HOLD_x_SEC or HOLD_x_EVENTS. Ad. 4 To simplify opening or reopening a port the function autoOpen is added to TCPPorts. syntax: autoOpen(nrRetries, maxTimeout, reconnectInterval) This function does several retries to setup the connection. The user can choose the use the nrRetries and reconnectInterval arguments or use the maxTimeout (and reconnectinterval) arguments: nrRetries : -1 = infinite ; How often to retry the open when it fails. reconnectInterval: After how many seconds after a fail a reconnect attempt will be made. timeout : -1 = infinite ; How long the auto-open attempts may last. When both nrRetries and timeout are specified the condition that will be met first will stop the auto open sequence. When the connection is made an F_CONNECTED events is send like open() does. When the connection can not be made within the given limitations a F_DISCONNECTED is returned. Note: autoOpen(0,0) acts the same as open() Ad. 5 Lowlevel drivers like the RSPDriver which heavily lean on FSMs (several 100's) may not be happy with the eventqueue because statetransitions are handled via the queue. These drivers can call 'disableQueue()' after calling GCFScheduler::instance()->init(..). The queue mechanisme is than completely bypassed and everything works like the old-situation again. Internal notes: The boolean that the open() function returned was not really straitforward defined and therefor not used anywhere (as far as I know). The value that is returned now is true when a CONNECT or DISCONNECT message in placed in the queue and false when the ServiceBrokerTask needs so more time to give a result.
-
- Apr 16, 2009
-
-
Ruud Overeem authored
-
- Mar 12, 2009
-
-
Ruud Overeem authored
-
- Jan 30, 2009
-
-
Ruud Overeem authored
The ringname only depends on the first two letters of the name.
-
- Dec 23, 2008
-
-
Marcel Loose authored
(r12322:12365) with the trunk.
-
- Dec 17, 2008
-
-
Ruud Overeem authored
-
- Jul 22, 2008
-
-
Ruud Overeem authored
-
- Jul 18, 2008
-
-
Ruud Overeem authored
-
Ruud Overeem authored
planned-, active- and finished-obervations. Not fully tested yet.
-
- Mar 27, 2008
-
-
Ruud Overeem authored
-
- Mar 21, 2008
-
-
Ruud Overeem authored
-
- Mar 04, 2008
-
-
Ruud Overeem authored
GCFCommon has only 'myHostname' function left. Will be moved to LCS/Common.
-
- Mar 03, 2008
-
-
Ruud Overeem authored
-
- Jan 10, 2008
-
-
Ruud Overeem authored
Hostname must now be specified.
-
- Sep 07, 2007
-
-
Ruud Overeem authored
Changed the MACcontrollers so that they now work with the new RTDB layer in stead of the PAL layer. Fully tested.
-
- Jun 13, 2007
-
-
Ruud Overeem authored
Scheduler start 1 observation per poll cycle to avoid sync problems in PA.
-
- May 17, 2007
-
-
Ruud Overeem authored
Starting the same observation over and over is not a problem any more. Set SAS to 'aborted' when observation was stopt with an error.
-
- Apr 26, 2007
-
-
Ruud Overeem authored
Update to use the renewed datapoints.
-
- Feb 16, 2007
-
-
Ruud Overeem authored
Made MACScheduler aware of state of ObservationControllers. The major state- changes are even passed to the SAS database.
-
Ruud Overeem authored
Updating OTB database (as a test).
-
- Dec 26, 2006
-
-
Ruud Overeem authored
Modification for better support of the PVSS database.
-
- Nov 29, 2006
-
-
Ruud Overeem authored
PVSS related enhancements.
-
- Nov 23, 2006
-
-
Ruud Overeem authored
State is also set to 'stopped' when program is killed. customPrep script does not create any datapoints anymore. The DPs are now part of the install procedure of a PVSS-LOFAR database.
-
- Nov 10, 2006
-
-
Ruud Overeem authored
Weekly update after a week of testing the controller chain.
-
- Oct 20, 2006
-
-
Ruud Overeem authored
Some minor changes.
-
- Oct 16, 2006
-
-
Ruud Overeem authored
Installed signalhandler for PVSS update during quit.
-
- Sep 28, 2006
-
-
blaakmeer authored
State of the MACScheduler is written to PVSS during destruction. A signal handler is installed (late enough to override the GCF signal handlers!) that triggers the transition to the finishing state. In that state, the property is written and a timer is installed because PVSS database writes are asynchronous. When the timer goes off (1 second) the MACScheduler is closed.
-
- Aug 03, 2006
-
-
Ruud Overeem authored
Bugfix
-
- Aug 01, 2006
-
-
Ruud Overeem authored
Made programs compatible with CodeLoggingProcessor.
-
Ruud Overeem authored
Added code to update the PVSS Dynamic String Array 'activeObservations'.
-
- Jul 28, 2006
-
-
Ruud Overeem authored
Added support for starting the childcontrollers.
-
- Jul 26, 2006
-
-
Ruud Overeem authored
-
- Jul 20, 2006
-
-
Ruud Overeem authored
Bugfixing after testing.
-
- Jun 15, 2006
-
-
Ruud Overeem authored
Moved several sources to their definite place.
-
- Jun 12, 2006
-
-
Ruud Overeem authored
First (partially) working chain with MACScheduler and ObservationControl. Startup sequence is OK.
-
- Jun 01, 2006
-
-
Ruud Overeem authored
Renamed state UNKNOWN to state NOSTATE. Changed names of PVSS variables to their final(?) names.
-
- May 29, 2006
-
-
Ruud Overeem authored
Merge MAC-CS1-branch with HEAD. See MAC/Journal for changes.
-
- Apr 28, 2006
-
-
Ruud Overeem authored
Redesign of Main Control Unit software.
-