AIDA Components General Information

The AIDA (Automotive and Industrial Diagnostic Assistance) system is a modular diagnostic system.

AIDA Components

The AIDA system consists of three classes of components: The top level component (the main AIDA dynamic link library), several protocol components and hardware drivers. At least the top level and one driver component form a so called AIDA stack. A stack is built from the top level component down to a hardware driver. There are two special protocol components: A net and a y component. The net component is able to use the network to link protocol components on other systems running an AIDA server while the y component allows several clients to link together their stacks.

Information Blocks

Information blocks are used to match components. There are two information blocks per component, an upper and a lower block. The upper block is static while the contents of the lower information block may depend on the settings of the component's parameters. The information blocks contain class information and data about the min. and max. send and receive data sizes the component supports.

When adding a new component to an existing stack the lower information block of the component added last is matched against the upper information block of the new component to add.

Parameters

An AIDA component may have various parameters. At the moment four types of parameters are supported: AIDA_nenString, AIDA_nenDWord, AIDA_nenLong and AIDA_nenReal. A string parameter contains a character or wide character C string depending on the context the component is executed in. Long and DWord parameters are both 32 bit wide data types, Long parameters are signed, DWord prameters are unsigned. The parameters are stored in a linked list together with additional information as the current state (changeability), the parameter attributes (which describe under which conditions a parameter is changeable) and a value list. A value list is optional and contains information about the values or value ranges a parameter may have. Parameters are not necessarily limited to the values or value ranges given in the value list. So the application has to consider the data in the value list as a recommendation.

Parameters may not be accessed simultaneously from different threads. In that case the result is unpredictable. This does also concern parameter attachments which are processed by the communication threads of the components linked to the stack.

See Also

AIDA Overview