CueSuite Source Code Exposition

Overview

Design and Implementation by John C. Wang
Advisor Dr. Jane Hsu
Intelligent Robotics Lab
National Taiwan University

Copyright © 1998. All Rights Reserved.

CueSuite is the software package that implements the Master's Thesis work of John C. Wang (1998), Cue Graphs: A Generic Mechanism for Personalizing Software, Intelligent Mobile Robot Group, National Taiwan University. This software package offers a wide range of capabilities for building software that readily adapts to the user's behavior by watching for various "cues."

For live actions, go on to demonstrations.

CueSuite includes the following components:

And accessories (samples)

Download Before You Proceed

Download (Pkzip'd)

Or in separate pieces (unzip to directories of the same name)

Visual C++ Project Settings

CueSuite is mostly built with Microsoft Visual C++ 5.0. The project setting is configured so that all intermediate files and executables from various CueSuite subprojects are placed in the same directory. Depending on whether the project is set for debug or release mode, all files are generated in the one respective directory for each mode.


Files in Project CueSphere

ClassModificationsNotes
Project CueSphere (Visual C++ 5.0 / MFC EXE)
CCueSphereAppNoneBody, entry point
CMainFrameNoneMDI Frame
CChildFrameNoneMDI Child Frame
CCuesDocFile name, base CRichEditDocInheriting from CueListener to receive CueVM messages
CCuesViewFile name, base CRichEditViewPassive display of CueVM messages (Verdana font)
CCuesItemFile name, base CRichEditCntrItemRich edit insertion (placeholder)
CSurgicalDocAdapted from CCueDocContainer of an instance of CueVM
CSurgicalViewAdapted from CCueViewInterpreting upon each [Enter] pressed
CSurgicalItemAdapted from CCueItemRich edit insertion (placeholder)
..\CueVM\CueVM.hNoneHeader for inclusion in CuesDoc.h
..\CueVM\Win32Mem.hNoneHeader

MFC AppWizard Adaptation Guide

  1. Create initial MDI application with OLE container capability, views changed to derive from CRichEditView, document from CRichEditDoc, and container item from CRichEditCntrItem. Save the initial doc/view/item files under the names of "CCuesXXX";
  2. Duplicate the "CCuesXXX" files as "CSurgicalXXX". Add the files to the project and change #define strings in headers to new values. Add the files to the project;
  3. In main file CueSphere.cpp, add after line 92 instructions to add an additional document/view type. Create spec string, menu and icon for the added type;
  4. Modify "CSurgicalXXX" to handle inputs and CueVM manipulations;
  5. Modify "CCuesXXX" as a CueListener to display outputs.


Files in Project BelStd

FileAdd to Project?Notes
Project BelStd (Visual C++ 5.0 / Win32 DLL)
BelStd.cppYesBody, entry point
..\BelCore\BelCore.hNoHeader
..\BelCore\BelCore.cppYesUtility
..\CueVM\CueVM.hNoHeader
..\CueVM\CueVM.cppYesUtility
..\CueVM\Win32Mem.hNoHeader
Wsock32.libLinkerLinked Library


Files in Project CueMenus

FileAdd to Project?Notes
Project CueMenus (Visual C++ 5.0 / Win32 DLL)
CueMenus.cppYesBody, entry point
..\BelCore\BelCore.hNoHeader
..\BelCore\BelCore.cppYesUtility
..\CueVM\CueVM.hNoHeader
..\CueVM\CueVM.cppYesUtility
..\CueVM\Win32Mem.hNoHeader
..\MSAgent\AgtSvr.hNoHeader
..\MSAgent\AgtSvr_i.cYesUtility
Wsock32.libLinkerLinked Library


Files in Project CueHttpd

FileAdd to Project?Notes
Project CueHttpd (Visual C++ 5.0 / Win32 DLL)
CueHttpd.cppYesBody, entry point
UniServe.hNoUniHttpd (unmodified)
UniServe.cppYesUniHttpd (unmodified)
HttpdExt.hNoUniHttpd (unmodified)
HttpdExt.cppYesUniHttpd (unmodified)
HttpdExt2.cppYesUniHttpd (unmodified)
CgiExt.cppYesUniHttpd (unmodified)
CueHttpd.hNoModifications to UniHttpd
HttpdMods.cppYesModifications to UniHttpd
..\BelCore\BelCore.hNoHeader
..\BelCore\BelCore.cppYesUtility
..\CueVM\CueVM.hNoHeader
..\CueVM\CueVM.cppYesUtility
..\CueVM\Win32Mem.hNoHeader
Wsock32.libLinkerLinked Library
CueHttpd.regNoRegistry entry
Dependent subproject CueWeb (Visual C++ 5.0 / Win32 Console CGI)
CueWeb\CueWeb.cppYesBody, entry point
..\BelCore\BelCore.hNoHeader
..\BelCore\BelCore.cppYesUtility
..\CueVM\CueVM.hNoHeader
..\CueVM\CueVM.cppYesUtility
..\CueVM\Win32Mem.hNoHeader


Files in Project CueWatcher

FileAdd to Project?Notes
Project CueWatcher (Visual C++ 5.0 / Win32 EXE)
CueWatcher.cppYesBody, entry point
CueWatcher.rcYesResource file
CueWatcher.icoYesResource file
resource.hImplicitResource file
CueWatcher.regNoRegistry entry
Depedent subproject WatchDog (Visual C++ 5.0 / Win32 DLL)
WatchDog\WatchDog.cppYesBody
WatchDog\WatchDog.defYesExport definition


Files in Project CueTweaker

FileAdd to Project?Notes
Project CueWatcher (Visual Basic 5.0 / Win32 EXE)
frmMain.frmYesBody, entry point
Routines.basYesBody


The Thesis

The thesis report is available in Chinese only.
Download pkzipped Word 97 file (337 K pkzip'd, requiring Chinese fonts), or contact the author for printed copies. PowerPoint slides in Chinese for the oral defense is also available (106 K pkzip'd, req. Chinese fonts) for download.


Created June 13, 1998, last modified August 29, 1998 by John C. Wang.