<!-- Pt-web/src/app-root/ztr/TimingSetup.xml

 Copyright: ©2013, Güralp Systems Ltd.
 Author: Laurence Withers <lwithers@guralp.com>
 License: GPLv3

-->

<messages>



<!--============================================================================
Main page (contains tabs for the individual modes and overall controls)
=============================================================================-->

<!-- page title -->
<message id='text.TimingSetup.title'>Timing setup</message>

<!-- Overall page structure -->
<message id='tpl.TimingSetup.page'>

<p>${chooseTimezone}</p>

<p>Select the system time source. Currently it is set to
<strong>${currentMode}</strong>. Each possible timing mode explains how the two
clocks are controlled: the sampling clock is used for time series data, and the
Linux system clock is used for log files.</p>

<p>${modeSel}</p>
${modeSetup}
<p>${save}</p>
</message>

<!-- Names (used as tab titles) for the different modes -->
<message id='text.TimingSetup.mode_direct_gps'>Direct GPS</message>
<message id='text.TimingSetup.mode_ptp'>PTP</message>
<message id='text.TimingSetup.mode_ntp'>NTP</message>
<message id='text.TimingSetup.mode_manual'>Manually set</message>
<message id='text.TimingSetup.mode_dm24_gps'>CD24/DM24 with GPS</message>
<message id='text.TimingSetup.mode_dm24_xlate'>DM24 time of day</message>

<!-- Warning message shown if we're unable to load the current timing mode from
the system configuration file (path passed in {1}). -->
<message id='xhtml.TimingSetup.modeMissing'>Unable to load the <code>mode</code>
setting from <code>{1}</code>.</message>

<!-- Warning message shown if the built-in list of mode strings has an entry we
don't recognise (highlighted for the programmer). -->
<message id='xhtml.TimingSetup.unknownMode'>Unrecognised mode <code>{1}</code>.
Contact <a href='mailto:support@guralp.com'>support@guralp.com</a> with this
message.</message>

<!-- Title for the button that launches the timezone selection dialog -->
<message id='text.TimingSetup.chooseTimezone'>Choose timezone for display</message>



<!--============================================================================
Load/save messages
=============================================================================-->

<!-- Message displayed when saving begins -->
<message id='xhtml.TimingSetup.saveInProgress'><em>Saving
settings…</em></message>

<!-- Message displayed when saving completes successfully -->
<message id='xhtml.TimingSetup.saveComplete'><p class='successMessage'
>Settings saved.</p></message>

<!-- Message displayed when saving fails for any reason. Details of the failure
from the library code are passed in {1}. -->
<message id='xhtml.TimingSetup.saveError'><p class='errorMessage'
>Saving failed: <code>{1}</code></p></message>

<!-- Text for the button that closes the save results page and returns to the
configuration page. -->
<message id='text.TimingSetup.saveAcknowledge'>OK</message>

<!-- Notification of an error writing to a file. Filename is {1}, error message
is {2} and errno is {3}. -->
<message id='xhtml.TimingSetup.writeError'><p class='errorMessage'
>Error writing to file.<br/>
Filename: <code>{1}</code><br/>
Reason: <code>{2}</code> (error <code>{3}</code>)
</p></message>

<!-- Warning displayed when NTP configuration cannot be read. Filenames is {1},
error message is {2} and errno is {3}. -->
<message id='xhtml.TimingSetup.ntpLoadError'>Unable to load NTP configuration
from <code>{1}</code>: <code>{2}</code> (error <code>{3}</code>).</message>

<!-- Notification that a port previously set to NMEA in/out has been disabled.
{1} is the port's friendly name, and {2} its previous function. -->
<message id='xhtml.TimingSetup.disablingPort'><p><strong>{1}</strong> function
disabled (was previously {2}).</p></message>

<!-- Message emitted when NTP configuration is updated. -->
<message id='xhtml.TimingSetup.savedNTP'>
<p>NTP configuration updated.</p>
</message>

<!-- Message emitted when timing services are restarted. -->
<message id='xhtml.TimingSetup.svcRestarted'>
<p>Timing services have been restarted.</p>
</message>



<!--============================================================================
Timezone selection dialog
=============================================================================-->

<!-- Title of the dialog box -->
<message id='text.TimingSetup.TZSel.title'>Choose timezone for display</message>

