== Adding New Product Support (using TEzARKBase in ezFIT 4.x platform) == == Sound Design Circuits == === Product DLL === 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) as Administrator. * Install the DLLs. === Software Development Using DLL === Integrating New Product to ezArkBase * In ezConst.pas, create: library alias (eg: ''lbVenture = 'EzVENTURE';''), and Product ID alias (eg: ''id_Venture = 50;''). Creating New Product Frontend * Create a frame of a single screen with all the controls supported by that products. Suggested: create a frame from a currently available product, and modify it to meet the requirements of the new product. Eg: TfraSglVenture in frasVenture.pas. (fra = frame, Sgl = single, fras = single frame (for filename only)) * Create autofits for product in Autofit.pas. * Create resourcestrings in resourcestr.inc. * Create table structure in database ezfitdb.gdb to match all fields used in Gennum's Interactive Data Sheet (IDS). * Create a form that contain Left and Right frames of the product screen. Eg: TfraVenture in fraVentures.pas (fra = frame) * Modify product simulation screen, to add support for new product. === Connecting ARK Components === This is what you need to create a basic program using the ARK components. The program will allow you to: - Connect to a hearing instrument - Read and modify gain on the device - Read and display a stored audiogram and target curves For example code see the attached project. {{:ezfit:ark_example.zip|link}} __Required Components__ TEzARKBase TEzARKSource TChart TEzARKGraph TEzARKTrackBar TLabel __Properties required to be set__ TEzARKBase * Prescription * ProgrammerName * LibraryName (Device model) * ProductName (Device style) Note: ProgrammerName, LibraryName and ProductName may also be set at runtime by using a TEzARKLookup with the LookupType property set to its respective type. TEzARKSource * ARKBase TChart * View3D = FALSE * BottomAxis.Minimum = 0.198 * BottomAxis.Maximum = 8.1 * BottomAxis.Increment = 0.1 * LeftAxis.Minimum = -10 * LeftAxis.Maximum = 70 * Legend.Visible = FALSE * SeriesList (at least 3) * Response (TLineSeries) * Target (TLineSeries) * Labels (TFastLineSeries) * Data Source = Manual ^ Text ^ X ^ Y ^ | 250 | 0.25 | -10 | | 500 | 0.5 | -10 | | 1k | 1 | -10 | | 2k | 2 | -10 | | 4k | 4 | -10 | | 6k | 6 | -10 | | 8k | 8 | -10 | TEzARKGraph * ARKSource * LabelSeries = Labels * ChartSeries (at least 2) * Series 0 * GraphType = gtInput * Series = Response * Series 1 * GraphType = gtTarget * Series = Target * ChartLabels | 0.250=250 | | 0.500=500 | | 1.00=1k | | 2.00=2k | | 4.00=4k | | 6.00=6k | | 8.00=8k | TEzARKTrackBar * ARKSource * ARKParam = WidebandGain * ChangeDirection = TRUE * Orientation = trVertical * ValueLabel * ShowUnit = TRUE * Units = 'db' __Code Snippets__ Create a 'Read' button to read the instrument’s memory and initialize your controls. with Base do begin Open(Application.Handle); WhichChip; Init; ReadAll; GetStoredAudiogram; SetAudiogram(StoredAudiogram); Refresh; end; Create a 'Write' button to write the new parameters to the instrument's permanent memory. Base.Write; You can use the form's OnClose event to disconnect from the instrument. Base.Close; == Intricon Circuits ==