Chapter 70

Volume 11 Chapter 70

400 Autostart WAMP Server 2017-09-29

I miss the cheery WAMP icon in my system tray. I also miss having WAMP autostart on boot so I don't have to find the icon for it every time. This is the fix.

First - From Control Panel search for Services. Scroll down and set both wampapache and wampmysqld to Automatic start.

Second - With Regedit open:


Find EnableLUA and Change its value to zero. Reboot.

Warning - This disables the User Account Control system.

399 Writing SML to a WAV File 2017-09-28

Don't you hate it when something that you had to learn the hard way is forgotten after not having to use it for a while? I do. One of those things is just how to write SML to a WAV file.
This is how:

procedure TfrmMain.btnAddSMLClick(Sender: TObject);
SML: AnsiString;
SML := 'Now is the time for all goood men to come to the aid of there party';
RiffWrite.Chunk[SMLChunkINdex].WriteBuffer(Pointer(SML)^, Length(SML));
// ^ ---- the trick --- ^

398 Restarting WAMP 2017-09-16

For some reason my WAMP server stopped running. I reinstalled the server, this time using the new 64 bit version, but then had to go through the startup ills again.
This is a list of stuff to make that less painful.

Redirects - FIRST is a redirect so that SETI knows where to put the capture images that are generated by SpecAna.

SECOND is a redirect so that I can keep WAMP on my C: drive but serve the localhost version of the website from D: You should only have to do this once. Start | CMD | MKLINK /D ... as the capture shows.

Next is getting WAMP to Autostart on boot up

Then getting PHP to ignore some of my minor infractions (like using out of date constructs).

  1. Open PHP.ini file using WAMP Manager
  2. Find "error_reporting" entry
  3. Change to: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING

397 SpecAnaNT Server Organization 2017-09-12

I now have a prototype NT (New Technology) spectrum analyzer running and need to be careful about how it is wired. Since its a COM server all requests from the client come to it through Windows. Because of this you can't simply use the values of the request to set up the SpecAna's user interface - its on a different execution thread.

The solution is to place the parameters of the service request into a Windows message and send the message to the UI. Since the message goes through Windows the correct thread ID is attached to the parameters as they emerge from Windows.

This is the organization necessary to make this happen.


For example. The client need to start the SpecAna running. It calls its setRunning procedure with a value parameter set to True. This is passed through the Windows system and into the Com server Interface setRun procedure. This is passed on the the User Interface setRunRMT procedure where it is formatted into a Windows call and posted.

The posted message is received by the UI, in its own thread now, in the WMsetRun procedure and then a call to the setRun procedure which starts the Spec Ana running. The AudioIn subsystem (part of the Windows Multimedia system) reports that it has started in the AudioIn Activate event. This sets the field variable FRunning to True.