<!-- Widget layout and explanatory text -->
<message id='tpl.TimingSetup.TZSel.layout'><p>Select the timezone used for
displaying dates and times. This does not alter the timestamp for data records;
it is only used for display purposes in this interface.</p>
<p>${select}</p></message>

<!-- Labels for accept/reject buttons for the dialog -->
<message id='text.TimingSetup.TZSel.accept'>Set timezone</message>
<message id='text.TimingSetup.TZSel.reject'>Cancel</message>

<!-- After saving, label used for the acknowledge/close dialog button -->
<message id='text.TimingSetup.TZSel.acknowledge'>Done</message>

<!-- Error message if we can't load the list of timezones. {1} is the path, {2}
is the system error message, {3} the error number. -->
<message id='xhtml.TimingSetup.TZSel.loadError'><p class='errorMessage'>Unable
to scan system timezone directory <code>{1}</code>: {2} (error {3}).
</p></message>

<!-- Error message if we can't create the configuration symlink {1}. {2} is the
system error message, {3} the error number. -->
<message id='xhtml.TimingSetup.TZSel.saveError'><p class='errorMessage'>Unable
to save timezone setting to file <code>{1}</code>: {2} (error {3}).
</p></message>

<!-- Message displayed when save is successful. {1} is the new timezone. -->
<message id='xhtml.TimingSetup.TZSel.saveSuccess'><p
class='successMessage'>Timezone set to {1}. System will need to be rebooted
for all programs to pick up the new setting.</p></message>



<!--============================================================================
Direct GPS input to NTP/system timing
=============================================================================-->

<message id='text.TimingSetup.DirectGPS.title'>Direct GPS configuration</message>
<message id='text.TimingSetup.DirectGPS.saveLabel'>Set timing to use direct GPS</message>

<!-- Tab layout. The text is customised on a per-machine basis. -->
<message id='tpl.TimingSetup.DirectGPS.tpl-DAS'>
<p>Connecting an external GPS receiver will cause the data acquisition clock to
use it as a time reference source. The system's NTP (network time protocol)
service will also use this reference. Although any serial port may be selected
for the NMEA, there is a specific pin to which the 1PPS signal must be
connected as discussed in the device manual.</p>

<p>${portSel}</p>
${portConfig}
</message>

<message id='tpl.TimingSetup.DirectGPS.tpl-NAM'>
<p>The CMG-NAM may act as a stratum 1 NTP (network time protocol) server when a
suitable external GPS receiver is connected to a serial port. Other equipment
may then be synchronised to the CMG-NAM using NTP.</p>

<p>${portSel}</p>
${portConfig}
</message>

<!-- Message emitted when serial port is set up for NMEA in. {1} is the friendly
name of the port. -->
<message id='xhtml.TimingSetup.DirectGPS.savedSerial'>
<p><strong>{1}</strong> function set to NMEA input.</p>
</message>



<!--============================================================================
PTP (IEEE1588 Precision Time Protocol)
=============================================================================-->

<message id='text.TimingSetup.PTP.title'>PTP configuration</message>
<message id='text.TimingSetup.PTP.saveLabel'>Set timing to PTP mode</message>

<!-- Tab layout with explanatory text -->
<message id='tpl.TimingSetup.PTP.layout'>
<p>The ADC clock will be disciplined using an external IEEE1588 Precision Time
Protocol (PTP) grandmaster clock. This mode is significantly more accurate than
NTP, but requires a grandmaster clock on the local network.</p>

<p>Delay mechanism: ${delayMechanism}</p>
<p>Transport layer: ${transportLayer}</p>
</message>

<!-- Descriptive names for delay mechanisms -->
<message id='text.TimingSetup.PTP.delayMechanism.auto'>Automatic (recommended)</message>
<message id='text.TimingSetup.PTP.delayMechanism.E2E'>E2E end-to-end for basic network</message>
<message id='text.TimingSetup.PTP.delayMechanism.P2P'>P2P peer-to-peer for IEEE1588-optimised network</message>

<!-- Descriptive names for transport layers -->
<message id='text.TimingSetup.PTP.transportLayer.IPv4'>IPv4 (UDP multicast)</message>
<message id='text.TimingSetup.PTP.transportLayer.IPv6'>IPv6 (UDP multicast)</message>
<message id='text.TimingSetup.PTP.transportLayer.802.3'>802.3 (raw Ethernet)</message>



