= Adding New Product Support =
== Intricon Product DLL ==
* Go to Intricon's website:
* http://www.intricon.com
* Products > Hearing Health > Support (http://www.intricon.com/products/hearing-health/tools),
* Download product drivers and Slider (engineering software),
== OnSemi Product DLL (using ARKBase) ==
==== DLL Generation ====
* Go to OnSemi ARKOnline (http://ark.onsemi.com) and login. Visit "Library Manager" > "Libraries" (left column).
* Edit product library: Click "Edit" next to product library to modify, under the section "Audina Hearing Instruments Libraries". Eg: ''ezRhythm''
* Change appropriate settings, then click on "Build" button at the top. Wait a few minutes for the compilation to finish before downloading it.
==== DLL Installation ====
* Download DLLs from ARK Online. Click on the "Download" link beside the product library.
* Unzip the DLL download, and copy files to ''C:\Program Files\Common Files\Audina\Drivers'' (or alternatively to ''C:\WINDOWS\ARK'').
* Run "ARK Component Manager" (Start -> Programs -> On Seminconductor -> Configuration Tools) (file ''"C:\Program Files (x86)\ON Semiconductor\ARK\IDS.exe"'') as Administrator.
* Install the DLLs.
* Review product parameters. Use [[http://www.onsemi.com/PowerSolutions/parametrics.do?id=101769&lctn=header|spec sheets]].
== Add IDs to TCircuitID and TProductID ==
In ''AHI.App.Types'' (file ''Types.cs''), add entries in these enums:
public enum TCircuitID
{ . . . }
public enum TProductID
{ . . . }
== Add Product Library ==
**New Circuit.** For a new circuit (not just a new product), create a library such as ''AHI.Instrument.Circuit..'' (Eg. ''AHI.Instrument.Circuit.Intricon.Audion6''). This library has these files:
* ''.Custom.Methods.cs''
* ''.Library.cs''
* ''.Products.Info.cs''
**Supported Products/Styles.** In file, ''AHI.Instrument.Circuit..\.Products.Info.cs'':
* Add all product (and their styles) supported in a circuit to
* Intricon: ''Lib_CreateProductList()''
* OnSemi: ''Lib_CreateLibraryList()''
**Parameters.** In file ''AHI.Instrument.Circuit..\.Products.Info.cs'':
* Add and edit parameters in ''SetMemoryParameters()'', ''SetConfigParameters()'', and ''SetCustomParameters()''.
* Customize product and style parameters in ''SetAdditionalProductInfo()'' and ''SetAdditionalStyleInfo()''.
**Using a product library.** In project ''ezFIT'', add library as a dependency to ezFIT:
* Right-click on ''ezFIT'' project.
* Select "Project Dependencies".
* Mark checkbox for new library. Eg: ''AHI.Instrument.Circuit.Intricon.Audion6''
== Add TCircuitProdStyle ==
In ''AHI.Instrument.Circuit..'' (eg.''AHI.Instrument.Circuit.Intricon.Audion6''), add an entry for each Product+Style combination supported by that circuit:
private enum TCircuitProdStyle
{
Undefined = 00,
ProdName1_Style1 = 01,
ProdName1_Style2 = 02,
. . .
ProdName2_Style1 = n1,
ProdName2_Style2 = n2,
. . .
}
== Add Product Library to Detection List ==
In ''AHI.Fitting.TSupportedProductList.PopulateProductInfoList()'' (file ''AHI.Fitting.ProductInfo.cs''), add library:
ProdLibPath = new string[] {
...
rootdir + @"\AHI.Instrument.Circuit.Intricon.Audion8.dll",
...
};
. . .
Add(new TSupportedProduct(TCircuitID.Audion6, /* TProductID.prod_IntuitionRIC6.ToString(), */
TCircuitManufCode.Intricon,
TProductID.prod_IntuitionRIC6,
ProdLibPath[4],
"AHI.Instrument.Circuit.Intricon.Audion6.TAudion6",
false /* use for autodetection */ ));
. . .
== Add to Product Specification List ==
In ''AHI.Product.Specification.TProductSpecificationList.RefreshList()'', add code:
#region Product IRIC 6
_prod = new TProductSpecification();
_prod.Code = TProductID.prod_IntuitionRIC6.ToString();
_prod.Name = "IRIC 6";
_prod.CircuitFamily = "Audion6";
_prod.CircuitID = TCircuitID.Audion6;
_prod.TechnologyLevel = TTechnologyLevelType.Mid;
//_prod.Style = TStyleType.OTERIC;
_prod.BatterySize = TBatterySize.Size312Brown;
_prod.Channels = 6;
_prod.AutoEnvironmentSwitching = 0;
_prod.AdaptiveDirectionalChannels = 1;
_prod.GainBands = 12;
_prod.NoiseReduction = true;
_prod.BluetoothCompatible = false;
_prod.AudioLoopSystemCompatible = false;
_prod.FMLoopSystemCompatible = true;
_prod.PhoneLoopSystemCompatible = false;
_prod.Telecoil = true;
_prod.TelecoilSupported = true;
_prod.AdaptiveFeedbackCanceller = true;
_prod.DataloggerType = TDataloggerType.None;
_prod.WindManager = false;
_prod.TinnitusNoiseGenerator = false;
_prod.ManualPrograms = 4;
_prod.Housing = THousingType.MiniBTE;
_prod.HousingFilename = "images/icons/icon-housing-iric.png";
_prod.HousingColor = new THousingColorList() {
new THousingColor(THousingColorType.Beige),
new THousingColor(THousingColorType.Silver)
};
_prod.ProgrammerCable = TProgrammerCableType.Black_5x;
_prod.IsLegacy = false;
_prod.ID = TProductID.prod_IntuitionRIC6;
// Style
_prod.Styles.Add(TInstrumentStyle.RIC);
// Fitting Range
_prod.FittingRangeMin = new int[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
_prod.FittingRangeMax = new int[] {56, 62, 61, 61, 60, 59, 66, 68, 53, 3};
// Options
_prod.Options.Add(string.Format("{0} ({1}): {2}, {3}, {4}",
AHI.App.Localization.Resources.rsReceiver,
AHI.App.Localization.Resources.rsHighDefinitionAbbrev,
//AHI.App.Localization.Resources.rsStandard,
//AHI.App.Localization.Resources.rsPower,
//AHI.App.Localization.Resources.rsSuperPower
AHI.App.Localization.Resources.rsWideband,
AHI.App.Localization.Resources.rsPower,
AHI.App.Localization.Resources.rsHighPower
));
// Customization
switch (CustomCompany)
{
default:
case TCustomCompany.Audina:
_prod.Name = "IRIC 6";
this.Add(_prod);
break;
//case TCustomCompany.Audina_Germany:
// break;
case TCustomCompany.AudiNat:
break;
case TCustomCompany.Auditiva:
_prod.Name = "Fino 6 (RIC)";
this.Add(_prod);
break;
//case TCustomCompany.Auditiva_Denmark:
// _prod.Name = "Fino 6 (RIC)";
// this.Add(_prod);
// break;
case TCustomCompany.HearingCentral:
break;
//case TCustomCompany.PHSI:
// break;
//case TCustomCompany.Sonitech:
// break;
case TCustomCompany.TransEar:
break;
case TCustomCompany.VistaHIA:
break;
}
#endregion
== Add to Build Process and Installer ==
In build batch file ''installer\build-UpdateDLLs.bat'', add references to library. Eg:
. . .
COPY ..\..\..\AHI.Circuit.Manufacturers\Intricon\Audion6\bin\x86\Debug\AHI.Instrument.Circuit.Intricon.Audion6.dll
. . .
In Inno Setup installer script ''installer\installer-ezfit.iss'', add libraries (to be distributed) to the ''[Files]'' sesion:
;---------------------------------------------------
; Intricon files
;---------------------------------------------------
; Intricon circuit libraries (former RTI)
. . .
Source: {#LibDir}\Intricon\Audion6.dll; DestDir: {app}; Flags: ignoreversion
;---------------------------------------------------
; Application files
;---------------------------------------------------
. . .
Source: {#SrcAppDir}\AHI.Instrument.Circuit.Intricon.Essential.dll; DestDir: {app}; Flags: ignoreversion
=== NAnt-Gui ===
Add to nant-gui script:
...
...