CSE as AND gate University of Washington  Department  of  Computer  Science  &  Engineering
 Whiteboard Session Logging and Post-Production Tools
  CSE Home  About Us    Search    Contact Info 

Return to Tools Index

Overview:

We use a SmartBoard (tm) electronic whiteboard for some of our classes.  The Smartboard connects to a serial port of the lecturer's laptop, and the packaged SmartBoard software permits the marks made on the board to be projected using a data projector connected to the laptop, and displayed in real-time at our video teleconferenced sites using Microsoft NetMeeting.   The packaged Smartboard software does not permit us to save a record of the Whiteboard interaction so that it can be integrated with the streamed media in our web infrastructure, and viewed asynchronously.  SmartTech does however publish an SDK which gives us programmatic access to the events we need to construct our own whiteboard application which can do the data logging we want.

The core of this tool set is the whiteboard application (WBLogger.exe).  It detects the presence of a SmartBoard, and maintains an image of the board surface on the computer display.  As the user writes with the various colored pens, or erases, the application updates the display, and writes all tool, coordinate, and timing information to a local log file.  After the session data has been collected, a Perl script is used to transform the raw data so that it can be easily integrated with our streamed media infrastructure, and viewed with our whiteboard client applet.   To see an example of an archived whiteboard session, visit this "Hello World" page.

Download Tools and Source

Using the Whiteboard Application:

The whiteboard application (WBLogger.exe) is an executable package containing three Java classes: WBFrame.class, WBControls.class and WBStroke.class.  WBLogger.exe has the following dependencies:

    1. It requires the Java classes from the SmartBoard SDK to be available under COM.smarttech.boardsocketsdk.*.  These classes are included in the distribution.
    2. It has dependencies on a few Microsoft Win32-specific classes.  The simple way to make sure these classes are available on your system is to install IE5.  These platform-specific classes only provide enhancements -- they are not essential to the basic operation of the application, and they can be easily removed from the source.
    3. The classes in the SmartBoard SDK require SmartBoard driver version 5.4 or later to permit them to receive board events.

    Before running the application, connect a SmartBoard, and start the SmartBoard driver.  When the application is launched, it should detect the board,  create and open a log file, and track the board image in the application window.   A new log file will be created for each invocation.  It will be created in the same directory with the application, and will have a name beginning with "WBLog," and containing a timestamp.  The log format is plain text, and is human-readable.

    Using the Application without a SmartBoard:

    If the application does not detect a whiteboard when it launches, it will still present its window, and act on mouse events in that window.  With minor modifications to the source, this should in theory permit the application to be used with any whiteboard or tablet device that can send mouse events.  Currently, when used with only a mouse, WBLogger.exe will always draw in black, and it provides no way to erase.  This may still be useful for gathering test data, or for producing a program which is not live.  The source includes buttons to enable the eraser which can be easily activated by uncommenting the appropriate lines.

    Notes about the Source:

    The project was built and tested primarily with Microsoft Visual J++, but it is also easy to use with the Sun JDK.  Before doing so, it will probably be necessary to remove the references to Microsoft classes from the source.  Compile with 'javac' and run WBFrame.class from the command line with "java WBFrame.class".  Be sure that the SmartBoard SDK classes are in your classpath, or specify that path on the command line.

    Post-Production:

    After the "WBLog" data has been collected and the associated Windows Media stream file (WMV file) has been prepared, we use a Perl script, PrepWBData.pl, to convert the data into a form appropriate for the whiteboard client applet .  In addition to reformatting the data, the script also permits synchronization of the whiteboard session with the archived stream file.  Before using the Perl script, install Perl on your system (see:http://www.perl.com).   Use the script like this:

         perl PrepWBData.pl WBLogDataFile [TimeOffset]
    The WBLogDataFile is the file collected by the whiteboard application.  The TimeOffset is optional.  It would be a positive or negative number to be added to each timepoint in the logged data.  This permits the session to be synchronized with the WMV file.  The name of the WBLogDataFile is not significant.  The output of the script is a new directory containing a set of files.  The directory name will be composed from the date the WBLogDataFile was created.  The contents of the directory are "WBIndex.txt" and one numbered file per whiteboard stroke.  The directory created by the script should be copied to a web-accessible place, and may be renamed if desired.  That directory URL should then be supplied to the whiteboard client applet using the "WBDataURL" parameter.

    Return to Tools Index


    CSE 
  logo Department of Computer Science & Engineering
    University of Washington
    Box 352350
    Seattle, WA  98195-2350
    (206) 543-1695 voice, (206) 543-2969 FAX
    [comments to E-mail the page owner]