cronologic-de / xhptdc8_babel

Wrappers, Utilities and Examples for using the xHPTDC8 with various programming languages.
Mozilla Public License 2.0
0 stars 1 forks source link

Major change on xhptdc8 API: manager handle has been dropped #42

Closed djcrono closed 2 years ago

djcrono commented 3 years ago

He Bassem,

1) we had made major changes on the api: In short, we dropped the manager handle, so nealy all function signatures have been changed.

2) The user guide isn´t updated yet, but the comments in the interface header file are up-to-date. 3) all known bugs have been fixed e.g. the od behavior of the function xhptdc8_read_hits, when it returned an error code.

So

I append the actual relevant files on that comment.

xhptdc8_driver 2021-07-21.zip

Best Regards, Dennis

Bassem-Ramzy commented 3 years ago

What is the usage of the DLL clr_crono_base.dll? Should I do anything with/for it?

There seem to be no exported functions:

Dependencies.exe -exports clr_crono_base.dll
[-] Export listing for file : clr_crono_base.dll
[-] Export listing done
Bassem-Ramzy commented 3 years ago

What is the design/idea behind having no manager handle passed to APIs? While we can have more than a device installed on the machine, handled by index parameter in xhptdc8_get_fast_info for instance.

Please send me all the driver files (including crono_kernel_interface.cpp)

djcrono commented 3 years ago

What is the usage of the DLL clr_crono_base.dll? Should I do anything with/for it?

There seem to be no exported functions:

Dependencies.exe -exports clr_crono_base.dll
[-] Export listing for file : clr_crono_base.dll
[-] Export listing done

In a haste, i just copied all driver files from the installer output. You just have to update only these files: xhptdc8_driver.dll xhptdc8_driver.lib xhptdc8_driver_64.dll xhptdc8_driver_64.lib xHPTDC8_interface.h

The files with prefix "clr_" are not for applications in this repository. Sorry for that.

djcrono commented 3 years ago

What is the design/idea behind having no manager handle passed to APIs? While we can have more than a device installed on the machine, handled by index parameter in xhptdc8_get_fast_info for instance.

Please send me all the driver files (including crono_kernel_interface.cpp)

This issue is not concerning kernel driver or kernel driver api. The Content of this issue is the xhptdc8_babel repository. So, what I meant was that we dropped the xhptdc8_manager handle in the file xhptdc8_interface.h.

The concept has not been changed: in this programming interface, all xhptdc8-devices are handled simultaneously. For explanation: But when we thought about the concept, there is no need for the user to have a handle pointer.
Functions, that address a specific device (like xhptdc8_get_fast_info) have an index parameter. (But this behavior hasn't changed from the last API version, e.g. the function xhptdc8_init initializes all devices and xhptdc8_configure configures all devices)

The user guide example have to be reworked too, but the mainly you have to remove the xhptdc8_mgr parameter from all functions.

ahofmann75 commented 3 years ago

xhptdc8_read_group_matrix() provides the same data as xhptdc8_read_hits() in an other format. xHPTDC8_interface.h has a description of the function parameters.

The basic concecpt is that all timestamps of one group are stored in a 1D array accessed as a 2D array. Each row of the array tdc_array has all timestamps of one of the channels. The ADC timestamps are stored in the 9th row. The dimensions of the 2D array are given by number_of_channels as the number of rows and number_of_hits as the number of columns.

The hit_counter array stores the number of valid timestamps of each row. The adc_counter array provides the hit counts per adc channel and adc_value stores the ADC measurements. All arrays have to be allocated by the caller of xhptdc8_read_group_matrix().

Bassem-Ramzy commented 2 years ago

xhptdc8_read_group_matrix() provides the same data as xhptdc8_read_hits() in an other format. xHPTDC8_interface.h has a description of the function parameters.

The basic concecpt is that all timestamps of one group are stored in a 1D array accessed as a 2D array. Each row of the array tdc_array has all timestamps of one of the channels. The ADC timestamps are stored in the 9th row. The dimensions of the 2D array are given by number_of_channels as the number of rows and number_of_hits as the number of columns.

The hit_counter array stores the number of valid timestamps of each row. The adc_counter array provides the hit counts per adc channel and adc_value stores the ADC measurements. All arrays have to be allocated by the caller of xhptdc8_read_group_matrix().

New issue is created for it, #53