<!--============================================================================
NTP (network mode)
=============================================================================-->

<message id='text.TimingSetup.NTP.title'>NTP configuration</message>
<message id='text.TimingSetup.NTP.saveLabel'>Set timing to NTP mode</message>

<!-- Tab layout, with per-machine explanatory text. -->
<message id='tpl.TimingSetup.NTP.tpl-DAS'>
<p>The ADC clock will be disciplined by an external NTP peer reference. Note
that PTP mode is much more accurate, but requires the purchase of a PTP
grandmaster clock.</p>

<p>Enter the address of one or more servers in the table below.</p>

${peerTable}
<div>${addPeer}</div>

<p>${toggleOutputPort}</p>
<p>${portSel}</p>
${portConfig}
</message>

<message id='tpl.TimingSetup.NTP.tpl-NAM'>
<p>The CMG-NAM system clock will be disciplined by an external NTP peer
reference. This clock is used for log timestamps but not data. The CMG-NAM is
also capable of acting as an NTP peer for further systems.</p>

${peerTable}
<div>${addPeer}</div>

<p>${toggleOutputPort}</p>
<p>${portSel}</p>
${portConfig}
</message>

<message id='tpl.TimingSetup.NTP.tpl-EAM'>
<p>The CMG-EAM Linux system clock will be disciplined by an external NTP peer
reference. It is not used for directly timestamping the data.</p>

<p>If desired, an NMEA output port can be configured which will allow a
CD24/DM24 digitiser to discipline its sample clock against the CMG-EAM's Linux
system clock. In systems where the EAM and CD24/DM24 are separate components,
this will require a special cable. In systems where the components are
integrated, this function is usually available on Port C.</p>

${peerTable}
<div>${addPeer}</div>

<p>${toggleOutputPort}</p>
<p>${portSel}</p>
${portConfig}
</message>


<!-- Table's column headings -->
<message id='xhtml.TimingSetup.NTP.peerAddressHeader'>Peer address</message>
<message id='xhtml.TimingSetup.NTP.peerOptionsHeader'>Options</message>
<message id='xhtml.TimingSetup.NTP.peerDeleteHeader'>Delete peer</message>

<!-- Table's column infotips -->
<message id='text.TimingSetup.NTP.peerAddressTip'>The remote NTP server (peer) address. This may be a hostname, an IPv4 address or an IPv6 address.</message>
<message id='text.TimingSetup.NTP.peerOptionsTip'>Options used for this peer. Refer to the NTP documentation for full details. The default of "minpoll 4 maxpoll 4" causes NTP to poll the server every 16 seconds, the highest frequency it supports. This gives the best accuracy.</message>

<!-- Label for button that adds a row to the NTP peers table. -->
<message id='text.TimingSetup.NTP.addPeer'>Add peer</message>

<!-- Label for button that deletes a row from the NTP peers table. -->
<message id='text.TimingSetup.NTP.deletePeer'>Delete</message>

<!-- Label for button that shows/enables the NMEA output port configuration. -->
<message id='text.TimingSetup.NTP.enableOutputPort'>Enable NMEA output port</message>

<!-- Label for button that hides/disables the NMEA output port configuration. -->
<message id='text.TimingSetup.NTP.disableOutputPort'>Disable NMEA output port</message>

<!-- Message emitted when serial port is set up for NMEA out. {1} is the
friendly name of the port. -->
<message id='xhtml.TimingSetup.NTP.savedSerial'>
<p><strong>{1}</strong> function set to NMEA output.</p>
</message>



<!--============================================================================
Manual timing mode
=============================================================================-->

<message id='text.TimingSetup.Manual.title'>Manual timing mode</message>
<message id='text.TimingSetup.Manual.saveLabel'>Set timing to manual control</message>

<message id='tpl.TimingSetup.Manual.tpl'>
<p>In manual timing mode, no correction will be made to the sample clock and it
will be left to run free. The timing may manually be jam set with the command
<code>force-digitiser-timing</code>, but this is not accurate${<if-dm24-likely>}
for attached CD24/DM24 units${</if-dm24-likely>}.</p>
<form role='form'>
<div class='form-group'>${enterDate}</div>
</form>
</message>



<!--============================================================================
CD24/DM24 timing mode (RTStatus)
=============================================================================-->

