Back Midas Rome Roody Rootana
  Midas DAQ System, Page 10 of 150  Not logged in ELOG logo
ID Date Authordown Topic Subject
  2789   05 Jul 2024 Tam Kai ChungBug ReportFail to build in the examples/experiment
Hello Nick,
I am using the most updated tag: midas-2022-05-c-1284-g4a77127b.

Here would be some of the examples of the error listed:
/usr/bin/ld: /packages/midas/lib/mfe.o: in function
/usr/bin/ld: /packages/midas/src/mfe.cxx:2537: undefined reference to `event_buffer_size'
...
Also several undefined reference. Any idea about it? Thank you.

Best,
Terry


> I think this may only be an issue on the development branch.
> Can you confirm that that is what you are using?
> 
> If so, I suggest you try the most recent stable tag 2022-05-c.
> 
> > Dear experts,
> > I am a new user of MIDAS. I try to follow the instruction from 
> > https://daq00.triumf.ca/MidasWiki/index.php/Quickstart_Linux
> > to install MIDAS in Fedora 39.
> > 
> > When I try to have a try in the section of "Clients run on Localhost only"
> > https://daq00.triumf.ca/MidasWiki/index.php/Quickstart_Linux#Clients_run_on_Localhost_only
> > 
> > I get the error of "undefined reference to" several variables in the mfe.cxx. For example the variable "max_event_size_frag". May I know any idea about this issue? Thank you.
> > 
> > 
> > Best,
> > Terry
  2856   22 Sep 2024 Tam Kai ChungBug ReportCan we convert the .mid file into .root file
Dear experts, 
I am a new user of MIDAS. I have just created some banks by a frontend.cxx code.
Now, I would like to do some analysis from the data.

I have an analyzer.cxx code (A very simple one without complicated routine).

I try to link the analyzer.o with rmana.o and libmidas.a to create analyzer.exe

I am not sure whether I can do the analysis offline in the follow way:

analyzer.exe -i run00001.mid -o run00001.root

When I run this command,  I get the following error:

Error in <TClass::LoadClassInfo>: no interpreter information for class TSocket is available even though it has a TClass initialization routine.

I am using root 6.30

Any suggestion about this issue? Thank you.

Best,
Terry
  2125   05 Mar 2021 Svetlana ChesnevskayaBug ReportNew MIDAS old frontend incompatibility
Hello!

Could you help me solve the problem of compatibility between our frontend (created in 2017) and the fresh MIDAS? The old MIDAS (2017) worked well, then we did not use it.
While compiling the frontend, I get a lot of warnings and a few compilation errors.

Any help will be greatly appreciated.

Thanks in advance.
With the best regards,
Svetlana
Attachment 1: error.log
g++ -c -m64 -g -O0 -Wall -Wextra  -I. -I/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include -I/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/drivers/vme -I/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/drivers/vme/sis3100 -I/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/drivers/vme/sis3100/linux -L/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/drivers/vme/sis3100/lib -Wunused-variable -DHAVE_MIDAS__  -D__HAVE_MIDAS -I./include -I./include/CP80190_80057 -DOS_LINUX -Dextname src/realEventFrontend.cc -o src/realEventFrontend.o
In file included from ./include/v1742.hh:4:0,
                 from src/realEventFrontend.cc:16:
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1336:21: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    DWORD event_id = 0;
                     ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1338:18: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    DWORD n_tag = 0;
                  ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1343:19: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int hist_fh  = 0;
                   ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1344:19: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int index_fh = 0;
                   ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1345:19: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int def_fh   = 0;
                   ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1346:23: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    DWORD base_time  = 0;
                       ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/midas.h:1347:23: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    DWORD def_offset = 0;
                       ^
In file included from src/realEventFrontend.cc:18:0:
./include/CP80057.hh: In Konstruktor »CP80057::CP80057(unsigned int, MVME_INTERFACE*, HNDLE)«:
./include/CP80057.hh:20:45: Warnung: Konvertierung in Nicht-Zeiger-Typ »uint32_t {aka unsigned int}« von NULL [-Wconversion-null]
       vme_port_addr(vmeBaseAdress), port(0x0)                          {}
                                             ^
src/realEventFrontend.cc: Im globalen Gültigkeitsbereich:
src/realEventFrontend.cc:32:42: Warnung: verengende Umwandlung von »2425356288u« von »unsigned int« nach »const int« in { } ist in C++11 ungültig [-Wnarrowing]
                                0x90910000};
                                          ^
src/realEventFrontend.cc:32:42: Warnung: verengende Umwandlung von »2425421824u« von »unsigned int« nach »const int« in { } ist in C++11 ungültig [-Wnarrowing]
In file included from src/realEventFrontend.cc:48:0:
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:348:22: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    BOOL is_mserver = 0;             /*  this is an mserver server-side connection */
                      ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:349:20: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int send_sock = 0;               /*  tcp send socket         */
                    ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:350:20: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int recv_sock = 0;               /*  tcp receive socket      */
                    ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:351:21: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    int event_sock = 0;              /*  tcp event socket        */
                     ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:352:25: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT remote_hw_type = 0;          /*  hardware type           */
                         ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:353:27: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT watchdog_timeout = 0;        /*  in milliseconds         */
                           ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:354:26: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    DWORD last_activity = 0;         /*  time of last recv       */
                          ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:355:24: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT convert_flags = 0;           /*  convertion flags        */
                        ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:358:26: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT net_buffer_size = 0;         /*  size of TCP cache       */
                          ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:359:18: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT write_ptr=0, read_ptr=0, misalign=0;   /* pointers for cache */
                  ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:359:30: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT write_ptr=0, read_ptr=0, misalign=0;   /* pointers for cache */
                              ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:359:42: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT write_ptr=0, read_ptr=0, misalign=0;   /* pointers for cache */
                                          ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:360:21: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT ev_write_ptr=0, ev_read_ptr=0, ev_misalign=0;
                     ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:360:36: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT ev_write_ptr=0, ev_read_ptr=0, ev_misalign=0;
                                    ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:360:51: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    INT ev_write_ptr=0, ev_read_ptr=0, ev_misalign=0;
                                                   ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:361:23: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    HNDLE odb_handle = 0;            /*  handle to online datab. */
                       ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:362:26: Warnung: nicht-statische Initialisierungen für Datenelemente nur mit -std=c++11 oder -std=gnu++11 verfügbar [standardmäßig aktiviert]
    HNDLE client_handle = 0;         /*  client key handle .     */
                          ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:525:34: Fehler: Deklaration der C-Funktion »std::string cm_get_path()« steht in Konflikt mit
    std::string EXPRT cm_get_path();
                                  ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:524:14: Fehler: vorherige Deklaration »INT cm_get_path(char*, int)« hier
    INT EXPRT cm_get_path(char *path, int path_size);
              ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:629:31: Fehler: Deklaration der C-Funktion »std::string ss_gethostname()« steht in Konflikt mit
    std::string ss_gethostname();
                               ^
/home/svetlana/packages/hodor_DAQ/ASACUSA/midas/include/msystem.h:628:8: Fehler: vorherige Deklaration »INT ss_gethostname(char*, int)« hier
    INT ss_gethostname(char* buffer, int buffer_size);
        ^
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status« fehlt [-Wmissing-field-initializers]
       };  
       ^
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status_color« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::hidden« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::write_cache_size« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status_color« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::hidden« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::write_cache_size« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status_color« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::hidden« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::write_cache_size« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status_color« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::hidden« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::write_cache_size« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::driver« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::event_descrip« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::status_color« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::hidden« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »EQUIPMENT_INFO::write_cache_size« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::readout« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::driver« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::event_descrip« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::cd_info« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::status« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_called« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::last_idle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::poll_count« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::format« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::buffer_handle« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::hkey_variables« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::serial_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::subevent_number« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_out« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::odb_in« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::bytes_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::events_sent« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:200:7: Warnung: Initialisierung für Element »eqpmnt::stats« fehlt [-Wmissing-field-initializers]
src/realEventFrontend.cc:295:5: Warnung: unbenutzter Parameter »run_number« [-Wunused-parameter]
 INT begin_of_run(INT run_number, char *error){
     ^
src/realEventFrontend.cc:295:5: Warnung: unbenutzter Parameter »error« [-Wunused-parameter]
src/realEventFrontend.cc:337:5: Warnung: unbenutzter Parameter »run_number« [-Wunused-parameter]
 INT end_of_run(INT run_number, char *error){
     ^
src/realEventFrontend.cc:337:5: Warnung: unbenutzter Parameter »error« [-Wunused-parameter]
src/realEventFrontend.cc:351:5: Warnung: unbenutzter Parameter »run_number« [-Wunused-parameter]
 INT pause_run(INT run_number, char *error){
     ^
src/realEventFrontend.cc:351:5: Warnung: unbenutzter Parameter »error« [-Wunused-parameter]
src/realEventFrontend.cc:357:5: Warnung: unbenutzter Parameter »run_number« [-Wunused-parameter]
 INT resume_run(INT run_number, char *error){
     ^
src/realEventFrontend.cc:357:5: Warnung: unbenutzter Parameter »error« [-Wunused-parameter]
src/realEventFrontend.cc:395:5: Warnung: unbenutzter Parameter »cmd« [-Wunused-parameter]
 INT interrupt_configure(INT cmd, INT source, PTYPE adr){
     ^
src/realEventFrontend.cc:395:5: Warnung: unbenutzter Parameter »source« [-Wunused-parameter]
src/realEventFrontend.cc:395:5: Warnung: unbenutzter Parameter »adr« [-Wunused-parameter]
src/realEventFrontend.cc:521:5: Warnung: unbenutzter Parameter »off« [-Wunused-parameter]
 INT read_clock_event(char *pevent, INT off){
     ^
src/realEventFrontend.cc:550:5: Warnung: unbenutzter Parameter »off« [-Wunused-parameter]
 INT read_calibration_data_event(char *pevent, INT off){
     ^
src/realEventFrontend.cc:572:5: Warnung: unbenutzter Parameter »off« [-Wunused-parameter]
 INT read_tdc_event(char *pevent, INT off){
     ^
src/realEventFrontend.cc:644:7: Warnung: unbenutzter Parameter »ptr« [-Wunused-parameter]
 void *updateCUSPRunNumber(void *ptr){
       ^
src/realEventFrontend.cc:658:7: Warnung: unbenutzter Parameter »ptr« [-Wunused-parameter]
 void *restartRun(void *ptr){
       ^
make: *** [src/realEventFrontend.o] Fehler 1
  87   25 Nov 2003 Suzannah Daviel delete key followed by create record leads to empty structure in experim.h
Hi,

I have noticed a problem with deleting a key to an array in odb, then
recreating the record as in the code below. The record is recreated
successfully, but when viewing it with mhttpd, a spurious blank line
(coloured orange) is visible, followed by the rest of the data as normal.

This blank line causes trouble with experim.h because it
produces an empty structure e.g. :

#define CYCLE_SCALERS_SETTINGS_DEFINED

typedef struct {
  struct {
  } ;
  char      names[60][32];
} CYCLE_SCALERS_SETTINGS;

rather than :

#define CYCLE_SCALERS_SETTINGS_DEFINED

typedef struct {
  char      names[60][32];
} CYCLE_SCALERS_SETTINGS;


This empty structure causes a compilation error when rebuilding clients that
use experim.h

SD



 CYCLE_SCALERS_TYPE1_SETTINGS_STR(type1_str);
 CYCLE_SCALERS_TYPE2_SETTINGS_STR(type2_str);

Both type1_str and type2_str have been defined as in
experim.h
i.e.
#define CYCLE_SCALERS_TYPE1_SETTINGS_STR(_name) char *_name[] = {\
"[.]",\
"Names = STRING[60] :",\
"[32] Back%BSeg00",\
"[32] Back%BSeg01",\
 ........
 ........
"[32] General%NeutBm Cycle Sum",\
"[32] General%NeutBm Cycle Asym",\
"",\
NULL }

#define CYCLE_SCALERS_TYPE2_SETTINGS_STR(_name) char *_name[] = {\
"[.]",\
"Names = STRING[60] :",\
"[32] Back%BSeg00",\
"[32] Back%BSeg01",\
...........
............
"[32] General%B/F Cumul -",\
"[32] General%Asym Cumul -",\
"",\
NULL }

  if (db_find_key(hDB, 0, "/Equipment/Cycle_scalers/Settings/",&hKey) ==
DB_SUCCESS)
    db_delete_key(hDB,hKey,FALSE);
          
  if (  strncmp(fs.input.experiment_name,"1",1) == 0) {
      exp_mode = 1; /* Imusr type - scans */
      status =
db_create_record(hDB,0,"/Equipment/Cycle_scalers/Settings/",strcomb(type1_str));
    }
  else {
    exp_mode = 2; /* TDmusr types - noscans */
    status =
db_create_record(hDB,0,"/Equipment/Cycle_scalers/Settings/",strcomb(type2_str));
  }
  510   20 Oct 2008 Suzannah DavielBug Reportcustom web pages: customscript buttons and start/stop buttons generate errors
I am using an external Custom web page via a link in the ODB in /Custom, and
Javascript to add customscript button(s) and run start/stop buttons.

After executing these buttons, instead of returning to the custom page, or
to the Midas main status page, there is an error page generated:

Invalid custom page: NULL path
and the URL is 

http://lxfred:8082/CS/

The behaviour is the same whether the custom page replaces the main status page
or not.

I am using
MIDAS version 2.0.0
mhttpd.c SVN Rev 4282

In an older version of mhttpd.c, buttons of this type used to return to the
Midas main status page regardless of whether the custom page replaced the status
page. I found this behaviour annoying, and I made a custom mhttpd.c that
returned to the custom page. 
Would it be possible to fix this problem, and to return to the custom page after
pressing the buttons?


Here is the Javascript to add the buttons:

<script type="text/javascript">
var rstate = '<odb src="/runinfo/run state">'

 if (rstate == 1) // stopped
    document.write('<input name="cmd" value="Start" type="submit">')
 else if (rstate == 2 // paused
    document.write('<input name="cmd" value="Resume" type="submit">')
 else  // running
 {
    document.write('<input name="cmd" value="Stop" type="submit">')
    document.write('<input name="cmd" value="Pause" type="submit">')
 }

 if (rstate == 1) // stopped
    document.write('<input name="customscript" value="tri_config" type="submit">');
</script>
  522   04 Nov 2008 Suzannah DavielSuggestion<odb ... edit=1> buttons and javascript
When writing custom webpages, it would be nice to be able to write code such as

<odb src="/Equipment/TITAN_ACQ/ppg cycle/trans3/time offset (ms)" edit=1>

from Javascript, e.g.
<script  type="text/javascript">
if ( flag != 3)
   document.write('<odb src="/Equipment/TITAN_ACQ/ppg cycle/trans3/time offset
(ms)" edit=1>ms');
else
   document.write('<odb src="/Equipment/TITAN_ACQ/ppg cycle/trans4/time offset
(ms)" edit=1>ms');
</script>

This is not translated correctly by mhttpd; the final quote and bracket get
stripped off, and it gives Javascript error

 Error: unterminated string literal
Source File: http://titan04:8089/CS/ppg_cycle?cmd=Edit&index=11
Line: 477, Column: 18
Source Code:
   document.write('<input type=text size=10 maxlength=80 name=value value="1">

I can get round this by using an input box and a combination of ODBGet and
ODBSet, but it would be easier if the edit=1 form above worked correctly, or
there was a command like ODBSet that would accept input from the user.

Thanks.

 would be nice is there was a command such as ODBGet or ODBSet that would work
with javascript to 
  561   27 Jan 2009 Suzannah DavielForumQuestion - ODB access from a custom page
At present the only documentation on the Javascript library is in this elog
e.g. Message 496 31 Jul 08

The Javascript library which you can view
http://<your mhttpd host>/mhttpd.js
now supports ODBEdit as well as ODBGet and ODBSet
 
I advise you get the latest version of mhttpd.c so you can use ODBEdit which changes
the ODB value directly via ODBSet.

You use it like this:
document.write('<a href="#" onclick="ODBEdit(/Equipment/test/Variables/Demand[0])">');
document.write('<odb src="/Equipment/test/Variables/Demand[0]">');
document.write('</a>');

You can also use HTML to edit the variables, but the advantage of Javascript is that
you can use variable ODB paths, so it is more powerful.

Here is an example of using a form on a custom page to edit a variable (in the
example, the run number) using Javascript (ODBEdit) and HTML. 

To try this example, in ODB, create key (STRING)
/custom/try& 
 and set it to "/home/user/try.html"

where the path of the example code on the disk is  /home/user/try.html

This will put an alias link on the Main Status page called "try" which you click on
to see the custom page.

Code of try.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<html><head>
<title> ODBEdit test</title>
<script src="/js/mhttpd.js" type="text/javascript"></script>

<script type="text/javascript">
var my_action = '"/CS/try&"'
var rn
var path

document.write('</head><body>')
document.write('<form method="get" name="form2" action='+my_action+'> ') 
document.write('<input name="exp" value="'+my_expt+'" type="hidden">');

document.write('Using Javascript and ODBEdit:
') path='/runinfo/run number' rn = ODBGet(path) document.write('Run Number: '+rn+'
') document.write('Edit Run Number:') document.write('<a href="#" onclick="ODBEdit(path)" >') document.write(rn) document.write('</a>'); document.write('
') ; </script>
Using HTML :
Using edit=2 ... Run Number: <odb src="/runinfo/run number" edit=2>
Using edit=1 ... Run Number: <odb src="/runinfo/run number" edit=1>
</form> </html> Note the "edit=2" feature is handy so that you can use Javascript or HTML on your page and the user sees no difference. > Hi, I am looking for a way to mutate ODB values from a custom page. I have been > using the edit attribute for the 'odb' tag, but for some things it would be nice > if a form can handle the change. I have seen references to ODBSet on the forums, > but I haven't been able to find documentation on it. Is there an available > Javascript library for Midas and/or are there more tags than I am aware of (I am > only aware of the 'odb' tag)?
  691   22 Dec 2009 Suzannah DavielSuggestionRedesign of status page links
> The custom and alias links in the standard midas status page were shown as HTML 
> links so far. If there are many links with names having spaces in their names, 
> it's a bit hard to distinguish between them. Therefore, they are packed now into 
> individual buttons (see attachment) starting from SVN revision 4633 on. This makes 
> also the look more homogeneous. If there is any problem with that, please report.

Would you consider using a different colour for the alias buttons (or background
colour)? At present it's hard to know whether a button is an alias link, a custom page
link or a user-button especially if you are not familiar with the button layout. 
  693   27 Jan 2010 Suzannah DavielForumcustom page - flashing filled area
Hi,

On a custom web page, can a "filled" area be made to flash (i.e. cycle between 
two colours)? This area would have to update faster than the whole page update.
 
I have a custom page representing a gas system, and the users
want the heaters to flash when they are on, as is done in their EPICS page.

Thanks,
Suzannah 
  Draft   09 Sep 2016 Suzannah DavielSuggestionAJAX jmsg "get messages since t" ability - add to docs?
> I recently needed to watch the Midas messages for a particular error - and 
> thus needed a command to "get all the messages since a time t".
> 
> The documentation (https://midas.triumf.ca/MidasWiki/index.php/AJAX#jmsg) 
> documents a way to "get the most recent n messages" - but when I dug into the 
> code, I was delighted to find that the existing Midas code also supports the 
> "get all messages since t" query.
> 
> For the "get all messages since t" query, the parameter t should be the unix 
> timestamp in seconds, and the parameter n should be zero: curl -X GET 
> "http://localhost:8081/?cmd=jmsg&n=0&t=1473437918".
> 
> Pretty useful!  Perhaps this should be added to the AJAX documentation?

Thank you - I have added it to the documentation.
  1349   08 Mar 2018 Suzannah DavielSuggestionlink to an array element displays whole array in mhttpd
A link to an array variable such as

[local:npet:Stopped]/>ls /rcparams/ControlVariables/
TRFC:PB5 (V) -> /Equipment/Beamline/Variables/Demand[56]
                                17835

displays the whole Demand array on the mhttpd ODB page (see attachment)
rather than just the one element Demand[56].
This behaviour also occurs with older versions of mhttpd.
 
Not sure if it's a bug or a feature, but my suggestion is that it
ought to display the one element only (as odbedit does) and not the whole array.

Suzannah  
Attachment 1: controlvar.png
controlvar.png
  1350   09 Mar 2018 Suzannah DavielBug Reportlink to an array element displays whole array in mhttpd
Further to my last message, I see that a midas version from 2013 does indeed display
links to arrays as I would expect (see attachment). Therefore the problem in later
versions  is a bug rather than a feature.


> A link to an array variable such as
> 
> [local:npet:Stopped]/>ls /rcparams/ControlVariables/
> TRFC:PB5 (V) -> /Equipment/Beamline/Variables/Demand[56]
>                                 17835
> 
> displays the whole Demand array on the mhttpd ODB page (see attachment)
> rather than just the one element Demand[56].
> This behaviour also occurs with older versions of mhttpd.
>  
> Not sure if it's a bug or a feature, but my suggestion is that it
> ought to display the one element only (as odbedit does) and not the whole array.
> 
> Suzannah  
Attachment 1: controlvar_good.png
controlvar_good.png
  1361   23 Mar 2018 Suzannah DavielBug Reportlink to an array element displays whole array in mhttpd
> It might have worked some ~5 years ago, but it never really showed the target value of a link, just the 
> link itself. I reworked the code now to show both the link and the target of the link, so you can change 
> both in the mhttpd ODB page. Should be consistent now with odbedit. Have a look if it works for you.
> 
> Stefan

Thank you. That has solved the problem.
Suzannah 
  1460   04 Mar 2019 Suzannah DavielInfoGyrations of custom pages and ODB /Custom/Path
I see two separate issues here. 

One is restricting the custom pages to ONE directory such as 
<exptab>/resources -> /home/users/exp/resources
and its subdirectories which seems like a good solution for all the
reasons you've mentioned. 

The other issue is the use of the "Path" key in /Custom, which is used to differentiate
between the "new" way (all resources served from the Path directory) 
and the original way where all the custom keys are specified with their full directories.

Recent versions of Midas had broken the original behaviour by insisting on the presence of the
"Path" key.  Konstantin fixed this by allowing the "Path" key to take the value "".  It is true
that some experiments currently may be serving resources from more than one directory tree, but changing
to storage of all custom pages in one directory (and its subdirectories) does not necessarily mean that
the original way of serving resources must be made obsolete.
 
I actually like the original way of specifying the custom keys for the pages and resources under /Custom, which
is presently selected  without the /Custom/Path key present at all (older versions) or with the
/Custom/Path key set to "" (latest versions). I like it for debugging, and I like to be able to see 
at a glance what resource files are in use from /Custom. 

I have a suggestion:

The resources could still be served from the /Custom directory if desired, except now mhttpd will ALWAYS add the 
fixed path in front of the given paths in /Custom. This would mean a fixed path and a minimal disruption to older pages 
(the <script> and <link> statements in the HTML code to include the resources would not need to be changed).
The "/Path" key is no longer be useful, since the resource path is now fixed. Instead a key e.g. "FlagRS"  could 
be used to select the desired behaviour,  with the default being the "new" (no key present).

For example, the full directory paths in /custom
ScanParams&                     /home/users/online/custom/scan/scan_select_popup.html
mpet.css!                       /home/users/online/custom/rs/mpet.css
scanvoltages!                   /home/users/online/custom/scan/scan_voltages.js

would become subdirectory path(s)
ScanParams&                     custom/scan/scan_select_popup.html
mpet.css!                       custom/rs/mpet.css
scanvoltages!                   custom/scan/scan_voltages.js
FlagRS                          y

The pages would be served from /home/users/exp/resources/custom/...

Suzannah

 
> > Hi Stefan and Konstantin,
> > 
> > I think that this proposal sounds fairly reasonable.  I agree that we might as well move to a secure final solution at this point.  
> > 
> > One comment: since this change would break almost every experiment I have worked on for the last 4 years, it would be nice to add a command-line option to mhttpd that preserves the old /Custom/Path behavior.  This would allow experiments a transition 
> > period, so that they didn't immediately need to fix their setup.  The command-line option could be clearly marked as obsolete behaviour and could be removed within a year.
> > 
> > Cheers,
> > Thomas
> > 
> > 
> > 
> > > Parsing all URL in mhttpd to prevent /etc/passwd etc. to be returned is tricky, because people can use escape sequences etc. Therefore I think it is much better to restrict file access 
> > > on the file system level when opening a file. The only escape there one could have is "..", which can be tested easily. 
> > > 
> > > Therefore, I propose to restrict file access to two well-defined directories, which is one system directory and one user directory. The system directory should be defined via 
> > > $MIDASSYS/resources, and the user directory should be the experiment directory (as defined in exptab) followed by "resources". So if MIDASSYS equals to /usr/local/midas and the 
> > > experiment directory equals to /home/users/exp for example, we would only have these two directories (and of course the subdirectories within these) served by mhttpd:
> > > 
> > > $MIDASSYS/resource -> /usr/local/midas/resources
> > > <exptab>/resources -> /home/users/exp/resources
> > > 
> > > These directories should be hard-wired into mhttpd, and not go through and ODB entry, since otherwise one could manipulate the ODB entries (knowingly or unknowingly) and open a 
> > > back-door. 
> > > 
> > > If users need a more complex structure, they can put soft links into these directories.
> > > 
> > > The code which opens a resource file should then first evaluate $MIDASSYS, then add "/resources/", then add the requested file name, make sure that there is no ".." in the file name, 
> > > then open the file. If not existing, do the same for the <exptab>/resources/ directory.
> > > 
> > > This change will break most experiments, and forces people to move their custom pages to different directories, but I think it's the only clean solution and we just have to bite the 
> > > bullet.
> > > 
> > > Comments are welcome.
> > > 
> > > Stefan
  1536   29 May 2019 Suzannah DavielSuggestionReplacing MIDAS status page with custom status page
Replacing the MIDAS status page with a custom status page documented at

https://midas.triumf.ca/MidasWiki/index.php/Custom_Page_Features#Replace_Status_Page_by_a_Custom_page

does not appear to be supported in the current MIDAS version. 

As two of my experiments use this feature may I suggest its reinstatement?

Suzannah
  521   04 Nov 2008 Suannah DavielBug Reportcustom web pages: customscript buttons and start/stop buttons generate errors
Thanks Stefan. 
Your fix works nicely with the start/stop buttons not returning to the same or to a
different web page.

However, it does not seem to have fixed the problem with the Customscript button. It does
not seem to pick up the redirect, nor do the Pause/Resume buttons (which are programmed to
appear when the run starts).


> To fix this problem, do the following:
> 
> - Update to the current SVN revision 4368 of mhttpd.c
> - Add following tag into your custom page:
> 
>   <input type=hidden name="redir" value="name">
> 
>   where "name" is the name of your custom page which follows the CS/ in the URL. Like 
> if you have a custom page which you access through httpd://localhost/CS/junk then the 
> tag would be 
> 
>   <input type=hidden name="redir" value="junk">
> 
> The "redir" parameter is now evaluated inside mhttpd and brings you back to the proper 
> custom page. You can also define another custom page as the target, if that makes 
> sense in your application.
> 
> Pierre: Would be nice to document this somewhere more officially.
  523   04 Nov 2008 Suannah DavielBug Reportbool values in "/custom/images/my_image.gif/labels/src" seem to lose their format string
Not sure if this is a bug or a feature:

Writing a boolean label on an image seems to produce rather strange behaviour.

For example,
odb>ls /Equipment/gas/settings/my_bool -lt
Key name                        Type    #Val  Size  Last Opn Mode Value
---------------------------------------------------------------------------
my_bool                         BOOL    1     4     14m  0   RWD  y


odb>cd /custom/images/my_image.gif/labels
odb>ls
Src                             /Equipment/gas/settings/my_bool
Format                          val: %d (bool)
Font                            Medium
X                               10
Y                               10
Align                           0
FGColor                         FFFFFF
BGColor                         FF8800

Instead of the expected string "val: y (bool)", only the value of the key
appears, i.e. "y". 
The behaviour is the same whether I use %d, %u, %s, %c etc as the format character. 
  319   11 Jan 2007 Steve HardyForumShared memory problems
Hello,

Just did a fresh install of MIDAS from the SVN repository under CentOS and
everything compiles fine, but when I go to run the frontend (using dio), I get
the following error message:

Connect to experiment ...[odb.c:868:db_open_database] Different database format:
 Shared memory is 14, program is 2
[midas.c:1763:cm_connect_experiment1] cannot open database


Any ideas on what the problem could be, or how to fix it?  


~Steve
  321   11 Jan 2007 Steve HardyForumShared memory problems
Thanks for your help.  I tried again and it got me back to the initial problem I had.
 The frontend will start, and the analyzer starts (complains about there not being a
last.root, but other than that it's fine), and then when starting mlogger, I get:

[odb.c:860:db_validate_db] Warning: database corruption, first_free_key 0x0001A4
04
[odb.c:3666:db_get_key] invalid key handle
[midas.c:1970:cm_check_client] cannot delete client info
[odb.c:3666:db_get_key] invalid key handle
[midas.c:1970:cm_check_client] cannot delete client info
[odb.c:3666:db_get_key] invalid key handle


And it continues to shoot out error messages about invalid key handles until I kill
it.  Then trying to start the frontend again fails until I remove the .ODB.SHM file. 
Any other ideas?

> > Hello,
> > 
> > Just did a fresh install of MIDAS from the SVN repository under CentOS and
> > everything compiles fine, but when I go to run the frontend (using dio), I get
> > the following error message:
> > 
> > Connect to experiment ...[odb.c:868:db_open_database] Different database format:
> >  Shared memory is 14, program is 2
> > [midas.c:1763:cm_connect_experiment1] cannot open database
> > 
> > 
> > Any ideas on what the problem could be, or how to fix it?  
> 
> You have an old .ODB.SHM from a previous version in your directoy (note the '.' in
> front, so you need a 'ls -alg' to see it). Delete that file and try again.
  2458   22 Feb 2023 Stefano PiacentiniInfoconnection to a MySQL server: retry procedure in the Logger
Dear all,

we are experiencing a connection problem to the MySQL server that we use to log informations. Is there an 
option to retry multiple times the I/O on the MySQL?

The error we are experiencing is the following (hiding the IP address):

[Logger,ERROR] [mlogger.cxx:2455:write_runlog_sql,ERROR] Failed to connect to database: Error: Can't 
connect to MySQL server on 'xxx.xxx.xxx.xxx:6033' (110)

Then the logger stops, and must be restarted. This eventually happens only during the BOR or the EOR.

Best,
Stefano.
ELOG V3.1.4-2e1708b5