|
Back
Midas
Rome
Roody
Rootana
|
Midas DAQ System |
Not logged in |
|
|
30 Apr 2019, Konstantin Olchanski, Info, How to convert C midas frontends to C++
|
05 Jun 2019, Konstantin Olchanski, Info, How to convert C midas frontends to C++
|
13 Jan 2020, Konstantin Olchanski, Info, How to convert C midas frontends to C++, CAEN libraries
|
23 Jul 2019, Frederik Wauters, Forum, How to convert C midas frontends to C++
|
23 Jul 2019, Stefan Ritt, Forum, How to convert C midas frontends to C++
|
23 Jul 2019, Frederik Wauters, Forum, How to convert C midas frontends to C++
|
23 Jul 2019, Stefan Ritt, Forum, How to convert C midas frontends to C++
|
23 Jul 2019, Lukas Gerritzen, Forum, How to convert C midas frontends to C++
|
25 Jul 2019, Frederik Wauters, Forum, How to convert C midas frontends to C++ (my problem solved)
|
30 Jul 2019, Stefan Ritt, Forum, How to convert C midas frontends to C++ (my problem solved)
|
01 Aug 2019, Stefan Ritt, Forum, How to convert C midas frontends to C++ (my problem solved)
|
09 Aug 2019, Konstantin Olchanski, Forum, How to convert C midas frontends to C++
|
|
Message ID: 1526
Entry time: 30 Apr 2019
Reply to this: 1542
1626
|
Author: |
Konstantin Olchanski |
Topic: |
Info |
Subject: |
How to convert C midas frontends to C++ |
|
|
To convert a MIDAS frontend to C++ follow this checklist:
a) add #include "mfe.h" after include of midas.h and fix all compilation errors.
NOTE: there should be no "extern C" brackets around MIDAS include files.
NOTE: Expect to see following problems:
a1) duplicate or mismatched declarations of functions defined in mfe.h
a2) frontend_name and frontend_file_name should be "const char*" instead of "char*"
a3) duplicate "HNDLE hDB" collision with hDB from mfe.c - not sure why it worked before, either use HNDLE hDB from mfe.h or use "extern HNDLE hDB".
a4) poll_event() and interrupt_configure() have "source" as "int[]" instead of "int" (why did this work before?)
a5) use of "extern int frontend_index" instead of get_frontend_index() from mfe.h
a6) bk_create() last argument needs to be cast to (void**)
a7) "bool debug" collides with "debug" from mfe.h (why did this work before?)
b) remove no longer needed "extern C" brackets around mfe related code. Ideally there should be no "extern C" brackets anywhere.
c) in the Makefile, change CC=gcc to CC=g++ for compiling and linking everything as C++
c1) fix all compilation problems. most valid C code will compile as valid C++, but there is some known trouble:
- return value of malloc() & co needs to be cast to the correct data type: "char* s = (char*)malloc(...)"
- some C++ compilers complain about mismatch between signed and unsigned values
If you need help with converting your frontend from C to C++, I will be most happy
to assist you - post your compiler error messages to this forum or email them to me privately.
Good luck,
K.O. |