[Editor's note: This beta version of Domino Remote: CAM runs only on Windows 95 or Windows NT, on the Domino 4.5 server, or as a background task on the Notes Release 4.5 workstation.]
Domino.Remote:CAM is a server add-in that resides on a Domino 4.5 server, but can be operated from either a server or a Notes 4.5 workstation. It provides a template and a set of commands designed to initiate picture taking, store the snapshots as live, dynamic documents in a database, record the picture taker's name, then notify the intended recipient that the snapshot is ready for viewing.
In this early Beta, you can set up the CAM to take pictures at specified intervals, say every 30-seconds. The snapshots, categorized by day, may be expanded to view the previous day's activities. To avoid excessive disk space usage, you can automatically purge pictures at specified intervals. The Domino.Remote:CAM will also work as a background task on your workstation by using the same executable image used by the server, but without the ability to use the console Tell commands. In the future we'll include buttons in the template for previewing and formatting the camera on a workstation. For now, this may be handled by the camera's vendor software. The following screen shot shows me at the console of the Domino.Remote:CAM:
Figure 1. Domino Remote:CAM console

The current Beta version, which we're providing for free downloading today, is designed for the Domino 4.5 server running Windows NT or Windows 95 only and it currently works with the commercially available Connectix Color QuickCam (http://www.connectix.com, retailing for around $200). You can connect one of these cameras to your parallel port using the power from your keyboard. In later versions of Domino.Remote:CAM, we'll plan to support remote controlled cameras and enable you to control the camera rotation remotely. We're looking at providing video streaming as well.
Try it (cam.zip was updated on April 4, 1997)
You can try out Domino.Remote:CAM by downloading the sample files from the Sandbox, and then following these steps:
Server setup:
- Copy ncam.exe and ncamcap.dll to your Notes executable directory.
- Copy cam.nsf to your Notes data directory.
- Start the Domino server and type in load cam at the server console.
Workstation setup:
To enable the sound capabilities, copy
these files to the Notes executable directory:
- nsnd.dll
- click.wav
The template uses a Notes navigator and the preview pane, and provides a view of a hierarchical list of the snapshots available to be viewed. The Domino.Remote:CAM Action Bar contains two main action buttons: Take Picture allows you to create snapshots, and Unseen lets you dynamically view snapshots already posted to the database. Of course, you can add more Action Buttons and we plan to do so, as well.
Because Domino.Remote:CAM is a server add-in, it uses standard Notes Tell Commands to perform operations, such as previewing your snapshots, setting the intervals, adjusting the size of bitmaps, and purging snapshots. From the console, you can access the following commands:
- load cam -- connect to cam
- tell cam format -- dialog to adjust size of bitmap
- tell cam preview -- dialog preview snapshots
- tell cam source -- dialog to adjust hue
- tell cam quit -- disconnect cam
- tell cam interval 0 -- turn off automatic snapshots
- tell cam interval n -- create snapshot every n secs
- tell cam keep n -- keep n snapshots in database
- tell cam log [on] -- turn on logging
- tell cam log off -- turn off logging
To request that a snapshot be taken every 30 seconds, issue "tell cam interval 30." (If you specify "0", it tells the camera to stop automatically updating the database with snapshots.)
When you tell Domino.Remote:CAM to take a picture, you're actually telling Domino to create a new document in the database, record the user name, add the snapshot to the database, and broadcast a message that the picture is ready.
The Unseen action button marks unread snapshots in red, and the up and down arrows allow you to scroll the database and open snapshots, as well as view information such as a snapshot number, time taken, bitmap size, and location where the snapshot originated. In a later version, left and right rotate buttons will be implemented to allow you to move the camera.
To run Domino.Remote:CAM on your Notes 4.5 workstation as a background task:
- Add the ncam.exe to the workstation operating your camera.
- Put the cam.nsf database file on any server on your network.
- Specify within your workstation notes ini file:$CamFile = servername !!CAM.NSF
Because this early version doesn't support an interface like console Tell commands on a workstation, you can add or change these Notes Ini variables:
$CamInterval=n
$CamKeep=n
$CamLog=1
By the way, because we implemented sound for this application in order for you to hear the camera shutter, a side benefit is that you can now play .wav files in any Notes application you've developed. So, for example, you might want to add a Help button with some audio. To do this:
- Place the nsnd.dll and your wave file in the Notes executable directory.
- Create a Help button in your application and add the following LotusScript to the button:
(Declaration
section)
Declare Sub PlayWAVFile Lib "nsnd.dll"
Alias "#1" (Byval Wave As String)
(Event: Click)
PlayWAVFile ("wave file name")
And away you go!
Helping to administer your Notes/Domino network is one good application for Domino.Remote:CAM, but there are countless potential business applications, some obvious, others more creative. We're hoping you'll give us some, but here are just a few ideas to tickle your imagination:
- Place the camera in your lab so you can view a servers CRT at home.
- Displaying trade show floor activities from a conference.
- Monitor security, such as the lobby door, in a manner that will be integrated into your computer network, providing you with a history via an archive or searchable database (rather than a dumb monitor)
- Monitor shop floor activities.
- Monitor for potentially hazardous situations.
- Improve efficiency, by physically eliminating steps to view the lab, clean room, or lobby.
The add-in first opens up the cam.nsf, and then it opens the view, which holds the collection of bitmaps. We continually poll the database for any modifications with a routine called: NSFDbGetModifiedNoteTable(). This routine will execute with very little overhead.
When we detect a modification, we know a user wants a picture taken. We then take the picture, using Video for Windows (VFW). Once we capture the picture, we place the bitmap in a rich text field. The Notes API provides two ways to work with composite data: high level and low level. See the Notes documentation for further details.
Next, we create a document in the database. Then we update the view. On the workstation, you'll see the picture show up as an unread document; in addition we broadcast that the snapshot is ready for viewing.
Finally, we added a thread that purges documents based on how many you want to keep.
Because of Notes ability to dynamically tell the server to do something from a remote location, there are lots of other things you can with different devices.
One idea we're prototyping is connecting to an LED Display so that a database of messages can be displayed for public viewing. This could be used for server administration, for example, indicating that a certain server is down, or for more general business or even retail uses.
Another device is BSR X-10 interface devices typically used to automate processes like turning on and off lights, alarms, computer systems, and more.
Copyright 1997 Iris Associates, Inc. All rights reserved.





