Reftek plugin, sources.reftek.map

Hello,

We (together with @racine and @cgarita26) noticed that the sources.Reftek.map parameter for the Reftek plugin doesn’t seems to have an effect for selecting the channel map file, as seen in seedlink.ini.

The only we found to setup the channel map file was to edit directly the file $SEISCOMP_ROOT/share/templates/seedlnk/reftek/seedlink_plugin.tpl with the full file path instead of $sources.reftek.mapFlag… btw this parameter name is not consistent with the parameter name within the corresponding seedlink profile (e.i. $sources.Reftek.map).

Any help to make this better?

Cheers

Fred

I don’t see an issue here while testing it. If you provide a unit in the binding then the map file you specified is being ignored and a default map file will be created. If you set the unit empty then your specified map file will be used and put into the plugin section of seedlink.ini. This is also displayed in the tooltip of the map edit in scconfig and stated in the documentation [1]. So what am I missing? You shouldn’t have to deal with seedlink_plugin.tpl.

Note it should be sources.reftek.map and not sources.Reftek.map.

Regards,
Jan

[1] https://docs.gempa.de/seiscomp3/current/apps/seedlink.html#confval-sources.reftek.map

Hi Jan,

we have been trying to follow what is recommended in the documentation. As we intend to configure many Reftek Units, it’s easier to create a reftek2sl.map file from the reftek configuration file and use one binding for all devices instead of configuring each device individually in its own binding. So we created our own reftek2sl.map and tried to reference it in the configuration, and left the unit field empty as described in the documentation.

However, the configured path is not written into the seedlink.ini, instead the default path to an autogenerated file called reftek2sl0.map is used. We don’t want to use this file, as it is probably overwritten during an update config.

Binding:

# Activated plugins for category sources
sources = reftek

# Hostname or IP of the RTPD server.
sources.reftek.address = 127.0.0.1

# Defines an alternative unit mapping file. The default file is in
# $INSTALLDIR/var/lib/seedlink/reftek2sl.map. If this path is not an absolute
# path it will treated as relative path to $INSTALLDIR/var/lib/seedlink. The
# map file is used if the unit is not explictly given in the binding. Each line
# in the file is one mapping from a unit to a station name. The first column is
# the unit id e.g. 91F3 and the second column the Seedlink station name e.g.
# ABCD.
sources.reftek.map = reftek-test/unit.map

# Name of the proc object (defined in streams.xml); used for processing raw
# streams (streams submitted by a plugin as raw samples).
sources.reftek.proc = reftek

seedlink.ini

* template: /home/sysop/seiscomp3/share/templates/seedlink/reftek/seedlink_plugin.tpl
plugin reftek0 cmd="/home/sysop/seiscomp3/share/plugins/seedlink/reftek_plugin -v -f '/home/sysop/seiscomp3/var/lib/seedlink/plugins.ini' -m '/home/sysop/seiscomp3/var/lib/seedlink/reftek-test/unit.map'"
             timeout = 0
             start_retry = 60
             shutdown_wait = 60
             proc = "reftek"

Is it that what you want?

Ok I think we did not get “relative path to $INSTALLDIR/var/lib/seedlink”. We’ll try that very soon!

Thanks.

But the full path should also work and that’s what we tried…

Yes, this is what we want. But the configured file path is not written into the seedlink.ini (unless, of course, we hardcode it in the template file of the reftek plugin which would be unflexible in case more than one reftek plugin is needed at some point).

We continued debugging today. It shows, that the problem is not as stated. The setup.py file reads our unit.map as expected, but when creating the autogenerated file reftek2sl0.map (or reftek2sl1.map etc.), it will not print the first column. The setup.py in line 99 is supposed to print out both:

fd.write("%s %s\n" % (c[0], c[1]))

Which brings me to the conclusion that our file unit.map is not parsed properly. The first row (Reftek ID) is not read. We have used this format:

Reftek-ID Seiscomp-ID

AA12 STN

If you define a custom mapping file then no file is auto generated. Note that unit must be unset to make this work. Empty is not the same. This should be improved in the documentation or in the setup script. So leave out the unit parameter from the key file. The mapping file that you specify will not be read, just linked.

Have you tried the example I posted above? Just run seiscomp udpate-config seedlink and it should work already.

Hi Jan,

Ok, we misinterpreted the help message of the reftek plugin and setup unit to empty (""). I’ve deleted this, did (update-config, restart) seedlink and it now works.

Thanks Jan!!!