Skip to content
Snippets Groups Projects
  1. Jan 25, 2011
  2. Jan 22, 2010
  3. Apr 19, 2009
    • Ruud Overeem's avatar
      Bug 1000: · c332c8eb
      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.
       
      c332c8eb
  4. Apr 16, 2009
  5. Mar 12, 2009
  6. Jan 30, 2009
  7. Dec 23, 2008
  8. Dec 17, 2008
  9. Jul 22, 2008
  10. Jul 18, 2008
  11. Mar 27, 2008
  12. Mar 21, 2008
  13. Mar 04, 2008
  14. Mar 03, 2008
  15. Jan 10, 2008
  16. Sep 07, 2007
    • Ruud Overeem's avatar
      BugID: 1000 · 7b4094f6
      Ruud Overeem authored
      Changed the MACcontrollers so that they now work with the new RTDB layer
      in stead of the PAL layer. Fully tested.
      7b4094f6
  17. Jun 13, 2007
    • Ruud Overeem's avatar
      BugID: 1000 · 3bf7dfcc
      Ruud Overeem authored
      Scheduler start 1 observation per poll cycle to avoid sync problems in PA.
      3bf7dfcc
  18. May 17, 2007
    • Ruud Overeem's avatar
      BugID: 1000 · cba7b38a
      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.
      cba7b38a
  19. Apr 26, 2007
  20. Feb 16, 2007
    • Ruud Overeem's avatar
      BugID: 1000 · 3ba7ea70
      Ruud Overeem authored
      Made MACScheduler aware of state of ObservationControllers. The major state-
      changes are even passed to the SAS database.
      3ba7ea70
    • Ruud Overeem's avatar
      BugID: 1000 · 336d2666
      Ruud Overeem authored
      Updating OTB database (as a test).
      336d2666
  21. Dec 26, 2006
    • Ruud Overeem's avatar
      BugID: 679 · 3e151cd3
      Ruud Overeem authored
      Modification for better support of the PVSS database.
      3e151cd3
  22. Nov 29, 2006
  23. Nov 23, 2006
    • Ruud Overeem's avatar
      BugID: 796 · d3e01353
      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.
      d3e01353
  24. Nov 10, 2006
    • Ruud Overeem's avatar
      BugID: 679 · f7761848
      Ruud Overeem authored
      Weekly update after a week of testing the controller chain.
      f7761848
  25. Oct 20, 2006
  26. Oct 16, 2006
    • Ruud Overeem's avatar
      BugID: 796 · 8518a377
      Ruud Overeem authored
      Installed signalhandler for PVSS update during quit.
      8518a377
  27. Sep 28, 2006
    • blaakmeer's avatar
      BugID: 803 · 2db6fdb9
      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.
      2db6fdb9
  28. Aug 03, 2006
  29. Aug 01, 2006
    • Ruud Overeem's avatar
      BugID: 796 · 98ad8124
      Ruud Overeem authored
      Made programs compatible with CodeLoggingProcessor.
      98ad8124
    • Ruud Overeem's avatar
      BugID: 796 · a2b1417f
      Ruud Overeem authored
      Added code to update the PVSS Dynamic String Array 'activeObservations'.
      a2b1417f
  30. Jul 28, 2006
    • Ruud Overeem's avatar
      BugID: 797 · cbd94da0
      Ruud Overeem authored
      Added support for starting the childcontrollers.
      cbd94da0
  31. Jul 26, 2006
  32. Jul 20, 2006
  33. Jun 15, 2006
    • Ruud Overeem's avatar
      BugID: 679 · 7a07d4ec
      Ruud Overeem authored
      Moved several sources to their definite place.
      7a07d4ec
  34. Jun 12, 2006
    • Ruud Overeem's avatar
      BugID: 679 · 0c88b4e0
      Ruud Overeem authored
      First (partially) working chain with MACScheduler and ObservationControl.
      Startup sequence is OK.
      0c88b4e0
  35. Jun 01, 2006
    • Ruud Overeem's avatar
      BugID: 679 · 71901328
      Ruud Overeem authored
      Renamed state UNKNOWN to state NOSTATE. Changed names of PVSS variables
      to their final(?) names.
      71901328
  36. May 29, 2006
    • Ruud Overeem's avatar
      BugID: 679 · eff7a615
      Ruud Overeem authored
      Merge MAC-CS1-branch with HEAD. See MAC/Journal for changes.
      eff7a615
  37. Apr 28, 2006
Loading