wiki:CodeDesignFortyTwoIntegration

Version 1 (modified by Henrik Heimbuerger, 16 years ago) (diff)

created page from ticket #16

Code design of the 42 integration

The design / implementation / (integration) of lib42 for accessing the real Hardware consists of the following elements:

c projects (given librarys)

Clib42

This shared library supports to control the digital carrera course (hardware) over the 42 Blackbox. To control the hardware it's accessing /dev/ttyS1 serial device. -> minicom must be started on /dev/ttyS1 to activate the serial interface. Jacavi is using this library by native calls.

CsdLib

This library is also part of Clib42. It supports the sensor detection on the digital carrera course over the 42 Blackbox. In feasibility study of the 42 protocol group it was more efficient to integrate both, drive control and sensor detection, in one library. Now the design of jacavi uses a more modular concept so we decided to have an extra shared library to achieve the jacavi sensordetection interface. It uses /dev/ttyS0 serial interface witch has to be started before use with minicom.

package de.jacavi.hal

CarreraControler

Defines the almost the minimum of functionality used by jacavi to control an carrera hardware implementation.

CarreraLibraryType

Enumeration of several technologies to access carrera hardware.

CarreraNativeLibraryFactory

Factory to get a CarreraController of an particular CarreraLibraryType

FirstCarreraNativeLibraryFactory

(I know it's a silly name) An implementation of the CarreraNativeLibraryFactory

package de.jacavi.hal.lib42

!NativeLib42

This class offers to access the complete functionality of the Clib42. It loads the c library and redirects all calls to it. Its the interface to access Clib42 functionality.

!Clib42CarreraController

An Controller interface with base de.jacavi.hal.CarreraController. It's more specific to lib42 and its functionality.

!NativeLib42Adapter

Illustrates an adapter between native library and java on java side. It was intended to fix compatibility problems or and adapt the functionality for given interfaces. It is an implementation of the Clib42CarreraController.

NativeCsdLib

This class offers to get information about sensors activated by a passing car. This is implemented by a callback function. An object of the class loads the CsdLib for accesing its functionality.

Usage

->Get an CarreraNativeLibraryFactory object.

->Select an CarreraLibraryType and get an CarreraController object