147 #if defined( MBG_TGT_WIN32 ) \ 148 || defined( MBG_TGT_POSIX ) \ 149 || defined( MBG_TGT_QNX ) 151 #define DEFAULT_PCPS_WDAY_DATE_DIST 1 152 #define DEFAULT_PCPS_DATE_TIME_DIST 2 153 #define DEFAULT_PCPS_TIME_TZ_DIST 1 157 #define DEFAULT_PCPS_WDAY_DATE_DIST 1 158 #define DEFAULT_PCPS_DATE_TIME_DIST 2 159 #define DEFAULT_PCPS_TIME_TZ_DIST 1 197 #define N_PCPS_STATUS_STR 3 217 #define DEFAULT_STR_TIME_ADJ_STATUS \ 219 "Time Adjustment Status", \ 220 "Status der Zeitkontrolle" \ 223 #define DEFAULT_STR_SYS_TIME \ 229 #define DEFAULT_STR_REF_TIME \ 235 #define DEFAULT_STR_DELTA_TIME \ 241 #define DEFAULT_STR_LAST_CORR \ 243 "Last Correction:", \ 244 "Letzte Korrektur:" \ 247 #define DEFAULT_STR_WAIT_SYNC \ 249 "Waiting for Sync After Reset ...", \ 250 "Warte auf Sync. nach Reset ..." \ 256 #define DEFAULT_STR_REF_TIME_INFO \ 258 "Reference Time Info", \ 262 #define DEFAULT_STR_REF_SRC_LABEL \ 268 #define DEFAULT_STR_REF_SYNC_LABEL \ 278 #define DEFAULT_STR_TIME_INVAL_EN \ 279 "Ref. Time is Invalid" 281 #define DEFAULT_STR_TIME_INVAL_DE \ 282 "Referenzzeit nicht g" LCUE "ltig" 284 #define DEFAULT_STR_TIME_INVAL \ 286 DEFAULT_STR_TIME_INVAL_EN, \ 287 DEFAULT_STR_TIME_INVAL_DE \ 291 #define DEFAULT_STR_SET_MANUALLY \ 293 "Time has been set manually", \ 294 "Zeit wurde manuell gesetzt" \ 299 #define DEFAULT_STR_DCF_HAS_SYNCD \ 301 "Synchronized after last RESET", \ 302 "Sync. nach RESET ist erfolgt" \ 306 #define DEFAULT_STR_DCF_HAS_NOT_SYNCD \ 308 "Not synchronized after last RESET", \ 309 "Sync. nach RESET noch nicht erfolgt" \ 313 #define DEFAULT_STR_DCF_FREE_RUNNING \ 315 "Clock running on Xtal oscillator", \ 316 "Funkuhr l" LCAE "uft frei auf Quarzbasis" \ 320 #define DEFAULT_STR_DCF_NOT_FREE_RUNNING \ 322 "Clock is synchronized", \ 323 "Senderf" LCUE "hrung" \ 327 #define DEFAULT_STR_GPS_SYNCD \ 329 "Time is synchronized", \ 330 "Zeitsynchronisation ist erfolgt" \ 334 #define DEFAULT_STR_GPS_NOT_SYNCD \ 336 "Time not synchronized", \ 337 "Zeit ist nicht synchron" \ 341 #define DEFAULT_STR_GPS_POS_OK \ 343 "Receiver position has been verified", \ 344 "Positionbestimmung durchgef" LCUE "hrt" \ 348 #define DEFAULT_STR_GPS_POS_NOT_OK \ 350 "Receiver pos. not verified", \ 351 "Position nicht gepr" LCUE "ft" \ 355 #define DEFAULT_STR_ANN_DST \ 357 "Change in Daylight Saving Announced", \ 358 "Zeitumschaltung angek" LCUE "ndigt" \ 362 #define DEFAULT_STR_ANN_LS \ 364 "Leap Second Announced", \ 365 "Schaltsekunde angek" LCUE "ndigt" \ 371 #define DEFAULT_OPT_NAME_SETUP_EN \ 374 #define DEFAULT_OPT_NAME_SETUP_DE \ 377 #define DEFAULT_OPT_NAME_SETUP \ 379 DEFAULT_OPT_NAME_SETUP_EN, \ 380 DEFAULT_OPT_NAME_SETUP_DE \ 386 #define DEFAULT_OPT_NAME_SET_TIME_EN \ 387 "Radio Clock's Date/Time" 389 #define DEFAULT_OPT_NAME_SET_TIME_DE \ 390 "Datum/Zeit der Funkuhr" 392 #define DEFAULT_OPT_NAME_SET_TIME \ 394 DEFAULT_OPT_NAME_SET_TIME_EN, \ 395 DEFAULT_OPT_NAME_SET_TIME_DE \ 398 #define DEFAULT_STR_NEW_DATE \ 404 #define DEFAULT_STR_NEW_TIME \ 413 #define TZ_NAME_UTC "UTC" 415 #define TZ_NAME_MEZ "MEZ" 416 #define TZ_NAME_MESZ "MESZ" 417 #define TZ_NAME_CET "CET" 418 #define TZ_NAME_CEST "CEST" 420 #define TZ_NAME_OEZ "OEZ" 421 #define TZ_NAME_OESZ "OESZ" 422 #define TZ_NAME_EET "EET" 423 #define TZ_NAME_EEST "EEST" 425 #define TZ_NAME_WEZ "WEZ" 426 #define TZ_NAME_WESZ "WESZ" 427 #define TZ_NAME_GMT "GMT" 428 #define TZ_NAME_BST "BST" 430 #define DEFAULT_OPT_NAME_TZ \ 432 "Radio Clock's Time Zone", \ 433 "Zeitzone der Funkuhr" \ 439 #define DEFAULT_TZCODE_NAME_CET_CEST \ 441 TZ_NAME_CET "/" TZ_NAME_CEST, \ 442 TZ_NAME_MEZ "/" TZ_NAME_MESZ \ 445 #define DEFAULT_TZCODE_HINT_CET_CEST \ 447 "Central European Time or Summer Time, as broadcast by DCF77", \ 448 "Mitteleurop" LCAE "ische Zeit oder Sommerzeit, wie von DCF77 gesendet" \ 451 #define DEFAULT_TZCODE_NAME_GMT_BST \ 453 TZ_NAME_GMT "/" TZ_NAME_BST, \ 454 TZ_NAME_WEZ "/" TZ_NAME_WESZ \ 457 #define DEFAULT_TZCODE_HINT_GMT_BST \ 459 "Greenwich Mean Time or British Summer Time, as broadcast by MSF", \ 460 "Westeurop" LCAE "ische Zeit oder britische Sommerzeit, wie von MSF gesendet" \ 465 #define DEFAULT_TZCODE_NAME_CET \ 467 "always " TZ_NAME_CET, \ 468 "immer " TZ_NAME_MEZ \ 471 #define DEFAULT_TZCODE_HINT_CET \ 473 "always CET (UTC+1h), daylight saving suppressed", \ 474 "immer MEZ (UTC+1h), Sommerzeit wird unterdr" LCUE "ckt" \ 478 #define DEFAULT_TZCODE_NAME_UTC \ 484 #define DEFAULT_TZCODE_HINT_UTC \ 491 #define DEFAULT_TZCODE_NAME_EET_EEST \ 493 TZ_NAME_EET "/" TZ_NAME_EEST, \ 494 TZ_NAME_OEZ "/" TZ_NAME_OESZ \ 497 #define DEFAULT_TZCODE_HINT_EET_EEST \ 499 "East European Time, CET/CEST + 1h", \ 500 "Osteurop" LCAE "ische Zeit, MEZ/MESZ + 1h" \ 504 #define DEFAULT_TZCODE_NAMES \ 506 DEFAULT_TZCODE_NAME_CET_CEST, \ 507 DEFAULT_TZCODE_NAME_CET, \ 508 DEFAULT_TZCODE_NAME_UTC, \ 509 DEFAULT_TZCODE_NAME_EET_EEST \ 512 #define DEFAULT_TZCODE_HINTS \ 514 DEFAULT_TZCODE_HINT_CET_CEST, \ 515 DEFAULT_TZCODE_HINT_CET, \ 516 DEFAULT_TZCODE_HINT_UTC, \ 517 DEFAULT_TZCODE_HINT_EET_EEST \ 523 #define DEFAULT_OPT_NAME_SERIAL \ 525 "On-Board Serial Ports", \ 526 "Serielle Schnittstellen der Karte" \ 532 #define DEFAULT_OPT_NAME_EF \ 535 "Freischaltung der Ausg" LCAE "nge" \ 541 #define DEFAULT_OPT_NAME_CAB_LEN \ 550 #define DEFAULT_OPT_NAME_TR_DISTANCE \ 552 "Distance from Transmitter", \ 559 #define DEFAULT_OPT_NAME_IRIG_TX_EN "IRIG Output" 560 #define DEFAULT_OPT_NAME_IRIG_TX_DE "IRIG-Ausgang" 562 #define DEFAULT_OPT_NAME_IRIG_TX \ 564 DEFAULT_OPT_NAME_IRIG_TX_EN, \ 565 DEFAULT_OPT_NAME_IRIG_TX_DE \ 569 #define DEFAULT_OPT_NAME_IRIG_RX_EN "IRIG Input" 570 #define DEFAULT_OPT_NAME_IRIG_RX_DE "IRIG-Eingang" 572 #define DEFAULT_OPT_NAME_IRIG_RX \ 574 DEFAULT_OPT_NAME_IRIG_RX_EN, \ 575 DEFAULT_OPT_NAME_IRIG_RX_DE \ 579 #define DEFAULT_STR_IRIG_FMT_EN "IRIG Code Format" 580 #define DEFAULT_STR_IRIG_FMT_DE "IRIG Code-Format" 582 #define DEFAULT_STR_IRIG_FMT \ 584 DEFAULT_STR_IRIG_FMT_EN, \ 585 DEFAULT_STR_IRIG_FMT_DE \ 589 #define DEFAULT_STR_IRIG_OFFS_EN "IRIG Time Offset from UTC" 590 #define DEFAULT_STR_IRIG_OFFS_DE "IRIG-Zeitoffset zu UTC" 592 #define DEFAULT_STR_IRIG_OFFS \ 594 DEFAULT_STR_IRIG_OFFS_EN, \ 595 DEFAULT_STR_IRIG_OFFS_DE \ 599 #define DEFAULT_STR_IRIG_TIMESTR_UTC_EN "Send serial UTC" 600 #define DEFAULT_STR_IRIG_TIMESTR_UTC_DE "Seriell UTC ausgeben" 602 #define DEFAULT_STR_IRIG_TIMESTR_UTC \ 604 DEFAULT_STR_IRIG_TIMESTR_UTC_EN, \ 605 DEFAULT_STR_IRIG_TIMESTR_UTC_DE \ 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" 612 #define DEFAULT_STR_IRIG_OUTPUT_LOC_TM \ 614 DEFAULT_STR_IRIG_OUTPUT_LOC_TM_EN, \ 615 DEFAULT_STR_IRIG_OUTPUT_LOC_TM_DE \ 618 #define DEFAULT_IGNORE_RX_TFOM_EN "Ignore TFOM" 619 #define DEFAULT_IGNORE_RX_TFOM_DE "Ignoriere TFOM" 621 #define DEFAULT_IGNORE_RX_TFOM \ 623 DEFAULT_IGNORE_RX_TFOM_EN, \ 624 DEFAULT_IGNORE_RX_TFOM_DE \ 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" 630 #define DEFAULT_STR_TFOM_ALWAYS_SYNC \ 632 DEFAULT_STR_TFOM_ALWAYS_SYNC_EN, \ 633 DEFAULT_STR_TFOM_ALWAYS_SYNC_DE \ 637 #define DEFAULT_STR_IRIG_NOT_CFGD_EN \ 638 "The IRIG receiver has not yet been configured!\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." 644 #define DEFAULT_STR_IRIG_NOT_CFGD_DE \ 645 "Der IRIG-Empf" LCAE "nger wurde noch nicht konfiguriert!\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." 651 #define DEFAULT_STR_IRIG_NOT_CFGD \ 653 DEFAULT_STR_IRIG_NOT_CFGD_EN, \ 654 DEFAULT_STR_IRIG_NOT_CFGD_DE \ 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." 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." \ 670 #define DEFAULT_STR_IRIG_INVT \ 672 DEFAULT_STR_IRIG_INVT_EN, \ 673 DEFAULT_STR_IRIG_INVT_DE \ 679 #define DEFAULT_OPT_NAME_POUT \ 681 "Programmable Pulse Outputs", \ 682 "Programmierbare Schaltausg" LCAE "nge" \ 688 #define DEFAULT_OPT_NAME_SYNTH \ 690 "Frequency Synthesizer", \ 691 "Frequenz-Synthesizer" \ 694 #define DEFAULT_STR_SYNTH_FREQ \ 700 #define DEFAULT_STR_SYNTH_PHASE \ 709 #define DEFAULT_OPT_NAME_LAN_INTF_EN "LAN Interface" 710 #define DEFAULT_OPT_NAME_LAN_INTF_DE "Netzwerkschnittstelle" 712 #define DEFAULT_OPT_NAME_LAN_INTF \ 714 DEFAULT_OPT_NAME_LAN_INTF_EN, \ 715 DEFAULT_OPT_NAME_LAN_INTF_DE \ 722 #define DEFAULT_OPT_NAME_PTP_CFG_EN "PTP Configuration" 723 #define DEFAULT_OPT_NAME_PTP_CFG_DE "PTP-Konfiguration" 725 #define DEFAULT_OPT_NAME_PTP_CFG \ 727 DEFAULT_OPT_NAME_PTP_CFG_EN, \ 728 DEFAULT_OPT_NAME_PTP_CFG_DE \ 735 #define DEFAULT_OPT_NAME_PTP_UC_CFG_EN "PTP Unicast Configuration" 736 #define DEFAULT_OPT_NAME_PTP_UC_CFG_DE "PTP-Unicast-Konfiguration" 738 #define DEFAULT_OPT_NAME_PTP_UC_CFG \ 740 DEFAULT_OPT_NAME_PTP_UC_CFG_EN, \ 741 DEFAULT_OPT_NAME_PTP_UC_CFG_DE \ 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" 756 #define DEFAULT_MODE_NAMES \ 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 } \ 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" 791 #define DEFAULT_GER_POUT_NAMES \ 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, \ 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" 840 #define DEFAULT_GER_POUT_HINTS \ 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 \ 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 ) 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 ) 878 #if defined( MBG_TGT_WIN32 ) 879 #define _pcps_snprint_vernum _pcps_snprint_vernum_dec 881 #define _pcps_snprint_vernum _pcps_snprint_vernum_hex 885 #define _pcps_snprint_dev_id( _s, _sz, _n ) \ 886 snprintf_safe( (_s), (_sz), "%04Xh", _n ) 889 #define _pcps_snprint_wday( _s, _sz, _t, _l ) \ 890 snprint_ctry_wday( (_s), (_sz), _wday_mon17_to_sun06( (_t)->wday ), (_l) ) 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) ) ) 896 #define _pcps_snprint_time( _s, _sz, _t ) \ 897 snprint_ctry_tm( (_s), (_sz), (_t)->hour, (_t)->min, (_t)->sec ) 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 ) 903 #define _cput_pcps_date( _t, _yl ) \ 906 _pcps_snprint_date( s, sizeof( s ), (_t), (_yl) ); \ 910 #define _cput_pcps_time( _t ) \ 913 _pcps_snprint_time( s, sizeof( s ), (_t) ); \ 917 #define _cput_pcps_time_long( _t ) \ 920 _pcps_snprint_time_long( s, sizeof( s ), (_t) ); \ 924 #define _cput_pcps_date_and_time( _t, _yl, _tz ) \ 927 cputs( pcps_date_time_str( s, sizeof( s ), (_t), (_yl), (_tz) ) ); \ uint8_t PCPS_TZCODE
Type of variable to hold a TZ code.
the number of known modes
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.
the number of valid codes
const char *const CLSTR[N_LNG]
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)
const char * pcps_tzcode_str(PCPS_TZCODE tzcode)
#define DEFAULT_PCPS_WDAY_DATE_DIST
Local date and time computed from GPS time.
PCPS_TZ_NAME_FLAGS
Flag bits used to control the string generated by pcps_tz_name.
PCPS_TZ_NAME_BITS
Flag bits used to define PCPS_TZ_NAME_FLAGS.
char * pcps_date_time_str(char *s, size_t max_len, const PCPS_TIME *t, int year_limit, const char *tz_str)
CLSTR tzcode_name[N_PCPS_TZCODE]
const char * inv_str(void)
Return a language dependend string for "invalid".
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.
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)
#define N_PCPS_STATUS_STR
#define DEFAULT_MODE_NAMES
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)
char * pcps_port_str(char *s, size_t max_len, const PCPS_DEV *pdev)
#define DEFAULT_SHORT_MODE_NAMES
Initializer for short name strings associated with STR_MODES.
#define DEFAULT_PCPS_TIME_TZ_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.
High resolution time including status and local time offset.
Local calendar date and time, plus sync status.
uint16_t PCPS_TIME_STATUS_X
Extended status code.
#define DEFAULT_TZCODE_NAMES
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.
A structure used to identify a device type and supported features.
see PCPS_TZ_NAME_FORCE_UTC_OFFS
const char * mode_name[N_STR_MODE][N_LNG]
#define DEFAULT_PCPS_DATE_TIME_DIST
All configuration parameters for all serial ports.