User`s guide
Originally, three programs were going to be developed: program 1 would read from the serial
port and send it to program 2, which would do a logical “and” on the state of the connections, and
send the result on to program 3. Program 3 would run the “up link” and “down link” script files.
After some investigation, we found it was possible to combine programs 1 and 3, which became the
“client”. Program 2 became the “server”.
The server would wait until two clients connected to it. It would then accept a message from each
client, representing its state (on, off, or error). The server would update its state of the two clients,
and do a logical “and” on the two states. The result would be sent back to the client, which would
then run the appropriate script file, if necessary.
The second part of the project was the “infra-red (IR) tunnelling” application. As with the
videoconferencing reciprocity application, this composed two separate applications: a client and a
server. These tools were to be used in conjunction with the videoconferencing system, so that people
on either side of the video wall could communicate not only audiovisually, but also by sending and
receiving infra-red messages on notebook or handheld computers.
This application was intended to be developed in a similar way to videoconferencing reciprocity
application. The server would wait until two clients connected to it. A client would then receive
data from its serial port, and send it to the server. The server would then send the data on to the
other client. This client would then write the data out to its serial port.
4.2 Development
The applications were developed in C++ using the Microsoft Foundation Class (MFC) framework,
using the Winsock TCP/IP (internet protocol) sockets API (application programming interface).
Microsoft Visual C++ is part of the Microsoft Visual Studio package, which includes an IDE
(integrated development environment) and compilers or interpreters for C/C++, Basic, Java, COM,
and other programming languages. Visual C++ is a project-based application. Source code files are
added to a “project”, which automatically handles all linking and tracks file modification dates. In
turn, a project is part of a “workspace”, which can contain multiple projects.
Visual C++ is bundled with a number of “template” workspaces, which are designed to help
programmers get started by including commonly-used source code.
Both applications (the server and the client) were based on a template workspace called “MFC
App” which is a simple MFC application that displays an empty window with the standard menus
(File, Edit, etc). A few basic menu commands are implemented, for example “About” and “Quit”.
Both applications had to be written from scratch, since the Winsock API is significantly different
from the BSD sockets API used under Cygnus. Windows resources had to be created for each
window and its contents.
The videoconferencing reciprocity client and server were called VidClient and VidServer, and the
infra-red tunnelling client and server were called IRClient and IRServer.
Figure 6 shows the files required to create VidServer, and Figure 7 shows the files required to
create VidClient. The list of files used to create IRServer and IRClient looks similar.
12