Skip to content

Software architecture

Juan Pedro Dominguez-Morales edited this page Nov 7, 2016 · 10 revisions

In this section we will describe the main software architecture. Aedat files, which are generated through the jAER software, contain a stream of AER events. These events are described by two values: address (channel of the cochlea) and timestamp (time, μs, when the event was fired), following the address event structure shown in the image bellow.

8 most significant bits are not used, depending on the address size of the aedat file. Only 8 LSB are used: most significant bit to select left (‘0’) or right (‘1’) cochlea, 6 to determine the cochlea channel and the less significant bit to choose between the positive (‘0’) or negative (‘1’) event

Events are stored in the aedat file following the next structure:

As can be seen, the address length can either be a 16 or a 32 bits value, depending on how the aedat file was saved. This will lead our software to work with two different classes, that use UInt16 or UInt32 as data types to store the address value, respectively. When a file is selected, the loading process adds each one of these objects (aedatEvent16 or aedatEvent32) to a list (aedatFileList), which will contain the entire information of the events fired in the aedat file when this process ends. The next image shows a quick overview of the NAVIS' main system architecture.

Next image shows aedatEvent16, aedatEvent32 and aedat32 classes. This last one implements the attribute aedatFileList that we presented before, among other functions that are able to compute the main NAVIS functionalities (sonogram, average activity, channels disparity, automatic and manual aedat splitter, etc).

The main window of NAVIS is detailed below. It uses an aedat16 or an aedat32 object to execute the specific operation when a button in the GUI is clicked, in addition to other functionalities.

cSettings is the class that manages the loading and saving process of NAVIS user settings. It consists on four subclasses (MainS, ToolsS, PdfS and ToolbarS), managing the settings for each tab in the Settings window.

We have presented the main software architecture and classes of NAVIS. There are a lot more, but most of them being UserControls or Windows for the GUI.

Clone this wiki locally