February 2001
Here are two samples of how to customize WriteLog with a rig front panel.
WriteLog version 10.25 or later is required. One is in C++, and the
other is in Visual Basic.

1. C++ example: WlogRigLib directory:

It includes a partial implemenation of a driver and front panel for
the Kachina DSP 505. It is not useable as anything but a coding sample.
However, the example shows how to plumb together all the pieces
necessary to get a rig driver recognized by WriteLog, and to get
WL to call it at the appropriate times.

Architecture

There are three different kinds of objects to implement. The 
driver itself and the rig manager you MUST implement, and the front 
panel is  optional. If you don't implement the front panel Active X
control, then WriteLog won't put up a front panel for you.

Rig Manager
The example is the C++ class CRigManager. Its job is to enumerate
the rigs in the DLL. THis example has just one.

Rig Driver
This object accepts commands and polling of frequency/mode from
WriteLog, and it must also command and read the rig itself.
If a COMM port is required, WriteLog opens and closes the 
port for the driver. If a COMM port is NOT required, the rig
driver says so by reporting a default baud rate of zero.
The implementation in the example is the C++ class, CKachina

Front Panel
This object is probably more easily written in Visual Basic,
but this sample shows how to do it in C++. (You can even
choose to implement the driver in C++ and the front panel
in VB if you want.) The important thing about the plumbing is that
WriteLog expects a couple of public properties on the object,
and these are documented in comments in the Kachina sample.
One property is for the VB object to report to WL what size
window to draw in, and the other property is written by WL
so to that the front panel can make calls directly into your
rig driver. In this example, I have shown how the Kachina rig
driver can support the IKachina interface, and how the VB 
control can interact with it.

2. Implemented purely in VB
This is in the FakeRadioVB project, which has two sub 
projects: Driver and FrontPanel. This VB example is stripped down, 
but it will install and run. The architecture is the same as above.
The rig manager and driver classes must be in an ActiveX DLL, and
the front panel must be in an OCX. 

There are some installation issues you must overcome. WL
does NOT install the VB run time. If you ship a front panel,
then you must make sure it installs everything you need. And WL
expects the VB rig manager class to have an "Implemented Categories"
entry with CATID_WlogRigDriver. The rgs file does this in the C++
project. You must also make the registry entries do this for your
C++ rig manager class. The registry entries can be set up with a
.REG file that has this in it:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{FIGURE-OUT-YOUR-YOUR-RIG-MANAGER-GUID-HERE}\Implemented Categories\{C721215A-7716-101A-AA54-00608C61D0B1}]

