[GBBopen-developer] Handling external events in GBBopen?

Christian Lynbech christian at defun.dk
Sun Dec 14 09:16:27 EST 2008


What is the best way to handle external events in a blackboard application?

As an example, consider this years ICFPs contest (http://icfpcontest.org/)
in which the problem was to control a rover with the aid of a stream of
telemetry and sensor input being delivered over a socket. As new data
arrives, one would like to integrate this into the information already
present on the blackboad, possibly triggering new KS's to fire.

I can think of three basic flavours:

 1) Use an external process to asynchronously update the blackboard.

 2) Integrate the reading of the stream and subsequent BB update into the
    control shell loop.

 3) Have a designated KS that reads from the stream and update the BB.

In 1), one obviously need to synchronize somehow to avoid the external
process changing the blackboard state in the middle of a KSA doing the
same. 2) looks somewhat attractive but requires changes to a component
that one perhaps only rarely need to touch? 3) would require some semi
carefull adjustments of the priority levels to prevent the KS from
starving the control KS's but I am a bit unsure what would happen if the
telemetry stream fell silent for an extended period, how would one prevent
the entire BB application from terminating?


------------------------+-----------------------------------------------------
Christian Lynbech       | christian #\@ defun #\. dk
------------------------+-----------------------------------------------------
Hit the philistines three times over the head with the Elisp reference manual.
                                        - petonic at hal.com (Michael A. Petonic)

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the GBBopen-developer mailing list