HomeUX Driver Collection
Using AspDriver

This page documents how to use AspDriver (in AspDriver.dll), the HomeUX-compatible driver that controls one or more Sound Control Technologies ASP Audio Matrix 8x8 devices connected together to implement an N-input, N-output audio router. AspSimulator (in AspSimulator.dll) is also documented here.

Page contents:

Hardware & Driver Overview

A Sound Control Technologies ASP Audio Matrix 8x8 device—abbreviated "ASP" in this documentation—is an audio mixing device that has 8 audio inputs and 8 audio outputs. Any input can be routed to any output, and inputs can be mixed with the result directed to an output. Multiple ASP units can be connected together to form a 16x16 mixer array, 24x24 mixer array, etc.

AspDriver allows a HomeUX installation to control a subset of the functionality of an ASP mixer or mixer array:

Configuring AspDriver

AspDriver is configured in the HomeUX configuration file. Here's the general structure (simplified):

XML
<configuration>
<HomeUXSettings>
</Device>
</HomeUXSettings>
</configuration>

"*" means "zero or more allowed". Children of <Device Driver="AspDriver.dll"> can appear in any order.

Example:

XML
<configuration>
  ...
  <HomeUXSettings>
    ...

    <Device Name="ASP" Driver="AspDriver.dll" Units="3"
          sim:SerialPort="AspSimulator.dll;;Units=3;Test=0"
          real:SerialPort="COM7,38400,8,n,1,RtsEnable,DtrEnable">

      <Input Name="DVD/CD L"                InputId="7" />
      <Input Name="DVD/CD R"                InputId="8" />
      <Input Name="Music Server L"          InputId="17" />
      <Input Name="Music Server R"          InputId="18" />
      <Input Name="Music Server Rear L"     InputId="15" />
      <Input Name="Music Server Rear R"     InputId="16" />
      <Input Name="DVR L"                   InputId="5" />
      <Input Name="DVR R"                   InputId="6" />
      <Input Name="VCR L"                   InputId="11" />
      <Input Name="VCR R"                   InputId="12" />

      <Output Name="Exercise E + Bathroom"  OutputId="4" /> <!-- Right -->
      <Output Name="Exercise W + Shower"    OutputId="3" /> <!-- Left -->
      <Output Name="Game Room NE"           OutputId="7" />
      <Output Name="Game Room NW"           OutputId="8" />
      <Output Name="Game Room SE"           OutputId="11" />
      <Output Name="Game Room SW"           OutputId="12" />
      <Output Name="Game Room TV L"         OutputId="15" />
      <Output Name="Game Room TV R"         OutputId="16" />
      <Output Name="Kitchen E"              OutputId="1" /> <!--Left-->
      <Output Name="Kitchen W"              OutputId="2" /> <!-- Right -->
      <Output Name="Laundry Room"           OutputId="9" /> <!-- Mono -->
      <Output Name="Master Bedroom TV L"    OutputId="13" />
      <Output Name="Master Bedroom TV R"    OutputId="14" />
      <Output Name="Office N"               OutputId="6" /> <!--Left-->
      <Output Name="Office S"               OutputId="5" /> <!--Right-->
      <Output Name="Patio N"                OutputId="21" /> <!-- Left -->
      <Output Name="Patio S"                OutputId="22" /> <!-- Right -->
      <Output Name="Deck N"                 OutputId="19" /> <!-- Left -->
      <Output Name="Deck S"                 OutputId="20" /> <!-- Right -->
      <Output Name="Sunfire L"              OutputId="17" />
      <Output Name="Sunfire R"              OutputId="18" />

    </Device>

  ...
  </HomeUXSettings>
</configuration>
	

The following subsections describe the AspDriver configuration file XML elements.

<Device Driver="AspDriver.dll">

(Required, used within <HomeUXSettings>.) Specifies an instance of AspDriver, which is used to control an ASP mixer array.

Syntax
XML
<Device
Name="..."
Driver="AspDriver.dll"
Units="..."
SerialPort="...">
</Device>

"*" means "zero or more allowed".

Attributes

Name

(String, required.) The name you assign to the device.

Driver

(String, required.) Must be "AspDriver.dll".

Units

(Integer, required.) The number of ASP Audio Matrix 8x8 devices connected together.

SerialPort

(String, required.) A standard HomeUX serial port specification. Identifies the serial port (real or virtual) that the hardware is connected to. When connected to a real serial port, the parameters should be "port-name,38400,8,n,1,RtsEnable,DtrEnable" in order to operate correctly with an ASP unit.

<Input>

(Zero or more, used within <Device Driver="AspDriver.dll">.) Specifies one input on the ASP mixer array.

Syntax
XML
<Input
Name="..."
InputId="..."
/>
Attributes

Name

(String, required.) The name you assign to the input.

InputId

(Integer, required.) The input number. For the first (or only) ASP 8x8 unit, this is a number from 1 to 8, inclusive; for the second unit, it's from 9 to 16, inclusive; and so on.

<Output>

(Zero or more, used within <Device Driver="AspDriver.dll">.) Specifies one output on the ASP mixer array.

Syntax
XML
<Output
Name="..."
OutputId="..."
/>
Attributes

Name

(String, required.) The name you assign to the output.

OutputId

(Integer, required.) The output number. For the first (or only) ASP 8x8 unit, this is a number from 1 to 8, inclusive; for the second unit, it's from 9 to 16, inclusive; and so on.

Using AspDriver

AspDriver implements the following SyncPath schema:

AspSimulator

AspSimulator is a HomeUX-compatible virtual serial port implementation that simulates a subset of the serial communication behavior ASP hardware. AspSimulator performs no real-world actions—the simulation is purely for the purposes of testing a HomeUX installation without having to connect to real hardware.

To use AspSimulator in HomeUX, set the SerialPort attribute of the <Device Driver="AspDriver.dll"> configuration element to a string with the following format:

AspSimulator.dll;;Units=unit-count;Test=test-number

Parameters:

You can test AspSimulator independently of HomeUX, using the VSerial console application:

VSerial.exe -cr -dll AspSimulator.dll;;Units=unit-count;Test=test-number

AspSimulator implements a limited simulation—only the following hardware commands are currently supported. (See ASP hardware documentation for information about hardware commands and notifications.)