This repository shall also contain tools to use the xHPTDC8 with various programming languages.
Depending on how the language handles calls to C libraries this might just be an example project with instructions on how to link, or it might contain function and structure declarations or a wrapper with type conversions.
Scope
Each language bind shall provide a combined interface to the driver library and the util library.
In languages where the mapping of custom types is cumbersome, the config structure can be omitted and replaced by a YAML config interface.
Languages
Required Languages
C
Cronologic is using C# internally for applications and production tests. Implementing a wrapper for that will also provide access to all other .net languages. C# is supported by swig.org.
Binary Distributable Languages
We want to distributed windows binaries with the driver. We can use these as examples for programming languages. Unfortunately none of the languages in high demand have the capability to generate stand alone binaries directly. Therefore we are using less important languages for this.
Go
Go is used by the info tool of issue #19.
From the information we have now this should probably use methods directly from the C API. The interface can be generated by swig.
It might be useful to add support for async IO for both hits and groups.
Rust
Rust is used by the readout tool of issue #10.
From the information we have now this should probably use methods directly from the C API. The interface can be generated by swig.
It might be useful to add support for async IO for both hits and groups.
Languages with high commercial demand
Python
Python is widely used at universities. Configuration by YAML is a natural way of doing things in the python world.
It probably makes sense to provide classes for TDCHit and for groups.
LabView
We have little knowledge about LabView but we have many customers asking for it.
The standard C interface is cumbersome to use in LabView. It might make sense to add an additional abstraction layer.
Matlab
Customers once in a while are asking for Matlab support. Matlab can call C interfaces.
Low Hanging Fruit
Swig support additional languages that we could support. They are less often used so we should only support them if it is simple to do.
R
Similar to Matlab.
Scilab
Similar to Matlab. Less commonly used than R.
Octave
Similar to Matlab. Less commonly used than Scilab.
Julia
Similar to Matlab. Rather exotic. Much better Performance than R, Scilab or Octave, especially of operations can't be vectorized.
TODO
This is an overview issue. When support for a language is started, a seperate issue shall be created and linked from this issue.
xHPTDC8 language bindings
This repository shall also contain tools to use the xHPTDC8 with various programming languages.
Depending on how the language handles calls to C libraries this might just be an example project with instructions on how to link, or it might contain function and structure declarations or a wrapper with type conversions.
Scope
Each language bind shall provide a combined interface to the driver library and the util library.
In languages where the mapping of custom types is cumbersome, the config structure can be omitted and replaced by a YAML config interface.
Languages
Required Languages
C
Cronologic is using C# internally for applications and production tests. Implementing a wrapper for that will also provide access to all other .net languages. C# is supported by swig.org.
Binary Distributable Languages
We want to distributed windows binaries with the driver. We can use these as examples for programming languages. Unfortunately none of the languages in high demand have the capability to generate stand alone binaries directly. Therefore we are using less important languages for this.
Go
Go is used by the info tool of issue #19. From the information we have now this should probably use methods directly from the C API. The interface can be generated by swig. It might be useful to add support for async IO for both hits and groups.
Rust
Rust is used by the readout tool of issue #10. From the information we have now this should probably use methods directly from the C API. The interface can be generated by swig. It might be useful to add support for async IO for both hits and groups.
Languages with high commercial demand
Python
Python is widely used at universities. Configuration by YAML is a natural way of doing things in the python world. It probably makes sense to provide classes for TDCHit and for groups.
LabView
We have little knowledge about LabView but we have many customers asking for it. The standard C interface is cumbersome to use in LabView. It might make sense to add an additional abstraction layer.
Matlab
Customers once in a while are asking for Matlab support. Matlab can call C interfaces.
Low Hanging Fruit
Swig support additional languages that we could support. They are less often used so we should only support them if it is simple to do.
R
Similar to Matlab.
Scilab
Similar to Matlab. Less commonly used than R.
Octave
Similar to Matlab. Less commonly used than Scilab.
Julia
Similar to Matlab. Rather exotic. Much better Performance than R, Scilab or Octave, especially of operations can't be vectorized.
TODO
This is an overview issue. When support for a language is started, a seperate issue shall be created and linked from this issue.