<message id='text.TimingSetup.DM24.title'>CD24/DM24 timing mode</message>
<message id='text.TimingSetup.DM24.saveLabel'>Set timing to follow CD24/DM24 with GPS</message>

<!-- Tab layout, with per-machine explanatory text. -->
<message id='tpl.TimingSetup.DM24.tpl-EAM'>
<p><strong>This is the normal, recommended timing mode.</strong> An external
GPS receiver is connected to the GPS port of the digitiser (if separate modules
are used, this is the port on the CD24/DM24 digitiser module). The sample clock
will be disciplined directly against the GPS reference. The Linux system clock,
used for log files and environmental data (but not time series data) will be
disciplined against the sample clock.</p>

<p>${enableRTStatus}</p>
</message>

<message id='tpl.TimingSetup.DM24.tpl-NAM'>
<p><em>Note: this mode is unusual on a CMG-NAM</em>. A GPS receiver is connected
to the GPS port of each attached CD24/DM24 unit (which are connected in turn
to the CMG-NAM via a serial port). The sample clock will be disciplined
directly against the GPS reference and the CMG-NAM's clock, used for logging
but not time series data, will be disciplined against the sample clock.</p>

<p>${enableRTStatus}</p>
</message>

<message id='tpl.TimingSetup.DM24.tpl-DAS'>
<p><em>Note: this mode is unusual on an Affinity</em>. <strong>This mode only
applies to a Affinity that does not have its own digitiser (ADC) boards but is
using a legacy CD24 or DM24 digitiser module.</strong> A GPS receiver is
connected to the GPS port of each attached CD24/DM24 unit (which are connected
in turn to the Affinity via a serial port). The sample clock will be disciplined
directly against the GPS reference and the Linux system clock, used for logging
but not the time series data, will be disciplined against the sample clock.</p>

<p>${enableRTStatus}</p>
</message>

<!-- Label for checkbox that runs the RTStatus enable script -->
<message id='text.TimingSetup.DM24.enableRTStatus'>Enable time sync (RTStatus) output on all attached CD24/DM24 digitisers.</message>

<!-- Message displayed when rtstatus-enable ran successfully. -->
<message id='xhtml.TimingSetup.DM24.rtstatusSuccess'><p class='successMessage'
>Time sync (RTStatus) output enabled on all attached CD24/DM24
digitisers.</p></message>

<!-- Message displayed when rtstatus-enable failed. -->
<message id='xhtml.TimingSetup.DM24.rtstatusFailure'><p class='errorMessage'
>Enabling time sync (RTStatus) on attached digitisers failed. Terminal logs
may be examined in <code>/var/log/libterminal</code> to understand
why.</p></message>



<!--============================================================================
DM24 translation mode (timestamp receiver)
=============================================================================-->

<message id='text.TimingSetup.DM24Xlate.title'>DM24 with time-of-day translation</message>
<message id='text.TimingSetup.DM24Xlate.saveLabel'>Set timing translator for DM24</message>

<message id='tpl.TimingSetup.DM24Xlate.layout'>
<p>In this mode, the CMG-EAM module acts as a translator between an externally
provided time of day string and the CMG-DM24 ADC module. Accurate timing
information, provided by a pulse-per-second (PPS) signal, is routed in
hardware, but the coarse second data is provided over a serial port and can
be translated before being transmitted on to the CMG-DM24. This is required if
a change of format or baud rate is needed as the CMG-DM24 only works with a
very specific set of NMEA-0183 sentences.</p>

<p><strong>Note:</strong> this only works with specific hardware which has been
modified to support PPS passthrough. Please contact <a
href='mailto:support@guralp.com'>support@guralp.com</a> if you are not sure
that this option is appropriate for your hardware.</p>

<p>Select input (time of day) port: ${inputPort}</p>
${inputConfig}

<p>Select output (NMEA for DM24) port: ${outputPort}</p>
${outputConfig}

${duplicateWarning}
</message>

<message id='xhtml.TimingSetup.DM24Xlate.duplicateWarning'>
<p class='errorMessage'>Input and output port cannot be the same.</p>
</message>

<message id='xhtml.TimingSetup.DM24Xlate.savedSerialIn'>
<p class='successMessage'>Timestamp receiver activated on {1}.</p>
</message>
<message id='xhtml.TimingSetup.DM24Xlate.savedSerialOut'>
<p class='successMessage'>NMEA output activated on {1}.</p>
</message>

</messages>
