mbgtools-lx  4.2.8
pcpslstr.h
Go to the documentation of this file.
1 
2 /**************************************************************************
3  *
4  * $Id: pcpslstr.h 1.32 2018/12/11 16:03:11 martin EXP $
5  *
6  * Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
7  *
8  * Description:
9  * Definitions and prototypes for pcpslstr.c.
10  *
11  * -----------------------------------------------------------------------
12  * $Log: pcpslstr.h $
13  * Revision 1.32 2018/12/11 16:03:11 martin
14  * Updated function prototypes.
15  * Revision 1.31 2018/01/15 18:25:16Z martin
16  * Updated function prototypes.
17  * Revision 1.30 2017/07/05 17:37:03 martin
18  * Check for MBG_TGT_POSIX instead of MBG_TGT_UNIX.
19  * Account for new modes for programmable pulse outputs.
20  * Started to add doxygen comments.
21  * Fixed typos, wording, and doxygen comments.
22  * Updated function prototypes.
23  * Revision 1.29 2012/11/20 10:47:29 martin
24  * Moved some code definitions for special chars
25  * to new header charcode.h.
26  * Revision 1.28 2012/10/15 13:01:23 martin
27  * Include cfg_hlp.h.
28  * Made all declarations extern C.
29  * Added menu titles for PTP and PTP Unicast configuration.
30  * Added DEFAULT_OPT_NAME_TR_DISTANCE.
31  * Support time slots mode for programmable pulse outputs.
32  * Added strings for programmable output synthesizer mode.
33  * Fixed build under FreeBSD.
34  * Also use ANSI umlauts under QNX.
35  * Updated function prototypes.
36  * Revision 1.27 2010/06/28 08:28:17Z stefan
37  * Added greek character mu.
38  * Corrected a spelling mistake.
39  * Defined umlauts as hex codes.
40  * Added _pcps_sprint_vernum macro which is either _dec or _hex,
41  * depending on the target platform.
42  * Revision 1.26 2010/06/25 13:58:25 daniel
43  * Added IgnoreTFOM related language strings
44  * Revision 1.25 2010/01/28 09:02:27 martin
45  * Added menu option name for LAN interface.
46  * Added German POUT mode names for DCF77_M59.
47  * Revision 1.24 2009/03/19 08:07:45Z daniel
48  * Updated function prototypes.
49  * Revision 1.23 2008/11/14 12:12:45Z martin
50  * Updated function prototypes.
51  * Revision 1.22 2008/01/17 09:12:41Z daniel
52  * Use mbg_tgt.h, specially to care about wchar_t.
53  * Added strings for WEZ/WESZ, BST, GMT.
54  * Updated function prototypes.
55  * Revision 1.21 2007/03/30 13:24:42Z martin
56  * Added initializer for status string if time has been set manually.
57  * Revision 1.20 2007/03/29 12:59:23Z martin
58  * Moved some definitions here.
59  * Added and modified some definitions related to TZCODE.
60  * Revision 1.19 2006/10/23 15:18:15Z martin
61  * Added some configuration warning msg texts.
62  * Added definitions for uppercase umlauts.
63  * Separated English and German initializers for some strings.
64  * Revision 1.18 2006/09/26 14:57:22Z martin
65  * Added DEFAULT_OPT_NAME_POUT.
66  * Revision 1.17 2000/07/02 07:02:16Z martin
67  * Separate English and German initializers for "invalid time".
68  * Revision 1.16 2006/05/23 20:13:24Z martin
69  * Added initializers for German POUT mode strings.
70  * Revision 1.15 2005/12/20 10:30:56Z martin
71  * Made some strings start with uppercase letters.
72  * Revision 1.14 2005/08/12 12:35:34Z martin
73  * Fixed missing comma in a macro.
74  * Revision 1.13 2005/03/03 08:49:38Z martin
75  * Modified DEFAULT_OPT_NAME_SERIAL.
76  * Modified DEFAULT_OPT_NAME_IRIG_...
77  * Added default strings for synthesizer.
78  * Revision 1.12 2004/11/23 09:36:12Z martin
79  * Fixed a typo.
80  * Revision 1.11 2004/11/09 15:08:08Z martin
81  * Defined some separate strings for English and German.
82  * Modified some string contents.
83  * Revision 1.10 2004/10/26 15:03:57 martin
84  * Distinguish between IRIG RX and TX strings.
85  * Revision 1.9 2004/08/18 14:59:04Z martin
86  * Defined some flag bits to control the format of the output string
87  * generated by pcps_tz_name().
88  * Updated function prototypes.
89  * Revision 1.8 2004/04/07 12:49:06Z martin
90  * Added initializers for IRIG output cfg strings.
91  * Revision 1.7 2003/04/15 10:47:29Z martin
92  * Added initializers for IRIG menu strings.
93  * Updated function prototypes.
94  * Revision 1.6 2002/12/18 13:57:53 martin
95  * Some definitions and variables made global.
96  * Added some new macros _pcps_sprint_vernum...()
97  * and _pcps_sprint_dev_id().
98  * Revision 1.5 2002/02/19 10:01:36Z MARTIN
99  * New initializers for string mode names.
100  * New global variables mode_name and short_mode_name.
101  * Updated function prototypes.
102  * Revision 1.4 2001/09/17 13:26:16 MARTIN
103  * Added definitions for PCPS_STATUS_STRS.
104  * Added initializers for strings.
105  * Added some comments.
106  * Updated function prototypes.
107  * Revision 1.3 2001/08/14 11:35:40 MARTIN
108  * Added initializers for commonly used mulit-language
109  * text strings.
110  * Revision 1.2 2001/02/28 15:48:34 MARTIN
111  * Updated function prototypes.
112  * Modified syntax to initialize variables.
113  * Revision 1.1 2000/07/21 12:15:12 MARTIN
114  * Initial revision
115  *
116  **************************************************************************/
117 
118 #ifndef _PCPSLSTR_H
119 #define _PCPSLSTR_H
120 
121 
122 /* Other headers to be included */
123 
124 #include <str_util.h>
125 #include <charcode.h>
126 #include <cfg_hlp.h>
127 #include <pcpsdev.h>
128 #include <ctrydttm.h>
129 #include <cnv_wday.h>
130 
131 
132 #ifdef _PCPSLSTR
133  #define _ext
134  #define _DO_INIT
135 #else
136  #define _ext extern
137 #endif
138 
139 
140 /* Start of header body */
141 
142 #ifdef __cplusplus
143 extern "C" {
144 #endif
145 
146 
147 #if defined( MBG_TGT_WIN32 ) \
148  || defined( MBG_TGT_POSIX ) \
149  || defined( MBG_TGT_QNX )
150 
151  #define DEFAULT_PCPS_WDAY_DATE_DIST 1
152  #define DEFAULT_PCPS_DATE_TIME_DIST 2
153  #define DEFAULT_PCPS_TIME_TZ_DIST 1
154 
155 #else
156 
157  #define DEFAULT_PCPS_WDAY_DATE_DIST 1
158  #define DEFAULT_PCPS_DATE_TIME_DIST 2
159  #define DEFAULT_PCPS_TIME_TZ_DIST 1
160 
161 #endif
162 
163 
164 
171 {
175 };
176 
177 
188 {
191 };
192 
193 
194 
195 // The definitions below are used with pcps_get_status_strs().
196 
197 #define N_PCPS_STATUS_STR 3
198 
199 typedef struct
200 {
201  const char *cp;
202  int is_err;
204 
205 typedef struct
206 {
209 
210 
211 // initializers for commonly use multi-language strings
212 // (type: CLSTR )
213 
214 
215 // time adjustment window
216 
217 #define DEFAULT_STR_TIME_ADJ_STATUS \
218 { \
219  "Time Adjustment Status", \
220  "Status der Zeitkontrolle" \
221 }
222 
223 #define DEFAULT_STR_SYS_TIME \
224 { \
225  "System Time:", \
226  "Systemzeit:" \
227 }
228 
229 #define DEFAULT_STR_REF_TIME \
230 { \
231  "Reference Time:", \
232  "Referenzzeit:" \
233 }
234 
235 #define DEFAULT_STR_DELTA_TIME \
236 { \
237  "Difference:", \
238  "Zeitdifferenz:" \
239 }
240 
241 #define DEFAULT_STR_LAST_CORR \
242 { \
243  "Last Correction:", \
244  "Letzte Korrektur:" \
245 }
246 
247 #define DEFAULT_STR_WAIT_SYNC \
248 { \
249  "Waiting for Sync After Reset ...", \
250  "Warte auf Sync. nach Reset ..." \
251 }
252 
253 
254 // ref time window
255 
256 #define DEFAULT_STR_REF_TIME_INFO \
257 { \
258  "Reference Time Info", \
259  "Referenzzeit" \
260 }
261 
262 #define DEFAULT_STR_REF_SRC_LABEL \
263 { \
264  "Time Source:", \
265  "Funkuhr ID:" \
266 }
267 
268 #define DEFAULT_STR_REF_SYNC_LABEL \
269 { \
270  "Last Sync.:", \
271  "Letzte Sync.:" \
272 }
273 
274 
275 // Clock status messages:
276 
277 // Time is not valid (i.e. after batt. empty).
278 #define DEFAULT_STR_TIME_INVAL_EN \
279  "Ref. Time is Invalid"
280 
281 #define DEFAULT_STR_TIME_INVAL_DE \
282  "Referenzzeit nicht g" LCUE "ltig"
283 
284 #define DEFAULT_STR_TIME_INVAL \
285 { \
286  DEFAULT_STR_TIME_INVAL_EN, \
287  DEFAULT_STR_TIME_INVAL_DE \
288 }
289 
290 // on-board time has been set manually
291 #define DEFAULT_STR_SET_MANUALLY \
292 { \
293  "Time has been set manually", \
294  "Zeit wurde manuell gesetzt" \
295 }
296 
297 // DCF77 receiver has synch'd at least once
298 // after reset.
299 #define DEFAULT_STR_DCF_HAS_SYNCD \
300 { \
301  "Synchronized after last RESET", \
302  "Sync. nach RESET ist erfolgt" \
303 }
304 
305 // DCF77 receiver has not synch'd after reset.
306 #define DEFAULT_STR_DCF_HAS_NOT_SYNCD \
307 { \
308  "Not synchronized after last RESET", \
309  "Sync. nach RESET noch nicht erfolgt" \
310 }
311 
312 // DCF77 receiver currently runs on XTAL.
313 #define DEFAULT_STR_DCF_FREE_RUNNING \
314 { \
315  "Clock running on Xtal oscillator", \
316  "Funkuhr l" LCAE "uft frei auf Quarzbasis" \
317 }
318 
319 // DCF77 receiver is currently synchronized.
320 #define DEFAULT_STR_DCF_NOT_FREE_RUNNING \
321 { \
322  "Clock is synchronized", \
323  "Senderf" LCUE "hrung" \
324 }
325 
326 // GPS receiver is currently synchronized.
327 #define DEFAULT_STR_GPS_SYNCD \
328 { \
329  "Time is synchronized", \
330  "Zeitsynchronisation ist erfolgt" \
331 }
332 
333 // GPS receiver is currently synchronized.
334 #define DEFAULT_STR_GPS_NOT_SYNCD \
335 { \
336  "Time not synchronized", \
337  "Zeit ist nicht synchron" \
338 }
339 
340 // GPS receiver has verified its position.
341 #define DEFAULT_STR_GPS_POS_OK \
342 { \
343  "Receiver position has been verified", \
344  "Positionbestimmung durchgef" LCUE "hrt" \
345 }
346 
347 // GPS receiver has not verified its position.
348 #define DEFAULT_STR_GPS_POS_NOT_OK \
349 { \
350  "Receiver pos. not verified", \
351  "Position nicht gepr" LCUE "ft" \
352 }
353 
354 // Announcement of DST change.
355 #define DEFAULT_STR_ANN_DST \
356 { \
357  "Change in Daylight Saving Announced", \
358  "Zeitumschaltung angek" LCUE "ndigt" \
359 }
360 
361 // Announcement of leap second.
362 #define DEFAULT_STR_ANN_LS \
363 { \
364  "Leap Second Announced", \
365  "Schaltsekunde angek" LCUE "ndigt" \
366 }
367 
368 
369 // menu option: setup (title)
370 
371 #define DEFAULT_OPT_NAME_SETUP_EN \
372  "Setup"
373 
374 #define DEFAULT_OPT_NAME_SETUP_DE \
375  "Einstellungen"
376 
377 #define DEFAULT_OPT_NAME_SETUP \
378 { \
379  DEFAULT_OPT_NAME_SETUP_EN, \
380  DEFAULT_OPT_NAME_SETUP_DE \
381 }
382 
383 
384 // menu option: setup date/time
385 
386 #define DEFAULT_OPT_NAME_SET_TIME_EN \
387  "Radio Clock's Date/Time"
388 
389 #define DEFAULT_OPT_NAME_SET_TIME_DE \
390  "Datum/Zeit der Funkuhr"
391 
392 #define DEFAULT_OPT_NAME_SET_TIME \
393 { \
394  DEFAULT_OPT_NAME_SET_TIME_EN, \
395  DEFAULT_OPT_NAME_SET_TIME_DE \
396 }
397 
398 #define DEFAULT_STR_NEW_DATE \
399 { \
400  "New date", \
401  "Neues Datum" \
402 }
403 
404 #define DEFAULT_STR_NEW_TIME \
405 { \
406  "New time", \
407  "Neue Zeit" \
408 }
409 
410 
411 // menu option: setup time zone
412 
413 #define TZ_NAME_UTC "UTC"
414 
415 #define TZ_NAME_MEZ "MEZ"
416 #define TZ_NAME_MESZ "MESZ"
417 #define TZ_NAME_CET "CET"
418 #define TZ_NAME_CEST "CEST"
419 
420 #define TZ_NAME_OEZ "OEZ"
421 #define TZ_NAME_OESZ "OESZ"
422 #define TZ_NAME_EET "EET"
423 #define TZ_NAME_EEST "EEST"
424 
425 #define TZ_NAME_WEZ "WEZ"
426 #define TZ_NAME_WESZ "WESZ"
427 #define TZ_NAME_GMT "GMT"
428 #define TZ_NAME_BST "BST"
429 
430 #define DEFAULT_OPT_NAME_TZ \
431 { \
432  "Radio Clock's Time Zone", \
433  "Zeitzone der Funkuhr" \
434 }
435 
436 
437 // menu option: setup time zone
438 
439 #define DEFAULT_TZCODE_NAME_CET_CEST \
440 { \
441  TZ_NAME_CET "/" TZ_NAME_CEST, \
442  TZ_NAME_MEZ "/" TZ_NAME_MESZ \
443 }
444 
445 #define DEFAULT_TZCODE_HINT_CET_CEST \
446 { \
447  "Central European Time or Summer Time, as broadcast by DCF77", \
448  "Mitteleurop" LCAE "ische Zeit oder Sommerzeit, wie von DCF77 gesendet" \
449 }
450 
451 #define DEFAULT_TZCODE_NAME_GMT_BST \
452 { \
453  TZ_NAME_GMT "/" TZ_NAME_BST, \
454  TZ_NAME_WEZ "/" TZ_NAME_WESZ \
455 }
456 
457 #define DEFAULT_TZCODE_HINT_GMT_BST \
458 { \
459  "Greenwich Mean Time or British Summer Time, as broadcast by MSF", \
460  "Westeurop" LCAE "ische Zeit oder britische Sommerzeit, wie von MSF gesendet" \
461 }
462 
463 
464 
465 #define DEFAULT_TZCODE_NAME_CET \
466 { \
467  "always " TZ_NAME_CET, \
468  "immer " TZ_NAME_MEZ \
469 }
470 
471 #define DEFAULT_TZCODE_HINT_CET \
472 { \
473  "always CET (UTC+1h), daylight saving suppressed", \
474  "immer MEZ (UTC+1h), Sommerzeit wird unterdr" LCUE "ckt" \
475 }
476 
477 
478 #define DEFAULT_TZCODE_NAME_UTC \
479 { \
480  TZ_NAME_UTC, \
481  TZ_NAME_UTC \
482 }
483 
484 #define DEFAULT_TZCODE_HINT_UTC \
485 { \
486  "always UTC", \
487  "immer UTC" \
488 }
489 
490 
491 #define DEFAULT_TZCODE_NAME_EET_EEST \
492 { \
493  TZ_NAME_EET "/" TZ_NAME_EEST, \
494  TZ_NAME_OEZ "/" TZ_NAME_OESZ \
495 }
496 
497 #define DEFAULT_TZCODE_HINT_EET_EEST \
498 { \
499  "East European Time, CET/CEST + 1h", \
500  "Osteurop" LCAE "ische Zeit, MEZ/MESZ + 1h" \
501 }
502 
503 
504 #define DEFAULT_TZCODE_NAMES \
505 { \
506  DEFAULT_TZCODE_NAME_CET_CEST, \
507  DEFAULT_TZCODE_NAME_CET, \
508  DEFAULT_TZCODE_NAME_UTC, \
509  DEFAULT_TZCODE_NAME_EET_EEST \
510 }
511 
512 #define DEFAULT_TZCODE_HINTS \
513 { \
514  DEFAULT_TZCODE_HINT_CET_CEST, \
515  DEFAULT_TZCODE_HINT_CET, \
516  DEFAULT_TZCODE_HINT_UTC, \
517  DEFAULT_TZCODE_HINT_EET_EEST \
518 }
519 
520 
521 // menu option: setup serial parameters
522 
523 #define DEFAULT_OPT_NAME_SERIAL \
524 { \
525  "On-Board Serial Ports", \
526  "Serielle Schnittstellen der Karte" \
527 }
528 
529 
530 // menu option: setup enable flags
531 
532 #define DEFAULT_OPT_NAME_EF \
533 { \
534  "Enable Outputs", \
535  "Freischaltung der Ausg" LCAE "nge" \
536 }
537 
538 
539 // menu option: setup length of antenna cable
540 
541 #define DEFAULT_OPT_NAME_CAB_LEN \
542 { \
543  "Antenna Cable", \
544  "Antennenkabel" \
545 }
546 
547 
548 // menu option: setup distance from transmitter
549 
550 #define DEFAULT_OPT_NAME_TR_DISTANCE \
551 { \
552  "Distance from Transmitter", \
553  "Senderentfernung" \
554 }
555 
556 
557 // menu option: setup IRIG config
558 
559 #define DEFAULT_OPT_NAME_IRIG_TX_EN "IRIG Output"
560 #define DEFAULT_OPT_NAME_IRIG_TX_DE "IRIG-Ausgang"
561 
562 #define DEFAULT_OPT_NAME_IRIG_TX \
563 { \
564  DEFAULT_OPT_NAME_IRIG_TX_EN, \
565  DEFAULT_OPT_NAME_IRIG_TX_DE \
566 }
567 
568 
569 #define DEFAULT_OPT_NAME_IRIG_RX_EN "IRIG Input"
570 #define DEFAULT_OPT_NAME_IRIG_RX_DE "IRIG-Eingang"
571 
572 #define DEFAULT_OPT_NAME_IRIG_RX \
573 { \
574  DEFAULT_OPT_NAME_IRIG_RX_EN, \
575  DEFAULT_OPT_NAME_IRIG_RX_DE \
576 }
577 
578 
579 #define DEFAULT_STR_IRIG_FMT_EN "IRIG Code Format"
580 #define DEFAULT_STR_IRIG_FMT_DE "IRIG Code-Format"
581 
582 #define DEFAULT_STR_IRIG_FMT \
583 { \
584  DEFAULT_STR_IRIG_FMT_EN, \
585  DEFAULT_STR_IRIG_FMT_DE \
586 }
587 
588 
589 #define DEFAULT_STR_IRIG_OFFS_EN "IRIG Time Offset from UTC"
590 #define DEFAULT_STR_IRIG_OFFS_DE "IRIG-Zeitoffset zu UTC"
591 
592 #define DEFAULT_STR_IRIG_OFFS \
593 { \
594  DEFAULT_STR_IRIG_OFFS_EN, \
595  DEFAULT_STR_IRIG_OFFS_DE \
596 }
597 
598 
599 #define DEFAULT_STR_IRIG_TIMESTR_UTC_EN "Send serial UTC"
600 #define DEFAULT_STR_IRIG_TIMESTR_UTC_DE "Seriell UTC ausgeben"
601 
602 #define DEFAULT_STR_IRIG_TIMESTR_UTC \
603 { \
604  DEFAULT_STR_IRIG_TIMESTR_UTC_EN, \
605  DEFAULT_STR_IRIG_TIMESTR_UTC_DE \
606 }
607 
608 
609 #define DEFAULT_STR_IRIG_OUTPUT_LOC_TM_EN "Transmit local time instead of UTC"
610 #define DEFAULT_STR_IRIG_OUTPUT_LOC_TM_DE "Ortszeit statt UTC aussenden"
611 
612 #define DEFAULT_STR_IRIG_OUTPUT_LOC_TM \
613 { \
614  DEFAULT_STR_IRIG_OUTPUT_LOC_TM_EN, \
615  DEFAULT_STR_IRIG_OUTPUT_LOC_TM_DE \
616 }
617 
618 #define DEFAULT_IGNORE_RX_TFOM_EN "Ignore TFOM"
619 #define DEFAULT_IGNORE_RX_TFOM_DE "Ignoriere TFOM"
620 
621 #define DEFAULT_IGNORE_RX_TFOM \
622 { \
623  DEFAULT_IGNORE_RX_TFOM_EN, \
624  DEFAULT_IGNORE_RX_TFOM_DE \
625 }
626 
627 #define DEFAULT_STR_TFOM_ALWAYS_SYNC_EN "Output TFOM always as 'sync'"
628 #define DEFAULT_STR_TFOM_ALWAYS_SYNC_DE "TFOM immer als 'sync' ausgeben"
629 
630 #define DEFAULT_STR_TFOM_ALWAYS_SYNC \
631 { \
632  DEFAULT_STR_TFOM_ALWAYS_SYNC_EN, \
633  DEFAULT_STR_TFOM_ALWAYS_SYNC_DE \
634 }
635 
636 
637 #define DEFAULT_STR_IRIG_NOT_CFGD_EN \
638  "The IRIG receiver has not yet been configured!\n" \
639  "\n" \
640  "Please make sure the correct " DEFAULT_STR_IRIG_FMT_EN " has been\n" \
641  "selected, and enter the correct " DEFAULT_STR_IRIG_OFFS_EN "\n" \
642  "according to the settings of the IRIG generator."
643 
644 #define DEFAULT_STR_IRIG_NOT_CFGD_DE \
645  "Der IRIG-Empf" LCAE "nger wurde noch nicht konfiguriert!\n" \
646  "\n" \
647  "Das ausgew" LCAE "hlte " DEFAULT_STR_IRIG_FMT_DE " sowie der\n" \
648  DEFAULT_STR_IRIG_OFFS_DE " m" LCUE "ssen den Einstellungen\n" \
649  "des verwendeten IRIG-Generators entsprechen."
650 
651 #define DEFAULT_STR_IRIG_NOT_CFGD \
652 { \
653  DEFAULT_STR_IRIG_NOT_CFGD_EN, \
654  DEFAULT_STR_IRIG_NOT_CFGD_DE \
655 }
656 
657 
658 #define DEFAULT_STR_IRIG_INVT_EN \
659  "Please note that the IRIG receiver status may read\n" \
660  "\"" DEFAULT_STR_TIME_INVAL_EN "\" if the receiver's on-board date\n" \
661  "does not correspond to the date (day-of-year number)\n" \
662  "transmitted by the IRIG source."
663 
664 #define DEFAULT_STR_IRIG_INVT_DE \
665  "Wenn im Status des IRIG-Empf" LCAE "ngers \"" DEFAULT_STR_TIME_INVAL_DE "\"\n" \
666  "angezeigt wird, kann der Grund daf" LCUE "r sein, dass das Datum\n" \
667  "auf der Einsteckkarte nicht mit dem vom IRIG-Generator\n" \
668  "gesendeten Datum (bzw. dem Jahrestag) " LCUE "bereinstimmt." \
669 
670 #define DEFAULT_STR_IRIG_INVT \
671 { \
672  DEFAULT_STR_IRIG_INVT_EN, \
673  DEFAULT_STR_IRIG_INVT_DE \
674 }
675 
676 
677 // menu option: programmable outputs
678 
679 #define DEFAULT_OPT_NAME_POUT \
680 { \
681  "Programmable Pulse Outputs", \
682  "Programmierbare Schaltausg" LCAE "nge" \
683 }
684 
685 
686 // menu option: frequency synthesizer
687 
688 #define DEFAULT_OPT_NAME_SYNTH \
689 { \
690  "Frequency Synthesizer", \
691  "Frequenz-Synthesizer" \
692 }
693 
694 #define DEFAULT_STR_SYNTH_FREQ \
695 { \
696  "Frequency", \
697  "Frequenz" \
698 }
699 
700 #define DEFAULT_STR_SYNTH_PHASE \
701 { \
702  "Phase", \
703  NULL \
704 }
705 
706 
707 // menu option: LAN interface
708 
709 #define DEFAULT_OPT_NAME_LAN_INTF_EN "LAN Interface"
710 #define DEFAULT_OPT_NAME_LAN_INTF_DE "Netzwerkschnittstelle"
711 
712 #define DEFAULT_OPT_NAME_LAN_INTF \
713 { \
714  DEFAULT_OPT_NAME_LAN_INTF_EN, \
715  DEFAULT_OPT_NAME_LAN_INTF_DE \
716 }
717 
718 
719 
720 // menu option: PTP configuration
721 
722 #define DEFAULT_OPT_NAME_PTP_CFG_EN "PTP Configuration"
723 #define DEFAULT_OPT_NAME_PTP_CFG_DE "PTP-Konfiguration"
724 
725 #define DEFAULT_OPT_NAME_PTP_CFG \
726 { \
727  DEFAULT_OPT_NAME_PTP_CFG_EN, \
728  DEFAULT_OPT_NAME_PTP_CFG_DE \
729 }
730 
731 
732 
733 // menu option: PTP Unicast configuration
734 
735 #define DEFAULT_OPT_NAME_PTP_UC_CFG_EN "PTP Unicast Configuration"
736 #define DEFAULT_OPT_NAME_PTP_UC_CFG_DE "PTP-Unicast-Konfiguration"
737 
738 #define DEFAULT_OPT_NAME_PTP_UC_CFG \
739 { \
740  DEFAULT_OPT_NAME_PTP_UC_CFG_EN, \
741  DEFAULT_OPT_NAME_PTP_UC_CFG_DE \
742 }
743 
744 
745 
746 /*
747  * Default initializers for German mode string names.
748  * English strings are defined in in gpsdefs.h.
749  */
750 #define GER_MODE_NAME_STR_ON_REQ "nur auf Anfrage '?'"
751 #define GER_MODE_NAME_STR_PER_SEC "sek" LCUE "ndlich"
752 #define GER_MODE_NAME_STR_PER_MIN "min" LCUE "tlich"
753 #define GER_MODE_NAME_STR_AUTO "automatisch"
754 #define GER_MODE_NAME_STR_ON_REQ_SEC "sek" LCUE "ndlich nach Anfrage"
755 
756 #define DEFAULT_MODE_NAMES \
757 { \
758  { ENG_MODE_NAME_STR_ON_REQ, GER_MODE_NAME_STR_ON_REQ }, \
759  { ENG_MODE_NAME_STR_PER_SEC, GER_MODE_NAME_STR_PER_SEC }, \
760  { ENG_MODE_NAME_STR_PER_MIN, GER_MODE_NAME_STR_PER_MIN }, \
761  { ENG_MODE_NAME_STR_AUTO, GER_MODE_NAME_STR_AUTO }, \
762  { ENG_MODE_NAME_STR_ON_REQ_SEC, GER_MODE_NAME_STR_ON_REQ_SEC } \
763 }
764 
765 
766 /*
767  * Default initializers for German pulse output mode string names.
768  * English strings are defined in in gpsdefs.h.
769  */
770 #define GER_POUT_NAME_IDLE "Nicht verwendet"
771 #define GER_POUT_NAME_TIMER "Zeitschaltung"
772 #define GER_POUT_NAME_SINGLE_SHOT "Einzelimpuls"
773 #define GER_POUT_NAME_CYCLIC_PULSE "Zyklischer Impuls"
774 #define GER_POUT_NAME_PER_SEC "Sek" LCUE "ndlicher Impuls"
775 #define GER_POUT_NAME_PER_MIN "Min" LCUE "tlicher Impuls"
776 #define GER_POUT_NAME_PER_HOUR "St" LCUE "ndlicher Impuls"
777 #define GER_POUT_NAME_DCF77 "DCF77-Zeitmarken"
778 #define GER_POUT_NAME_POS_OK "Position OK"
779 #define GER_POUT_NAME_TIME_SYNC "Zeit synchron"
780 #define GER_POUT_NAME_ALL_SYNC "Alles synchron"
781 #define GER_POUT_NAME_TIMECODE "DCLS-Zeitcode"
782 #define GER_POUT_NAME_TIMESTR "Serielles Zeittelegramm"
783 #define GER_POUT_NAME_10MHZ "Festfrequenz 10 MHz"
784 #define GER_POUT_NAME_DCF77_M59 "DCF77-Zeitmarken mit 59. Impuls"
785 #define GER_POUT_NAME_SYNTH "Synthesizer-Frequenz"
786 #define GER_POUT_NAME_TIME_SLOTS "Zeitschlitze pro Minute"
787 #define GER_POUT_NAME_GPIO "GPIO-Signal"
788 #define GER_POUT_PTTI_PPS "PTTI 1 PPS"
789 #define GER_POUT_HAVEQUICK "HaveQuick"
790 
791 #define DEFAULT_GER_POUT_NAMES \
792 { \
793  GER_POUT_NAME_IDLE, \
794  GER_POUT_NAME_TIMER, \
795  GER_POUT_NAME_SINGLE_SHOT, \
796  GER_POUT_NAME_CYCLIC_PULSE, \
797  GER_POUT_NAME_PER_SEC, \
798  GER_POUT_NAME_PER_MIN, \
799  GER_POUT_NAME_PER_HOUR, \
800  GER_POUT_NAME_DCF77, \
801  GER_POUT_NAME_POS_OK, \
802  GER_POUT_NAME_TIME_SYNC, \
803  GER_POUT_NAME_ALL_SYNC, \
804  GER_POUT_NAME_TIMECODE, \
805  GER_POUT_NAME_TIMESTR, \
806  GER_POUT_NAME_10MHZ, \
807  GER_POUT_NAME_DCF77_M59, \
808  GER_POUT_NAME_SYNTH, \
809  GER_POUT_NAME_TIME_SLOTS, \
810  GER_POUT_NAME_GPIO, \
811  GER_POUT_PTTI_PPS, \
812  GER_POUT_HAVEQUICK \
813 }
814 
815 /*
816  * Default initializers for German pulse output mode hints.
817  * English strings are defined in in gpsdefs.h.
818  */
819 #define GER_POUT_HINT_IDLE "Konstanter Ausgangspegel"
820 #define GER_POUT_HINT_TIMER "Schalten zu den angegebenen Zeiten"
821 #define GER_POUT_HINT_SINGLE_SHOT "Einzelner Impuls mit angegebener L" LCAE "nge"
822 #define GER_POUT_HINT_CYCLIC_PULSE "Impulse wiederholt nach angegebenem Intervall"
823 #define GER_POUT_HINT_PER_SEC "Impuls zu Beginn jeder Sekunde"
824 #define GER_POUT_HINT_PER_MIN "Impuls zu Beginn jeder Minute"
825 #define GER_POUT_HINT_PER_HOUR "Impuls zu Beginn jeder Stunde"
826 #define GER_POUT_HINT_DCF77 "DCF77-kompatible Zeitmarken"
827 #define GER_POUT_HINT_POS_OK "Schalten, wenn Empf" LCAE "ngerposition " LCUE "berpr" LCUE "ft"
828 #define GER_POUT_HINT_TIME_SYNC "Schalten, wenn Zeit synchron"
829 #define GER_POUT_HINT_ALL_SYNC "Schalten, wenn Zeit synchron und Position " LCUE "berpr" LCUE "ft"
830 #define GER_POUT_HINT_TIMECODE "Unmodulierter Zeitcode des IRIG-Ausgangs"
831 #define GER_POUT_HINT_TIMESTR "Zeittelegramm der seriellen Schnittstelle der Karte duplizieren"
832 #define GER_POUT_HINT_10MHZ "Feste Ausgangsfrequenz 10 MHz"
833 #define GER_POUT_HINT_DCF77_M59 "Zeitmarken wie DCF77, aber mit 500 ms Impuls in 59. Sekunde"
834 #define GER_POUT_HINT_SYNTH "Durch programmierbaren Synthesizer erzeugte Frequenz"
835 #define GER_POUT_HINT_TIME_SLOTS "Programmierbare Zeitslots, die in jeder Minute aktiviert werden"
836 #define GER_POUT_HINT_GPIO "Signal des spezifizierten GPIO-Ein- oder Ausgangs"
837 #define GER_POUT_HINT_PTTI_PPS "20 us-Impuls zum Sekundenbeginn"
838 #define GER_POUT_HINT_HAVEQUICK "Dupliziertes HaveQuick-Signal"
839 
840 #define DEFAULT_GER_POUT_HINTS \
841 { \
842  GER_POUT_HINT_IDLE, \
843  GER_POUT_HINT_TIMER, \
844  GER_POUT_HINT_SINGLE_SHOT, \
845  GER_POUT_HINT_CYCLIC_PULSE, \
846  GER_POUT_HINT_PER_SEC, \
847  GER_POUT_HINT_PER_MIN, \
848  GER_POUT_HINT_PER_HOUR, \
849  GER_POUT_HINT_DCF77, \
850  GER_POUT_HINT_POS_OK, \
851  GER_POUT_HINT_TIME_SYNC, \
852  GER_POUT_HINT_ALL_SYNC, \
853  GER_POUT_HINT_TIMECODE, \
854  GER_POUT_HINT_TIMESTR, \
855  GER_POUT_HINT_10MHZ, \
856  GER_POUT_HINT_DCF77_M59, \
857  GER_POUT_HINT_SYNTH, \
858  GER_POUT_HINT_TIME_SLOTS, \
859  GER_POUT_HINT_GPIO, \
860  GER_POUT_HINT_PTTI_PPS, \
861  GER_POUT_HINT_HAVEQUICK \
862 }
863 
864 
865 
866 // some macros which generate proper function calls
867 
868 #define _pcps_snprint_vernum_dec( _s, _sz, _v ) \
869  snprintf_safe( (_s), (_sz), "v%u.%02u", \
870  ( (unsigned) (_v) ) / 100, \
871  ( (unsigned) (_v) ) % 100 )
872 
873 #define _pcps_snprint_vernum_hex( _s, _sz, _v ) \
874  snprintf_safe( (_s), (_sz), "v%X.%02X", \
875  ( (unsigned) (_v) ) >> 8, \
876  ( (unsigned) (_v) ) & 0xFF )
877 
878 #if defined( MBG_TGT_WIN32 )
879  #define _pcps_snprint_vernum _pcps_snprint_vernum_dec
880 #else
881  #define _pcps_snprint_vernum _pcps_snprint_vernum_hex
882 #endif
883 
884 
885 #define _pcps_snprint_dev_id( _s, _sz, _n ) \
886  snprintf_safe( (_s), (_sz), "%04Xh", _n )
887 
888 
889 #define _pcps_snprint_wday( _s, _sz, _t, _l ) \
890  snprint_ctry_wday( (_s), (_sz), _wday_mon17_to_sun06( (_t)->wday ), (_l) )
891 
892 #define _pcps_snprint_date( _s, _sz, _t, _yl ) \
893  snprint_ctry_dt( (_s), (_sz), (_t)->mday, (_t)->month, \
894  pcps_exp_year( (_t)->year, (_yl) ) )
895 
896 #define _pcps_snprint_time( _s, _sz, _t ) \
897  snprint_ctry_tm( (_s), (_sz), (_t)->hour, (_t)->min, (_t)->sec )
898 
899 #define _pcps_snprint_time_long( _s, _sz, _t ) \
900  snprint_ctry_tm_long( (_s), (_sz), (_t)->hour, (_t)->min, (_t)->sec, (_t)->sec100, 2 )
901 
902 
903 #define _cput_pcps_date( _t, _yl ) \
904 { \
905  char s[80]; \
906  _pcps_snprint_date( s, sizeof( s ), (_t), (_yl) ); \
907  cputs( s ); \
908 }
909 
910 #define _cput_pcps_time( _t ) \
911 { \
912  char s[80]; \
913  _pcps_snprint_time( s, sizeof( s ), (_t) ); \
914  cputs( s ); \
915 }
916 
917 #define _cput_pcps_time_long( _t ) \
918 { \
919  char s[80]; \
920  _pcps_snprint_time_long( s, sizeof( s ), (_t) ); \
921  cputs( s ); \
922 }
923 
924 #define _cput_pcps_date_and_time( _t, _yl, _tz ) \
925 { \
926  char s[80]; \
927  cputs( pcps_date_time_str( s, sizeof( s ), (_t), (_yl), (_tz) ) ); \
928 }
929 
930 
932 #ifdef _DO_INIT
933  = { TZ_NAME_CET, TZ_NAME_MEZ }
934 #endif
935 ;
936 
937 
939 #ifdef _DO_INIT
941 #endif
942 ;
943 
945 #ifdef _DO_INIT
946  = { TZ_NAME_GMT, TZ_NAME_WEZ }
947 #endif
948 ;
949 
950 
952 #ifdef _DO_INIT
954 #endif
955 ;
956 
958 #ifdef _DO_INIT
960 #endif
961 ;
962 
963 
965 #ifdef _DO_INIT
967 #endif
968 ;
969 
970 
972 #ifdef _DO_INIT
974 #endif
975 ;
976 
977 
979 #ifdef _DO_INIT
981 #endif
982 ;
983 
984 
985 _ext const char *mode_name[N_STR_MODE][N_LNG]
986 #ifdef _DO_INIT
988 #endif
989 ;
990 
991 
992 _ext const char *short_mode_name[N_STR_MODE]
993 #ifdef _DO_INIT
995 #endif
996 ;
997 
998 
999 /* ----- function prototypes begin ----- */
1000 
1001 /* This section was generated automatically */
1002 /* by MAKEHDR, do not remove the comments. */
1003 
1009  const char *inv_str( void ) ;
1010 
1026  const char *pcps_tz_name( const PCPS_TIME *t, ulong flags, int is_msf ) ;
1027 
1043  const char *pcps_tz_name_from_hr_time( const PCPS_HR_TIME *hrt, ushort flags, int is_msf ) ;
1044 
1063  const char *pcps_tz_name_hr_status( const PCPS_HR_TIME *t, ushort flags, int is_msf ) ;
1064 
1082  const char *pcps_tz_name_from_status( PCPS_TIME_STATUS_X status ) ;
1083 
1084  char *pcps_date_time_str( char *s, size_t max_len, const PCPS_TIME *t, int year_limit, const char *tz_str ) ;
1085  int pcps_str_tm_gps_date_time( char *s, size_t max_len, const TM_GPS *t ) ;
1086  wchar_t *pcps_date_time_wstr( wchar_t *ws, size_t count, const PCPS_TIME *t, ushort year_limit, const wchar_t *tz_str ) ;
1087  void pcps_status_strs( ushort status, int status_is_read, int is_gps, PCPS_STATUS_STRS *pstrs ) ;
1088  char *pcps_port_str( char *s, size_t max_len, const PCPS_DEV *pdev ) ;
1089  const char *pcps_tzcode_str( PCPS_TZCODE tzcode ) ;
1090  char *pcps_serial_str( char *s, size_t max_len, int i, const RECEIVER_PORT_CFG *p, const RECEIVER_INFO *p_ri, int short_strs ) ;
1091 
1092 /* ----- function prototypes end ----- */
1093 
1094 #ifdef __cplusplus
1095 }
1096 #endif
1097 
1098 /* End of header body */
1099 
1100 #undef _ext
1101 #undef _DO_INIT
1102 
1103 #endif /* _PCPSLSTR_H */
1104 
uint8_t PCPS_TZCODE
Type of variable to hold a TZ code.
Definition: pcpsdefs.h:1432
the number of known modes
Definition: gpsdefs.h:3765
CLSTR lstr_cet
const char * pcps_tz_name(const PCPS_TIME *t, ulong flags, int is_msf)
Return a static time zone string depending on the UTC offset from a PCPS_TIME structure.
Definition: pcpslstr.c:245
the number of valid codes
Definition: pcpsdefs.h:1444
const char *const CLSTR[N_LNG]
Definition: ctry.h:118
#define _ext
Definition: pcpslstr.h:136
char * pcps_serial_str(char *s, size_t max_len, int i, const RECEIVER_PORT_CFG *p, const RECEIVER_INFO *p_ri, int short_strs)
Definition: pcpslstr.c:552
const char * pcps_tzcode_str(PCPS_TZCODE tzcode)
Definition: pcpslstr.c:540
#define DEFAULT_PCPS_WDAY_DATE_DIST
Definition: pcpslstr.h:151
Local date and time computed from GPS time.
Definition: gpsdefs.h:2593
PCPS_TZ_NAME_FLAGS
Flag bits used to control the string generated by pcps_tz_name.
Definition: pcpslstr.h:187
PCPS_TZ_NAME_BITS
Flag bits used to define PCPS_TZ_NAME_FLAGS.
Definition: pcpslstr.h:170
char * pcps_date_time_str(char *s, size_t max_len, const PCPS_TIME *t, int year_limit, const char *tz_str)
Definition: pcpslstr.c:344
CLSTR tzcode_name[N_PCPS_TZCODE]
const char * inv_str(void)
Return a language dependend string for "invalid".
Definition: pcpslstr.c:131
const char * pcps_tz_name_from_hr_time(const PCPS_HR_TIME *hrt, ushort flags, int is_msf)
Return a static time zone string depending on the UTC offset from a PCPS_HR_TIME structure.
Definition: pcpslstr.c:269
always print "UTC+offs"
Definition: pcpslstr.h:172
const char * short_mode_name[N_STR_MODE]
int pcps_str_tm_gps_date_time(char *s, size_t max_len, const TM_GPS *t)
Definition: pcpslstr.c:387
unsigned short ushort
Definition: words.h:282
#define N_PCPS_STATUS_STR
Definition: pcpslstr.h:197
#define TZ_NAME_GMT
Definition: pcpslstr.h:427
#define DEFAULT_MODE_NAMES
Definition: pcpslstr.h:756
int pcps_date_time_dist
#define TZ_NAME_WEZ
Definition: pcpslstr.h:425
char * pcps_date_time_wstr(char *ws, size_t count, const PCPS_TIME *t, ushort year_limit, const char *tz_str)
void pcps_status_strs(ushort status, int status_is_read, int is_gps, PCPS_STATUS_STRS *pstrs)
Definition: pcpslstr.c:454
#define TZ_NAME_MEZ
Definition: pcpslstr.h:415
#define TZ_NAME_CEST
Definition: pcpslstr.h:418
char * pcps_port_str(char *s, size_t max_len, const PCPS_DEV *pdev)
Definition: pcpslstr.c:522
#define TZ_NAME_WESZ
Definition: pcpslstr.h:426
#define DEFAULT_SHORT_MODE_NAMES
Initializer for short name strings associated with STR_MODES.
Definition: gpsdefs.h:3793
append DST status
Definition: pcpslstr.h:173
#define TZ_NAME_MESZ
Definition: pcpslstr.h:416
int pcps_time_tz_dist
#define TZ_NAME_BST
Definition: pcpslstr.h:428
#define DEFAULT_PCPS_TIME_TZ_DIST
Definition: pcpslstr.h:153
int pcps_wday_date_dist
const char * pcps_tz_name_from_status(PCPS_TIME_STATUS_X status)
Return a static time zone string depending on the UTC offset from a PCPS_HR_TIME structure.
Definition: pcpslstr.c:332
CLSTR lstr_bst
Definition: myutil.h:117
#define TZ_NAME_CET
Definition: pcpslstr.h:417
Definition: ctry.h:106
High resolution time including status and local time offset.
Definition: pcpsdefs.h:1085
CLSTR lstr_cest
Local calendar date and time, plus sync status.
Definition: pcpsdefs.h:1128
uint16_t PCPS_TIME_STATUS_X
Extended status code.
Definition: pcpsdefs.h:1022
const char * cp
Definition: pcpslstr.h:201
CLSTR lstr_gmt
#define DEFAULT_TZCODE_NAMES
Definition: pcpslstr.h:504
const char * pcps_tz_name_hr_status(const PCPS_HR_TIME *t, ushort flags, int is_msf)
Return a static time zone string depending on the UTC offset from a PCPS_HR_TIME structure.
Definition: pcpslstr.c:296
static int year_limit
Definition: mbgstatus.c:118
unsigned long ulong
Definition: words.h:292
see PCPS_TZ_NAME_APP_DST
Definition: pcpslstr.h:190
A structure used to identify a device type and supported features.
Definition: gpsdefs.h:873
Device info structure.
Definition: pcpsdev.h:1043
see PCPS_TZ_NAME_FORCE_UTC_OFFS
Definition: pcpslstr.h:189
const char * mode_name[N_STR_MODE][N_LNG]
#define DEFAULT_PCPS_DATE_TIME_DIST
Definition: pcpslstr.h:152
All configuration parameters for all serial ports.
Definition: cfg_hlp.h:190