Meinberg SDK: Meinberg Software Development Kit (MbgSDK)

  • Main Page
  • Modules
  • Data Structures
  • Files

Meinberg Software Development Kit (MbgSDK)

1.2.0

Introduction

The Meinberg Software Development Kit for Windows contains libraries and example code to access and control Meinberg devices such as GPS and DCF77 based radio clocks and IRIG receivers under different development environments.

All Microsoft Windows versions from Windows NT and above are supported.

Device types that can be accessed are either computer peripherals for the bus systems ISA/PCI/PCI-X/PCI-Express and USB as well as serial devices connected via RS232 (DS9) interface.

Concepts

Meinberg devices can be accessed in two different ways:
  • Meinberg Device I/O (MbgDevIO): This API accesses the device directly via the mbgdevio.dll.
    (Works with all Meinberg non-serial devices)
  • Meinberg Service I/O (MbgSvcIO): This API checks the status of the time adjustment service and accesses the device indirectly via the mbgsvcio.dll and the time adjustment service mbgadjtm.exe
    (Works with all Meinberg devices).
This documentation describes all examples for all environments and computer languages that are available.

To continue, please select a programming environment first.

Select a development environment

  • C/C++ ( MS Visual C++ or Borland C/C++ )
  • Visual Basic 6
  • Visual Basic .Net
  • Borland Delphi

Changelog

General statement:
Meinberg assures full backward compatibility with all driver versions. Whenever a new feature is introduced then new API calls will be created and older API calls are left unchanged. So older applications should still work as expected even after a driver and DLL update.

  • V 1.2.0:
    • API calls and documentation are based on Windows driver package v3.06.
    • New API calls and sample code to read the raw IRIG time, the PTP state, PTP settings and LAN interface information
  • V 1.1.0:
    • API calls and documentation are based on Windows driver package v3.04.
    • Extended libaries and sample code to support different time scales, UTC parameters and IRIG control bits.
  • V 1.0.0:
    • API calls and documentation are based on Windows driver package v3.03.
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Device I/O (MbgDevIo)

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg Device I/O (MbgDevIo)

Accessing Meinberg computer peripherals from user applications via the mbgdevio.dll.

Select a development environment

  • C/C++ ( MS Visual C++ or Borland C/C++ )
  • Visual Basic 6
  • Visual Basic .Net
  • Borland Delphi
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Device I/O (MbgDevIo) (C)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Device I/O (MbgDevIo)

Meinberg Device I/O (MbgDevIo) (C)

This page describes the C libraries and sample code that can be used to access Meinberg computer peripherals from user applications via the mbgdevio.dll.

Step-by-step instructions for using the MbgDevIo API

Step 1: Installing the driver package

Download and install the latest Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with a DLL called mbgdevio.dll which can be used to access the board via this SDK.
Install a Meinberg computer device and test it with the monitor program MbgMon (included in the Windows driver package) if it works as expected.

Step 2: Compiling and testing the sample applications.

  • Download and extract the SDK files into a temporary folder.
For Microsoft Visual C++ 6.0:
  • Open the developer workspace file mbgdevio.dsw which is located in "%INSTALL_ROOT%\c\demo\mbgdevio\vc6".
For Microsoft Visual Studio 2005:
  • Open the solution mbgdevio.sln which is located in "%INSTALL_ROOT%\c\demo\mbgdevio\vs2005".
For Borland C++:
  • Open the Borland project file mbgdeviodemo.bpr which is located in "%INSTALL_ROOT%\c\demo\mbgdevio\bc".
The projects demonstrate the functionality of the most important API functions of the mbgdevio.dll.

There are several demo projects available to show how the MbgSdk functions work. The main source files are:

  • mbgdevio_demo.c Example program to demonstrate the most important API calls as a general overview.
  • hrtime.c Example how to use the PCPS_HR_TIME (high resolution time) in detail.
  • xhrtime.c Example how to retrieve extrapolated high resolution time stamps with very high access rates.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the directory "%INSTALL_ROOT%\c\mbglib\include" to the include search path of your user application.
  • Add the correct mbgdevio.lib file to your project:
    For Microsoft Visual Studio projects, you have to add mbgdevio.lib from the "%INSTALL_ROOT%\mbglib\lib\msc" directory, for Borland projects you have to use the version from "%INSTALL_ROOT%\mbglib\lib\bc".
    For compiling x64 targets with Visual Studio the mbgdevio.lib from the directory "%INSTALL_ROOT%\mbglib\lib64\msc" has to be added.

Step 4: Getting a handle to the radio clock

Check the mbgdevio version first:

if ( mbgdevio_check_version( MBGDEVIO_VERSION ) != PCPS_SUCCESS )
{
  printf( "The MBGDEVIO DLL API version %X which is installed is not compatible\n"
            "with API version %X required by this program.\n",
            mbgdevio_get_version(),
            MBGDEVIO_VERSION
          );
  exit( 1 );
}

Afterwards search for installed Meinberg devices:

  devices_found = mbg_find_devices();

  if ( devices_found == 0 )
  {
    printf( "No radio clock found.\n" );
    return;
  }

  printf( "Found %i radio clock%s\n", devices_found, ( devices_found == 1 ) ? "" : "s" );

If Meinberg devices were found ( device_count > 0 ) then get a handle to a specific device with mbg_open_device(). Afterwards you can retrieve a PCPS_DEV structure with device information by using mbg_get_device_info().

  PCPS_DEV dev;
  MBG_DEV_HANDLE dh;
  int rc;

  // device_index 0 for the first
  // radio clock that was found on the system
  dh = mbg_open_device( 0 );

  if ( dh == MBG_INVALID_DEV_HANDLE )
    err_msg( "Unable to open device" );

  rc = mbg_get_device_info( dh, &dev );

  if ( rc == PCPS_SUCCESS )
  {
    printf( "  %s at port %03Xh\n",
            _pcps_type_name( &dev ),
            _pcps_port_base( &dev, 0 )
          );
  }
  else
    err_msg( "Failed to read device info" );

Step 5: Accessing the device

After retrieving the MBG_DEV_HANDLE of a specific device, this handle can be used for I/O accesses to the board. For example:

  PCPS_HR_TIME hr_t;

  // Check whether the board supports PCPS_HR_TIME
  // dev is a PCPS_DEV structure returned by mbg_get_device_info()
  if ( _pcps_has_hr_time ( &dev ) )
  {
    // Reading the latency-compensated PCPS_HR_TIME from the board
    if ( PCPS_SUCCESS == mbg_get_hr_time_comp( dh, &hr_t, &latency ) )
      printf( "HR Time: %08lX.%08lX UTC%+ldsec, st: %04X, latency: %i hns\n",
            hr_t->tstamp.sec,
            hr_t->tstamp.frac,
            hr_t->utc_offs,
            hr_t->status,
            latency );
  }

  mbg_close_device( &dh );

API structures and functions in detail

There are different data structures which can be read, and different API functions to read particular information.

Reading a standard time stamp

The function mbg_get_time() reads a structure called PCPS_TIME (see PCPS_TIME_s), which contains human readable date and time, plus status information. This structure can be read from all our PC plug-in boards. However, the resolution is only 10 milliseconds. Please note that under Windows, the resolution of the system time is also only 10 ms (NT,2000) or 15 ms (XP). In case of Windows Vista and above, the system time has a resolution of 1 ms.

This section refers to the sample mbgdevio_demo.c.

Reading a high resolution time stamp

Additionally, our GPS and IRIG receiver cards as well as newer DCF77 receivers support another structure called PCPS_HR_TIME, high resolution time.

The structure PCPS_HR_TIME is read using the mbg_get_hr_time() call and contains the system time in seconds since 1970 (standard time_t format), the fractions of a second, plus status and UTC offset.

The device driver checks whether a particular feature like HR time is supported by a particular device and returns an error if it is not. Also the latest driver software should be used since older versions of the driver don't check for HR time support.

With our GPS cards, the effictive resolution of the HR time is better than 1 microsecond. For the IRIG receivers, the resolution is 400 microseconds which is still much better than 10/15 milliseconds provided by the Windows system clock.

To get most accuracy for time stamps, a program can read the PC's performance counter, and then call mbg_get_time_cycles() which returns the HR time plus the performance counter value which matches that HR time stamp. The difference between the two performance counter values can be used to compensate the program execution time delay.

The way to access the time on the board is to write a command to the board's microcontroller which in turn makes the requested data available for reading. The advantage of this is that the interface is very flexible, but the disadvantage is that the on-board microcontroller is involved in any access to the board. In order to prevent applications from overruning the on-board microcontroller by countinuous accesses to the board the card has a limitation which limits the time between two accesses to 200 microseconds and 1 millisecond depending on the device.

Associated functions:

  • mbg_get_hr_time()
  • mbg_get_hr_time_cycles()
  • mbg_get_hr_time_comp()
This section refers to the sample hrtime.c and mbgdevio_demo.c.

Using memory mapped I/O

A way to avoid the restriction of the access limits the Memory Mapped I/O feature can be used. Newer devices, e.g. the GPS170PEX, support this feature. In this case the on-board microcontroller is not involved in providing the time stamps and the period between two accesses can be dramatically decreased to a couple of microseconds.

Associated functions:

  • mbg_get_fast_hr_timestamp_cycles()
  • mbg_get_fast_hr_timestamp_comp()
This section refers to the sample mbgdevio_demo.c.

Using extrapolated high resolution time stamps

To retrieve extrapolated time stamps a polling thread inside the mbgdevio.dll is started which reads a high resolution time stamp and an associated CPU cycles counter value once per second and saves that data pair.

Current time stamps are then computed by taking the current CPU cycles value and extrapolating the time from the last data pair.

This is very much faster than accessing the device for every single time stamp.

On systems where the cycles counter is implemented by a CPU's time stamp counter (TSC) it maybe required to set the thread or process affinity to a single CPU to get reliable cycles counts. In this case also care should be taken that the CPU's clock frequency is not stepped up and down e.g. due to power saving mechanisms (e.g. Intel SpeedStep, or AMD Cool'n'Quiet). Otherwise time interpolation may be messed up.

Notes:

  • This approach works / makes sense only with cards which support high resolution time stamps (PCPS_HR_TIME). If a card doesn't support that then this program prints a warning.
  • Extrapolation is done using the time stamp counter (TSC) registers provided by Pentium CPUs and newer/compatible types as the cycles counter. On SMP / multicore CPUs those counters may not be synchronized, so this works only correctly if all cycles counter values are taken from the same CPU. To achieve this the process CPU affinity is by default set to the first CPU at program start, which means all threads of this process are executed only on that CPU.
Associated functions:

  • mbg_xhrt_poll_thread_create()
  • mbg_get_xhrt_cycles_frequency()
  • mbg_get_xhrt_time_as_pcps_hr_time()
  • mbg_get_xhrt_time_as_filetime()
  • mbg_xhrt_poll_thread_stop()

This section refers to the sample xhrtime.c.

Using capture events

There are 3 functions to deal with the capture events:

  • mbg_clr_ucap_buff() clears the on-board FIFO buffer
  • mbg_get_ucap_entries() returns the maximum number of entries and the currently saved number of entries in the buffer
  • mbg_get_ucap_event() retrieves a capture event from the on-board FIFO, or 0000.0000 if the FIFO buffer is empty.
When using the time capture inputs the following hints might be helpful:

  • The corresponding DIP switches on the card must be set to the "ON" position in order to wire the input pins to the capture circuitry. See the user manual for the correct DIP switches.
  • Capture events are stored in the on-board FIFO, and entries can be retrieved from the FIFO in different ways. Once an entry has been retrieved it is removed from the FIFO, so if several ways or applications are used at the same time to retrieve capture events from the FIFO then capture events may be missed by one application since they have already been retrieved by another application.
  • The card provides 2 physical serial interfaces either of which may have been configured to send a serial ASCII string automatically whenever a capture event has occurred. Of course this would also remove those capture events from the FIFO buffer. So the settings of both serial ports should be checked to make sure none of the serial ports have been configured to send the capture string automatically. This has to be done only once for a card since the setting is saved in non-volatile memory.

This section refers to the function check_user_captures() in sample mbgdevio_demo.c.

Reading GPS receiver information.

GPS data like the GPS position, satellite status, mode of operation, etc. can be requested with the functions mbg_get_gps_pos(), mbg_get_gps_stat_info(),mbg_get_gps_ant_info() and mbg_get_gps_receiver_info(). Additional information like Time Scale Configuration or UTC parameters can be read or set with newer versions of our GPS cards by using the functions mbg_get_time_scale_info(), mbg_set_time_scale_settings(), mbg_get_utc_parm() and mbg_set_utc_parm().

This section refers to the functions print_receiver_position(), print_sv_info(), print_utc_parameters() in sample mbgdevio_demo.c.

API call summary

This is a selection of the most important API calls. A complete list is located and documented in mbgdevio.h.

Opening and closing a device

  • mbg_find_devices()
  • mbg_open_device()
  • mbg_close_device()
  • mbg_get_device_info()

Requesting time stamps

  • mbg_get_time()
  • mbg_get_time_cycles()
  • mbg_get_time_sec_change()
  • mbg_get_hr_time()
  • mbg_get_hr_time_cycles()
  • mbg_get_hr_time_comp()
  • mbg_get_sync_time()
  • mbg_get_fast_hr_timestamp_cycles()
  • mbg_get_fast_hr_timestamp_comp()

Reading capture events

  • mbg_get_ucap_entries()
  • mbg_get_ucap_event()
  • mbg_clr_ucap_buff()

Reading GPS information

  • mbg_get_gps_pos()
  • mbg_get_gps_stat_info()
  • mbg_get_gps_ant_info()
  • mbg_get_gps_receiver_info()
  • mbg_get_utc_parm()
  • mbg_get_time_scale_info()

Checking if a feature is supported

  • mbg_dev_has_hr_time()
  • mbg_dev_has_cab_len()
  • mbg_dev_has_tzdl()
  • mbg_dev_has_pcps_tzdl()
  • mbg_dev_has_tzcode()
  • mbg_dev_has_tz()
  • mbg_dev_has_event_time()
  • mbg_dev_has_receiver_info()
  • mbg_dev_can_clr_ucap_buff()
  • mbg_dev_has_ucap()
  • mbg_dev_has_irig_tx()
  • mbg_dev_has_serial_hs()
  • mbg_dev_has_signal()
  • mbg_dev_has_mod()
  • mbg_dev_has_irig()
  • mbg_dev_has_ref_offs()
  • mbg_dev_has_opt_flags()
  • mbg_dev_has_gps_data()
  • mbg_dev_has_synth()
  • mbg_dev_has_asic_features()
  • mbg_dev_has_fast_hr_timestamp()
  • mbg_dev_has_time_scale()
  • mbg_dev_has_utc_parm()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Device I/O (MbgDevIo) (VB6)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Device I/O (MbgDevIo)

Meinberg Device I/O (MbgDevIo) (VB6)

This page describes libraries and sample code that can be used to access Meinberg computer peripherals from user applications via the mbgdevio.dll.

Step-by-step instructions for using the MbgDevIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgdevio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.

Step 2: Compiling and testing the demo programs.

  • Download and extract the SDK files to a temporary folder.
  • Open the developer workspace file mbgdevio-demo-vb6.vbw which is located in "%INSTALL_ROOT%\vb6\demo\mbgdevio".
  • The main form of the program is mbgdevio-demo-vb6.frm.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the module "mbgdevio" and the library file mbgdevio-vb6.bas to your VB6 project:

Step 4: Getting a handle to the radio clock

  Dim n As Integer   ' number of devices found
  Dim h As Long      ' device handle

  ' Find how how many devices are installed
  n = mbg_find_devices

  If n = 0 Then
    Me.InfoTextBox.Text = "No device found."
    Exit Sub
  End If

  ' Always use first device (index 0), even if more devices
  ' have been found
  h = mbg_open_device(0)

  ' -1 means INVALID_HANDLE_VALUE (Win API)
  If h = -1 Then
    Me.InfoTextBox.Text = "Unable to open device."
    Exit Sub
  End If

Step 5: Accessing the device

After retrieving the handle h of a specific device, this handle can be used with several API calls to read from or write to the board.
For example:

  Dim currTime As PCPS_TIME
  Dim rc As Long     ' return code from API functions

  ' Read the current time and status
  rc = mbg_get_time(h, currTime)

  If rc <> 0 Then
    Me.InfoTextBox.Text = "Error accessing the device."
    GoTo done
  End If

API structures, definitions and exported functions for Visual Basic

Below you can find a subset of API structures and functions from the mbgdevio.dll that are referenced for Visual Basic 6 as exported via the file mbgdevio-vb6.bas.
However, the C/C++ API is more powerful. Please contact Meinberg support, if there are functions missing for your application.

The documentations of the structures and functions below are taken from the C-API which were automatically generated from the original C-Sources.

Structures

  • PCPS_TIME
  • PCPS_TIME_STAMP
  • PCPS_HR_TIME
  • PCPS_HR_TIME_CYCLES
  • PCPS_UCAP_ENTRIES
The following structures have been rewritten for VB6 due to floating point restrictions.
The documentation can be found with their C equivalents (in braces).
  • MBG_POS_XYZ (see XYZ)
  • MBG_POS_LLA (see LLA)
  • MBG_DMS (see DMS)
  • MBG_RCVR_POS (see POS)

Definitions

  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT
  • PCPS_LS_ENB
  • PCPS_ANT_FAIL
  • PCPS_UCAP_OVERRUN
  • PCPS_UCAP_BUFFER_FULL

Exported functions

  • mbg_find_devices()
  • mbg_open_device()
  • mbg_close_device()
  • mbg_dev_is_gps()
  • mbg_dev_has_hr_time()
  • mbg_dev_has_ucap()
  • mbg_get_time()
  • mbg_get_hr_time()
  • mbg_get_hr_time_cycles()
  • mbg_get_hr_time_comp()
  • mbg_clr_ucap_buff()
  • mbg_get_ucap_entries()
  • mbg_get_ucap_event()
  • mbg_get_gps_pos()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Device I/O (MbgDevIo) (VB.NET)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Device I/O (MbgDevIo)

Meinberg Device I/O (MbgDevIo) (VB.NET)

This page describes libraries and sample code that can be used to access Meinberg computer peripherals from user applications via the mbgdevio.dll.

Step-by-step instructions for using the MbgDevIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgdevio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.

Step 2: Compiling and testing the demo programs.

  • Download and extract the SDK files to a temporary folder.
  • Open the solution mbgdevio-demo-vb.net.sln which is located in "%INSTALL_ROOT%\vb.net\demo\mbgdevio".
  • The main file of the program is mbgdevio-demo-vb.net.vb.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the module "mbgdevio" and the library files mbgdefs-vb.net.vb and mbgdevio-vb.net.vb to your VB.NET project:

Step 4: Getting a handle to the radio clock

  Dim n As Integer   ' number of devices found
  Dim h As Long      ' device handle

  ' Find how how many devices are installed
  n = mbg_find_devices

  If n = 0 Then
    Me.InfoTextBox.Text = "No device found."
    Exit Sub
  End If

  ' Always use first device (index 0), even if more devices
  ' have been found
  h = mbg_open_device(0)

  ' -1 means INVALID_HANDLE_VALUE (Win API)
  If h = -1 Then
    Me.InfoTextBox.Text = "Unable to open device."
    Exit Sub
  End If

Step 5: Accessing the device

After retrieving the handle h of a specific device, this handle can be used with several API calls to read from or write to the board.
For example:

  Dim currTime As PCPS_TIME
  Dim rc As Long     ' return code from API functions

  ' Read the current time and status
  rc = mbg_get_time(h, currTime)

  If rc <> 0 Then
    Me.InfoTextBox.Text = "Error accessing the device."
    GoTo done
  End If

API structures, definitions and exported functions for Visual Basic

Below you can find a subset of API structures and functions from the mbgdevio.dll that are referenced for Visual Basic .NET as exported via the file mbgdevio-vb.net.vb.
However, the C/C++ API is more powerful. Please contact Meinberg support, if there are functions missing for your application.

The documentations of the structures and functions below are taken from the C-API which were automatically generated from the original C-Sources.

Structures

  • PCPS_TIME
  • PCPS_TIME_STAMP
  • PCPS_HR_TIME
  • PCPS_HR_TIME_CYCLES
  • PCPS_UCAP_ENTRIES
The following structures have been rewritten for VB6 due to floating point restrictions.
The documentation can be found with their C equivalents (in braces).
  • MBG_POS_XYZ (see XYZ)
  • MBG_POS_LLA (see LLA)
  • MBG_DMS (see DMS)
  • MBG_RCVR_POS (see POS)

Definitions

  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT
  • PCPS_LS_ENB
  • PCPS_ANT_FAIL
  • PCPS_UCAP_OVERRUN
  • PCPS_UCAP_BUFFER_FULL

Exported functions

  • mbg_find_devices()
  • mbg_open_device()
  • mbg_close_device()
  • mbg_dev_is_gps()
  • mbg_dev_has_hr_time()
  • mbg_dev_has_ucap()
  • mbg_get_time()
  • mbg_get_hr_time()
  • mbg_get_hr_time_cycles()
  • mbg_get_hr_time_comp()
  • mbg_clr_ucap_buff()
  • mbg_get_ucap_entries()
  • mbg_get_ucap_event()
  • mbg_get_gps_pos()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Device I/O (MbgDevIo) (Delphi)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Device I/O (MbgDevIo)

Meinberg Device I/O (MbgDevIo) (Delphi)

This page describes libraries and sample code that can be used to access Meinberg computer peripherals from user applications via the mbgdevio.dll.

Step-by-step instructions for using the MbgDevIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgdevio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.

Step 2: Compiling and testing the demo program.

  • Download and extract the SDK files to a temporary folder.
  • Open the main file mbgdemo.dpr which is located in "%INSTALL_ROOT%\delphi\demo".
  • Compile and test.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the units mbgdevio.pas and mbgdefs.pas to your Delphi project.

Step 4: Getting a handle to the radio clock

program mbgdemo;
{$APPTYPE CONSOLE}

uses
  sysutils,
  mbgdefs in 'mbgdefs.pas',
  mbgdevio in 'mbgdevio.pas';

var
  dh : MBG_DEV_HANDLE;
  di : PCPS_DRVR_INFO;
  rc : Integer;
  n  : Integer;

begin
  (* Check the mbgdevio version first *)
  if mbgdevio_check_version( MBGDEVIO_VERSION ) <> PCPS_SUCCESS then
    begin
      WriteLn( Format(
        'The MBGDEVIO version %x which is installed is not compatible' + #$0D + #$0A +
        'with API version %x required by this program.',
        [ mbgdevio_get_version, MBGDEVIO_VERSION ] )
      );
      Exit;
    end;

  (* Search for installed devices *)
  n := mbg_find_devices;
  WriteLn( 'Found ', n, ' device(s).' );

  if n > 0 then
    begin
      WriteLn( 'Kernel device driver:' );

      (* Retrieve a handle to the first device that was found on the computer *)
      dh := mbg_open_device( 0 );

      if dh <> MBG_INVALID_DEV_HANDLE then
        begin
          rc := mbg_get_drvr_info( dh, di );

          if  rc = PCPS_SUCCESS then
            begin
              with di do
                begin
                  WriteLn( '  Driver ID:      ', id_str );
                  WriteLn( '  Driver version: ',
                    Format( 'v%u.%2.2u', [ ver_num div 100, ver_num mod 100 ] ) );
                end;

            (* ----------------------- *)
            (* Insert custom code here *)
            (* ----------------------- *)

            end
          else
            WriteLn( '  mbg_get_drvr_info returned ', rc, '.' );

          mbg_close_device( dh );
        end
      else
        WriteLn( 'Failed to open driver.' );

      WriteLn;
    end;
end.

Step 5: Accessing the device

After retrieving the handle dh of a specific device, this handle can be used with several API calls to read from or write to the board.
For example:

procedure ShowDeviceInfo;

var
  dh : MBG_DEV_HANDLE;
  di : PCPS_DEV;
  t : PCPS_TIME;
  rc : Integer;
  s : string[2];

begin  (* ShowDeviceInfo *)
  dh := mbg_open_device( 0 );

  if dh <> MBG_INVALID_DEV_HANDLE then
    begin
      (* show device info *)
      rc := mbg_get_device_info( dh, di );

      if  rc = PCPS_SUCCESS then
        begin
          with di do
            begin
              Write( '  ', dev_cfg.fw_id, ' at port ', Format( '%3.3x', [dev_cfg.port[0].base] ) );
              if dev_cfg.port[1].base <> 0 then
                Write( '/', Format( '%3.3x', [dev_cfg.port[1].base] ) );
              WriteLn( ', IRQ ', dev_cfg.irq_num );
            end;
        end
      else
        WriteLn( '  mbg_get_device_info returned ', rc, '.' );

      (* show current date and time *)
      rc := mbg_get_time( dh, t );

      if  rc = PCPS_SUCCESS then
        begin
          with t do
            begin
              if offs_utc < #0 then
                s := '-'
              else
                s := '+';

              WriteLn( '  Date/time: ',
                Format( '%2.2u.%2.2u.%2.2u  %2.2u:%2.2u:%2.2u.%2.2u UTC%s%dh',
                        [ mday, month, year,
                          hour, min, sec, sec100,
                          s, Abs( Integer( offs_utc ) ) ] ) );
            end;
        end
      else
        WriteLn( '  mbg_get_time returned ', rc, '.' );

      mbg_close_device( dh );
    end
  else
    WriteLn( '  Failed to open device' );

end;

API structures, definitions and exported functions for Borland Delphi

Below there is list of all API structures and functions from the mbgdevio.dll that are referenced for Borland Delphi as exported via the file mbgdevio.pas.
However, this is only a subset of functions and structures which can be provided by the C/C++ API, which is more powerful. Please contact Meinberg support, if there is any important function missing for your application.

The documentations of the structures and functions below are taken from the C-API which were automatically generated from the original C-Sources.

Structures

  • PCPS_TIME
  • PCPS_DEV
  • PCPS_DRVR_INFO

Definitions

  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT
  • PCPS_LS_ENB
  • PCPS_ANT_FAIL
  • PCPS_UCAP_OVERRUN
  • PCPS_UCAP_BUFFER_FULL

Exported functions

  • mbgdevio_get_version()
  • mbgdevio_check_version()
  • mbg_find_devices()
  • mbg_open_device()
  • mbg_close_device()
  • mbg_get_drvr_info()
  • mbg_get_device_info()
  • mbg_get_time()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Service I/O (MbgSvcIo)

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg Service I/O (MbgSvcIo)

Accessing Meinberg Time Adjustment Service (mbgadjtm.exe) via the mbgsvcio.dll.

Select a development environment

  • C/C++ ( MS Visual C++ or Borland C/C++ )
  • Visual Basic 6
  • Visual Basic .Net
  • Borland Delphi
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Service I/O (MbgSvcIo) (C)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Service I/O (MbgSvcIo)

Meinberg Service I/O (MbgSvcIo) (C)

This page describes which libraries and sample code can be used to check whether the the Windows sytem time synchronization works properly, and the reference time source (i.e. the PCI card) is synchronized.

Step-by-step instructions for using the MbgSvcIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgsvcio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.
Start the Meinberg Time Adjustment service via the monitor program MbgMon.

Step 2: Compiling and testing the demo programs.

  • Download and extract the SDK files to a temporary folder.
For Microsoft Visual C++ 6.0:
  • Open the developer workspace file mbgsvcio.dsw which is located in "%INSTALL_ROOT%\c\demo\mbgsvcio\vc6".
For Microsoft Visual Studio 2005:
  • Open the solution mbgsvcio.sln which is located in "%INSTALL_ROOT%\c\demo\mbgsvcio\vs2005".
For Borland C++:
Open the Borland project file mbgsvcio.bpr which is located in "%INSTALL_ROOT%\c\demo\mbgsvcio\bc".

The project which is called mbgdmpst ("Meinberg Dump Status") demonstrates the functionality of the API functions.

There is a demo project available to show how the Meinberg Service I/O functions work:

  • mbgdmpst.c Example program to dump the status of the Meinberg time adjustment service and the connected reference clock.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the directory "%INSTALL_ROOT%\c\mbglib\include" to the include search path of your user application.
  • Add the correct mbgsvcio.lib file to your project:
    For Microsoft Visual Studio projects, you have to add mbgsvcio.lib from the "%INSTALL_ROOT%\mbglib\lib\msc" directory, for Borland projects you have to use the version from "%INSTALL_ROOT%\mbglib\lib\bc". For compiling x64 targets with Visual Studio the mbgsvcio.lib from the directory "%INSTALL_ROOT%\mbglib\lib64\msc" has to be added.

API structures, definitions and exported functions

Definitions

  • MBGSVCIO_VERSION
  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT

Exported functions

The API calls should be called in the following sequence:

  • Check if the Meinberg time adjustment service is active:
    mbg_time_adjustment_active()
  • If the call above has returned 1 then check if the reference clock is accessible (this may not be the case for external devices connected via serial port, or for USB devices):
    mbg_ref_time_accessible()
  • If the call above has returned 1 then read the current status of the reference clock:
    mbg_get_ref_time_status()
To see whether the clock is synchronized you can simply check whether the bit PCPS_FREER is set.

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Service I/O (MbgSvcIo) (VB6)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Service I/O (MbgSvcIo)

Meinberg Service I/O (MbgSvcIo) (VB6)

This page describes which libraries and sample code can be used to access the Meinberg Time Adjustment Service.

Step-by-step instructions for using the MbgSvcIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgsvcio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.
Start the Meinberg Time Adjustment service via the monitor program MbgMon.

Step 2: Compiling and testing the demo programs.

  • Download and extract the SDK files to a temporary folder.
  • Open the developer workspace file mbgsvcio-demo-vb6.vbw which is located in "%INSTALL_ROOT%\vb6\demo\mbgsvcio".
  • The main form of the program is mbgsvcio-demo-vb6.frm.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the module "mbgsvcio" and the library file mbgsvcio-vb6.bas to your VB6 project:

Step 4: Checking the status of the Meinberg Time Adjustment Service (mbgadjtm.exe)

  Dim SvcActive As Integer
  Dim RefAccessible As Integer
  Dim RefTimeStatus As Integer

  ' First check if the time adjustment service is active.
  SvcActive = mbg_time_adjustment_active

  If SvcActive <> 0 Then
    ' Now we can check if the ref time source (radio clock)
    ' is accessible
    RefAccessible = mbg_ref_time_accessible

    If RefAccessible > 0 Then
      ' The ref time source is accessible

      ' Now we can query the status of the ref time source
      RefTimeStatus = mbg_get_ref_time_status
    End If
  End If

API structures, definitions and exported functions for Visual Basic

Definitions

  • MBGSVCIO_VERSION
  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT

Exported functions

  • mbgsvcio_get_version()
  • mbgsvcio_check_version()
  • mbg_time_adjustment_active()
  • mbg_ref_time_accessible()
  • mbg_get_ref_time_status()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Service I/O (MbgSvcIo) (VB.NET)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Service I/O (MbgSvcIo)

Meinberg Service I/O (MbgSvcIo) (VB.NET)

This page describes which libraries and sample code can be used to access the Meinberg Time Adjustment Service.

Step-by-step instructions for using the MbgSvcIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgsvcio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.
Start the Meinberg Time Adjustment service via the monitor program MbgMon.

Step 2: Compiling and testing the demo programs.

  • Download and extract the SDK files to a temporary folder.
  • Open the solution file mbgsvcio-demo-vb.net.sln which is located in "%INSTALL_ROOT%\vb.net\demo\mbgsvcio".
  • The main file of the program is mbgsvcio-demo-vb.net.vb.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the module "mbgsvcio" and the library files mbgdefs-vb.net.vb and mbgsvcio-vb.net.vb to your VB.NET project:

Step 4: Checking the status of the Meinberg Time Adjustment Service (mbgadjtm.exe)

  Dim SvcActive As Integer
  Dim RefAccessible As Integer
  Dim RefTimeStatus As Integer

  ' First check if the time adjustment service is active.
  SvcActive = mbg_time_adjustment_active

  If SvcActive <> 0 Then
    ' Now we can check if the ref time source (radio clock)
    ' is accessible
    RefAccessible = mbg_ref_time_accessible

    If RefAccessible > 0 Then
      ' The ref time source is accessible

      ' Now we can query the status of the ref time source
      RefTimeStatus = mbg_get_ref_time_status
    End If
  End If

API structures, definitions and exported functions for Visual Basic

Definitions

  • MBGSVCIO_VERSION
  • PCPS_SUCCESS
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT

Exported functions

  • mbgsvcio_get_version()
  • mbgsvcio_check_version()
  • mbg_time_adjustment_active()
  • mbg_ref_time_accessible()
  • mbg_get_ref_time_status()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Service I/O (MbgSvcIo) (Delphi)

  • Files
Meinberg Software Development Kit (MbgSDK) » Meinberg Service I/O (MbgSvcIo)

Meinberg Service I/O (MbgSvcIo) (Delphi)

This page describes which libraries and sample code can be used to access the Meinberg Time Adjustment Service.

Step-by-step instructions for using the MbgSvcIo API

Step 1: Installing the driver package

Download and install the latest available Windows driver from our homepage.

http://www.meinberg.de/english/sw/#win

The driver is shipped with the latest mbgsvcio.dll which can be used to access the board via the SDK.
Install a Meinberg computer device and test if it works correctly with the driver package.
Start the Meinberg Time Adjustment service via the monitor program MbgMon.

Step 2: Compiling and testing the demo program.

  • Download and extract the SDK files to a temporary folder.
  • Open the main file mbgdemo.dpr which is located in "%INSTALL_ROOT%\delphi\demo".
  • Compile and test.

Step 3: Integrating the SDK files into a user application

  • Download and extract the SDK files to a temporary folder.
  • Add the units mbgsvcio.pas and mbgdefs.pas to your Delphi project.

Step 4: Checking the status of the Meinberg Time Adjustment Service (mbgadjtm.exe)

procedure mbg_dump_time_adjustment_status;

var
  svc_active : boolean;
  ref_accessible : boolean;
  ref_time_status : PCPS_STATUS;

begin  (* mbg_dump_time_adjustment_status *)
  (* Check if the time adjustment service is running. *)
  svc_active := mbg_time_adjustment_active <> 0;
  dump_item( KEY_SVC_ACTIVE, svc_active );

  (* More status information is only available *)
  (* if the time adjustment service is active. *)
  if svc_active then
  begin
    (* Check if the ref time source is accessible. A plug-in card, *)
    (* e.g. a PCI card, should always be accessible.               *)
    (* However, a serial device may be inaccessible e.g. because   *)
    (* the cable is disconnected.                                  *)
    ref_accessible := mbg_ref_time_accessible > 0;

    (* The reference time status only available    *)
    (* if the reference time source is accessible. *)
    if ref_accessible then
    begin
      (* Show the reference time status *)
      ref_time_status := mbg_get_ref_time_status();
    end;
  end;
end;  (* mbg_dump_time_adjustment_status *)

Definitions and exported functions for Borland Delphi

Definitions

  • MBGSVCIO_VERSION

Exported functions

  • mbgsvcio_get_version()
  • mbgsvcio_check_version()
  • mbg_time_adjustment_active()
  • mbg_ref_time_accessible()
  • mbg_get_ref_time_status()

Contact

For further questions please contact: support@meinberg.de
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg C API

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg C API

Introduction

All source files of the C library sources including all demo programs are located under "%INSTALL_ROOT%\c\".

The Meinberg include files and import libraries are located under the "%INSTALL_ROOT%\c\mbglib" subdirectory.
Warning: Modifying the files under this directory is not recommended!
Please contact support@meinberg.de if you have questions regarding these files.

Documentation and example code

MbgDevIo (Meinberg Device I/O) : Accessing Meinberg devices directly.
MbgSvcIo (Meinberg Service I/O): Checking the status of the Meinberg Adjustment Time Service and the reference clock.
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Visual Basic 6 API

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg Visual Basic 6 API

Introduction

You can find all Visual Basic 6 library files and demo programs under "mbgsdk\windows\vb6\".
The Meinberg library files containing the declarations for the DLLs are located under the "mbglib" subdirectory.

Example code

MbgDevIo (Meinberg Device I/O) : Accessing Meinberg devices directly.
MbgSvcIo (Meinberg Service I/O): Checking the status of the Meinberg Adjustment Time Service and the reference clock.
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Visual Basic .Net API

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg Visual Basic .Net API

Introduction

You can find all Visual Basic .Net library files and demo programs under "mbgsdk\windows\vb.net\".
The Meinberg library files containing the declarations for the DLLs are located in the "mbglib" subdirectory.

Example code

MbgDevIo (Meinberg Device I/O) : Accessing Meinberg devices directly.
MbgSvcIo (Meinberg Service I/O): Checking the status of the Meinberg Adjustment Time Service and the reference clock.
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Meinberg Delphi API

  • Files
Meinberg Software Development Kit (MbgSDK)

Meinberg Delphi API

Introduction

You can find all Borland Delphi library files and demo programs under "\mbgsdk\windows\delphi\". The Meinberg import library are located under the "\mbglib\lib" subdirectory.

Example code

MbgDevIo (Meinberg Device I/O) : Accessing Meinberg devices directly.
MbgSvcIo (Meinberg Service I/O) : Checking the status of the Meinberg Adjustment Time Service and the reference clock.
Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Module Index

  • Files

Modules

Here is a list of all modules:
  • Synthesizer parameters
  • Time zone/daylight saving parameters
  • Irig Codes
  • Bit Masks used with IRIG_SETTINGS.flags
  • Time Scale Configuration
  • Error codes
  • Command bytes used to access the device
  • Bit masks of PCPS_STATUS_PORT
  • Error flags in PCPS_DEV_CFG
  • Feature flags used with PCPS_FEATURES
  • Getting high resolution time stamps
  • Getting extrapolated high resolution time stamps
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Synthesizer parameters

  • Files

Synthesizer parameters

Data Structures

struct | SYNTH
struct | SYNTH_STATE

Defines

#define | N_SYNTH_FREQ_DIGIT 4
#define | MAX_SYNTH_FREQ 1000
#define | MIN_SYNTH_RANGE 0
#define | MAX_SYNTH_RANGE 5
#define | N_SYNTH_RANGE ( MAX_SYNTH_RANGE - MIN_SYNTH_RANGE + 1 )
#define | N_SYNTH_PHASE_DIGIT 4
#define | MAX_SYNTH_PHASE 3600
#define | MAX_SYNTH_FREQ_EDIT 9999
#define | MAX_SYNTH_FREQ_VAL 10000000UL
#define | SYNTH_PHASE_SYNC_LIMIT 10000UL
#define | _synth_dp_pos_from_range(_r) ( ( ( N_SYNTH_RANGE - (_r) ) % ( N_SYNTH_FREQ_DIGIT - 1 ) ) + 1 )
#define | DEFAULT_FREQ_RANGES
#define | _mbg_swab_synth(_p)
#define | _mbg_swab_synth_state(_p) _nop_macro_fnc()
#define | SYNTH_FLAG_PHASE_IGNORED 0x01

Enumerations

enum {
SYNTH_DISABLED, SYNTH_OFF, SYNTH_FREE, SYNTH_DRIFTING,
SYNTH_SYNC, N_SYNTH_STATE
}

Detailed Description

Synthesizer frequency is expressed as a four digit decimal number (freq) to be multiplied by 0.1 Hz and an base 10 exponent (range). If the effective frequency is less than 10 kHz its phase is synchronized corresponding to the variable phase. Phase may be in a range from -360 deg to +360 deg with a resolution of 0.1 deg, so the resulting numbers to be stored are in a range of -3600 to +3600.

Example:
Assume the value of freq is 2345 (decimal) and the value of phase is 900. If range == 0 the effective frequency is 234.5 Hz with a phase of +90 deg. If range == 1 the synthesizer will generate a 2345 Hz output frequency and so on.

Limitations:
If freq == 0 the synthesizer is disabled. If range == 0 the least significant digit of freq is limited to 0, 3, 5 or 6. The resulting frequency is shown in the examples below:

  • freq == 1230 --> 123.0 Hz
  • freq == 1233 --> 123 1/3 Hz (real 1/3 Hz, NOT 123.3 Hz)
  • freq == 1235 --> 123.5 Hz
  • freq == 1236 --> 123 2/3 Hz (real 2/3 Hz, NOT 123.6 Hz)

If range == MAX_RANGE the value of freq must not exceed 1000, so the output frequency is limited to 10 MHz.

Define Documentation

#define _mbg_swab_synth ( _p )

Value:

{                               \
  _mbg_swab16( &(_p)->freq );   \
  _mbg_swab16( &(_p)->range );  \
  _mbg_swab16( &(_p)->phase );  \
}

Definition at line 1115 of file gpsdefs.h.

#define _mbg_swab_synth_state ( _p ) _nop_macro_fnc()

Definition at line 1143 of file gpsdefs.h.

#define _synth_dp_pos_from_range ( _r ) ( ( ( N_SYNTH_RANGE - (_r) ) % ( N_SYNTH_FREQ_DIGIT - 1 ) ) + 1 )

the position of the decimal point if the frequency is printed as 4 digit value

Definition at line 1090 of file gpsdefs.h.

#define DEFAULT_FREQ_RANGES

Value:

{                           \
  "Hz",                     \
  "kHz",                    \
  "kHz",                    \
  "kHz",                    \
  "MHz",                    \
  "MHz",                    \
}
An initializer for commonly displayed synthesizer frequency units (N_SYNTH_RANGE strings)

Definition at line 1096 of file gpsdefs.h.

#define MAX_SYNTH_FREQ 1000

if range == MAX_SYNTH_RANGE

Definition at line 1066 of file gpsdefs.h.

#define MAX_SYNTH_FREQ_EDIT 9999

max sequence of digits when editing

Definition at line 1076 of file gpsdefs.h.

#define MAX_SYNTH_FREQ_VAL 10000000UL

The maximum frequency that can be configured for the synthesizer 10 MHz

Definition at line 1079 of file gpsdefs.h.

#define MAX_SYNTH_PHASE 3600

Definition at line 1073 of file gpsdefs.h.

#define MAX_SYNTH_RANGE 5

Definition at line 1069 of file gpsdefs.h.

#define MIN_SYNTH_RANGE 0

Definition at line 1068 of file gpsdefs.h.

#define N_SYNTH_FREQ_DIGIT 4

number of digits to edit

Definition at line 1065 of file gpsdefs.h.

#define N_SYNTH_PHASE_DIGIT 4

Definition at line 1072 of file gpsdefs.h.

#define N_SYNTH_RANGE ( MAX_SYNTH_RANGE - MIN_SYNTH_RANGE + 1 )

Definition at line 1070 of file gpsdefs.h.

#define SYNTH_FLAG_PHASE_IGNORED 0x01

Definition at line 1145 of file gpsdefs.h.

#define SYNTH_PHASE_SYNC_LIMIT 10000UL

The synthesizer phase will only be synchronized if the frequency is below this limit: 10 kHz

Definition at line 1085 of file gpsdefs.h.

Enumeration Type Documentation

anonymous enum

The definitions below can be used to query the current synthesizer state.

Enumerator:
SYNTH_DISABLED | disbled by cfg, i.e. freq == 0.0
SYNTH_OFF | not enabled after power-up
SYNTH_FREE | enabled, but not synchronized
SYNTH_DRIFTING | has initially been sync'd, but now running free
SYNTH_SYNC | fully synchronized
N_SYNTH_STATE | the number of known states

Definition at line 1127 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Time zone/daylight saving parameters

  • Files

Time zone/daylight saving parameters

Data Structures

struct | TZDL

Defines

#define | _mbg_swab_tzdl(_p)
#define | DL_AUTO_FLAG 0x8000
#define | DEFAULT_TZDL_AUTO_YEAR ( 2007 | DL_AUTO_FLAG )
#define | DEFAULt_TZDL_OFFS_DL 3600L
#define | DEFAULT_TZDL_TM_ON_OFF_NO_DST { DEFAULT_TZDL_AUTO_YEAR, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
#define | TZ_INFO_UTC "UTC (Universal Time, Coordinated)"
#define | DEFAULT_TZDL_NAMES_UTC { "UTC ", "UTC " }
#define | DEFAULT_TZDL_UTC
#define | DEFAULT_TZDL_TM_ON_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 2, 0, 0, 0L, 0L, 0 }
#define | DEFAULT_TZDL_TM_OFF_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
#define | TZ_INFO_CET_CEST_EN "CET/CEST (Central Europe)"
#define | TZ_INFO_CET_CEST_DE "MEZ/MESZ (Mitteleuropa)"
#define | DEFAULT_TZDL_NAMES_CET_CEST_EN { "CET ", "CEST " }
#define | DEFAULT_TZDL_NAMES_CET_CEST_DE { "MEZ ", "MESZ " }
#define | DEFAULT_TZDL_OFFS_CET 3600L
#define | DEFAULT_TZDL_CET_CEST_EN
#define | DEFAULT_TZDL_CET_CEST_DE
#define | DEFAULT_TZDL_TM_ON_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
#define | DEFAULT_TZDL_TM_OFF_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 4, 0, 0, 0L, 0L, 0 }
#define | TZ_INFO_EET_EEST_EN "EET/EEST (East Europe)"
#define | TZ_INFO_EET_EEST_DE "OEZ/OEST (Osteuropa)"
#define | DEFAULT_TZDL_NAMES_EET_EEST_EN { "EET ", "EEST " }
#define | DEFAULT_TZDL_NAMES_EET_EEST_DE { "OEZ ", "OESZ " }
#define | DEFAULT_TZDL_OFFS_EET 7200L
#define | DEFAULT_TZDL_EET_EEST_EN
#define | DEFAULT_TZDL_EET_EEST_DE

Typedefs

typedef char | TZ_NAME [6]

Detailed Description

Example:
For automatic daylight saving enable/disable in Central Europe, the variables are to be set as shown below:
  • offs = 3600L one hour from UTC
  • offs_dl = 3600L one additional hour if daylight saving enabled
  • tm_on = first Sunday from March 25, 02:00:00h ( year |= DL_AUTO_FLAG )
  • tm_off = first Sunday from October 25, 03:00:00h ( year |= DL_AUTO_FLAG )
  • name[0] == "CET " name if daylight saving not enabled
  • name[1] == "CEST " name if daylight saving is enabled

Define Documentation

#define _mbg_swab_tzdl ( _p )

Value:

{                                     \
  _mbg_swab32( &(_p)->offs );         \
  _mbg_swab32( &(_p)->offs_dl );      \
  _mbg_swab_tm_gps( &(_p)->tm_on );   \
  _mbg_swab_tm_gps( &(_p)->tm_off );  \
}

Definition at line 1176 of file gpsdefs.h.

#define DEFAULT_TZDL_AUTO_YEAR ( 2007 | DL_AUTO_FLAG )

Definition at line 1195 of file gpsdefs.h.

#define DEFAULT_TZDL_CET_CEST_DE

Value:

{                                               \
  DEFAULT_TZDL_OFFS_CET,              \
  DEFAULt_TZDL_OFFS_DL,            \
  DEFAULT_TZDL_TM_ON_CET_CEST,       \
  DEFAULT_TZDL_TM_OFF_CET_CEST,     \
  DEFAULT_TZDL_NAMES_CET_CEST_DE    \
}

Definition at line 1255 of file gpsdefs.h.

#define DEFAULT_TZDL_CET_CEST_EN

Value:

{                                               \
  DEFAULT_TZDL_OFFS_CET,              \
  DEFAULt_TZDL_OFFS_DL,            \
  DEFAULT_TZDL_TM_ON_CET_CEST,       \
  DEFAULT_TZDL_TM_OFF_CET_CEST,     \
  DEFAULT_TZDL_NAMES_CET_CEST_EN    \
}

Definition at line 1246 of file gpsdefs.h.

#define DEFAULT_TZDL_EET_EEST_DE

Value:

{                                               \
  DEFAULT_TZDL_OFFS_EET,          /* offs */    \
  DEFAULt_TZDL_OFFS_DL,           /* offs_dl */ \
  DEFAULT_TZDL_TM_ON_EET_EEST,    /* tm_on */   \
  DEFAULT_TZDL_TM_OFF_EET_EEST,   /* tm_off */  \
  DEFAULT_TZDL_NAMES_EET_EEST_DE  /* name[] */  \
}

Definition at line 1294 of file gpsdefs.h.

#define DEFAULT_TZDL_EET_EEST_EN

Value:

{                                               \
  DEFAULT_TZDL_OFFS_EET,          /* offs */    \
  DEFAULt_TZDL_OFFS_DL,           /* offs_dl */ \
  DEFAULT_TZDL_TM_ON_EET_EEST,    /* tm_on */   \
  DEFAULT_TZDL_TM_OFF_EET_EEST,   /* tm_off */  \
  DEFAULT_TZDL_NAMES_EET_EEST_EN  /* name[] */  \
}

Definition at line 1285 of file gpsdefs.h.

#define DEFAULT_TZDL_NAMES_CET_CEST_DE { "MEZ ", "MESZ " }

Definition at line 1242 of file gpsdefs.h.

#define DEFAULT_TZDL_NAMES_CET_CEST_EN { "CET ", "CEST " }

Definition at line 1241 of file gpsdefs.h.

#define DEFAULT_TZDL_NAMES_EET_EEST_DE { "OEZ ", "OESZ " }

Definition at line 1281 of file gpsdefs.h.

#define DEFAULT_TZDL_NAMES_EET_EEST_EN { "EET ", "EEST " }

Definition at line 1280 of file gpsdefs.h.

#define DEFAULT_TZDL_NAMES_UTC { "UTC ", "UTC " }

Definition at line 1212 of file gpsdefs.h.

#define DEFAULT_TZDL_OFFS_CET 3600L

Definition at line 1244 of file gpsdefs.h.

#define DEFAULt_TZDL_OFFS_DL 3600L

usually DST is +1 hour

Definition at line 1197 of file gpsdefs.h.

#define DEFAULT_TZDL_OFFS_EET 7200L

Definition at line 1283 of file gpsdefs.h.

#define DEFAULT_TZDL_TM_OFF_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }

Definition at line 1232 of file gpsdefs.h.

#define DEFAULT_TZDL_TM_OFF_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 4, 0, 0, 0L, 0L, 0 }

Definition at line 1271 of file gpsdefs.h.

#define DEFAULT_TZDL_TM_ON_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 2, 0, 0, 0L, 0L, 0 }

The symbols below specify beginning and end of DST for Central Europe, as constituted by the European Parliament:

Definition at line 1229 of file gpsdefs.h.

#define DEFAULT_TZDL_TM_ON_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }

Definition at line 1268 of file gpsdefs.h.

#define DEFAULT_TZDL_TM_ON_OFF_NO_DST { DEFAULT_TZDL_AUTO_YEAR, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }

The symbol below can be used to initialize both the tm_on and tm_off fields for time zones which do not switch to DST:

Definition at line 1204 of file gpsdefs.h.

#define DEFAULT_TZDL_UTC

Value:

{                                               \
  0L,                                 \
  0L,                              \
  DEFAULT_TZDL_TM_ON_OFF_NO_DST,     \
  DEFAULT_TZDL_TM_ON_OFF_NO_DST,    \
  DEFAULT_TZDL_NAMES_UTC            \
}

Definition at line 1214 of file gpsdefs.h.

#define DL_AUTO_FLAG 0x8000

If the year in tzdl.tm_on and tzdl.tm_off is or'ed with that constant, the receiver automatically generates daylight saving year by year.

Definition at line 1189 of file gpsdefs.h.

#define TZ_INFO_CET_CEST_DE "MEZ/MESZ (Mitteleuropa)"

Definition at line 1239 of file gpsdefs.h.

#define TZ_INFO_CET_CEST_EN "CET/CEST (Central Europe)"

Definition at line 1238 of file gpsdefs.h.

#define TZ_INFO_EET_EEST_DE "OEZ/OEST (Osteuropa)"

Definition at line 1278 of file gpsdefs.h.

#define TZ_INFO_EET_EEST_EN "EET/EEST (East Europe)"

Definition at line 1277 of file gpsdefs.h.

#define TZ_INFO_UTC "UTC (Universal Time, Coordinated)"

Definition at line 1210 of file gpsdefs.h.

Typedef Documentation

typedef char TZ_NAME[6]

the name of a time zone, 5 characters plus trailing zero

Definition at line 1165 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Irig Codes

  • Files

Irig Codes

Defines

#define | DEFAULT_ICODE_TX_NAMES
#define | DEFAULT_ICODE_TX_DESCRIPTIONS_ENG
#define | MSK_ICODE_TX_B002_B122 ( 1UL << ICODE_TX_B002_B122 )
#define | MSK_ICODE_TX_B003_B123 ( 1UL << ICODE_TX_B003_B123 )
#define | MSK_ICODE_TX_A002_A132 ( 1UL << ICODE_TX_A002_A132 )
#define | MSK_ICODE_TX_A003_A133 ( 1UL << ICODE_TX_A003_A133 )
#define | MSK_ICODE_TX_AFNOR ( 1UL << ICODE_TX_AFNOR )
#define | MSK_ICODE_TX_IEEE1344 ( 1UL << ICODE_TX_IEEE1344 )
#define | MSK_ICODE_TX_B220_1344 ( 1UL << ICODE_TX_B220_1344 )
#define | MSK_ICODE_TX_B222 ( 1UL << ICODE_TX_B222 )
#define | MSK_ICODE_TX_B223 ( 1UL << ICODE_TX_B223 )
#define | MSK_ICODE_TX_B006_B126 ( 1UL << ICODE_TX_B006_B126 )
#define | MSK_ICODE_TX_B007_B127 ( 1UL << ICODE_TX_B007_B127 )
#define | MSK_ICODE_TX_DC_MANCH
#define | MSK_ICODE_TX_1KHZ
#define | MSK_ICODE_TX_10KHZ
#define | MSK_ICODE_TX_100BPS
#define | MSK_ICODE_TX_1000BPS
#define | MSK_ICODE_TX_HAS_TFOM
#define | MSK_ICODE_TX_HAS_TZI
#define | SUPP_MSK_ICODE_TX
#define | DEFAULT_ICODE_RX_NAMES
#define | DEFAULT_ICODE_RX_DESCRIPTIONS_ENG
#define | MSK_ICODE_RX_B122_B123 ( 1UL << ICODE_RX_B122_B123 )
#define | MSK_ICODE_RX_A132_A133 ( 1UL << ICODE_RX_A132_A133 )
#define | MSK_ICODE_RX_B002_B003 ( 1UL << ICODE_RX_B002_B003 )
#define | MSK_ICODE_RX_A002_A003 ( 1UL << ICODE_RX_A002_A003 )
#define | MSK_ICODE_RX_AFNOR ( 1UL << ICODE_RX_AFNOR )
#define | MSK_ICODE_RX_AFNOR_DC ( 1UL << ICODE_RX_AFNOR_DC )
#define | MSK_ICODE_RX_IEEE1344 ( 1UL << ICODE_RX_IEEE1344 )
#define | MSK_ICODE_RX_IEEE1344_DC ( 1UL << ICODE_RX_IEEE1344_DC )
#define | MSK_ICODE_RX_B126_B127 ( 1UL << ICODE_RX_B126_B127 )
#define | MSK_ICODE_RX_B006_B007 ( 1UL << ICODE_RX_B006_B007 )
#define | MSK_ICODE_RX_DC
#define | MSK_ICODE_RX_1KHZ
#define | MSK_ICODE_RX_10KHZ
#define | MSK_ICODE_RX_100BPS
#define | MSK_ICODE_RX_1000BPS
#define | MSK_ICODE_RX_HAS_TFOM
#define | MSK_ICODE_RX_HAS_TZI
#define | SUPP_MSK_ICODE_RX

Enumerations

enum {
ICODE_TX_B002_B122, ICODE_TX_B003_B123, ICODE_TX_A002_A132, ICODE_TX_A003_A133,
ICODE_TX_AFNOR, ICODE_TX_IEEE1344, ICODE_TX_B220_1344, ICODE_TX_B222,
ICODE_TX_B223, ICODE_TX_B006_B126, ICODE_TX_B007_B127, N_ICODE_TX
}
enum {
ICODE_RX_B122_B123, ICODE_RX_A132_A133, ICODE_RX_B002_B003, ICODE_RX_A002_A003,
ICODE_RX_AFNOR, ICODE_RX_AFNOR_DC, ICODE_RX_IEEE1344, ICODE_RX_IEEE1344_DC,
ICODE_RX_B126_B127, ICODE_RX_B006_B007, N_ICODE_RX
}

Detailed Description

The following definitions are used to configure an optional on-board IRIG input or output.

A GPS device can generate an IRIG output signal if the bit GPS_HAS_IRIG_TX is set in the RECEIVER_INFO.features field. If a device has an optional IRIG input then the bit GPS_HAS_IRIG_RX is set.

  • Supported IRIG signal code types:
    • A002: 1000 bps, DC shift, time-of-year
    • A003: 1000 bps, DC shift, time-of-year, SBS
    • A132: 1000 bps, 10 kHz carrier, time-of-year
    • A133: 1000 bps, 10 kHz carrier, time-of-year, SBS
    • B002: 100 bps, DC shift, time-of-year
    • B003: 100 bps, DC shift, time-of-year, SBS
    • B122: 100 bps, 1 kHz carrier, time-of-year
    • B123: 100 bps, 1 kHz carrier, time-of-year, SBS
    • AFNOR: 100 bps, 1 kHz carrier, SBS, complete date
    • AFNOR DC: 100 bps, DC shift, SBS, complete date
    • IEEE1344: 100 bps, 1 kHz carrier, time-of-year, SBS, IEEE1344 extensions (B120)
    • IEEE1344 DC: 100 bps, DC shift, time-of-year, SBS, IEEE1344 extensions (B000)
    • B220/1344: 100 bps, DC shift, manchester encoded, IEEE1344 extensions
    • B222: 100 bps, DC shift, manchester encoded, time-of-year
    • B223: 100 bps, DC shift, manchester encoded, time-of-year, SBS

  • time-of-year: day-of-year, hours, minutes, seconds
  • SBS: straight binary seconds, second-of-day
  • IEEE1344 extensions: time zone info
  • AFNOR: french standard AFNOR NFS-87500

Define Documentation

#define DEFAULT_ICODE_RX_DESCRIPTIONS_ENG

Value:

{                                                           \
  "100 bps, 1 kHz carrier, SBS optionally",                 \
  "1000 bps, 10 kHz carrier, SBS optionally",               \
  "100 bps, DC shift, SBS optionally",                      \
  "1000 bps, DC shift, SBS optionally",                     \
  "100 bps, 1 kHz carrier, SBS, complete date",             \
  "100 bps, DC shift, SBS, complete date",                  \
  "100 bps, 1 kHz carrier, SBS, time zone info",            \
  "100 bps, DC shift, SBS, time zone info",                 \
  "100 bps, 1 kHz carrier, complete date, SBS optionally",  \
  "100 bps, DC shift, complete date, SBS optionally"        \
}
Initializers for English format description strings.

Definition at line 2117 of file gpsdefs.h.

#define DEFAULT_ICODE_RX_NAMES

Value:

{                              \
  "B122/B123",                 \
  "A132/A133",                 \
  "B002/B003 (DC)",            \
  "A002/A003 (DC)",            \
  "AFNOR NFS-87500",           \
  "AFNOR NFS-87500 (DC)",      \
  "IEEE1344",                  \
  "IEEE1344 (DC)",             \
  "B126/B127",                 \
  "B006/B007 (DC)"             \
}
Initializers for format name strings.

Definition at line 2100 of file gpsdefs.h.

#define DEFAULT_ICODE_TX_DESCRIPTIONS_ENG

Value:

{                                                                     \
  "100 bps, DC or 1 kHz carrier",                                     \
  "100 bps, DC or 1 kHz carrier, SBS",                                \
  "1000 bps, DC or 10 kHz carrier",                                   \
  "1000 bps, DC or 10 kHz carrier, SBS",                              \
  "100 bps, DC or 1 kHz carrier, SBS, complete date",                 \
  "100 bps, DC or 1 kHz carrier, SBS, time zone info",                \
  "100 bps, DC manchester enc. or 1kHz carrier, SBS, time zone info", \
  "100 bps, DC manchester enc. or 1kHz carrier, time-of-year",        \
  "100 bps, DC manchester enc. or 1kHz carrier, time-of-year, SBS",   \
  "100 bps, DC or 1 kHz carrier, complete date",                      \
  "100 bps, DC or 1 kHz carrier, complete date, SBS"                  \
}
Initializers for English format description strings.

Definition at line 1955 of file gpsdefs.h.

#define DEFAULT_ICODE_TX_NAMES

Value:

{                              \
  "B002+B122",                 \
  "B003+B123",                 \
  "A002+A132",                 \
  "A003+A133",                 \
  "AFNOR NFS-87500",           \
  "IEEE1344",                  \
  "B220/1344+IEEE1344",        \
  "B222+B122",                 \
  "B223+B123",                 \
  "B006+B126",                 \
  "B007+B127"                  \
}
Initializers for format name strings.

Definition at line 1937 of file gpsdefs.h.

#define MSK_ICODE_RX_1000BPS

Value:

(                            \
  MSK_ICODE_RX_A132_A133 |   \
  MSK_ICODE_RX_A002_A003     \
)
A mask of IRIG formats with 1000 bps data rate:

Definition at line 2194 of file gpsdefs.h.

#define MSK_ICODE_RX_100BPS

Value:

(                             \
  MSK_ICODE_RX_B122_B123   |  \
  MSK_ICODE_RX_B002_B003   |  \
  MSK_ICODE_RX_AFNOR       |  \
  MSK_ICODE_RX_AFNOR_DC    |  \
  MSK_ICODE_RX_IEEE1344    |  \
  MSK_ICODE_RX_IEEE1344_DC |  \
  MSK_ICODE_RX_B126_B127   |  \
  MSK_ICODE_RX_B006_B007      \
)
A mask of IRIG formats with 100 bps data rate:

Definition at line 2179 of file gpsdefs.h.

#define MSK_ICODE_RX_10KHZ

Value:

(                          \
  MSK_ICODE_RX_A132_A133   \
)
A mask of IRIG formats with 10 kHz carrier:

Definition at line 2171 of file gpsdefs.h.

#define MSK_ICODE_RX_1KHZ

Value:

(                          \
  MSK_ICODE_RX_B122_B123 | \
  MSK_ICODE_RX_AFNOR     | \
  MSK_ICODE_RX_IEEE1344  | \
  MSK_ICODE_RX_B126_B127   \
)
A mask of IRIG formats with 1 kHz carrier:

Definition at line 2160 of file gpsdefs.h.

#define MSK_ICODE_RX_A002_A003 ( 1UL << ICODE_RX_A002_A003 )

Definition at line 2137 of file gpsdefs.h.

#define MSK_ICODE_RX_A132_A133 ( 1UL << ICODE_RX_A132_A133 )

Definition at line 2135 of file gpsdefs.h.

#define MSK_ICODE_RX_AFNOR ( 1UL << ICODE_RX_AFNOR )

Definition at line 2138 of file gpsdefs.h.

#define MSK_ICODE_RX_AFNOR_DC ( 1UL << ICODE_RX_AFNOR_DC )

Definition at line 2139 of file gpsdefs.h.

#define MSK_ICODE_RX_B002_B003 ( 1UL << ICODE_RX_B002_B003 )

Definition at line 2136 of file gpsdefs.h.

#define MSK_ICODE_RX_B006_B007 ( 1UL << ICODE_RX_B006_B007 )

Definition at line 2143 of file gpsdefs.h.

#define MSK_ICODE_RX_B122_B123 ( 1UL << ICODE_RX_B122_B123 )

Definition at line 2134 of file gpsdefs.h.

#define MSK_ICODE_RX_B126_B127 ( 1UL << ICODE_RX_B126_B127 )

Definition at line 2142 of file gpsdefs.h.

#define MSK_ICODE_RX_DC

Value:

(                            \
  MSK_ICODE_RX_B002_B003   | \
  MSK_ICODE_RX_A002_A003   | \
  MSK_ICODE_RX_AFNOR_DC    | \
  MSK_ICODE_RX_IEEE1344_DC | \
  MSK_ICODE_RX_B006_B007     \
)
A mask of IRIG formats which have DC shift:

Definition at line 2148 of file gpsdefs.h.

#define MSK_ICODE_RX_HAS_TFOM

Value:

(                             \
  MSK_ICODE_RX_IEEE1344 |     \
  MSK_ICODE_RX_IEEE1344_DC    \
)
A mask of IRIG formats which support TFOM:

Definition at line 2203 of file gpsdefs.h.

#define MSK_ICODE_RX_HAS_TZI

Value:

(                            \
  MSK_ICODE_RX_IEEE1344 |    \
  MSK_ICODE_RX_IEEE1344_DC   \
)
A mask of IRIG formats which support time zone information:

Definition at line 2212 of file gpsdefs.h.

#define MSK_ICODE_RX_IEEE1344 ( 1UL << ICODE_RX_IEEE1344 )

Definition at line 2140 of file gpsdefs.h.

#define MSK_ICODE_RX_IEEE1344_DC ( 1UL << ICODE_RX_IEEE1344_DC )

Definition at line 2141 of file gpsdefs.h.

#define MSK_ICODE_TX_1000BPS

Value:

(                            \
  MSK_ICODE_TX_A002_A132 |   \
  MSK_ICODE_TX_A003_A133     \
)
A mask of IRIG formats with 1000 bps data rate:

Definition at line 2038 of file gpsdefs.h.

#define MSK_ICODE_TX_100BPS

Value:

(                           \
  MSK_ICODE_TX_B002_B122 |  \
  MSK_ICODE_TX_B003_B123 |  \
  MSK_ICODE_TX_AFNOR     |  \
  MSK_ICODE_TX_IEEE1344  |  \
  MSK_ICODE_TX_B006_B126 |  \
  MSK_ICODE_TX_B007_B127    \
)
A mask of IRIG formats with 100 bps data rate:

Definition at line 2025 of file gpsdefs.h.

#define MSK_ICODE_TX_10KHZ

Value:

(                          \
  MSK_ICODE_TX_A002_A132 | \
  MSK_ICODE_TX_A003_A133   \
)
A mask of IRIG formats with 10 kHz carrier:

Definition at line 2016 of file gpsdefs.h.

#define MSK_ICODE_TX_1KHZ

Value:

(                          \
  MSK_ICODE_TX_B002_B122 | \
  MSK_ICODE_TX_B003_B123 | \
  MSK_ICODE_TX_AFNOR     | \
  MSK_ICODE_TX_IEEE1344  | \
  MSK_ICODE_TX_B220_1344 | \
  MSK_ICODE_TX_B222      | \
  MSK_ICODE_TX_B223      | \
  MSK_ICODE_TX_B006_B126 | \
  MSK_ICODE_TX_B007_B127   \
)
A mask of IRIG formats with 1 kHz carrier:

Definition at line 2000 of file gpsdefs.h.

#define MSK_ICODE_TX_A002_A132 ( 1UL << ICODE_TX_A002_A132 )

Definition at line 1977 of file gpsdefs.h.

#define MSK_ICODE_TX_A003_A133 ( 1UL << ICODE_TX_A003_A133 )

Definition at line 1978 of file gpsdefs.h.

#define MSK_ICODE_TX_AFNOR ( 1UL << ICODE_TX_AFNOR )

Definition at line 1979 of file gpsdefs.h.

#define MSK_ICODE_TX_B002_B122 ( 1UL << ICODE_TX_B002_B122 )

Definition at line 1975 of file gpsdefs.h.

#define MSK_ICODE_TX_B003_B123 ( 1UL << ICODE_TX_B003_B123 )

Definition at line 1976 of file gpsdefs.h.

#define MSK_ICODE_TX_B006_B126 ( 1UL << ICODE_TX_B006_B126 )

Definition at line 1984 of file gpsdefs.h.

#define MSK_ICODE_TX_B007_B127 ( 1UL << ICODE_TX_B007_B127 )

Definition at line 1985 of file gpsdefs.h.

#define MSK_ICODE_TX_B220_1344 ( 1UL << ICODE_TX_B220_1344 )

Definition at line 1981 of file gpsdefs.h.

#define MSK_ICODE_TX_B222 ( 1UL << ICODE_TX_B222 )

Definition at line 1982 of file gpsdefs.h.

#define MSK_ICODE_TX_B223 ( 1UL << ICODE_TX_B223 )

Definition at line 1983 of file gpsdefs.h.

#define MSK_ICODE_TX_DC_MANCH

Value:

(                             \
  MSK_ICODE_TX_B220_1344 |    \
  MSK_ICODE_TX_B222      |    \
  MSK_ICODE_TX_B223           \
)
A mask of IRIG formats with manchester encoded DC output:

Definition at line 1990 of file gpsdefs.h.

#define MSK_ICODE_TX_HAS_TFOM

Value:

(                             \
  MSK_ICODE_TX_IEEE1344       \
)
A mask of IRIG formats which support TFOM:

Definition at line 2047 of file gpsdefs.h.

#define MSK_ICODE_TX_HAS_TZI

Value:

(                            \
  MSK_ICODE_TX_IEEE1344      \
)
A mask of IRIG formats which support time zone information:

Definition at line 2055 of file gpsdefs.h.

#define MSK_ICODE_TX_IEEE1344 ( 1UL << ICODE_TX_IEEE1344 )

Definition at line 1980 of file gpsdefs.h.

#define SUPP_MSK_ICODE_RX

Value:

(                          \
    MSK_ICODE_RX_B122_B123 | \
    MSK_ICODE_RX_A132_A133 | \
    MSK_ICODE_RX_B002_B003 | \
    MSK_ICODE_RX_A002_A003 | \
    MSK_ICODE_RX_AFNOR     | \
    MSK_ICODE_RX_AFNOR_DC    \
  )
The default mask of IRIG formats supported by IRIG receivers:

Definition at line 2223 of file gpsdefs.h.

#define SUPP_MSK_ICODE_TX

Value:

(                          \
    MSK_ICODE_TX_B002_B122 | \
    MSK_ICODE_TX_B003_B123 | \
    MSK_ICODE_TX_A002_A132 | \
    MSK_ICODE_TX_A003_A133 | \
    MSK_ICODE_TX_AFNOR       \
  )
The default mask of IRIG formats supported by IRIG transmitters:

Definition at line 2065 of file gpsdefs.h.

Enumeration Type Documentation

anonymous enum

Definitions used with IRIG transmitters which generate the same IRIG code both with and without carrier signal at the same time.

Enumerator:
ICODE_TX_B002_B122
ICODE_TX_B003_B123
ICODE_TX_A002_A132
ICODE_TX_A003_A133
ICODE_TX_AFNOR
ICODE_TX_IEEE1344
ICODE_TX_B220_1344
ICODE_TX_B222
ICODE_TX_B223
ICODE_TX_B006_B126
ICODE_TX_B007_B127
N_ICODE_TX number of code types

Definition at line 1917 of file gpsdefs.h.

anonymous enum

Definitions used with IRIG receivers which decode two similar IRIG codes at the same time.

Enumerator:
ICODE_RX_B122_B123
ICODE_RX_A132_A133
ICODE_RX_B002_B003
ICODE_RX_A002_A003
ICODE_RX_AFNOR
ICODE_RX_AFNOR_DC
ICODE_RX_IEEE1344
ICODE_RX_IEEE1344_DC
ICODE_RX_B126_B127
ICODE_RX_B006_B007
N_ICODE_RX

Definition at line 2082 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Bit Masks used with IRIG_SETTINGS.flags

  • Files

Bit Masks used with IRIG_SETTINGS.flags

Defines

#define | IFLAGS_DISABLE_TFOM 0x0001
#define | IFLAGS_TX_GEN_LOCAL_TIME 0x0002
#define | IFLAGS_MASK 0x0003

Detailed Description

(others are reserved)

Define Documentation

#define IFLAGS_DISABLE_TFOM 0x0001

RX ignore/TX don't gen TFOM

Definition at line 2258 of file gpsdefs.h.

#define IFLAGS_MASK 0x0003

flags above or'ed

Definition at line 2261 of file gpsdefs.h.

#define IFLAGS_TX_GEN_LOCAL_TIME 0x0002

gen local time, not UTC

Definition at line 2259 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Time Scale Configuration

  • Files

Time Scale Configuration

Data Structures

struct | MBG_TIME_SCALE_SETTINGS
struct | MBG_TIME_SCALE_INFO

Defines

#define | MBG_TIME_SCALE_MSK_DEFAULT ( 1UL << MBG_TIME_SCALE_DEFAULT )
#define | MBG_TIME_SCALE_MSK_GPS ( 1UL << MBG_TIME_SCALE_GPS )
#define | MBG_TIME_SCALE_MSK_TAI ( 1UL << MBG_TIME_SCALE_TAI )
#define | MBG_TIME_SCALE_STRS
#define | GPS_TAI_OFFSET 19
#define | _mbg_swab_mbg_time_scale_settings(_p) _nop_macro_fnc()
#define | _mbg_swab_mbg_time_scale_info(_p)

Enumerations

enum | { MBG_TIME_SCALE_DEFAULT, MBG_TIME_SCALE_GPS, MBG_TIME_SCALE_TAI, N_MBG_TIME_SCALE }

Detailed Description

The structures and defines can be used to configure the GPS receiver's basic time scale. By default this is UTC which can optionally be converted to some local time. However, some applications prefer TAI or pure GPS time. This can be configured using the structures below if the GPS_HAS_TIME_SCALE flag is set in RECEIVER_INFO::features.

Define Documentation

#define _mbg_swab_mbg_time_scale_info ( _p )

Value:

{                                                           \
  _mbg_swab_mbg_time_scale_settings( &(_p)->settings );     \
  _mbg_swab_mbg_time_scale_settings( &(_p)->max_settings ); \
  _mbg_swab32( &(_p)->supp_scales );                        \
}

Definition at line 2458 of file gpsdefs.h.

#define _mbg_swab_mbg_time_scale_settings ( _p ) _nop_macro_fnc()

Definition at line 2447 of file gpsdefs.h.

#define GPS_TAI_OFFSET 19

The fixed time offset between the GPS and TAI time scales, in seconds [s], TAI = GPS + GPS_TAI_OFFSET

Definition at line 2438 of file gpsdefs.h.

#define MBG_TIME_SCALE_MSK_DEFAULT ( 1UL << MBG_TIME_SCALE_DEFAULT )

Definition at line 2418 of file gpsdefs.h.

#define MBG_TIME_SCALE_MSK_GPS ( 1UL << MBG_TIME_SCALE_GPS )

Definition at line 2419 of file gpsdefs.h.

#define MBG_TIME_SCALE_MSK_TAI ( 1UL << MBG_TIME_SCALE_TAI )

Definition at line 2420 of file gpsdefs.h.

#define MBG_TIME_SCALE_STRS

Value:

{                           \
  "UTC/local",              \
  "GPS",                    \
  "TAI"                     \
}

Definition at line 2426 of file gpsdefs.h.

Enumeration Type Documentation

anonymous enum

Enumerator:
MBG_TIME_SCALE_DEFAULT | UTC or local time, t_gps - deltat_ls
MBG_TIME_SCALE_GPS | GPS time, monotonical
MBG_TIME_SCALE_TAI | TAI, t_gps + GPS_TAI_OFFSET seconds
N_MBG_TIME_SCALE

Definition at line 2410 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Error codes

  • Files

Error codes

Defines

#define | MBG_SUCCESS PCPS_SUCCESS
#define | MBG_ERR_STIME PCPS_ERR_STIME
#define | MBG_ERR_CFG PCPS_ERR_CFG
#define | MBG_ERR_GENERIC -19
#define | MBG_ERR_TIMEOUT -20
#define | MBG_ERR_FW_ID -21
#define | MBG_ERR_NBYTES -22
#define | MBG_ERR_INV_TIME -23
#define | MBG_ERR_FIFO -24
#define | MBG_ERR_NOT_READY -25
#define | MBG_ERR_INV_TYPE -26
#define | MBG_ERR_NO_MEM -27
#define | MBG_ERR_CLAIM_RSRC -28
#define | MBG_ERR_DEV_NOT_SUPP -29
#define | MBG_ERR_INV_DEV_REQUEST -30
#define | MBG_ERR_NOT_SUPP_BY_DEV -31
#define | MBG_ERR_USB_ACCESS -32
#define | MBG_ERR_CYCLIC_TIMEOUT -33
#define | MBG_ERR_NOT_SUPP_ON_OS -34
#define | MBG_ERR_LIB_NOT_COMPATIBLE -35
#define | MBG_ERR_N_COM_EXCEEDS_SUPP -36
#define | MBG_ERR_N_STR_EXCEEDS_SUPP -37
#define | MBG_ERR_IRQ_UNSAFE -38
#define | MBG_ERR_INV_INTNO -40
#define | MBG_ERR_NO_DRIVER -41
#define | MBG_ERR_DRV_VERSION -42

Detailed Description

Error codes used with Meinberg devices and drivers. The codes will be translated into an OS dependent error code, when they are returned to the calling function.

For Windows, these codes are made positive and or'ed with 0xE0000000 afterwards.

Example: Code -19 (MBG_ERR_GENERIC) will be converted to 0xE0000013 under Windows.

Define Documentation

#define MBG_ERR_CFG PCPS_ERR_CFG

-2, invalid parms with a PCPS_CFG_GROUP cmd

Definition at line 69 of file mbgerror.h.

#define MBG_ERR_CLAIM_RSRC -28

Failed to claim port or mem resource

Definition at line 88 of file mbgerror.h.

#define MBG_ERR_CYCLIC_TIMEOUT -33

Cyclic event (IRQ, etc.) didn't occur

Definition at line 93 of file mbgerror.h.

#define MBG_ERR_DEV_NOT_SUPP -29

Specified device type not supported by driver

Definition at line 89 of file mbgerror.h.

#define MBG_ERR_DRV_VERSION -42

The driver is too old

Definition at line 107 of file mbgerror.h.

#define MBG_ERR_FIFO -24

The device's FIFO is empty, though it shouldn't be

Definition at line 79 of file mbgerror.h.

#define MBG_ERR_FW_ID -21

Invalid firmware ID

Definition at line 74 of file mbgerror.h.

#define MBG_ERR_GENERIC -19

Generic error

Definition at line 72 of file mbgerror.h.

#define MBG_ERR_INV_DEV_REQUEST -30

IOCTL call not supported by driver

Definition at line 90 of file mbgerror.h.

#define MBG_ERR_INV_INTNO -40

Invalid interrupt number

Definition at line 105 of file mbgerror.h.

#define MBG_ERR_INV_TIME -23

The device's time is not valid

Definition at line 78 of file mbgerror.h.

#define MBG_ERR_INV_TYPE -26

Board did not recognize data type

Definition at line 83 of file mbgerror.h.

#define MBG_ERR_IRQ_UNSAFE -38

The enabled IRQs are unsafe with this firmware/ASIC version

Definition at line 101 of file mbgerror.h.

#define MBG_ERR_LIB_NOT_COMPATIBLE -35

The installed version of the DLL/shared object is not compatible with version used to build the application

Definition at line 95 of file mbgerror.h.

#define MBG_ERR_N_COM_EXCEEDS_SUPP -36

The number of COM ports provided by the device exceeds the maximum supported by the driver

Definition at line 97 of file mbgerror.h.

#define MBG_ERR_N_STR_EXCEEDS_SUPP -37

The number of string formats supported by the device exceeds the maximum supported by the driver

Definition at line 99 of file mbgerror.h.

#define MBG_ERR_NBYTES -22

The number of parameter bytes passed to the board did not match the number of bytes expected.

Definition at line 75 of file mbgerror.h.

#define MBG_ERR_NO_DRIVER -41

A driver could not be found

Definition at line 106 of file mbgerror.h.

#define MBG_ERR_NO_MEM -27

Failed to allocate memory

Definition at line 87 of file mbgerror.h.

#define MBG_ERR_NOT_READY -25

Board is temporary unable to respond (during initialization after RESET)

Definition at line 81 of file mbgerror.h.

#define MBG_ERR_NOT_SUPP_BY_DEV -31

Cmd or feature not supported by device

Definition at line 91 of file mbgerror.h.

#define MBG_ERR_NOT_SUPP_ON_OS -34

The function is not supported on this operating system

Definition at line 94 of file mbgerror.h.

#define MBG_ERR_STIME PCPS_ERR_STIME

-1, invalid date/time/status passed

Definition at line 68 of file mbgerror.h.

#define MBG_ERR_TIMEOUT -20

Timeout accessing the board

Definition at line 73 of file mbgerror.h.

#define MBG_ERR_USB_ACCESS -32

USB access failed

Definition at line 92 of file mbgerror.h.

#define MBG_SUCCESS PCPS_SUCCESS

0, no error

Definition at line 65 of file mbgerror.h.

Referenced by main(), print_ptp_status(), show_irig_ctrl_bits(), show_irig_debug_status(), and show_lan_intf_state().

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Command bytes used to access the device

  • Files

Command bytes used to access the device

Data Structures

struct | PCPS_DL_ONOFF
struct | PCPS_TZDL
struct | PCPS_UCAP_ENTRIES

Defines

#define | PCPS_GIVE_TIME_GROUP 0x00
#define | PCPS_SET_TIME_GROUP 0x10
#define | PCPS_IRQ_GROUP 0x20
#define | PCPS_CFG_GROUP 0x30
#define | PCPS_GIVE_DATA_GROUP 0x40
#define | PCPS_GPS_DATA_GROUP 0x50
#define | PCPS_CTRL_GROUP 0x60
#define | PCPS_CFG2_GROUP 0x70
#define | PCPS_GIVE_TIME ( PCPS_GIVE_TIME_GROUP | 0x0 )
#define | PCPS_GIVE_TIME_NOCLEAR ( PCPS_GIVE_TIME_GROUP | 0x1 )
#define | PCPS_GIVE_SYNC_TIME ( PCPS_GIVE_TIME_GROUP | 0x2 )
#define | PCPS_GIVE_HR_TIME ( PCPS_GIVE_TIME_GROUP | 0x3 )
#define | PCPS_GIVE_IRIG_TIME ( PCPS_GIVE_TIME_GROUP | 0x4 )
#define | PCPS_SET_TIME ( PCPS_SET_TIME_GROUP | 0x0 )
#define | PCPS_SET_EVENT_TIME ( PCPS_SET_TIME_GROUP | 0x4 )
#define | PCPS_IRQ_NONE ( PCPS_IRQ_GROUP | 0x0 )
#define | PCPS_IRQ_1_SEC ( PCPS_IRQ_GROUP | 0x1 )
#define | PCPS_IRQ_1_MIN ( PCPS_IRQ_GROUP | 0x2 )
#define | PCPS_IRQ_10_MIN ( PCPS_IRQ_GROUP | 0x4 )
#define | PCPS_IRQ_30_MIN ( PCPS_IRQ_GROUP | 0x8 )
#define | PCPS_GET_SERIAL ( PCPS_CFG_GROUP | 0x0 )
#define | PCPS_SET_SERIAL ( PCPS_CFG_GROUP | 0x1 )
#define | PCPS_GET_TZCODE ( PCPS_CFG_GROUP | 0x2 )
#define | PCPS_SET_TZCODE ( PCPS_CFG_GROUP | 0x3 )
#define | PCPS_TZCODE_MEZMESZ PCPS_TZCODE_CET_CEST
#define | PCPS_TZCODE_MEZ PCPS_TZCODE_CET
#define | PCPS_TZCODE_OEZ PCPS_TZCODE_EET_EEST
#define | PCPS_GET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x4 )
#define | PCPS_SET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x5 )
#define | _mbg_swab_pcps_dl_onoff(_p)
#define | DL_AUTO_FLAG 0x8000
#define | _mbg_swab_pcps_tzdl(_p)
#define | PCPS_GET_REF_OFFS ( PCPS_CFG_GROUP | 0x6 )
#define | PCPS_SET_REF_OFFS ( PCPS_CFG_GROUP | 0x7 )
#define | PCPS_GET_OPT_INFO ( PCPS_CFG_GROUP | 0x8 )
#define | PCPS_SET_OPT_SETTINGS ( PCPS_CFG_GROUP | 0x9 )
#define | PCPS_GET_IRIG_RX_INFO ( PCPS_CFG_GROUP | 0xA )
#define | PCPS_SET_IRIG_RX_SETTINGS ( PCPS_CFG_GROUP | 0xB )
#define | PCPS_GET_IRIG_TX_INFO ( PCPS_CFG_GROUP | 0xC )
#define | PCPS_SET_IRIG_TX_SETTINGS ( PCPS_CFG_GROUP | 0xD )
#define | PCPS_GET_SYNTH ( PCPS_CFG_GROUP | 0xE )
#define | PCPS_SET_SYNTH ( PCPS_CFG_GROUP | 0xF )
#define | PCPS_GIVE_FW_ID_1 ( PCPS_GIVE_DATA_GROUP | 0x0 )
#define | PCPS_GIVE_FW_ID_2 ( PCPS_GIVE_DATA_GROUP | 0x1 )
#define | PCPS_GIVE_SERNUM ( PCPS_GIVE_DATA_GROUP | 0x2 )
#define | PCPS_GENERIC_IO ( PCPS_GIVE_DATA_GROUP | 0x3 )
#define | PCPS_GET_SYNTH_STATE ( PCPS_GIVE_DATA_GROUP | 0x4 )
#define | PCPS_GET_IRIG_CTRL_BITS ( PCPS_GIVE_DATA_GROUP | 0x5 )
#define | _mbg_swab_irig_ctrl_bits(_p) _mbg_swab32( _p )
#define | PCPS_GET_STATUS_PORT ( PCPS_GIVE_DATA_GROUP | 0xB )
#define | PCPS_GET_DEBUG_STATUS ( PCPS_GIVE_DATA_GROUP | 0xC )
#define | PCPS_READ_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x0 )
#define | PCPS_WRITE_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x1 )
#define | PCPS_CLR_UCAP_BUFF ( PCPS_CTRL_GROUP | 0x0 )
#define | PCPS_GIVE_UCAP_ENTRIES ( PCPS_CTRL_GROUP | 0x1 )
#define | PCPS_GIVE_UCAP_EVENT ( PCPS_CTRL_GROUP | 0x2 )
#define | _mbg_swab_pcps_ucap_entries(_p)
#define | PCPS_FORCE_RESET 0x80

Typedefs

typedef uint8_t | PCPS_SERIAL
typedef uint8_t | PCPS_TZCODE
typedef uint32_t | MBG_IRIG_CTRL_BITS

Enumerations

enum {
PCPS_TZCODE_CET_CEST, PCPS_TZCODE_CET, PCPS_TZCODE_UTC, PCPS_TZCODE_EET_EEST,
N_PCPS_TZCODE
}

Detailed Description

The commands described below can be used to access the Meinberg computer peripherals. However, some of the commands have not been implemented with older clock models, or firmware versions.

The device driver library contains functions which detect the clocks and check which features are supported by a given clock model/firmware The header files pcpsdev.h and pcpsdrvr.h contain macros which can be used to query whether a detected clock supports a feature. If checking is required, the name of the macro is given in the comments below.

Some commands expect parameters to be passed to the board. In that case, the board returns the number of parameter bytes expected when the command code is passed. Every parameter byte has to be supplied to the board exactly like a command byte. Refer to function pcps_write_data() and the macro _pcps_write_var() for details.

  • PCPS_GIVE_TIME
    Return a PCPS_TIME structure with current date, time and status. Supported by all clocks.

  • PCPS_GIVE_TIME_NOCLEAR
    Same as PCPS_GIVE_TIME but the bits PCPS_ST_SEC and PCPS_ST_MIN (see pcpsdev.h) of the status port are not cleared. Supported by all clocks except PC31/PS31 with firmware version older than v3.0. This is mainly used by the DOS TSR and should not be used in other environments.

  • PCPS_GIVE_SYNC_TIME
    Return a PCPS_TIME structure with date and time of last synchronization of the clock or the last time set via the interface. _pcps_has_sync_time() checks whether supported.

  • PCPS_GIVE_HR_TIME
    Return a PCPS_HR_TIME structure with current date, time and status. This command should be used to read the clock with higher resolution. _pcps_has_hr_time() checks whether supported.

  • PCPS_GIVE_IRIG_TIME
    Return a PCPS_IRIG_TIME structure with day-of-year, time and status as decoded from the IRIG signal. _pcps_has_irig_time() checks whether supported.

  • PCPS_SET_TIME
    Set the board date, time and status. This command expects sizeof( ::PCPS_STIME ) parameter bytes. _pcps_can_set_time() checks whether supported.

  • PCPS_SET_EVENT_TIME
    Send a high resolution time stamp to the clock to configure a UTC time when the clock shall generate some event. This command expects a PCPS_TIME_STAMP parameter. _pcps_has_event_time() checks whether supported. (requires custom GPS CERN firmware)

  • PCPS_IRQ_NONE
    Disable the board's hardware IRQ
  • PCPS_IRQ_1_SEC
    Enable hardware IRQs once per second
  • PCPS_IRQ_1_MIN
    Enable hardware IRQs once per minute
  • PCPS_IRQ_10_MIN
    Enable hardware IRQs once per 10 minutes
  • PCPS_IRQ_30_MIN
    Enable hardware IRQs once per 30 minutes

  • PCPS_GET_SERIAL
    PCPS_SET_SERIAL
    These commands read or set the configuration of a clock's serial port COM0. The commands expect PCPS_SERIAL_BYTES parameter bytes and should be used preferably with the DCF77 clocks which have only one COM port. _pcps_has_serial() checks whether supported. Recent GPS clocks' COM ports should be cfg'd using the structures RECEIVER_INFO, PORT_INFO, and STR_TYPE_INFO. _pcps_has_receiver_info() checks whether these are supported. If they are not, then the code PC_GPS_PORT_PARM together with the PCPS_READ_GPS_DATA and PCPS_WRITE_GPS_DATA commands should be used.

  • PCPS_GET_TZCODE
    PCPS_SET_TZCODE
    These commands read or set a DCF77 clock's time zone code and should be used preferably with the newer DCF77 clocks which have limited support of different time zones. _pcps_has_tzcode() checks whether supported. A GPS clock's time zone must be cfg'd using the code PC_GPS_TZDL together with the PCPS_READ_GPS_DATA and PCPS_WRITE_GPS_DATA commands.

  • PCPS_GET_PCPS_TZDL
    PCPS_SET_PCPS_TZDL
    These commands read or set a DCF77 clock's time zone / daylight saving configuration. _pcps_has_pcps_tzdl() checks whether supported. A GPS clock's time zone must be cfg'd using the code PC_GPS_TZDL together with the PCPS_READ_GPS_DATA and PCPS_WRITE_GPS_DATA commands.

  • PCPS_GET_REF_OFFS
    PCPS_SET_REF_OFFS
    These commands can be used to configure the reference time offset from UTC for clocks which can't determine the offset automatically, e.g. from an IRIG input signal. _pcps_has_ref_offs() checks whether supported.

  • PCPS_GET_OPT_INFO
    PCPS_SET_OPT_SETTINGS
    These commands can be used to configure some optional settings, controlled by flags. When reading, the clock returns a MBG_OPT_INFO structure which contains the supported values, plus the current settings. When writing, clocks accepts a MBG_OPT_SETTINGS structure only which contain the desired settings of the supported flags only. _pcps_has_opt_flags() checks whether supported.

  • PCPS_GET_IRIG_RX_INFO
    PCPS_SET_IRIG_RX_SETTINGS
    PCPS_GET_IRIG_TX_INFO
    PCPS_SET_IRIG_TX_SETTINGS
    These commands can be used to configure IRIG inputs and outputs.
    When reading, the clock returns an IRIG_INFO structure which contains the supported values, plus the current settings.
    When writing, clocks accepts an IRIG_SETTINGS structure only which contain the desired settings only. _pcps_is_irig_rx() and _pcps_is_irig_tx() check whether supported.

  • PCPS_GET_IRIG_CTRL_BITS
    This command can be used to retrieve the control function bits of the latest IRIG input frame. Those bits may carry some well-known information as in the IEEE1344 code, but may also contain some customized information, depending on the IRIG frame type and the configuration of the IRIG generator. So these bits are returned as-is and must be interpreted by the application. _pcps_has_irig_ctrl_bits() checks whether supported.

  • PCPS_GET_SYNTH
    PCPS_SET_SYNTH
    PCPS_GET_SYNTH_STATE
    These commands can be used to configure an on-board frequency synthesizer and query the synthesizer status. The commands are only supported if the board supports the RECEIVER_INFO structure and the flag GPS_HAS_SYNTH is set in the RECEIVER_INFO::features. _pcps_has_synth() checks whether supported. The structures SYNTH and SYNTH_STATE used with these commands are defined in gpsdefs.h.

  • PCPS_GIVE_FW_ID_1
    PCPS_GIVE_FW_ID_2
    Returns the first/second block of PCPS_FIFO_SIZE characters of the firmware ID string. These commands can be used to check if the board responds properly. This is done by the clock detection functions.

  • PCPS_GIVE_SERNUM
    Returns PCPS_FIFO_SIZE characters of the clock's serial number. _pcps_has_sernum() checks whether supported.

  • PCPS_GENERIC_IO
    Generic I/O read and write. Can be used to query specific data, e.g. a selected element of an array. _pcps_has_generic_io() checks whether supported.

  • PCPS_GET_DEBUG_STATUS
    This command reads a MBG_DEBUG_STATUS structure which represents the internal status of the IRIG decoder and some additional debug info. _pcps_has_debug_status() checks whether supported.

  • PCPS_READ_GPS_DATA
    PCPS_WRITE_GPS_DATA
    These commands are used by the functions pcps_read_gps_data() and pcps_write_gps_data() to read or write large data structures to Meinberg GPS plug-in clocks. _pcps_is_gps() checks whether supported.

  • PCPS_CLR_UCAP_BUFF
    Clear a clock's time capture buffer. _pcps_can_clr_ucap_buff() checks whether supported.

  • PCPS_GIVE_UCAP_ENTRIES
    Read a PCPS_UCAP_ENTRIES structure which reports the max number of entries and the currently used number of entries in the user capture buffer. _pcps_has_ucap() checks whether supported.

  • PCPS_GIVE_UCAP_EVENT
    Read capture events using a PCPS_HR_TIME structure. This is faster than reading using the GPS command PC_GPS_UCAP. If no capture event is available then the structure is filled with 0s. _pcps_has_ucap() checks whether supported.

  • PCPS_FORCE_RESET
    Resets the microprocessor on the radio clock board. This is for debug purposes only and should not be used by standard applications.

The command codes listed above are defined below. The commands are grouped for bytes having the same high nibble:

Define Documentation

#define _mbg_swab_irig_ctrl_bits ( _p ) _mbg_swab32( _p )

Definition at line 693 of file pcpsdefs.h.

#define _mbg_swab_pcps_dl_onoff ( _p )

Value:

{                                      \
  _mbg_swab16( &(_p)->year_or_wday );  \
}

Definition at line 613 of file pcpsdefs.h.

#define _mbg_swab_pcps_tzdl ( _p )

Value:

{                                            \
  _mbg_swab16( &(_p)->offs );                \
  _mbg_swab16( &(_p)->offs_dl );             \
  _mbg_swab_pcps_dl_onoff( &(_p)->tm_on );   \
  _mbg_swab_pcps_dl_onoff( &(_p)->tm_off );  \
}

Definition at line 637 of file pcpsdefs.h.

#define _mbg_swab_pcps_ucap_entries ( _p )

Value:

{                                          \
  _mbg_swab32( &(_p)->used );              \
  _mbg_swab32( &(_p)->max );               \
}

Definition at line 719 of file pcpsdefs.h.

#define DL_AUTO_FLAG 0x8000

If the field year_or_wday is or'ed with the constant DL_AUTO_FLAG defined below then this means that start and end of daylight saving time shall be computed automatically for each year. In this case the remaining bits represent the day-of-week after the specified mday/month at which the change shall occur. If that flag is not set then the field contains the full four-digit year number and the mday/month values specify the exact date of that year.

Definition at line 627 of file pcpsdefs.h.

#define PCPS_CFG2_GROUP 0x70

Definition at line 533 of file pcpsdefs.h.

#define PCPS_CFG_GROUP 0x30

Definition at line 529 of file pcpsdefs.h.

#define PCPS_CLR_UCAP_BUFF ( PCPS_CTRL_GROUP | 0x0 )

Definition at line 709 of file pcpsdefs.h.

#define PCPS_CTRL_GROUP 0x60

Definition at line 532 of file pcpsdefs.h.

#define PCPS_FORCE_RESET 0x80

special -- use with care !

Definition at line 730 of file pcpsdefs.h.

#define PCPS_GENERIC_IO ( PCPS_GIVE_DATA_GROUP | 0x3 )

Definition at line 686 of file pcpsdefs.h.

#define PCPS_GET_DEBUG_STATUS ( PCPS_GIVE_DATA_GROUP | 0xC )

Definition at line 697 of file pcpsdefs.h.

Referenced by show_irig_debug_status().

#define PCPS_GET_IRIG_CTRL_BITS ( PCPS_GIVE_DATA_GROUP | 0x5 )

Definition at line 688 of file pcpsdefs.h.

#define PCPS_GET_IRIG_RX_INFO ( PCPS_CFG_GROUP | 0xA )

Definition at line 662 of file pcpsdefs.h.

#define PCPS_GET_IRIG_TX_INFO ( PCPS_CFG_GROUP | 0xC )

Definition at line 666 of file pcpsdefs.h.

#define PCPS_GET_OPT_INFO ( PCPS_CFG_GROUP | 0x8 )

Definition at line 654 of file pcpsdefs.h.

#define PCPS_GET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x4 )

Definition at line 593 of file pcpsdefs.h.

#define PCPS_GET_REF_OFFS ( PCPS_CFG_GROUP | 0x6 )

Definition at line 647 of file pcpsdefs.h.

#define PCPS_GET_SERIAL ( PCPS_CFG_GROUP | 0x0 )

Definition at line 564 of file pcpsdefs.h.

#define PCPS_GET_STATUS_PORT ( PCPS_GIVE_DATA_GROUP | 0xB )

Definition at line 696 of file pcpsdefs.h.

#define PCPS_GET_SYNTH ( PCPS_CFG_GROUP | 0xE )

Definition at line 674 of file pcpsdefs.h.

#define PCPS_GET_SYNTH_STATE ( PCPS_GIVE_DATA_GROUP | 0x4 )

Definition at line 687 of file pcpsdefs.h.

#define PCPS_GET_TZCODE ( PCPS_CFG_GROUP | 0x2 )

Definition at line 571 of file pcpsdefs.h.

#define PCPS_GIVE_DATA_GROUP 0x40

Definition at line 530 of file pcpsdefs.h.

#define PCPS_GIVE_FW_ID_1 ( PCPS_GIVE_DATA_GROUP | 0x0 )

Definition at line 683 of file pcpsdefs.h.

#define PCPS_GIVE_FW_ID_2 ( PCPS_GIVE_DATA_GROUP | 0x1 )

Definition at line 684 of file pcpsdefs.h.

#define PCPS_GIVE_HR_TIME ( PCPS_GIVE_TIME_GROUP | 0x3 )

Definition at line 540 of file pcpsdefs.h.

#define PCPS_GIVE_IRIG_TIME ( PCPS_GIVE_TIME_GROUP | 0x4 )

Definition at line 541 of file pcpsdefs.h.

#define PCPS_GIVE_SERNUM ( PCPS_GIVE_DATA_GROUP | 0x2 )

Definition at line 685 of file pcpsdefs.h.

#define PCPS_GIVE_SYNC_TIME ( PCPS_GIVE_TIME_GROUP | 0x2 )

Definition at line 539 of file pcpsdefs.h.

#define PCPS_GIVE_TIME ( PCPS_GIVE_TIME_GROUP | 0x0 )

Definition at line 537 of file pcpsdefs.h.

#define PCPS_GIVE_TIME_GROUP 0x00

Definition at line 526 of file pcpsdefs.h.

#define PCPS_GIVE_TIME_NOCLEAR ( PCPS_GIVE_TIME_GROUP | 0x1 )

Definition at line 538 of file pcpsdefs.h.

#define PCPS_GIVE_UCAP_ENTRIES ( PCPS_CTRL_GROUP | 0x1 )

Definition at line 710 of file pcpsdefs.h.

#define PCPS_GIVE_UCAP_EVENT ( PCPS_CTRL_GROUP | 0x2 )

Definition at line 711 of file pcpsdefs.h.

#define PCPS_GPS_DATA_GROUP 0x50

Definition at line 531 of file pcpsdefs.h.

#define PCPS_IRQ_10_MIN ( PCPS_IRQ_GROUP | 0x4 )

Definition at line 558 of file pcpsdefs.h.

#define PCPS_IRQ_1_MIN ( PCPS_IRQ_GROUP | 0x2 )

Definition at line 557 of file pcpsdefs.h.

#define PCPS_IRQ_1_SEC ( PCPS_IRQ_GROUP | 0x1 )

Definition at line 556 of file pcpsdefs.h.

#define PCPS_IRQ_30_MIN ( PCPS_IRQ_GROUP | 0x8 )

Definition at line 559 of file pcpsdefs.h.

#define PCPS_IRQ_GROUP 0x20

Definition at line 528 of file pcpsdefs.h.

#define PCPS_IRQ_NONE ( PCPS_IRQ_GROUP | 0x0 )

Definition at line 555 of file pcpsdefs.h.

#define PCPS_READ_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x0 )

Definition at line 704 of file pcpsdefs.h.

#define PCPS_SET_EVENT_TIME ( PCPS_SET_TIME_GROUP | 0x4 )

Definition at line 551 of file pcpsdefs.h.

#define PCPS_SET_IRIG_RX_SETTINGS ( PCPS_CFG_GROUP | 0xB )

Definition at line 663 of file pcpsdefs.h.

#define PCPS_SET_IRIG_TX_SETTINGS ( PCPS_CFG_GROUP | 0xD )

Definition at line 667 of file pcpsdefs.h.

#define PCPS_SET_OPT_SETTINGS ( PCPS_CFG_GROUP | 0x9 )

Definition at line 655 of file pcpsdefs.h.

#define PCPS_SET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x5 )

Definition at line 594 of file pcpsdefs.h.

#define PCPS_SET_REF_OFFS ( PCPS_CFG_GROUP | 0x7 )

Definition at line 648 of file pcpsdefs.h.

#define PCPS_SET_SERIAL ( PCPS_CFG_GROUP | 0x1 )

Definition at line 565 of file pcpsdefs.h.

#define PCPS_SET_SYNTH ( PCPS_CFG_GROUP | 0xF )

Definition at line 675 of file pcpsdefs.h.

#define PCPS_SET_TIME ( PCPS_SET_TIME_GROUP | 0x0 )

Definition at line 545 of file pcpsdefs.h.

#define PCPS_SET_TIME_GROUP 0x10

Definition at line 527 of file pcpsdefs.h.

#define PCPS_SET_TZCODE ( PCPS_CFG_GROUP | 0x3 )

Definition at line 572 of file pcpsdefs.h.

#define PCPS_TZCODE_MEZ PCPS_TZCODE_CET

Definition at line 589 of file pcpsdefs.h.

#define PCPS_TZCODE_MEZMESZ PCPS_TZCODE_CET_CEST

Definition at line 588 of file pcpsdefs.h.

#define PCPS_TZCODE_OEZ PCPS_TZCODE_EET_EEST

Definition at line 590 of file pcpsdefs.h.

#define PCPS_WRITE_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x1 )

Definition at line 705 of file pcpsdefs.h.

Typedef Documentation

typedef uint32_t MBG_IRIG_CTRL_BITS

Definition at line 691 of file pcpsdefs.h.

typedef uint8_t PCPS_SERIAL

Definition at line 568 of file pcpsdefs.h.

typedef uint8_t PCPS_TZCODE

Definition at line 575 of file pcpsdefs.h.

Enumeration Type Documentation

anonymous enum

Enumerator:
PCPS_TZCODE_CET_CEST
PCPS_TZCODE_CET
PCPS_TZCODE_UTC
PCPS_TZCODE_EET_EEST
N_PCPS_TZCODE

Definition at line 578 of file pcpsdefs.h.

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Bit masks of PCPS_STATUS_PORT

  • Files

Bit masks of PCPS_STATUS_PORT

Defines

#define | PCPS_ST_BUSY 0x01
#define | PCPS_ST_IRQF 0x02
#define | PCPS_ST_MOD 0x20
#define | PCPS_ST_SEC 0x40
#define | PCPS_ST_MIN 0x80

Detailed Description

These bits are ored with the PCPS_STATUS_PORT byte.

The flags PCPS_ST_SEC and PCPS_ST_MIN are cleared whenever the clock is read, so they are very unreliable in multitasking environments and should therefore be ignored.

NOTE: On the PCI510 card the signal PCPS_ST_IRQF has unintentionally not been wired. Functions which check if a card has triggered an IRQ should check the PCI_ASIC_PCI_IRQF flag provided by the PCI interface. The macros used by the mbglib driver library already do so.

Define Documentation

#define PCPS_ST_BUSY 0x01

the clock is busy filling the output FIFO

Definition at line 413 of file pcpsdev.h.

#define PCPS_ST_IRQF 0x02

the clock has generated an IRQ on the PC bus

Definition at line 414 of file pcpsdev.h.

#define PCPS_ST_MIN 0x80

Minutes have changed since last reading

Definition at line 417 of file pcpsdev.h.

#define PCPS_ST_MOD 0x20

the DCF77 modulation

Definition at line 415 of file pcpsdev.h.

#define PCPS_ST_SEC 0x40

Seconds have changed since last reading

Definition at line 416 of file pcpsdev.h.

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Error flags in PCPS_DEV_CFG

  • Files

Error flags in PCPS_DEV_CFG

Defines

#define | PCPS_EF_TIMEOUT 0x00000001
#define | PCPS_EF_INV_EPROM_ID 0x00000002
#define | PCPS_EF_IO_INIT 0x00000004
#define | PCPS_EF_IO_CFG 0x00000008
#define | PCPS_EF_IO_ENB 0x00000010
#define | PCPS_EF_IO_RSRC 0x00000020

Detailed Description

Flags used with PCPS_DEV_CFG::err_flags

Define Documentation

#define PCPS_EF_INV_EPROM_ID 0x00000002

invalid EPROM ID

Definition at line 573 of file pcpsdev.h.

#define PCPS_EF_IO_CFG 0x00000008

I/O intf not cfg'd

Definition at line 575 of file pcpsdev.h.

#define PCPS_EF_IO_ENB 0x00000010

I/O intf not enabled

Definition at line 576 of file pcpsdev.h.

#define PCPS_EF_IO_INIT 0x00000004

I/O intf not init'd

Definition at line 574 of file pcpsdev.h.

#define PCPS_EF_IO_RSRC 0x00000020

I/O not registered w/ rsrcmgr

Definition at line 577 of file pcpsdev.h.

#define PCPS_EF_TIMEOUT 0x00000001

timeout occured

Definition at line 572 of file pcpsdev.h.

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Feature flags used with PCPS_FEATURES

  • Files

Feature flags used with PCPS_FEATURES

Defines

#define | PCPS_CAN_SET_TIME 0x00000001UL
#define | PCPS_HAS_SERIAL 0x00000002UL
#define | PCPS_HAS_SYNC_TIME 0x00000004UL
#define | PCPS_HAS_TZDL 0x00000008UL
#define | PCPS_HAS_IDENT 0x00000010UL
#define | PCPS_HAS_UTC_OFFS 0x00000020UL
#define | PCPS_HAS_HR_TIME 0x00000040UL
#define | PCPS_HAS_SERNUM 0x00000080UL
#define | PCPS_HAS_TZCODE 0x00000100UL
#define | PCPS_HAS_CABLE_LEN 0x00000200UL
#define | PCPS_HAS_EVENT_TIME 0x00000400UL
#define | PCPS_HAS_RECEIVER_INFO 0x00000800UL
#define | PCPS_CAN_CLR_UCAP_BUFF 0x00001000UL
#define | PCPS_HAS_PCPS_TZDL 0x00002000UL
#define | PCPS_HAS_UCAP 0x00004000UL
#define | PCPS_HAS_IRIG_TX 0x00008000UL
#define | PCPS_HAS_GPS_DATA_16 0x00010000UL
#define | PCPS_HAS_SYNTH 0x00020000UL
#define | PCPS_HAS_GENERIC_IO 0x00040000UL
#define | PCPS_HAS_TIME_SCALE 0x00080000UL
#define | PCPS_HAS_UTC_PARM 0x00100000UL
#define | PCPS_HAS_IRIG_CTRL_BITS 0x00200000UL
#define | PCPS_HAS_LAN_INTF 0x00400000UL
#define | PCPS_HAS_PTP 0x00800000UL
#define | PCPS_HAS_IRIG_TIME 0x01000000UL

Detailed Description

Some features of the radio clocks have been introduced with specific firmware versions, so depending on the firmware version a clock may support a feature or not. The clock detection function checks the clock model and firmware version and updates the field PCPS_DEV_CFG::features accordingly. There are some macros which can easily be used to query whether a clock device actually supports a function, or not. The definitions define the possible features.

Define Documentation

#define PCPS_CAN_CLR_UCAP_BUFF 0x00001000UL

Definition at line 604 of file pcpsdev.h.

#define PCPS_CAN_SET_TIME 0x00000001UL

Definition at line 592 of file pcpsdev.h.

#define PCPS_HAS_CABLE_LEN 0x00000200UL

Definition at line 601 of file pcpsdev.h.

#define PCPS_HAS_EVENT_TIME 0x00000400UL

Definition at line 602 of file pcpsdev.h.

#define PCPS_HAS_GENERIC_IO 0x00040000UL

Definition at line 610 of file pcpsdev.h.

#define PCPS_HAS_GPS_DATA_16 0x00010000UL

Definition at line 608 of file pcpsdev.h.

#define PCPS_HAS_HR_TIME 0x00000040UL

Definition at line 598 of file pcpsdev.h.

#define PCPS_HAS_IDENT 0x00000010UL

Definition at line 596 of file pcpsdev.h.

#define PCPS_HAS_IRIG_CTRL_BITS 0x00200000UL

Definition at line 613 of file pcpsdev.h.

#define PCPS_HAS_IRIG_TIME 0x01000000UL

Definition at line 616 of file pcpsdev.h.

#define PCPS_HAS_IRIG_TX 0x00008000UL

Definition at line 607 of file pcpsdev.h.

#define PCPS_HAS_LAN_INTF 0x00400000UL

Definition at line 614 of file pcpsdev.h.

#define PCPS_HAS_PCPS_TZDL 0x00002000UL

Definition at line 605 of file pcpsdev.h.

#define PCPS_HAS_PTP 0x00800000UL

Definition at line 615 of file pcpsdev.h.

#define PCPS_HAS_RECEIVER_INFO 0x00000800UL

Definition at line 603 of file pcpsdev.h.

#define PCPS_HAS_SERIAL 0x00000002UL

Definition at line 593 of file pcpsdev.h.

#define PCPS_HAS_SERNUM 0x00000080UL

Definition at line 599 of file pcpsdev.h.

#define PCPS_HAS_SYNC_TIME 0x00000004UL

Definition at line 594 of file pcpsdev.h.

#define PCPS_HAS_SYNTH 0x00020000UL

Definition at line 609 of file pcpsdev.h.

#define PCPS_HAS_TIME_SCALE 0x00080000UL

Definition at line 611 of file pcpsdev.h.

#define PCPS_HAS_TZCODE 0x00000100UL

Definition at line 600 of file pcpsdev.h.

#define PCPS_HAS_TZDL 0x00000008UL

Definition at line 595 of file pcpsdev.h.

#define PCPS_HAS_UCAP 0x00004000UL

Definition at line 606 of file pcpsdev.h.

#define PCPS_HAS_UTC_OFFS 0x00000020UL

Definition at line 597 of file pcpsdev.h.

#define PCPS_HAS_UTC_PARM 0x00100000UL

Definition at line 612 of file pcpsdev.h.

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Getting high resolution time stamps

  • Files

Getting high resolution time stamps

The structure PCPS_HR_TIME is read using the mbg_get_hr_time() call and contains the system time in seconds since 1970 (standard time_t format), the fractions of a second, plus status and UTC offset.

The device driver checks whether a particular feature like HR time is supported by a particular device and returns an error if it is not. Also the latest driver software should be used since older versions of the driver don't check for HR time support.

With our GPS cards, the effictive resolution of the HR time is better than 1 microsecond. For the IRIG receivers, the resolution is 400 microseconds which is still much better than 10/15 milliseconds provided by the Windows system clock.

To get most accuracy for time stamps, a program can read the PC's performance counter, and then call mbg_get_time_cycles() which returns the HR time plus the performance counter value which matches that HR time stamp. The difference between the two performance counter values can be used to compensate the program execution time delay.

The way to access the time on the board is to write a command to the board's microcontroller which in turn makes the requested data available for reading. The advantage of this is that the interface is very flexible, but the disadvantage is that the on-board microcontroller is involved in any access to the board. In order to prevent applications from overruning the on-board microcontroller by countinuous accesses to the board the card has a limitation which limits the time between two accesses to 200 microseconds and 1 millisecond depending on the device.

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Getting extrapolated high resolution time stamps

  • Files

Getting extrapolated high resolution time stamps

To retrieve extrapolated time stamps a polling thread inside the mbgdevio.dll is started which reads a high resolution time stamp and an associated CPU cycles counter value once per second and saves that data pair.

Current time stamps are then computed by taking the current CPU cycles value and extrapolating the time from the last data pair.

This is very much faster than accessing the device for every single time stamp.

On systems where the cycles counter is implemented by a CPU's time stamp counter (TSC) it maybe required to set the thread or process affinity to a single CPU to get reliable cycles counts. In this case also care should be taken that the CPU's clock frequency is not stepped up and down e.g. due to power saving mechanisms (e.g. Intel SpeedStep, or AMD Cool'n'Quiet). Otherwise time interpolation may be messed up.

Notes:

  • This approach works / makes sense only with cards which support high resolution time stamps (PCPS_HR_TIME). If a card doesn't support that then this program prints a warning.
  • Extrapolation is done using the time stamp counter (TSC) registers provided by Pentium CPUs and newer/compatible types as the cycles counter. On SMP / multicore CPUs those counters may not be synchronized, so this works only correctly if all cycles counter values are taken from the same CPU. To achieve this the process CPU affinity is by default set to the first CPU at program start, which means all threads of this process are executed only on that CPU.
Associated functions:

  • mbg_xhrt_poll_thread_create()
  • mbg_get_xhrt_cycles_frequency()
  • mbg_get_xhrt_time_as_pcps_hr_time()
  • mbg_get_xhrt_time_as_filetime()
  • mbg_xhrt_poll_thread_stop()
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Structures

  • Files
  • Alphabetical List
  • Data Structures
  • Data Fields

Data Structures

Here are the data structures with brief descriptions:
_MBG_DEVICE_LIST
_MBG_DEVICENAME_LIST
ALM
ANT_INFO
ASCII_MSG
CFGH
COM_PARM
CORR_INFO
DMS
ELLIPSOID
ENABLE_FLAGS
EPH
FIXED_FREQ_INFO
FPGA_INFO
FPGA_START_INFO
FT_DWL
IDENT
IONO
IP4_SETTINGS
IRIG_INFO
IRIG_SETTINGS
LAN_IF_INFO
MBG_DATE
MBG_DATE_TIME
MBG_OPT_INFO
MBG_OPT_SETTINGS
MBG_POLL_THREAD_INFO
MBG_THREAD_INFO
MBG_TIME
MBG_TIME_SCALE_INFO
MBG_TIME_SCALE_SETTINGS
MBG_XHRT_INFO
MBG_XHRT_VARS
MULTI_REF_INFO
MULTI_REF_SETTINGS
NANO_TIME
NAV_ENGINE_SETTINGS
NAV_TIME_MODE_SETTINGS
PCI_ASIC
PCI_ASIC_ADDON_DATA
PCI_ASIC_CFG
PCI_ASIC_REG
PCPS_DEV
PCPS_DEV_CFG
PCPS_DEV_TYPE
PCPS_DL_ONOFF
PCPS_DRVR_INFO
PCPS_HR_TIME
PCPS_HR_TIME_CYCLES
PCPS_IRIG_TIME_s
PCPS_MAPPED_MEM
PCPS_PORT_RSRC
PCPS_STIME_s
PCPS_TIME_CYCLES
PCPS_TIME_s
PCPS_TIME_STAMP
PCPS_TIME_STAMP_CYCLES
PCPS_TIME_UNION
PCPS_TZDL
PCPS_UCAP_ENTRIES
PORT_INFO
PORT_INFO_IDX
PORT_PARM
PORT_SETTINGS
PORT_SETTINGS_IDX
POS
POUT_INFO
POUT_INFO_IDX
POUT_SETTINGS
POUT_SETTINGS_IDX
POUT_TIME
PTP_CFG_INFO
PTP_CFG_SETTINGS
PTP_CLOCK_IDENTITY
PTP_STATE
PTP_TABLE
RECEIVER_INFO
RECEIVER_PORT_CFG
SCU_STAT_INFO
SCU_STAT_SETTINGS
STAT_INFO
STR_TYPE_INFO
STR_TYPE_INFO_IDX
SW_REV
SYNTH
SYNTH_STATE
T_GPS
TIMEOUT
TM_GPS
TTM
TZDL
USER_POS
UTC
XMULTI_REF_ID
XMULTI_REF_INFO
XMULTI_REF_INFO_IDX
XMULTI_REF_SETTINGS
XMULTI_REF_SETTINGS_IDX
XMULTI_REF_STATUS
XMULTI_REF_STATUS_IDX
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: _MBG_DEVICE_LIST Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

_MBG_DEVICE_LIST Struct Reference

#include <mbgdevio.h>

Data Fields

char * | device_path
struct _MBG_DEVICE_LIST * | next

Detailed Description

Definition at line 449 of file mbgdevio.h.

Field Documentation

char* _MBG_DEVICE_LIST::device_path

Hardware ID depending on the calling function

Definition at line 451 of file mbgdevio.h.

struct _MBG_DEVICE_LIST* _MBG_DEVICE_LIST::next [read]

Definition at line 452 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: _MBG_DEVICENAME_LIST Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

_MBG_DEVICENAME_LIST Struct Reference

#include <mbgdevio.h>

Data Fields

char | device_name [40]
struct _MBG_DEVICENAME_LIST * | next

Detailed Description

Definition at line 458 of file mbgdevio.h.

Field Documentation

char _MBG_DEVICENAME_LIST::device_name[40]

readable name

Definition at line 460 of file mbgdevio.h.

struct _MBG_DEVICENAME_LIST* _MBG_DEVICENAME_LIST::next [read]

Definition at line 461 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: ALM Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

ALM Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
HEALTH health
T_GPS t0a
double | sqrt_A
double | e
double | M0
double | omega
double | OMEGA0
double | OMEGADOT
double | deltai
double | af0
double | af1

Detailed Description

Definition at line 3749 of file gpsdefs.h.

Field Documentation

CSUM ALM::csum

Definition at line 3751 of file gpsdefs.h.

int16_t ALM::valid

Definition at line 3752 of file gpsdefs.h.

HEALTH ALM::health

Definition at line 3754 of file gpsdefs.h.

T_GPS ALM::t0a

Definition at line 3755 of file gpsdefs.h.

double ALM::sqrt_A

Definition at line 3757 of file gpsdefs.h.

double ALM::e

Definition at line 3758 of file gpsdefs.h.

double ALM::M0

Definition at line 3760 of file gpsdefs.h.

double ALM::omega

Definition at line 3761 of file gpsdefs.h.

double ALM::OMEGA0

Definition at line 3762 of file gpsdefs.h.

double ALM::OMEGADOT

Definition at line 3763 of file gpsdefs.h.

double ALM::deltai

Definition at line 3764 of file gpsdefs.h.

double ALM::af0

Definition at line 3765 of file gpsdefs.h.

double ALM::af1

Definition at line 3766 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: ANT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

ANT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

int16_t status
TM_GPS tm_disconn
TM_GPS tm_reconn
int32_t delta_t

Detailed Description

The structure below reflects the status of the antenna, the times of last disconnect/reconnect, and the board's clock offset after the disconnection interval.

Definition at line 1310 of file gpsdefs.h.

Field Documentation

int16_t ANT_INFO::status

current status of antenna

Definition at line 1312 of file gpsdefs.h.

TM_GPS ANT_INFO::tm_disconn

time of antenna disconnect

Definition at line 1313 of file gpsdefs.h.

TM_GPS ANT_INFO::tm_reconn

time of antenna reconnect

Definition at line 1314 of file gpsdefs.h.

int32_t ANT_INFO::delta_t

clock offs. at reconn. time in GPS_TICKS_PER_SEC

Definition at line 1315 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: ASCII_MSG Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

ASCII_MSG Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
char s [23]

Detailed Description

Definition at line 3841 of file gpsdefs.h.

Field Documentation

CSUM ASCII_MSG::csum

Definition at line 3843 of file gpsdefs.h.

int16_t ASCII_MSG::valid

Definition at line 3844 of file gpsdefs.h.

char ASCII_MSG::s[23]

Definition at line 3845 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: CFGH Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

CFGH Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
T_GPS tot_51
T_GPS tot_63
T_GPS t0a
CFG | cfg [N_SVNO]
HEALTH | health [N_SVNO]

Detailed Description

Definition at line 3773 of file gpsdefs.h.

Field Documentation

CSUM CFGH::csum

Definition at line 3775 of file gpsdefs.h.

int16_t CFGH::valid

Definition at line 3776 of file gpsdefs.h.

T_GPS CFGH::tot_51

Definition at line 3778 of file gpsdefs.h.

T_GPS CFGH::tot_63

Definition at line 3779 of file gpsdefs.h.

T_GPS CFGH::t0a

Definition at line 3780 of file gpsdefs.h.

CFG CFGH::cfg[N_SVNO]

Definition at line 3782 of file gpsdefs.h.

HEALTH CFGH::health[N_SVNO]

Definition at line 3783 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: COM_PARM Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

COM_PARM Struct Reference

#include <gpsdefs.h>

Data Fields

BAUD_RATE baud_rate
char framing [4]
int16_t handshake

Detailed Description

Definition at line 1385 of file gpsdefs.h.

Field Documentation

BAUD_RATE COM_PARM::baud_rate

Definition at line 1387 of file gpsdefs.h.

char COM_PARM::framing[4]

Definition at line 1388 of file gpsdefs.h.

int16_t COM_PARM::handshake

Definition at line 1389 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: CORR_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

CORR_INFO Struct Reference

#include <pcpsdefs.h>

Data Fields

uint8_t val
uint8_t status
char corr_dir
uint8_t flags

Detailed Description

Definition at line 1126 of file pcpsdefs.h.

Field Documentation

uint8_t CORR_INFO::val

correlation value

Definition at line 1128 of file pcpsdefs.h.

uint8_t CORR_INFO::status

status codes, see below

Definition at line 1129 of file pcpsdefs.h.

char CORR_INFO::corr_dir

space, '<', or '>'

Definition at line 1130 of file pcpsdefs.h.

uint8_t CORR_INFO::flags

reserved, currently always 0

Definition at line 1131 of file pcpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: DMS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

DMS Struct Reference

#include <mbggeo.h>

Data Fields

uint16_t prefix
uint16_t deg
uint16_t min
double sec

Detailed Description

Geographic longitude or latitude in [degrees, minutes, seconds] longitude East latitude North and positve, South or West angles negative

Definition at line 74 of file mbggeo.h.

Field Documentation

uint16_t DMS::prefix

'N', 'E', 'S' or 'W'

Definition at line 76 of file mbggeo.h.

uint16_t DMS::deg

[0...90 (lat) or 0...180 (lon)]

Definition at line 77 of file mbggeo.h.

uint16_t DMS::min

[0...59]

Definition at line 78 of file mbggeo.h.

double DMS::sec

[0...59.999]

Definition at line 79 of file mbggeo.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbggeo.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: ELLIPSOID Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

ELLIPSOID Struct Reference

#include <mbggeo.h>

Data Fields

CSUM csum
int16_t valid
char | name [40]
XYZ dxyz
double | a
double | rcp_f
double | f
double | b
double | sqr_e

Detailed Description

Definition at line 149 of file mbggeo.h.

Field Documentation

CSUM ELLIPSOID::csum

Definition at line 151 of file mbggeo.h.

int16_t ELLIPSOID::valid

Definition at line 152 of file mbggeo.h.

char ELLIPSOID::name[40]

Definition at line 154 of file mbggeo.h.

XYZ ELLIPSOID::dxyz

Definition at line 155 of file mbggeo.h.

double ELLIPSOID::a

Definition at line 156 of file mbggeo.h.

double ELLIPSOID::rcp_f

Definition at line 157 of file mbggeo.h.

double ELLIPSOID::f

Definition at line 161 of file mbggeo.h.

double ELLIPSOID::b

Definition at line 162 of file mbggeo.h.

double ELLIPSOID::sqr_e

Definition at line 163 of file mbggeo.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbggeo.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: ENABLE_FLAGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

ENABLE_FLAGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t serial
uint16_t pulses
uint16_t freq
uint16_t synth

Detailed Description

The structure holds some flags which let the corresponding outputs be disabled after power-up until the receiver has synchronized (flag == 0x00, the default) or force the outputs to be enabled immediately after power-up. The fixed frequency output is hard-wired to be enabled immediately after power-up, so the code for freq must always be 0x03.

Definition at line 1354 of file gpsdefs.h.

Field Documentation

uint16_t ENABLE_FLAGS::serial

EF_OFF or EF_SERIAL_BOTH

Definition at line 1356 of file gpsdefs.h.

uint16_t ENABLE_FLAGS::pulses

EF_OFF or EF_PULSES_BOTH

Definition at line 1357 of file gpsdefs.h.

uint16_t ENABLE_FLAGS::freq

always EF_FREQ_ALL

Definition at line 1358 of file gpsdefs.h.

uint16_t ENABLE_FLAGS::synth

EF_OFF or EF_SYNTH

Definition at line 1359 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: EPH Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

EPH Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
HEALTH health
IOD IODC
IOD IODE2
IOD IODE3
T_GPS tt
T_GPS t0c
T_GPS t0e
double | sqrt_A
double | e
double | M0
double | omega
double | OMEGA0
double | OMEGADOT
double | deltan
double | i0
double | idot
double | crc
double | crs
double | cuc
double | cus
double | cic
double | cis
double | af0
double | af1
double | af2
double | tgd
uint16_t URA
uint8_t L2code
uint8_t L2flag

Detailed Description

Definition at line 3703 of file gpsdefs.h.

Field Documentation

CSUM EPH::csum

Definition at line 3705 of file gpsdefs.h.

int16_t EPH::valid

Definition at line 3706 of file gpsdefs.h.

HEALTH EPH::health

Definition at line 3708 of file gpsdefs.h.

IOD EPH::IODC

Definition at line 3709 of file gpsdefs.h.

IOD EPH::IODE2

Definition at line 3710 of file gpsdefs.h.

IOD EPH::IODE3

Definition at line 3711 of file gpsdefs.h.

T_GPS EPH::tt

Definition at line 3712 of file gpsdefs.h.

T_GPS EPH::t0c

Definition at line 3713 of file gpsdefs.h.

T_GPS EPH::t0e

Definition at line 3714 of file gpsdefs.h.

double EPH::sqrt_A

Definition at line 3716 of file gpsdefs.h.

double EPH::e

Definition at line 3717 of file gpsdefs.h.

double EPH::M0

Definition at line 3718 of file gpsdefs.h.

double EPH::omega

Definition at line 3719 of file gpsdefs.h.

double EPH::OMEGA0

Definition at line 3720 of file gpsdefs.h.

double EPH::OMEGADOT

Definition at line 3721 of file gpsdefs.h.

double EPH::deltan

Definition at line 3722 of file gpsdefs.h.

double EPH::i0

Definition at line 3723 of file gpsdefs.h.

double EPH::idot

Definition at line 3724 of file gpsdefs.h.

double EPH::crc

Definition at line 3725 of file gpsdefs.h.

double EPH::crs

Definition at line 3726 of file gpsdefs.h.

double EPH::cuc

Definition at line 3727 of file gpsdefs.h.

double EPH::cus

Definition at line 3728 of file gpsdefs.h.

double EPH::cic

Definition at line 3729 of file gpsdefs.h.

double EPH::cis

Definition at line 3730 of file gpsdefs.h.

double EPH::af0

Definition at line 3732 of file gpsdefs.h.

double EPH::af1

Definition at line 3733 of file gpsdefs.h.

double EPH::af2

Definition at line 3734 of file gpsdefs.h.

double EPH::tgd

Definition at line 3735 of file gpsdefs.h.

uint16_t EPH::URA

Definition at line 3737 of file gpsdefs.h.

uint8_t EPH::L2code

Definition at line 3739 of file gpsdefs.h.

uint8_t EPH::L2flag

Definition at line 3740 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: FIXED_FREQ_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

FIXED_FREQ_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t khz_val
int16_t range

Detailed Description

Definition at line 392 of file gpsdefs.h.

Field Documentation

uint16_t FIXED_FREQ_INFO::khz_val

Definition at line 394 of file gpsdefs.h.

int16_t FIXED_FREQ_INFO::range

Definition at line 395 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: FPGA_INFO Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

FPGA_INFO Union Reference

#include <gpsdefs.h>

Data Fields

struct {
CSUM csum
uint32_t fsize
uint8_t * start_addr
char name [FPGA_NAME_SIZE]
} hdr
char b [FPGA_INFO_SIZE]

Detailed Description

Definition at line 809 of file gpsdefs.h.

Field Documentation

CSUM FPGA_INFO::csum

Definition at line 813 of file gpsdefs.h.

uint32_t FPGA_INFO::fsize

Definition at line 814 of file gpsdefs.h.

uint8_t* FPGA_INFO::start_addr

Definition at line 818 of file gpsdefs.h.

char FPGA_INFO::name[FPGA_NAME_SIZE]

Definition at line 820 of file gpsdefs.h.

struct { ... } FPGA_INFO::hdr

char FPGA_INFO::b[FPGA_INFO_SIZE]

Definition at line 823 of file gpsdefs.h.

The documentation for this union was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: FPGA_START_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

FPGA_START_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
uint16_t fpga_start_seg

Detailed Description

Definition at line 833 of file gpsdefs.h.

Field Documentation

CSUM FPGA_START_INFO::csum

Definition at line 835 of file gpsdefs.h.

uint16_t FPGA_START_INFO::fpga_start_seg

Definition at line 836 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: FT_DWL Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

FT_DWL Union Reference

Data Fields

FILETIME | ft
DWORDLONG | dwl

Detailed Description

Union to do a simple conversion between a Windows FILETIME to a 64 Bit value.

Definition at line 91 of file xhrtime.c.

Field Documentation

FILETIME FT_DWL::ft

Definition at line 93 of file xhrtime.c.

Referenced by main().

DWORDLONG FT_DWL::dwl

Definition at line 94 of file xhrtime.c.

Referenced by main().

The documentation for this union was generated from the following file:
  • c/demo/mbgdevio/xhrtime.c
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: IDENT Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

IDENT Union Reference

#include <gpsdefs.h>

Data Fields

char | c [16]
int16_t | wrd [8]
uint32_t | lw [4]

Detailed Description

Definition at line 3201 of file gpsdefs.h.

Field Documentation

char IDENT::c[16]

Definition at line 3203 of file gpsdefs.h.

int16_t IDENT::wrd[8]

Definition at line 3204 of file gpsdefs.h.

uint32_t IDENT::lw[4]

Definition at line 3205 of file gpsdefs.h.

The documentation for this union was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: IONO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

IONO Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
double | alpha_0
double | alpha_1
double | alpha_2
double | alpha_3
double | beta_0
double | beta_1
double | beta_2
double | beta_3

Detailed Description

Definition at line 3821 of file gpsdefs.h.

Field Documentation

CSUM IONO::csum

Definition at line 3823 of file gpsdefs.h.

int16_t IONO::valid

Definition at line 3824 of file gpsdefs.h.

double IONO::alpha_0

Definition at line 3826 of file gpsdefs.h.

double IONO::alpha_1

Definition at line 3827 of file gpsdefs.h.

double IONO::alpha_2

Definition at line 3828 of file gpsdefs.h.

double IONO::alpha_3

Definition at line 3829 of file gpsdefs.h.

double IONO::beta_0

Definition at line 3831 of file gpsdefs.h.

double IONO::beta_1

Definition at line 3832 of file gpsdefs.h.

double IONO::beta_2

Definition at line 3833 of file gpsdefs.h.

double IONO::beta_3

Definition at line 3834 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: IP4_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

IP4_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

IP4_ADDR ip_addr
IP4_ADDR netmask
IP4_ADDR broad_addr
IP4_ADDR gateway
uint32_t flags

Detailed Description

Definition at line 3243 of file gpsdefs.h.

Field Documentation

IP4_ADDR IP4_SETTINGS::ip_addr

Definition at line 3245 of file gpsdefs.h.

Referenced by show_lan_intf_state().

IP4_ADDR IP4_SETTINGS::netmask

Definition at line 3246 of file gpsdefs.h.

Referenced by show_lan_intf_state().

IP4_ADDR IP4_SETTINGS::broad_addr

Definition at line 3247 of file gpsdefs.h.

Referenced by show_lan_intf_state().

IP4_ADDR IP4_SETTINGS::gateway

Definition at line 3248 of file gpsdefs.h.

Referenced by show_lan_intf_state().

uint32_t IP4_SETTINGS::flags

Definition at line 3249 of file gpsdefs.h.

Referenced by show_lan_intf_state().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: IRIG_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

IRIG_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

IRIG_SETTINGS settings
uint32_t supp_codes

Detailed Description

The structure is used to query the IRIG configuration plus the supported codes:

Definition at line 2269 of file gpsdefs.h.

Field Documentation

IRIG_SETTINGS IRIG_INFO::settings

Definition at line 2271 of file gpsdefs.h.

uint32_t IRIG_INFO::supp_codes

bit mask of supported codes

Definition at line 2272 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: IRIG_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

IRIG_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t icode
uint16_t flags

Detailed Description

The structure below is used to configure an optional on-board IRIG output:

Definition at line 2239 of file gpsdefs.h.

Field Documentation

uint16_t IRIG_SETTINGS::icode

IRIG signal code, see Irig Codes

Definition at line 2241 of file gpsdefs.h.

uint16_t IRIG_SETTINGS::flags

see Bit Masks used with IRIG_SETTINGS.flags

Definition at line 2242 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: LAN_IF_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

LAN_IF_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t type
uint8_t | mac_addr [6]
uint16_t ver_code
char | ver_str [GPS_ID_STR_SIZE]
char | sernum [GPS_ID_STR_SIZE]
uint32_t rsvd
uint32_t flags

Detailed Description

Definition at line 3293 of file gpsdefs.h.

Field Documentation

uint16_t LAN_IF_INFO::type

Definition at line 3295 of file gpsdefs.h.

uint8_t LAN_IF_INFO::mac_addr[6]

Definition at line 3296 of file gpsdefs.h.

Referenced by show_lan_intf_state().

uint16_t LAN_IF_INFO::ver_code

Definition at line 3297 of file gpsdefs.h.

char LAN_IF_INFO::ver_str[GPS_ID_STR_SIZE]

Definition at line 3298 of file gpsdefs.h.

char LAN_IF_INFO::sernum[GPS_ID_STR_SIZE]

Definition at line 3299 of file gpsdefs.h.

uint32_t LAN_IF_INFO::rsvd

Definition at line 3300 of file gpsdefs.h.

uint32_t LAN_IF_INFO::flags

Definition at line 3301 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_DATE Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_DATE Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t mday
uint8_t month
uint16_t year

Detailed Description

The structure is used to define a date of year:

Definition at line 2478 of file gpsdefs.h.

Field Documentation

uint8_t MBG_DATE::mday

Definition at line 2480 of file gpsdefs.h.

uint8_t MBG_DATE::month

Definition at line 2481 of file gpsdefs.h.

uint16_t MBG_DATE::year

Definition at line 2482 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_DATE_TIME Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_DATE_TIME Struct Reference

#include <gpsdefs.h>

Data Fields

MBG_DATE d
MBG_TIME t
uint8_t wday
uint8_t flags

Detailed Description

The structure defines a single date and time for switching operations:

Definition at line 2510 of file gpsdefs.h.

Field Documentation

MBG_DATE MBG_DATE_TIME::d

Definition at line 2512 of file gpsdefs.h.

MBG_TIME MBG_DATE_TIME::t

Definition at line 2513 of file gpsdefs.h.

uint8_t MBG_DATE_TIME::wday

Definition at line 2514 of file gpsdefs.h.

uint8_t MBG_DATE_TIME::flags

Definition at line 2515 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_OPT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_OPT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

MBG_OPT_SETTINGS settings
uint32_t supp_flags

Detailed Description

Definition at line 2370 of file gpsdefs.h.

Field Documentation

MBG_OPT_SETTINGS MBG_OPT_INFO::settings

Definition at line 2372 of file gpsdefs.h.

uint32_t MBG_OPT_INFO::supp_flags

Definition at line 2373 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_OPT_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_OPT_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint32_t flags

Detailed Description

Definition at line 2359 of file gpsdefs.h.

Field Documentation

uint32_t MBG_OPT_SETTINGS::flags

Definition at line 2361 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_POLL_THREAD_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_POLL_THREAD_INFO Struct Reference

#include <mbgdevio.h>

Data Fields

MBG_XHRT_INFO xhrt_info
MBG_THREAD_INFO ti

Detailed Description

Definition at line 427 of file mbgdevio.h.

Field Documentation

MBG_XHRT_INFO MBG_POLL_THREAD_INFO::xhrt_info

Definition at line 429 of file mbgdevio.h.

Referenced by main().

MBG_THREAD_INFO MBG_POLL_THREAD_INFO::ti

Definition at line 430 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_THREAD_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_THREAD_INFO Struct Reference

#include <mbgdevio.h>

Data Fields

MBG_THREAD_ID thread_id

Detailed Description

Definition at line 398 of file mbgdevio.h.

Field Documentation

MBG_THREAD_ID MBG_THREAD_INFO::thread_id

Definition at line 400 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_TIME Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_TIME Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t hour
uint8_t min
uint8_t sec
uint8_t sec100

Detailed Description

The structure is used to define a time of day:

Definition at line 2494 of file gpsdefs.h.

Field Documentation

uint8_t MBG_TIME::hour

Definition at line 2496 of file gpsdefs.h.

uint8_t MBG_TIME::min

Definition at line 2497 of file gpsdefs.h.

uint8_t MBG_TIME::sec

Definition at line 2498 of file gpsdefs.h.

uint8_t MBG_TIME::sec100

Definition at line 2499 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_TIME_SCALE_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_TIME_SCALE_INFO Struct Reference
[Time Scale Configuration]

#include <gpsdefs.h>

Data Fields

MBG_TIME_SCALE_SETTINGS settings
MBG_TIME_SCALE_SETTINGS max_settings
uint32_t supp_scales

Detailed Description

Definition at line 2451 of file gpsdefs.h.

Field Documentation

MBG_TIME_SCALE_SETTINGS MBG_TIME_SCALE_INFO::settings

current settings

Definition at line 2453 of file gpsdefs.h.

Referenced by main().

MBG_TIME_SCALE_SETTINGS MBG_TIME_SCALE_INFO::max_settings

numb. of scales, all supported flags

Definition at line 2454 of file gpsdefs.h.

uint32_t MBG_TIME_SCALE_INFO::supp_scales

bit masks of supported scales

Definition at line 2455 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_TIME_SCALE_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_TIME_SCALE_SETTINGS Struct Reference
[Time Scale Configuration]

#include <gpsdefs.h>

Data Fields

uint8_t scale
uint8_t flags

Detailed Description

Definition at line 2441 of file gpsdefs.h.

Field Documentation

uint8_t MBG_TIME_SCALE_SETTINGS::scale

current time scale code from the enum above

Definition at line 2443 of file gpsdefs.h.

Referenced by main().

uint8_t MBG_TIME_SCALE_SETTINGS::flags

reserved, currently always 0

Definition at line 2444 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_XHRT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_XHRT_INFO Struct Reference

#include <mbgdevio.h>

Data Fields

MBG_XHRT_VARS vars
MBG_XHRT_VARS prv_vars
MBG_PC_CYCLES_FREQUENCY freq_hz
int | ioctl_status
int | sleep_ms
MBG_MUTEX | mutex
MBG_DEV_HANDLE dh

Detailed Description

Definition at line 415 of file mbgdevio.h.

Field Documentation

MBG_XHRT_VARS MBG_XHRT_INFO::vars

Definition at line 417 of file mbgdevio.h.

MBG_XHRT_VARS MBG_XHRT_INFO::prv_vars

Definition at line 418 of file mbgdevio.h.

MBG_PC_CYCLES_FREQUENCY MBG_XHRT_INFO::freq_hz

Definition at line 419 of file mbgdevio.h.

int MBG_XHRT_INFO::ioctl_status

Definition at line 420 of file mbgdevio.h.

int MBG_XHRT_INFO::sleep_ms

Definition at line 421 of file mbgdevio.h.

MBG_MUTEX MBG_XHRT_INFO::mutex

Definition at line 422 of file mbgdevio.h.

MBG_DEV_HANDLE MBG_XHRT_INFO::dh

Definition at line 423 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MBG_XHRT_VARS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MBG_XHRT_VARS Struct Reference

#include <mbgdevio.h>

Data Fields

PCPS_HR_TIME_CYCLES htc
uint64_t tstamp64

Detailed Description

Definition at line 408 of file mbgdevio.h.

Field Documentation

PCPS_HR_TIME_CYCLES MBG_XHRT_VARS::htc

Definition at line 410 of file mbgdevio.h.

uint64_t MBG_XHRT_VARS::tstamp64

Definition at line 411 of file mbgdevio.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgdevio.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MULTI_REF_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MULTI_REF_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

MULTI_REF_SETTINGS settings
uint32_t supp_ref
uint16_t n_levels
uint16_t flags

Detailed Description

The structure below is used to query the MULTI_REF configuration, plus the supported ref sources.

Definition at line 2861 of file gpsdefs.h.

Field Documentation

MULTI_REF_SETTINGS MULTI_REF_INFO::settings

Definition at line 2863 of file gpsdefs.h.

uint32_t MULTI_REF_INFO::supp_ref

Definition at line 2864 of file gpsdefs.h.

uint16_t MULTI_REF_INFO::n_levels

Definition at line 2865 of file gpsdefs.h.

uint16_t MULTI_REF_INFO::flags

Definition at line 2866 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: MULTI_REF_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

MULTI_REF_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t prio [N_MULTI_REF_PRIO]

Detailed Description

The structure below is used to configure the priority of the supported ref sources.

The number stored in prio[0] of the array indicates the ref time source with highest priority. If that source fails, the device falls back to the source indicated by prio[1]. Each field of the prio[] array must be set to one of the values 0..N_MULTI_REF-1, or to -1 (0xFF) if the value is not assigned.

Definition at line 2851 of file gpsdefs.h.

Field Documentation

uint8_t MULTI_REF_SETTINGS::prio[N_MULTI_REF_PRIO]

Definition at line 2853 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: NANO_TIME Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

NANO_TIME Struct Reference

#include <gpsdefs.h>

Data Fields

int32_t nano_secs
int32_t secs

Detailed Description

Definition at line 984 of file gpsdefs.h.

Field Documentation

int32_t NANO_TIME::nano_secs

Definition at line 986 of file gpsdefs.h.

Referenced by print_ptp_status().

int32_t NANO_TIME::secs

Definition at line 987 of file gpsdefs.h.

Referenced by print_ptp_status().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: NAV_ENGINE_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

NAV_ENGINE_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t dynamic_platform
uint8_t fix_mode
int8_t min_elevation
uint8_t static_hold_threshold
int32_t fixed_altitude
uint32_t fixed_altitude_variance
uint32_t flags
uint32_t reserved
NAV_TIME_MODE_SETTINGS nav_time_mode_settings

Detailed Description

Navigation Engine settings to set configuration parameters of a dynamic platform model.

Definition at line 3907 of file gpsdefs.h.

Field Documentation

uint8_t NAV_ENGINE_SETTINGS::dynamic_platform

Definition at line 3909 of file gpsdefs.h.

uint8_t NAV_ENGINE_SETTINGS::fix_mode

Definition at line 3910 of file gpsdefs.h.

int8_t NAV_ENGINE_SETTINGS::min_elevation

Definition at line 3911 of file gpsdefs.h.

uint8_t NAV_ENGINE_SETTINGS::static_hold_threshold

Definition at line 3912 of file gpsdefs.h.

int32_t NAV_ENGINE_SETTINGS::fixed_altitude

Definition at line 3913 of file gpsdefs.h.

uint32_t NAV_ENGINE_SETTINGS::fixed_altitude_variance

Definition at line 3914 of file gpsdefs.h.

uint32_t NAV_ENGINE_SETTINGS::flags

Definition at line 3915 of file gpsdefs.h.

uint32_t NAV_ENGINE_SETTINGS::reserved

Definition at line 3916 of file gpsdefs.h.

NAV_TIME_MODE_SETTINGS NAV_ENGINE_SETTINGS::nav_time_mode_settings

Definition at line 3917 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: NAV_TIME_MODE_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

NAV_TIME_MODE_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint32_t time_mode
uint32_t survey_in_duration
uint32_t survey_in_pos_var
int32_t fixedPosX
int32_t fixedPosY
int32_t fixedPosZ
uint32_t fixedPosVar
uint32_t flags
uint32_t reserved

Detailed Description

Definition at line 3889 of file gpsdefs.h.

Field Documentation

uint32_t NAV_TIME_MODE_SETTINGS::time_mode

Definition at line 3891 of file gpsdefs.h.

uint32_t NAV_TIME_MODE_SETTINGS::survey_in_duration

Definition at line 3892 of file gpsdefs.h.

uint32_t NAV_TIME_MODE_SETTINGS::survey_in_pos_var

Definition at line 3893 of file gpsdefs.h.

int32_t NAV_TIME_MODE_SETTINGS::fixedPosX

Definition at line 3894 of file gpsdefs.h.

int32_t NAV_TIME_MODE_SETTINGS::fixedPosY

Definition at line 3895 of file gpsdefs.h.

int32_t NAV_TIME_MODE_SETTINGS::fixedPosZ

Definition at line 3896 of file gpsdefs.h.

uint32_t NAV_TIME_MODE_SETTINGS::fixedPosVar

Definition at line 3897 of file gpsdefs.h.

uint32_t NAV_TIME_MODE_SETTINGS::flags

Definition at line 3898 of file gpsdefs.h.

uint32_t NAV_TIME_MODE_SETTINGS::reserved

Definition at line 3899 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCI_ASIC Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCI_ASIC Struct Reference

#include <pci_asic.h>

Data Fields

PCI_ASIC_CFG cfg
PCI_ASIC_VERSION raw_version
PCI_ASIC_FEATURES features
PCI_ASIC_REG status_port
PCI_ASIC_REG control_status
PCI_ASIC_REG pci_data
PCI_ASIC_REG reserved_1
PCI_ASIC_ADDON_DATA addon_data
PCI_ASIC_ADDON_DATA reserved_2

Detailed Description

Definition at line 118 of file pci_asic.h.

Field Documentation

PCI_ASIC_CFG PCI_ASIC::cfg

Definition at line 120 of file pci_asic.h.

PCI_ASIC_VERSION PCI_ASIC::raw_version

Definition at line 121 of file pci_asic.h.

PCI_ASIC_FEATURES PCI_ASIC::features

Definition at line 122 of file pci_asic.h.

PCI_ASIC_REG PCI_ASIC::status_port

Definition at line 123 of file pci_asic.h.

PCI_ASIC_REG PCI_ASIC::control_status

Definition at line 124 of file pci_asic.h.

PCI_ASIC_REG PCI_ASIC::pci_data

Definition at line 125 of file pci_asic.h.

PCI_ASIC_REG PCI_ASIC::reserved_1

Definition at line 126 of file pci_asic.h.

PCI_ASIC_ADDON_DATA PCI_ASIC::addon_data

Definition at line 128 of file pci_asic.h.

PCI_ASIC_ADDON_DATA PCI_ASIC::reserved_2

Definition at line 129 of file pci_asic.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pci_asic.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCI_ASIC_ADDON_DATA Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCI_ASIC_ADDON_DATA Union Reference

#include <pci_asic.h>

Data Fields

uint32_t | ul [4]
uint16_t | us [8]
uint8_t | b [16]

Detailed Description

Definition at line 110 of file pci_asic.h.

Field Documentation

uint32_t PCI_ASIC_ADDON_DATA::ul[4]

Definition at line 112 of file pci_asic.h.

uint16_t PCI_ASIC_ADDON_DATA::us[8]

Definition at line 113 of file pci_asic.h.

uint8_t PCI_ASIC_ADDON_DATA::b[16]

Definition at line 114 of file pci_asic.h.

The documentation for this union was generated from the following file:
  • c/mbglib/include/pci_asic.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCI_ASIC_CFG Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCI_ASIC_CFG Struct Reference

#include <pci_asic.h>

Data Fields

uint32_t cfg_class_rev_id
uint16_t cfg_badr_0
uint16_t cfg_dev_id

Detailed Description

Definition at line 84 of file pci_asic.h.

Field Documentation

uint32_t PCI_ASIC_CFG::cfg_class_rev_id

Definition at line 86 of file pci_asic.h.

uint16_t PCI_ASIC_CFG::cfg_badr_0

Definition at line 87 of file pci_asic.h.

uint16_t PCI_ASIC_CFG::cfg_dev_id

Definition at line 88 of file pci_asic.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pci_asic.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCI_ASIC_REG Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCI_ASIC_REG Union Reference

#include <pci_asic.h>

Data Fields

uint32_t ul
uint16_t | us [2]
uint8_t | b [4]

Detailed Description

Definition at line 92 of file pci_asic.h.

Field Documentation

uint32_t PCI_ASIC_REG::ul

Definition at line 94 of file pci_asic.h.

uint16_t PCI_ASIC_REG::us[2]

Definition at line 95 of file pci_asic.h.

uint8_t PCI_ASIC_REG::b[4]

Definition at line 96 of file pci_asic.h.

The documentation for this union was generated from the following file:
  • c/mbglib/include/pci_asic.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_DEV Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_DEV Struct Reference

#include <pcpsdev.h>

Data Fields

PCPS_DEV_TYPE type
PCPS_DEV_CFG cfg

Detailed Description

The structure has been defined to pass all information on a clock device from a device driver to a user program.

Definition at line 824 of file pcpsdev.h.

Field Documentation

PCPS_DEV_TYPE PCPS_DEV::type

Definition at line 826 of file pcpsdev.h.

PCPS_DEV_CFG PCPS_DEV::cfg

Definition at line 827 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_DEV_CFG Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_DEV_CFG Struct Reference

#include <pcpsdev.h>

Data Fields

PCPS_ERR_FLAGS err_flags
PCPS_BUS_NUM bus_num
PCPS_SLOT_NUM slot_num
PCPS_PORT_RSRC port [N_PCPS_PORT_RSRC]
uint16_t status_port
int16_t irq_num
uint32_t timeout_clk
uint16_t fw_rev_num
PCPS_FEATURES features
PCPS_ID_STR fw_id
PCPS_SN_STR sernum

Detailed Description

The structure below contains data which depends on a individual instance of the clock, e.g. the firmware which is currently installed, the port address which has been configured, etc.

Definition at line 553 of file pcpsdev.h.

Field Documentation

PCPS_ERR_FLAGS PCPS_DEV_CFG::err_flags

See Error flags

Definition at line 555 of file pcpsdev.h.

PCPS_BUS_NUM PCPS_DEV_CFG::bus_num

Definition at line 556 of file pcpsdev.h.

PCPS_SLOT_NUM PCPS_DEV_CFG::slot_num

Definition at line 557 of file pcpsdev.h.

PCPS_PORT_RSRC PCPS_DEV_CFG::port[N_PCPS_PORT_RSRC]

Definition at line 558 of file pcpsdev.h.

uint16_t PCPS_DEV_CFG::status_port

Definition at line 559 of file pcpsdev.h.

int16_t PCPS_DEV_CFG::irq_num

Definition at line 560 of file pcpsdev.h.

uint32_t PCPS_DEV_CFG::timeout_clk

Definition at line 561 of file pcpsdev.h.

uint16_t PCPS_DEV_CFG::fw_rev_num

Definition at line 562 of file pcpsdev.h.

PCPS_FEATURES PCPS_DEV_CFG::features

See Feature flags

Definition at line 563 of file pcpsdev.h.

PCPS_ID_STR PCPS_DEV_CFG::fw_id

Definition at line 564 of file pcpsdev.h.

PCPS_SN_STR PCPS_DEV_CFG::sernum

Definition at line 565 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_DEV_TYPE Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_DEV_TYPE Struct Reference

#include <pcpsdev.h>

Data Fields

uint16_t num
char name [PCPS_CLOCK_NAME_SZ]
PCPS_DEV_ID dev_id
PCPS_REF_TYPE ref_type
PCPS_BUS_FLAGS bus_flags

Detailed Description

The structure contains the characteristics of each of the clocks listed above. These fields are always the same for a single type of clock and do not change with firmware version, port address, etc.

Definition at line 497 of file pcpsdev.h.

Field Documentation

uint16_t PCPS_DEV_TYPE::num

Definition at line 499 of file pcpsdev.h.

char PCPS_DEV_TYPE::name[PCPS_CLOCK_NAME_SZ]

Definition at line 500 of file pcpsdev.h.

PCPS_DEV_ID PCPS_DEV_TYPE::dev_id

Definition at line 501 of file pcpsdev.h.

PCPS_REF_TYPE PCPS_DEV_TYPE::ref_type

Definition at line 502 of file pcpsdev.h.

PCPS_BUS_FLAGS PCPS_DEV_TYPE::bus_flags

Definition at line 503 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_DL_ONOFF Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_DL_ONOFF Struct Reference
[Command bytes used to access the device]

#include <pcpsdefs.h>

Data Fields

uint16_t year_or_wday
uint8_t month
uint8_t mday
uint8_t hour
uint8_t min

Detailed Description

The structures below can be used to configure a clock's time zone/daylight saving setting. This structure is shorter than the TZDL structure used with GPS clocks.

Definition at line 602 of file pcpsdefs.h.

Field Documentation

uint16_t PCPS_DL_ONOFF::year_or_wday

Definition at line 606 of file pcpsdefs.h.

uint8_t PCPS_DL_ONOFF::month

Definition at line 607 of file pcpsdefs.h.

uint8_t PCPS_DL_ONOFF::mday

Definition at line 608 of file pcpsdefs.h.

uint8_t PCPS_DL_ONOFF::hour

Definition at line 609 of file pcpsdefs.h.

uint8_t PCPS_DL_ONOFF::min

Definition at line 610 of file pcpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_DRVR_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_DRVR_INFO Struct Reference

#include <pcpsdev.h>

Data Fields

uint16_t ver_num
uint16_t n_devs
PCPS_ID_STR id_str

Detailed Description

The structure is used to return info on the device driver.

Definition at line 985 of file pcpsdev.h.

Field Documentation

uint16_t PCPS_DRVR_INFO::ver_num

the device driver's version number

Definition at line 987 of file pcpsdev.h.

Referenced by print_drvr_info().

uint16_t PCPS_DRVR_INFO::n_devs

the number of radio clocks handled by the driver

Definition at line 988 of file pcpsdev.h.

Referenced by print_drvr_info().

PCPS_ID_STR PCPS_DRVR_INFO::id_str

the device driver's ID string

Definition at line 989 of file pcpsdev.h.

Referenced by print_drvr_info().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_HR_TIME Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_HR_TIME Struct Reference

#include <pcpsdefs.h>

Data Fields

PCPS_TIME_STAMP tstamp
int32_t utc_offs
PCPS_TIME_STATUS_X status
uint8_t signal

Detailed Description

The structure has been introduced to be able to read the current time with higher resolution of fractions of seconds and more detailed information on the time zone and status. The structure is returned if the new command PCPS_GIVE_HR_TIME is written to the board. _pcps_has_hr_time() checks whether supported.

Newer GPS boards also accept the PCPS_GIVE_UCAP_EVENT command to return user capture event times using this format. In this case, the "signal" field contains the number of the capture input line, e.g. 0 or 1. _pcps_has_ucap() checks whether supported.

Definition at line 831 of file pcpsdefs.h.

Field Documentation

PCPS_TIME_STAMP PCPS_HR_TIME::tstamp

High resolution time stamp (UTC)

Definition at line 833 of file pcpsdefs.h.

Referenced by check_user_captures(), and sprint_hr_time().

int32_t PCPS_HR_TIME::utc_offs

UTC offs [sec] (loc_time = UTC + utc_offs)

Definition at line 834 of file pcpsdefs.h.

Referenced by sprint_hr_time().

PCPS_TIME_STATUS_X PCPS_HR_TIME::status

status flags as defined below

Definition at line 835 of file pcpsdefs.h.

Referenced by print_hr_time(), and sprint_hr_time().

uint8_t PCPS_HR_TIME::signal

for normal time, the relative RF signal level, for ucap, the channel number

Definition at line 836 of file pcpsdefs.h.

Referenced by check_user_captures().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_HR_TIME_CYCLES Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_HR_TIME_CYCLES Struct Reference

#include <pcpsdev.h>

Data Fields

MBG_PC_CYCLES cycles
PCPS_HR_TIME t

Detailed Description

The structure is used to read current high resolution time from a device, combined with an associated PC cycle counter value to compensate program execution time. The cycle counter value is usually derived from the PC CPU's TSC and the type is redefined to a common type, depending on the operating system. The cycle counter clock frequency usually corresponds to the PC CPU clock frequency.

Definition at line 1080 of file pcpsdev.h.

Field Documentation

MBG_PC_CYCLES PCPS_HR_TIME_CYCLES::cycles

Definition at line 1082 of file pcpsdev.h.

PCPS_HR_TIME PCPS_HR_TIME_CYCLES::t

Definition at line 1083 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_IRIG_TIME_s Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_IRIG_TIME_s Struct Reference

#include <pcpsdefs.h>

Data Fields

PCPS_TIME_STATUS_X status
int16_t offs_utc
uint16_t yday
uint16_t frac
uint8_t sec
uint8_t min
uint8_t hour
uint8_t year
uint8_t signal
uint8_t reserved

Detailed Description

The structure below can be used to read the raw IRIG time from an IRIG receiver card, if the card supports this. See the PCPS_GIVE_IRIG_TIME command.

The granularity of the value in the .frac field depends on the update interval of the structure as implementation in the firmware. I.e. if the raw IRIG time is updated only once per second, the .frac value can always be 0.

Definition at line 919 of file pcpsdefs.h.

Field Documentation

PCPS_TIME_STATUS_X PCPS_IRIG_TIME_s::status

status bits, see below

Definition at line 921 of file pcpsdefs.h.

int16_t PCPS_IRIG_TIME_s::offs_utc

[minutes]

Definition at line 922 of file pcpsdefs.h.

uint16_t PCPS_IRIG_TIME_s::yday

day of year, 1..365/366

Definition at line 923 of file pcpsdefs.h.

Referenced by main().

uint16_t PCPS_IRIG_TIME_s::frac

fractions of seconds, 0.1 ms units

Definition at line 924 of file pcpsdefs.h.

uint8_t PCPS_IRIG_TIME_s::sec

seconds, 0..59, or 60 if leap second

Definition at line 925 of file pcpsdefs.h.

Referenced by main().

uint8_t PCPS_IRIG_TIME_s::min

minutes, 0..59

Definition at line 926 of file pcpsdefs.h.

Referenced by main().

uint8_t PCPS_IRIG_TIME_s::hour

hours, 0..23

Definition at line 927 of file pcpsdefs.h.

Referenced by main().

uint8_t PCPS_IRIG_TIME_s::year

2 digit year number, 0xFF if year not supp. by the IRIG code

Definition at line 928 of file pcpsdefs.h.

uint8_t PCPS_IRIG_TIME_s::signal

relative signal strength, range depends on device type

Definition at line 929 of file pcpsdefs.h.

uint8_t PCPS_IRIG_TIME_s::reserved

currently not used, always 0

Definition at line 930 of file pcpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_MAPPED_MEM Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_MAPPED_MEM Struct Reference

#include <pcpsdev.h>

Data Fields

MBG_MEM_ADDR user_virtual_address
ulong len

Detailed Description

Definition at line 531 of file pcpsdev.h.

Field Documentation

MBG_MEM_ADDR PCPS_MAPPED_MEM::user_virtual_address

Definition at line 533 of file pcpsdev.h.

ulong PCPS_MAPPED_MEM::len

Definition at line 534 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_PORT_RSRC Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_PORT_RSRC Struct Reference

#include <pcpsdev.h>

Data Fields

PCPS_PORT_ADDR base
uint16_t num

Detailed Description

The structure below describes an I/O port resource used by a clock.

Definition at line 520 of file pcpsdev.h.

Field Documentation

PCPS_PORT_ADDR PCPS_PORT_RSRC::base

Definition at line 522 of file pcpsdev.h.

uint16_t PCPS_PORT_RSRC::num

Definition at line 523 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_STIME_s Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_STIME_s Struct Reference

#include <pcpsdefs.h>

Data Fields

uint8_t sec100
uint8_t sec
uint8_t min
uint8_t hour
uint8_t mday
uint8_t wday
uint8_t month
uint8_t year
PCPS_TIME_STATUS status

Detailed Description

The structure is passed as parameter with the PCPS_SET_TIME cmd

Definition at line 874 of file pcpsdefs.h.

Field Documentation

uint8_t PCPS_STIME_s::sec100

hundredths of seconds, 0..99

Definition at line 876 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::sec

seconds, 0..59, or 60 if leap second

Definition at line 877 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::min

minutes, 0..59

Definition at line 878 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::hour

hours, 0..23

Definition at line 879 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::mday

day of month, 0..31

Definition at line 881 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::wday

day of week, 1..7, 1 = Monday

Definition at line 882 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::month

month, 1..12

Definition at line 883 of file pcpsdefs.h.

uint8_t PCPS_STIME_s::year

year of the century, 0..99

Definition at line 884 of file pcpsdefs.h.

PCPS_TIME_STATUS PCPS_STIME_s::status

status bits, see below

Definition at line 886 of file pcpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TIME_CYCLES Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TIME_CYCLES Struct Reference

#include <pcpsdev.h>

Data Fields

MBG_PC_CYCLES cycles
PCPS_TIME t

Detailed Description

The structure is used to read current time from a device, combined with an associated PC cycle counter value to compensate program execution time. The cycle counter value is usually derived from the PC CPU's TSC and the type is redefined to a common type, depending on the operating system. The cycle counter clock frequency usually corresponds to the PC CPU clock frequency.

Definition at line 1046 of file pcpsdev.h.

Field Documentation

MBG_PC_CYCLES PCPS_TIME_CYCLES::cycles

Definition at line 1048 of file pcpsdev.h.

PCPS_TIME PCPS_TIME_CYCLES::t

Definition at line 1049 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TIME_s Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TIME_s Struct Reference

#include <pcpsdefs.h>

Data Fields

uint8_t sec100
uint8_t sec
uint8_t min
uint8_t hour
uint8_t mday
uint8_t wday
uint8_t month
uint8_t year
PCPS_TIME_STATUS status
uint8_t signal
int8_t offs_utc

Detailed Description

The standard structure used to read times from the board. The time has a resultion of 10 ms.

Definition at line 853 of file pcpsdefs.h.

Field Documentation

uint8_t PCPS_TIME_s::sec100

hundredths of seconds, 0..99

Definition at line 855 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::sec

seconds, 0..59, or 60 if leap second

Definition at line 856 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::min

minutes, 0..59

Definition at line 857 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::hour

hours, 0..23

Definition at line 858 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::mday

day of month, 0..31

Definition at line 860 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::wday

day of week, 1..7, 1 = Monday

Definition at line 861 of file pcpsdefs.h.

uint8_t PCPS_TIME_s::month

month, 1..12

Definition at line 862 of file pcpsdefs.h.

Referenced by print_date_time().

uint8_t PCPS_TIME_s::year

year of the century, 0..99

Definition at line 863 of file pcpsdefs.h.

Referenced by print_date_time().

PCPS_TIME_STATUS PCPS_TIME_s::status

status bits, see below

Definition at line 865 of file pcpsdefs.h.

Referenced by print_date_time_status().

uint8_t PCPS_TIME_s::signal

relative signal strength, range depends on device type

Definition at line 866 of file pcpsdefs.h.

int8_t PCPS_TIME_s::offs_utc

[hours], 0 if !_pcps_has_utc_offs()

Definition at line 867 of file pcpsdefs.h.

Referenced by print_date_time().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TIME_STAMP Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TIME_STAMP Struct Reference

#include <pcpsdefs.h>

Data Fields

uint32_t sec
uint32_t frac

Detailed Description

The structure has been introduced to be able to handle high resolution time stamps.

Definition at line 765 of file pcpsdefs.h.

Field Documentation

uint32_t PCPS_TIME_STAMP::sec

seconds since 1970 (UTC)

Definition at line 767 of file pcpsdefs.h.

Referenced by check_user_captures(), and sprint_hr_time().

uint32_t PCPS_TIME_STAMP::frac

fractions of second ( 0xFFFFFFFF == 0.9999.. sec)

Definition at line 768 of file pcpsdefs.h.

Referenced by sprint_hr_time().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TIME_STAMP_CYCLES Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TIME_STAMP_CYCLES Struct Reference

#include <pcpsdev.h>

Data Fields

MBG_PC_CYCLES cycles
PCPS_TIME_STAMP tstamp

Detailed Description

The structure is used to read a high resolution UTC time stamp plus associated PC cycles counter value to compensate the latency.

Definition at line 1058 of file pcpsdev.h.

Field Documentation

MBG_PC_CYCLES PCPS_TIME_STAMP_CYCLES::cycles

Definition at line 1060 of file pcpsdev.h.

PCPS_TIME_STAMP PCPS_TIME_STAMP_CYCLES::tstamp

High resolution time stamp (UTC)

Definition at line 1061 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TIME_UNION Union Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TIME_UNION Union Reference

#include <pcpsdefs.h>

Data Fields

PCPS_TIME t
PCPS_STIME stime

Detailed Description

Definition at line 901 of file pcpsdefs.h.

Field Documentation

PCPS_TIME PCPS_TIME_UNION::t

Definition at line 903 of file pcpsdefs.h.

PCPS_STIME PCPS_TIME_UNION::stime

Definition at line 904 of file pcpsdefs.h.

The documentation for this union was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_TZDL Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_TZDL Struct Reference
[Command bytes used to access the device]

#include <pcpsdefs.h>

Data Fields

int16_t offs
int16_t offs_dl
PCPS_DL_ONOFF tm_on
PCPS_DL_ONOFF tm_off

Detailed Description

Definition at line 629 of file pcpsdefs.h.

Field Documentation

int16_t PCPS_TZDL::offs

offset from UTC to local time [min]

Definition at line 631 of file pcpsdefs.h.

int16_t PCPS_TZDL::offs_dl

additional offset if DST enabled [min]

Definition at line 632 of file pcpsdefs.h.

PCPS_DL_ONOFF PCPS_TZDL::tm_on

date/time when daylight saving starts

Definition at line 633 of file pcpsdefs.h.

PCPS_DL_ONOFF PCPS_TZDL::tm_off

date/time when daylight saving ends

Definition at line 634 of file pcpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PCPS_UCAP_ENTRIES Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PCPS_UCAP_ENTRIES Struct Reference
[Command bytes used to access the device]

#include <pcpsdefs.h>

Data Fields

uint32_t used
uint32_t max

Detailed Description

Definition at line 713 of file pcpsdefs.h.

Field Documentation

uint32_t PCPS_UCAP_ENTRIES::used

the number of saved capture events

Definition at line 715 of file pcpsdefs.h.

Referenced by check_user_captures().

uint32_t PCPS_UCAP_ENTRIES::max

capture buffer size

Definition at line 716 of file pcpsdefs.h.

Referenced by check_user_captures().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PORT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PORT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

PORT_SETTINGS port_settings
uint32_t supp_baud_rates
uint32_t supp_framings
uint32_t supp_str_types
uint32_t reserved
uint32_t flags

Detailed Description

Definition at line 1668 of file gpsdefs.h.

Field Documentation

PORT_SETTINGS PORT_INFO::port_settings

Definition at line 1670 of file gpsdefs.h.

uint32_t PORT_INFO::supp_baud_rates

Definition at line 1671 of file gpsdefs.h.

uint32_t PORT_INFO::supp_framings

Definition at line 1672 of file gpsdefs.h.

uint32_t PORT_INFO::supp_str_types

Definition at line 1673 of file gpsdefs.h.

uint32_t PORT_INFO::reserved

Definition at line 1674 of file gpsdefs.h.

uint32_t PORT_INFO::flags

Definition at line 1675 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PORT_INFO_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PORT_INFO_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
PORT_INFO port_info

Detailed Description

Definition at line 1693 of file gpsdefs.h.

Field Documentation

uint16_t PORT_INFO_IDX::idx

Definition at line 1695 of file gpsdefs.h.

PORT_INFO PORT_INFO_IDX::port_info

Definition at line 1696 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PORT_PARM Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PORT_PARM Struct Reference

#include <gpsdefs.h>

Data Fields

COM_PARM | com [DEFAULT_N_COM]
uint8_t | mode [DEFAULT_N_COM]

Detailed Description

The structure used to store the modes of both serial ports:
(now obsolete)

Definition at line 1841 of file gpsdefs.h.

Field Documentation

COM_PARM PORT_PARM::com[DEFAULT_N_COM]

COM0 and COM1 settings

Definition at line 1843 of file gpsdefs.h.

uint8_t PORT_PARM::mode[DEFAULT_N_COM]

COM0 and COM1 output mode

Definition at line 1844 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PORT_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PORT_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

COM_PARM parm
uint8_t mode
uint8_t str_type
uint32_t flags

Detailed Description

Definition at line 1584 of file gpsdefs.h.

Field Documentation

COM_PARM PORT_SETTINGS::parm

Definition at line 1586 of file gpsdefs.h.

uint8_t PORT_SETTINGS::mode

Definition at line 1587 of file gpsdefs.h.

uint8_t PORT_SETTINGS::str_type

Definition at line 1588 of file gpsdefs.h.

uint32_t PORT_SETTINGS::flags

Definition at line 1589 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PORT_SETTINGS_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PORT_SETTINGS_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
PORT_SETTINGS port_settings

Detailed Description

Definition at line 1648 of file gpsdefs.h.

Field Documentation

uint16_t PORT_SETTINGS_IDX::idx

Definition at line 1650 of file gpsdefs.h.

PORT_SETTINGS PORT_SETTINGS_IDX::port_settings

Definition at line 1651 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POS Struct Reference

#include <mbggeo.h>

Data Fields

XYZ xyz
LLA lla
DMS longitude
DMS latitude
int16_t ellipsoid

Detailed Description

Definition at line 93 of file mbggeo.h.

Field Documentation

XYZ POS::xyz

always WGS84 ECEF coordinates

Definition at line 95 of file mbggeo.h.

LLA POS::lla

depending on the ellipsoid used for reference

Definition at line 96 of file mbggeo.h.

DMS POS::longitude

longitude in degrees, minutes, seconds

Definition at line 97 of file mbggeo.h.

DMS POS::latitude

latitude in degrees, minutes, seconds

Definition at line 98 of file mbggeo.h.

int16_t POS::ellipsoid

ellipsoid used for reference

Definition at line 99 of file mbggeo.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POUT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POUT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

POUT_SETTINGS pout_settings
uint32_t supp_modes
uint8_t timestr_ports
uint8_t reserved_0
uint16_t reserved_1
uint32_t flags

Detailed Description

The structure below holds the current settings for a programmable pulse output, plus additional informaton on the output's capabilities. This can be read by setup programs to allow setup of supported features only.

Definition at line 2728 of file gpsdefs.h.

Field Documentation

POUT_SETTINGS POUT_INFO::pout_settings

Definition at line 2730 of file gpsdefs.h.

uint32_t POUT_INFO::supp_modes

bit mask of modes supp. by this output

Definition at line 2731 of file gpsdefs.h.

uint8_t POUT_INFO::timestr_ports

bit mask of COM ports supported for POUT_TIMESTR

Definition at line 2732 of file gpsdefs.h.

uint8_t POUT_INFO::reserved_0

reserved for future use, currently 0

Definition at line 2733 of file gpsdefs.h.

uint16_t POUT_INFO::reserved_1

reserved for future use, currently 0

Definition at line 2734 of file gpsdefs.h.

uint32_t POUT_INFO::flags

reserved for future use, currently 0

Definition at line 2735 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POUT_INFO_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POUT_INFO_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
POUT_INFO pout_info

Detailed Description

The structure below adds an index number to the structure above to allow addressing of several instances:

Definition at line 2754 of file gpsdefs.h.

Field Documentation

uint16_t POUT_INFO_IDX::idx

0..RECEIVER_INFO.n_prg_out-1

Definition at line 2756 of file gpsdefs.h.

POUT_INFO POUT_INFO_IDX::pout_info

Definition at line 2757 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POUT_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POUT_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t mode
uint16_t pulse_len
uint16_t timeout
uint16_t flags
POUT_TIME tm [N_POUT_TIMES]

Detailed Description

The structure is used to configure a single programmable pulse output.

Definition at line 2551 of file gpsdefs.h.

Field Documentation

uint16_t POUT_SETTINGS::mode

mode of operation, codes defined below

Definition at line 2553 of file gpsdefs.h.

uint16_t POUT_SETTINGS::pulse_len

10 msec units, or COM port number

Definition at line 2554 of file gpsdefs.h.

uint16_t POUT_SETTINGS::timeout

[min], for dcf_mode

Definition at line 2555 of file gpsdefs.h.

uint16_t POUT_SETTINGS::flags

see below

Definition at line 2556 of file gpsdefs.h.

POUT_TIME POUT_SETTINGS::tm[N_POUT_TIMES]

switching times

Definition at line 2557 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POUT_SETTINGS_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POUT_SETTINGS_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
POUT_SETTINGS pout_settings

Detailed Description

Since a clock may support more than one programmable pulse output, setup tools must use the structure below to read/set pulse output configuration. The number of outputs supported by a receiver model can be queried using the RECEIVER_INFO structure.

Definition at line 2708 of file gpsdefs.h.

Field Documentation

uint16_t POUT_SETTINGS_IDX::idx

0..RECEIVER_INFO.n_prg_out-1

Definition at line 2710 of file gpsdefs.h.

POUT_SETTINGS POUT_SETTINGS_IDX::pout_settings

Definition at line 2711 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: POUT_TIME Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

POUT_TIME Struct Reference

#include <gpsdefs.h>

Data Fields

MBG_DATE_TIME on
MBG_DATE_TIME off

Detailed Description

The structure defines times and dates for an on/off cycle:

Definition at line 2529 of file gpsdefs.h.

Field Documentation

MBG_DATE_TIME POUT_TIME::on

Definition at line 2531 of file gpsdefs.h.

MBG_DATE_TIME POUT_TIME::off

Definition at line 2532 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PTP_CFG_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PTP_CFG_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

PTP_CFG_SETTINGS settings
uint8_t ptp_proto_version
uint8_t reserved_1
uint16_t reserved_2
int16_t sync_interval_min
int16_t sync_interval_max
int16_t announce_interval_min
int16_t announce_interval_max
int16_t delay_request_interval_min
int16_t delay_request_interval_max
uint32_t supported_flags
uint32_t supported_network_protocols
uint32_t supported_profiles
uint32_t supported_delay_mechanisms

Detailed Description

Definition at line 3645 of file gpsdefs.h.

Field Documentation

PTP_CFG_SETTINGS PTP_CFG_INFO::settings

Definition at line 3647 of file gpsdefs.h.

uint8_t PTP_CFG_INFO::ptp_proto_version

Definition at line 3649 of file gpsdefs.h.

uint8_t PTP_CFG_INFO::reserved_1

Definition at line 3650 of file gpsdefs.h.

uint16_t PTP_CFG_INFO::reserved_2

Definition at line 3651 of file gpsdefs.h.

int16_t PTP_CFG_INFO::sync_interval_min

Definition at line 3653 of file gpsdefs.h.

int16_t PTP_CFG_INFO::sync_interval_max

Definition at line 3654 of file gpsdefs.h.

int16_t PTP_CFG_INFO::announce_interval_min

Definition at line 3655 of file gpsdefs.h.

int16_t PTP_CFG_INFO::announce_interval_max

Definition at line 3656 of file gpsdefs.h.

int16_t PTP_CFG_INFO::delay_request_interval_min

Definition at line 3657 of file gpsdefs.h.

int16_t PTP_CFG_INFO::delay_request_interval_max

Definition at line 3658 of file gpsdefs.h.

uint32_t PTP_CFG_INFO::supported_flags

Definition at line 3660 of file gpsdefs.h.

uint32_t PTP_CFG_INFO::supported_network_protocols

Definition at line 3661 of file gpsdefs.h.

uint32_t PTP_CFG_INFO::supported_profiles

Definition at line 3662 of file gpsdefs.h.

uint32_t PTP_CFG_INFO::supported_delay_mechanisms

Definition at line 3663 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PTP_CFG_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PTP_CFG_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t network_protocol
uint8_t profile
uint8_t domain_number
uint8_t delay_mechanism
uint8_t reserved_0
uint8_t priority_1
uint8_t priority_2
uint8_t dflt_clk_class_unsync_cold
uint8_t dflt_clk_class_unsync_warm
uint8_t dflt_clk_class_sync_cold
uint8_t dflt_clk_class_sync_warm
uint8_t reserved_1
uint8_t reserved_2
int16_t sync_interval
int16_t announce_interval
int16_t delay_request_interval
uint32_t upper_bound
uint32_t lower_bound
uint32_t reserved_3
uint32_t flags

Detailed Description

Definition at line 3600 of file gpsdefs.h.

Field Documentation

uint16_t PTP_CFG_SETTINGS::network_protocol

Definition at line 3602 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::profile

Definition at line 3603 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::domain_number

Definition at line 3604 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::delay_mechanism

Definition at line 3606 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::reserved_0

Definition at line 3607 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::priority_1

Definition at line 3608 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::priority_2

Definition at line 3609 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::dflt_clk_class_unsync_cold

Definition at line 3611 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::dflt_clk_class_unsync_warm

Definition at line 3612 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::dflt_clk_class_sync_cold

Definition at line 3613 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::dflt_clk_class_sync_warm

Definition at line 3614 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::reserved_1

Definition at line 3616 of file gpsdefs.h.

uint8_t PTP_CFG_SETTINGS::reserved_2

Definition at line 3617 of file gpsdefs.h.

int16_t PTP_CFG_SETTINGS::sync_interval

Definition at line 3618 of file gpsdefs.h.

int16_t PTP_CFG_SETTINGS::announce_interval

Definition at line 3620 of file gpsdefs.h.

int16_t PTP_CFG_SETTINGS::delay_request_interval

Definition at line 3621 of file gpsdefs.h.

uint32_t PTP_CFG_SETTINGS::upper_bound

Definition at line 3623 of file gpsdefs.h.

uint32_t PTP_CFG_SETTINGS::lower_bound

Definition at line 3624 of file gpsdefs.h.

uint32_t PTP_CFG_SETTINGS::reserved_3

Definition at line 3626 of file gpsdefs.h.

uint32_t PTP_CFG_SETTINGS::flags

Definition at line 3627 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PTP_CLOCK_IDENTITY Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PTP_CLOCK_IDENTITY Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t b [8]

Detailed Description

Definition at line 3522 of file gpsdefs.h.

Field Documentation

uint8_t PTP_CLOCK_IDENTITY::b[8]

Definition at line 3524 of file gpsdefs.h.

Referenced by print_ptp_status().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PTP_STATE Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PTP_STATE Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t network_protocol
uint8_t ptp_proto_version
uint8_t port_state
uint32_t flags
NANO_TIME offset
NANO_TIME path_delay
NANO_TIME mean_path_delay
NANO_TIME delay_asymmetry
PTP_CLOCK_IDENTITY gm_identity
uint16_t clock_offset_scaled_log_variance
uint8_t clock_class
uint8_t clock_accuracy
uint32_t num_clients
uint32_t num_masters
uint8_t domain_number
uint8_t time_source
uint8_t delay_mech
int8_t log_delay_req_intv
int16_t utc_offset
DAC_VAL osc_dac_cal
uint32_t reserved

Detailed Description

Definition at line 3529 of file gpsdefs.h.

Field Documentation

uint16_t PTP_STATE::network_protocol

Definition at line 3531 of file gpsdefs.h.

uint8_t PTP_STATE::ptp_proto_version

Definition at line 3532 of file gpsdefs.h.

uint8_t PTP_STATE::port_state

Definition at line 3533 of file gpsdefs.h.

Referenced by print_ptp_status().

uint32_t PTP_STATE::flags

Definition at line 3534 of file gpsdefs.h.

NANO_TIME PTP_STATE::offset

Definition at line 3535 of file gpsdefs.h.

Referenced by print_ptp_status().

NANO_TIME PTP_STATE::path_delay

Definition at line 3536 of file gpsdefs.h.

Referenced by print_ptp_status().

NANO_TIME PTP_STATE::mean_path_delay

Definition at line 3537 of file gpsdefs.h.

NANO_TIME PTP_STATE::delay_asymmetry

Definition at line 3538 of file gpsdefs.h.

PTP_CLOCK_IDENTITY PTP_STATE::gm_identity

Definition at line 3540 of file gpsdefs.h.

Referenced by print_ptp_status().

uint16_t PTP_STATE::clock_offset_scaled_log_variance

Definition at line 3542 of file gpsdefs.h.

uint8_t PTP_STATE::clock_class

Definition at line 3543 of file gpsdefs.h.

uint8_t PTP_STATE::clock_accuracy

Definition at line 3544 of file gpsdefs.h.

uint32_t PTP_STATE::num_clients

Definition at line 3546 of file gpsdefs.h.

uint32_t PTP_STATE::num_masters

Definition at line 3547 of file gpsdefs.h.

uint8_t PTP_STATE::domain_number

Definition at line 3549 of file gpsdefs.h.

uint8_t PTP_STATE::time_source

Definition at line 3550 of file gpsdefs.h.

uint8_t PTP_STATE::delay_mech

Definition at line 3551 of file gpsdefs.h.

int8_t PTP_STATE::log_delay_req_intv

Definition at line 3552 of file gpsdefs.h.

int16_t PTP_STATE::utc_offset

Definition at line 3554 of file gpsdefs.h.

DAC_VAL PTP_STATE::osc_dac_cal

Definition at line 3555 of file gpsdefs.h.

uint32_t PTP_STATE::reserved

Definition at line 3557 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: PTP_TABLE Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

PTP_TABLE Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t value
char * name

Detailed Description

Definition at line 3404 of file gpsdefs.h.

Field Documentation

uint8_t PTP_TABLE::value

Definition at line 3406 of file gpsdefs.h.

char* PTP_TABLE::name

Definition at line 3407 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: RECEIVER_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

RECEIVER_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t model_code
SW_REV sw_rev
char | model_name [GPS_ID_STR_SIZE]
char | sernum [GPS_ID_STR_SIZE]
char | epld_name [GPS_EPLD_STR_SIZE]
uint8_t n_channels
uint32_t ticks_per_sec
uint32_t features
FIXED_FREQ_INFO fixed_freq
uint8_t osc_type
uint8_t osc_flags
uint8_t n_ucaps
uint8_t n_com_ports
uint8_t n_str_type
uint8_t n_prg_out
uint16_t flags

Detailed Description

The structure is ordered in a way that all fields except chars or arrays of chars are word-aligned.

Definition at line 417 of file gpsdefs.h.

Field Documentation

uint16_t RECEIVER_INFO::model_code

identifier for receiver model

Definition at line 419 of file gpsdefs.h.

SW_REV RECEIVER_INFO::sw_rev

software revision and ID

Definition at line 420 of file gpsdefs.h.

char RECEIVER_INFO::model_name[GPS_ID_STR_SIZE]

ASCIIZ, name of receiver model

Definition at line 421 of file gpsdefs.h.

char RECEIVER_INFO::sernum[GPS_ID_STR_SIZE]

ASCIIZ, serial number

Definition at line 422 of file gpsdefs.h.

char RECEIVER_INFO::epld_name[GPS_EPLD_STR_SIZE]

ASCIIZ, file name of EPLD image

Definition at line 423 of file gpsdefs.h.

uint8_t RECEIVER_INFO::n_channels

number of sats to be tracked simultaneously

Definition at line 424 of file gpsdefs.h.

uint32_t RECEIVER_INFO::ticks_per_sec

resolution of fractions of seconds

Definition at line 425 of file gpsdefs.h.

uint32_t RECEIVER_INFO::features

optional features, see below

Definition at line 426 of file gpsdefs.h.

FIXED_FREQ_INFO RECEIVER_INFO::fixed_freq

optional non-standard fixed frequency

Definition at line 427 of file gpsdefs.h.

uint8_t RECEIVER_INFO::osc_type

type of installed oscillator, see below

Definition at line 428 of file gpsdefs.h.

uint8_t RECEIVER_INFO::osc_flags

oscillator flags, see below

Definition at line 429 of file gpsdefs.h.

uint8_t RECEIVER_INFO::n_ucaps

number of user time capture inputs

Definition at line 430 of file gpsdefs.h.

uint8_t RECEIVER_INFO::n_com_ports

number of on-board serial ports

Definition at line 431 of file gpsdefs.h.

uint8_t RECEIVER_INFO::n_str_type

max num of string types supported by any port

Definition at line 432 of file gpsdefs.h.

uint8_t RECEIVER_INFO::n_prg_out

number of programmable pulse outputs

Definition at line 433 of file gpsdefs.h.

uint16_t RECEIVER_INFO::flags

additional information, see below

Definition at line 434 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: RECEIVER_PORT_CFG Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

RECEIVER_PORT_CFG Struct Reference

#include <pcpsdev.h>

Data Fields

ALL_PORT_INFO pii
ALL_STR_TYPE_INFO stii
PORT_PARM tmp_pp

Detailed Description

Definition at line 1008 of file pcpsdev.h.

Field Documentation

ALL_PORT_INFO RECEIVER_PORT_CFG::pii

Definition at line 1010 of file pcpsdev.h.

ALL_STR_TYPE_INFO RECEIVER_PORT_CFG::stii

Definition at line 1011 of file pcpsdev.h.

PORT_PARM RECEIVER_PORT_CFG::tmp_pp

Definition at line 1012 of file pcpsdev.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/pcpsdev.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: SCU_STAT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

SCU_STAT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint32_t hw_id
uint32_t fw_id
uint16_t flags
uint8_t clk0_info
uint8_t clk1_info
uint16_t epld_status
uint16_t epld_control

Detailed Description

Definition at line 3095 of file gpsdefs.h.

Field Documentation

uint32_t SCU_STAT_INFO::hw_id

Definition at line 3097 of file gpsdefs.h.

uint32_t SCU_STAT_INFO::fw_id

Definition at line 3098 of file gpsdefs.h.

uint16_t SCU_STAT_INFO::flags

Definition at line 3099 of file gpsdefs.h.

uint8_t SCU_STAT_INFO::clk0_info

Definition at line 3100 of file gpsdefs.h.

uint8_t SCU_STAT_INFO::clk1_info

Definition at line 3101 of file gpsdefs.h.

uint16_t SCU_STAT_INFO::epld_status

Definition at line 3102 of file gpsdefs.h.

uint16_t SCU_STAT_INFO::epld_control

Definition at line 3103 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: SCU_STAT_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

SCU_STAT_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t epld_control_mask
uint16_t epld_control_value
uint32_t flags

Detailed Description

Definition at line 3106 of file gpsdefs.h.

Field Documentation

uint16_t SCU_STAT_SETTINGS::epld_control_mask

Definition at line 3108 of file gpsdefs.h.

uint16_t SCU_STAT_SETTINGS::epld_control_value

Definition at line 3109 of file gpsdefs.h.

uint32_t SCU_STAT_SETTINGS::flags

Definition at line 3110 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: STAT_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

STAT_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t mode
uint16_t good_svs
uint16_t svs_in_view
DAC_VAL dac_val
DAC_VAL dac_cal

Detailed Description

Definition at line 3176 of file gpsdefs.h.

Field Documentation

uint16_t STAT_INFO::mode

Mode of operation

Definition at line 3178 of file gpsdefs.h.

uint16_t STAT_INFO::good_svs

Numb. of satellites that can currently be received and used

Definition at line 3179 of file gpsdefs.h.

Referenced by print_sv_info().

uint16_t STAT_INFO::svs_in_view

Numb. of satellites that should be in view according to the almanac data

Definition at line 3180 of file gpsdefs.h.

Referenced by print_sv_info().

DAC_VAL STAT_INFO::dac_val

Oscillator fine DAC value

Definition at line 3181 of file gpsdefs.h.

DAC_VAL STAT_INFO::dac_cal

Oscillator calibration DAC value ( see OSC_DAC_RANGE, OSC_DAC_BIAS )

Definition at line 3182 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: STR_TYPE_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

STR_TYPE_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

uint32_t supp_modes
char | long_name [23]
char | short_name [11]
uint16_t flags

Detailed Description

Definition at line 1711 of file gpsdefs.h.

Field Documentation

uint32_t STR_TYPE_INFO::supp_modes

Definition at line 1713 of file gpsdefs.h.

char STR_TYPE_INFO::long_name[23]

Definition at line 1714 of file gpsdefs.h.

char STR_TYPE_INFO::short_name[11]

Definition at line 1715 of file gpsdefs.h.

uint16_t STR_TYPE_INFO::flags

Definition at line 1716 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: STR_TYPE_INFO_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

STR_TYPE_INFO_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
STR_TYPE_INFO str_type_info

Detailed Description

Definition at line 1731 of file gpsdefs.h.

Field Documentation

uint16_t STR_TYPE_INFO_IDX::idx

Definition at line 1733 of file gpsdefs.h.

STR_TYPE_INFO STR_TYPE_INFO_IDX::str_type_info

Definition at line 1734 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: SW_REV Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

SW_REV Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t code
char name [GPS_ID_STR_SIZE]
uint8_t reserved

Detailed Description

A struct used to hold the software revision information

Definition at line 346 of file gpsdefs.h.

Field Documentation

uint16_t SW_REV::code

e.g. 0x0120 means rev. 1.20

Definition at line 348 of file gpsdefs.h.

char SW_REV::name[GPS_ID_STR_SIZE]

used to identify customized versions

Definition at line 349 of file gpsdefs.h.

uint8_t SW_REV::reserved

yield even structure size

Definition at line 350 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: SYNTH Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

SYNTH Struct Reference
[Synthesizer parameters]

#include <gpsdefs.h>

Data Fields

int16_t freq
int16_t range
int16_t phase

Detailed Description

Definition at line 1108 of file gpsdefs.h.

Field Documentation

int16_t SYNTH::freq

four digits used; scale: 0.1; e.g. 1234 -> 123.4 Hz

Definition at line 1110 of file gpsdefs.h.

int16_t SYNTH::range

scale factor for freq; 0..MAX_SYNTH_RANGE

Definition at line 1111 of file gpsdefs.h.

int16_t SYNTH::phase

-MAX_SYNTH_PHASE..+MAX_SYNTH_PHASE; >0 -> pulses later

Definition at line 1112 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: SYNTH_STATE Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

SYNTH_STATE Struct Reference
[Synthesizer parameters]

#include <gpsdefs.h>

Data Fields

uint8_t state
uint8_t flags

Detailed Description

Definition at line 1137 of file gpsdefs.h.

Field Documentation

uint8_t SYNTH_STATE::state

state code as enumerated above

Definition at line 1139 of file gpsdefs.h.

uint8_t SYNTH_STATE::flags

reserved, currently always 0

Definition at line 1140 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: T_GPS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

T_GPS Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t wn
uint32_t sec
uint32_t tick

Detailed Description

Date and time referred to the linear time scale defined by GPS. GPS time is defined by the number of weeks since midnight from January 5, 1980 to January 6, 1980 plus the number of seconds of the current week plus fractions of a second. GPS time differs from UTC because UTC is corrected with leap seconds while GPS time scale is continuous.

Definition at line 857 of file gpsdefs.h.

Field Documentation

uint16_t T_GPS::wn

the week number since GPS has been installed

Definition at line 859 of file gpsdefs.h.

uint32_t T_GPS::sec

the second of that week

Definition at line 860 of file gpsdefs.h.

uint32_t T_GPS::tick

fractions of a second; scale: 1/GPS_TICKS_PER_SEC

Definition at line 861 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: TIMEOUT Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

TIMEOUT Struct Reference

#include <mbgtime.h>

Data Fields

clock_t | start
clock_t | stop
short | is_set

Detailed Description

Definition at line 123 of file mbgtime.h.

Field Documentation

clock_t TIMEOUT::start

Definition at line 125 of file mbgtime.h.

clock_t TIMEOUT::stop

Definition at line 126 of file mbgtime.h.

short TIMEOUT::is_set

Definition at line 127 of file mbgtime.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: TM_GPS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

TM_GPS Struct Reference

#include <gpsdefs.h>

Data Fields

int16_t year
int8_t month
int8_t mday
int16_t yday
int8_t wday
int8_t hour
int8_t min
int8_t sec
int32_t frac
int32_t offs_from_utc
uint16_t status

Detailed Description

Definition at line 879 of file gpsdefs.h.

Field Documentation

int16_t TM_GPS::year

Definition at line 881 of file gpsdefs.h.

Referenced by check_user_captures().

int8_t TM_GPS::month

Definition at line 882 of file gpsdefs.h.

Referenced by check_user_captures().

int8_t TM_GPS::mday

Definition at line 883 of file gpsdefs.h.

Referenced by check_user_captures().

int16_t TM_GPS::yday

Definition at line 884 of file gpsdefs.h.

int8_t TM_GPS::wday

Definition at line 885 of file gpsdefs.h.

int8_t TM_GPS::hour

Definition at line 886 of file gpsdefs.h.

Referenced by check_user_captures().

int8_t TM_GPS::min

Definition at line 887 of file gpsdefs.h.

Referenced by check_user_captures().

int8_t TM_GPS::sec

Definition at line 888 of file gpsdefs.h.

Referenced by check_user_captures().

int32_t TM_GPS::frac

Definition at line 889 of file gpsdefs.h.

Referenced by check_user_captures().

int32_t TM_GPS::offs_from_utc

Definition at line 890 of file gpsdefs.h.

uint16_t TM_GPS::status

Definition at line 891 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: TTM Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

TTM Struct Reference

#include <gpsdefs.h>

Data Fields

int16_t channel
T_GPS t
TM_GPS tm

Detailed Description

This structure is used to transmit information on date and time

Definition at line 968 of file gpsdefs.h.

Field Documentation

int16_t TTM::channel

-1: the current time; 0, 1: capture 0, 1

Definition at line 970 of file gpsdefs.h.

Referenced by check_user_captures().

T_GPS TTM::t

time in GPS format

Definition at line 971 of file gpsdefs.h.

TM_GPS TTM::tm

that time converted to local time

Definition at line 972 of file gpsdefs.h.

Referenced by check_user_captures().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: TZDL Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

TZDL Struct Reference
[Time zone/daylight saving parameters]

#include <gpsdefs.h>

Data Fields

int32_t offs
int32_t offs_dl
TM_GPS tm_on
TM_GPS tm_off
TZ_NAME name [2]

Detailed Description

Definition at line 1167 of file gpsdefs.h.

Field Documentation

int32_t TZDL::offs

offset from UTC to local time [sec]

Definition at line 1169 of file gpsdefs.h.

int32_t TZDL::offs_dl

additional offset if daylight saving enabled [sec]

Definition at line 1170 of file gpsdefs.h.

TM_GPS TZDL::tm_on

date/time when daylight saving starts

Definition at line 1171 of file gpsdefs.h.

TM_GPS TZDL::tm_off

date/time when daylight saving ends

Definition at line 1172 of file gpsdefs.h.

TZ_NAME TZDL::name[2]

names without and with daylight saving enabled

Definition at line 1173 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: USER_POS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

USER_POS Struct Reference

#include <mbggeo.h>

Data Fields

CSUM csum
int16_t valid
char | name [40]
POS pos
double | det
double | sin_lat
double | cos_lat
double | sin_lon
double | cos_lon
double | nt1
double | nt2
double | utx
double | uty
double | e_radius
double | e_radius_alt

Detailed Description

Definition at line 113 of file mbggeo.h.

Field Documentation

CSUM USER_POS::csum

Definition at line 115 of file mbggeo.h.

int16_t USER_POS::valid

Definition at line 116 of file mbggeo.h.

char USER_POS::name[40]

Definition at line 118 of file mbggeo.h.

POS USER_POS::pos

Definition at line 119 of file mbggeo.h.

double USER_POS::det

Definition at line 120 of file mbggeo.h.

double USER_POS::sin_lat

Definition at line 132 of file mbggeo.h.

double USER_POS::cos_lat

Definition at line 133 of file mbggeo.h.

double USER_POS::sin_lon

Definition at line 134 of file mbggeo.h.

double USER_POS::cos_lon

Definition at line 135 of file mbggeo.h.

double USER_POS::nt1

Definition at line 137 of file mbggeo.h.

double USER_POS::nt2

Definition at line 138 of file mbggeo.h.

double USER_POS::utx

Definition at line 139 of file mbggeo.h.

double USER_POS::uty

Definition at line 140 of file mbggeo.h.

double USER_POS::e_radius

Definition at line 142 of file mbggeo.h.

double USER_POS::e_radius_alt

Definition at line 143 of file mbggeo.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: UTC Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

UTC Struct Reference

#include <gpsdefs.h>

Data Fields

CSUM csum
int16_t valid
T_GPS t0t
double | A0
double | A1
uint16_t WNlsf
int16_t DNt
int8_t delta_tls
int8_t delta_tlsf

Detailed Description

UTC correction parameters

Definition at line 3791 of file gpsdefs.h.

Field Documentation

CSUM UTC::csum

Checksum of the remaining bytes

Definition at line 3793 of file gpsdefs.h.

int16_t UTC::valid

Flag indicating UTC parameters are valid

Definition at line 3794 of file gpsdefs.h.

Referenced by print_utc_parameters().

T_GPS UTC::t0t

Reference Time UTC Parameters [sec]

Definition at line 3796 of file gpsdefs.h.

double UTC::A0

+- Clock Correction Coefficient 0 [sec]

Definition at line 3797 of file gpsdefs.h.

double UTC::A1

+- Clock Correction Coefficient 1 [sec/sec]

Definition at line 3798 of file gpsdefs.h.

uint16_t UTC::WNlsf

Week number of nearest leap second

Definition at line 3800 of file gpsdefs.h.

Referenced by print_utc_parameters().

int16_t UTC::DNt

The day number at the end of which leap second is inserted

Definition at line 3801 of file gpsdefs.h.

Referenced by print_utc_parameters().

int8_t UTC::delta_tls

Current UTC offset to GPS system time [sec]

Definition at line 3802 of file gpsdefs.h.

Referenced by print_utc_parameters().

int8_t UTC::delta_tlsf

Future UTC offset to GPS system time after next leap second transition [sec]

Definition at line 3803 of file gpsdefs.h.

Referenced by print_utc_parameters().

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_ID Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_ID Struct Reference

#include <gpsdefs.h>

Data Fields

uint8_t type
uint8_t instance

Detailed Description

Definition at line 2922 of file gpsdefs.h.

Field Documentation

uint8_t XMULTI_REF_ID::type

Definition at line 2924 of file gpsdefs.h.

uint8_t XMULTI_REF_ID::instance

Definition at line 2925 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_INFO Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_INFO Struct Reference

#include <gpsdefs.h>

Data Fields

XMULTI_REF_SETTINGS settings
uint32_t supp_ref
uint8_t n_supp_ref
uint8_t n_prio
uint16_t flags

Detailed Description

Definition at line 2957 of file gpsdefs.h.

Field Documentation

XMULTI_REF_SETTINGS XMULTI_REF_INFO::settings

Definition at line 2959 of file gpsdefs.h.

uint32_t XMULTI_REF_INFO::supp_ref

Definition at line 2960 of file gpsdefs.h.

uint8_t XMULTI_REF_INFO::n_supp_ref

Definition at line 2961 of file gpsdefs.h.

uint8_t XMULTI_REF_INFO::n_prio

Definition at line 2962 of file gpsdefs.h.

uint16_t XMULTI_REF_INFO::flags

Definition at line 2963 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_INFO_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_INFO_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
XMULTI_REF_INFO info

Detailed Description

Definition at line 2972 of file gpsdefs.h.

Field Documentation

uint16_t XMULTI_REF_INFO_IDX::idx

Definition at line 2974 of file gpsdefs.h.

XMULTI_REF_INFO XMULTI_REF_INFO_IDX::info

Definition at line 2975 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_SETTINGS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_SETTINGS Struct Reference

#include <gpsdefs.h>

Data Fields

XMULTI_REF_ID id
uint16_t flags
NANO_TIME bias
NANO_TIME precision
uint32_t fine_limit

Detailed Description

Definition at line 2928 of file gpsdefs.h.

Field Documentation

XMULTI_REF_ID XMULTI_REF_SETTINGS::id

Definition at line 2930 of file gpsdefs.h.

uint16_t XMULTI_REF_SETTINGS::flags

Definition at line 2931 of file gpsdefs.h.

NANO_TIME XMULTI_REF_SETTINGS::bias

Definition at line 2932 of file gpsdefs.h.

NANO_TIME XMULTI_REF_SETTINGS::precision

Definition at line 2933 of file gpsdefs.h.

uint32_t XMULTI_REF_SETTINGS::fine_limit

Definition at line 2934 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_SETTINGS_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_SETTINGS_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
XMULTI_REF_SETTINGS settings

Detailed Description

Definition at line 2944 of file gpsdefs.h.

Field Documentation

uint16_t XMULTI_REF_SETTINGS_IDX::idx

Definition at line 2946 of file gpsdefs.h.

XMULTI_REF_SETTINGS XMULTI_REF_SETTINGS_IDX::settings

Definition at line 2947 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_STATUS Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_STATUS Struct Reference

#include <gpsdefs.h>

Data Fields

XMULTI_REF_ID id
uint16_t status
NANO_TIME offset
uint32_t reserved

Detailed Description

Definition at line 2984 of file gpsdefs.h.

Field Documentation

XMULTI_REF_ID XMULTI_REF_STATUS::id

Definition at line 2986 of file gpsdefs.h.

uint16_t XMULTI_REF_STATUS::status

Definition at line 2987 of file gpsdefs.h.

NANO_TIME XMULTI_REF_STATUS::offset

Definition at line 2988 of file gpsdefs.h.

uint32_t XMULTI_REF_STATUS::reserved

Definition at line 2989 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: XMULTI_REF_STATUS_IDX Struct Reference

  • Alphabetical List
  • Data Structures
  • Data Fields

XMULTI_REF_STATUS_IDX Struct Reference

#include <gpsdefs.h>

Data Fields

uint16_t idx
XMULTI_REF_STATUS status

Detailed Description

Definition at line 2998 of file gpsdefs.h.

Field Documentation

uint16_t XMULTI_REF_STATUS_IDX::idx

Definition at line 3000 of file gpsdefs.h.

XMULTI_REF_STATUS XMULTI_REF_STATUS_IDX::status

Definition at line 3001 of file gpsdefs.h.

The documentation for this struct was generated from the following file:
  • c/mbglib/include/gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- a -

  • a : ELLIPSOID
  • A0 : UTC
  • A1 : UTC
  • addon_data : PCI_ASIC
  • af0 : EPH , ALM
  • af1 : ALM , EPH
  • af2 : EPH
  • alpha_0 : IONO
  • alpha_1 : IONO
  • alpha_2 : IONO
  • alpha_3 : IONO
  • announce_interval : PTP_CFG_SETTINGS
  • announce_interval_max : PTP_CFG_INFO
  • announce_interval_min : PTP_CFG_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: File Index

  • File List
  • Globals

File List

Here is a list of all files with brief descriptions:
c/demo/mbgdevio/hrtime.c [code]
c/demo/mbgdevio/mbgdevio_demo.c [code]
c/demo/mbgdevio/xhrtime.c [code]
c/demo/mbgsvcio/mbgdmpst.c [code]
c/demo/mbgsvcio/msc/resource.h [code]
c/demo/mbgsvcio/vc6/resource.h [code]
c/mbglib/include/gpsdefs.h [code]
c/mbglib/include/gpsutils.h [code]
c/mbglib/include/mbg_arch.h [code]
c/mbglib/include/mbg_tgt.h [code]
c/mbglib/include/mbgdevio.h [code]
c/mbglib/include/mbgerror.h [code]
c/mbglib/include/mbggeo.h [code]
c/mbglib/include/mbgsvcio.h [code]
c/mbglib/include/mbgtime.h [code]
c/mbglib/include/mbgutil.h [code]
c/mbglib/include/pci_asic.h [code]
c/mbglib/include/pcpsdefs.h [code]
c/mbglib/include/pcpsdev.h [code]
c/mbglib/include/usbdefs.h [code]
c/mbglib/include/use_pack.h [code]
c/mbglib/include/words.h [code]
c/mbglib/include/common/mbg_arch.h [code]
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/hrtime.c File Reference

  • Files

c/demo/mbgdevio/hrtime.c File Reference

#include <mbgdevio.h>
#include <mbgutil.h>
#include <stdio.h>

Go to the source code of this file.

Functions

static void | err_msg (const char *msg)
static void | print_drvr_info (void)
static void | print_dev_info (MBG_DEV_HANDLE dh, PCPS_DEV *p_dev)
int | main (int argc, char *argv[])

Variables

static int | n_sec_change = 0

Detailed Description

Example program to read the high resolution time from Meinberg computer peripherals using the mbgdevio (Meinberg Device I/O) DLL.

The structure PCPS_HR_TIME is read using the mbg_get_hr_time() call and contains the system time in seconds since 1970 (standard time_t format), the fractions of a second, plus status and UTC offset.

The device driver checks whether a particular feature like HR time is supported by a particular device and returns an error if it is not. Also the latest driver software should be used since older versions of the driver don't check for HR time support.

With our GPS cards, the effictive resolution of the HR time is better than 1 microsecond. For the IRIG receivers, the resolution is 400 microseconds which is still much better than 10/15 milliseconds provided by the Windows system clock.

To get most accuracy for time stamps, a program can read the PC's performance counter, and then call mbg_get_time_cycles() which returns the HR time plus the performance counter value which matches that HR time stamp. The difference between the two performance counter values can be used to compensate the program execution time delay.

The way to access the time on the board is to write a command to the board's microcontroller which in turn makes the requested data available for reading. The advantage of this is that the interface is very flexible, but the disadvantage is that the on-board microcontroller is involved in any access to the board. In order to prevent applications from overruning the on-board microcontroller by countinuous accesses to the board the card has a limitation which limits the time between two accesses to 200 microseconds and 1 millisecond depending on the device.

Build environment settings:

Add "mbglib\include" directory to the include search path. Link the main file plus the required import libraries, in this case mbgdevio.lib and mbgutil.lib.

The import libraries are located:
"mbglib\lib\msc" for Microsoft C compilers
"mbglib\lib\bc" for Inprise/Borland compilers

Definition in file hrtime.c.

Function Documentation

static void err_msg ( const char * msg ) [static]

Definition at line 85 of file hrtime.c.

Referenced by check_user_captures(), main(), print_date_time_status(), print_dev_info(), print_drvr_info(), print_hr_time(), print_receiver_position(), print_sec_changes(), and print_sv_info().

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Definition at line 156 of file hrtime.c.

References _pcps_has_hr_time, err_msg(), mbg_close_device(), mbg_find_devices(), mbg_get_hr_time(), mbg_get_hr_time_comp(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), mbg_str_pcps_hr_date_time_loc(), mbg_str_pcps_hr_date_time_utc(), mbg_str_pcps_hr_time_offs(), mbg_str_pcps_hr_time_raw(), mbg_str_pcps_hr_tstamp_loc(), mbg_str_pcps_hr_tstamp_utc(), mbgdevio_check_version(), mbgdevio_get_version(), MBGDEVIO_VERSION, PCPS_SUCCESS, print_dev_info(), and print_drvr_info().

static void print_dev_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | p_dev |
 | ) |  |  | [static]

Definition at line 131 of file hrtime.c.

References _pcps_fw_id, _pcps_port_base, err_msg(), mbg_get_device_info(), and PCPS_SUCCESS.

Referenced by main().

static void print_drvr_info ( void ) [static]

Definition at line 94 of file hrtime.c.

References err_msg(), PCPS_DRVR_INFO::id_str, mbg_close_device(), mbg_get_drvr_info(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), PCPS_DRVR_INFO::n_devs, PCPS_SUCCESS, and PCPS_DRVR_INFO::ver_num.

Referenced by main().

Variable Documentation

int n_sec_change = 0 [static]

Definition at line 81 of file hrtime.c.

Referenced by print_sec_changes().

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/mbgdevio_demo.c File Reference

  • Files

c/demo/mbgdevio/mbgdevio_demo.c File Reference

#include <mbgdevio.h>
#include <mbgtime.h>
#include <mbgutil.h>
#include <stdio.h>
#include <stdlib.h>

Go to the source code of this file.

Defines

#define | MAX_MEM_MAPPED_CNT 20

Functions

static void | err_msg (const char *msg)
static void | print_drvr_info (void)
static void | print_dev_info (MBG_DEV_HANDLE dh, PCPS_DEV *p_dev)
static void | print_date_time (PCPS_TIME *tp, const char *label)
static void | print_date_time_status (MBG_DEV_HANDLE dh)
static char * | sprint_hr_time (char *s, const PCPS_HR_TIME *t)
static void | print_hr_time (MBG_DEV_HANDLE dh)
static void | print_sec_changes (MBG_DEV_HANDLE dh)
static void | print_receiver_position (MBG_DEV_HANDLE dh)
static void | print_sv_info (MBG_DEV_HANDLE dh)
static void | check_user_captures (MBG_DEV_HANDLE dh, PCPS_DEV *pdev)
static void | print_utc_parameters (MBG_DEV_HANDLE dh, PCPS_DEV *pdev)
static void | show_irig_ctrl_bits (MBG_DEV_HANDLE dh)
static void | show_irig_debug_status (MBG_DEV_HANDLE dh)
int | snprint_ip4_addr (char *s, size_t max_len, const IP4_ADDR *addr)
static void | show_lan_intf_state (MBG_DEV_HANDLE dh)
static void | print_ptp_status (MBG_DEV_HANDLE dh)
int | main (int argc, char *argv[])

Variables

static int | n_sec_change = 0
const char * | time_scale_str [N_MBG_TIME_SCALE] = MBG_TIME_SCALE_STRS

Detailed Description

Example program to access Meinberg computer peripherals using the mbgdevio (Meinberg Device I/O) DLL.
The program checks first whether a certain feature like high resolution time, Memory Mapped I/O, different time scales or user capture is supported by the device.

Build environment settings:

Add "mbglib\include" directory to the include search path. Link the main file plus the required import libraries, in this case mbgdevio.lib and mbgutil.lib.

The import libraries are located:
"mbglib\lib\msc" for Microsoft C compilers
"mbglib\lib\bc" for Inprise/Borland compilers

Definition in file mbgdevio_demo.c.

Define Documentation

#define MAX_MEM_MAPPED_CNT 20

Number of memory mapped time reads

Definition at line 64 of file mbgdevio_demo.c.

Referenced by main().

Function Documentation

static void check_user_captures | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | pdev |
 | ) |  |  | [static]

There are 3 functions to deal with the capture events:

  • mbg_clr_ucap_buff() clears the on-board FIFO buffer
  • mbg_get_ucap_entries() returns the maximum number of entries and the currently saved number of entries in the buffer
  • mbg_get_ucap_event() retrieves a capture event from the on-board FIFO, or 0000.0000 if the FIFO buffer is empty.
When using the time capture inputs the following hints might be helpful:

  • The corresponding DIP switches on the card must be set to the "ON" position in order to wire the input pins to the capture circuitry. See the user manual for the correct DIP switches.
  • Capture events are stored in the on-board FIFO, and entries can be retrieved from the FIFO in different ways. Once an entry has been retrieved it is removed from the FIFO, so if several ways or applications are used at the same time to retrieve capture events from the FIFO then capture events may be missed by one application since they have already been retrieved by another application.
  • The card provides 2 physical serial interfaces either of which may have been configured to send a serial ASCII string automatically whenever a capture event has occurred. Of course this would also remove those capture events from the FIFO buffer. So the settings of both serial ports should be checked to make sure none of the serial ports have been configured to send the capture string automatically. This has to be done only once for a card since the setting is saved in non-volatile memory.

Definition at line 360 of file mbgdevio_demo.c.

References _pcps_can_clr_ucap_buff, _pcps_has_ucap, _pcps_time_is_read, TTM::channel, err_msg(), TM_GPS::frac, TM_GPS::hour, PCPS_UCAP_ENTRIES::max, mbg_clr_ucap_buff(), mbg_get_gps_ucap(), mbg_get_ucap_entries(), mbg_get_ucap_event(), TM_GPS::mday, TM_GPS::min, TM_GPS::month, PCPS_SUCCESS, TM_GPS::sec, PCPS_TIME_STAMP::sec, PCPS_HR_TIME::signal, sprint_hr_time(), TTM::tm, PCPS_HR_TIME::tstamp, PCPS_UCAP_ENTRIES::used, and TM_GPS::year.

Referenced by main().

static void err_msg ( const char * msg ) [static]

Definition at line 73 of file mbgdevio_demo.c.

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Definition at line 668 of file mbgdevio_demo.c.

References _pcps_has_asic_version, _pcps_has_hr_time, _pcps_has_irig_ctrl_bits, _pcps_has_irig_time, _pcps_has_lan_intf, _pcps_has_time_scale, _pcps_has_utc_parm, _pcps_is_gps, _pcps_is_irig_rx, _pcps_is_ptp, check_user_captures(), err_msg(), PCPS_IRIG_TIME_s::hour, MAX_MEM_MAPPED_CNT, mbg_close_device(), mbg_find_devices(), mbg_get_asic_features(), mbg_get_fast_hr_timestamp_comp(), mbg_get_irig_time(), mbg_get_time_scale_info(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), mbg_str_pcps_hr_tstamp_utc(), MBG_SUCCESS, mbgdevio_check_version(), mbgdevio_get_version(), MBGDEVIO_VERSION, PCPS_IRIG_TIME_s::min, PCI_ASIC_HAS_MM_IO, PCPS_SUCCESS, print_date_time_status(), print_dev_info(), print_drvr_info(), print_hr_time(), print_ptp_status(), print_receiver_position(), print_sv_info(), print_utc_parameters(), MBG_TIME_SCALE_SETTINGS::scale, PCPS_IRIG_TIME_s::sec, MBG_TIME_SCALE_INFO::settings, show_irig_ctrl_bits(), show_irig_debug_status(), show_lan_intf_state(), time_scale_str, and PCPS_IRIG_TIME_s::yday.

static void print_date_time | ( | PCPS_TIME * | tp,
 |  | const char * | label |
 | ) |  |  | [static]

Definition at line 139 of file mbgdevio_demo.c.

References PCPS_TIME_s::hour, PCPS_TIME_s::mday, PCPS_TIME_s::min, PCPS_TIME_s::month, PCPS_TIME_s::offs_utc, PCPS_TIME_s::sec, PCPS_TIME_s::sec100, and PCPS_TIME_s::year.

Referenced by print_date_time_status(), and print_sec_changes().

static void print_date_time_status ( MBG_DEV_HANDLE dh ) [static]

Definition at line 155 of file mbgdevio_demo.c.

References err_msg(), mbg_get_time(), PCPS_FREER, PCPS_SUCCESS, PCPS_SYNCD, print_date_time(), and PCPS_TIME_s::status.

Referenced by main().

static void print_dev_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | p_dev |
 | ) |  |  | [static]

Definition at line 117 of file mbgdevio_demo.c.

References _pcps_port_base, _pcps_type_name, err_msg(), mbg_get_device_info(), and PCPS_SUCCESS.

static void print_drvr_info ( void ) [static]

Definition at line 82 of file mbgdevio_demo.c.

References err_msg(), PCPS_DRVR_INFO::id_str, mbg_close_device(), mbg_get_drvr_info(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), PCPS_SUCCESS, and PCPS_DRVR_INFO::ver_num.

static void print_hr_time ( MBG_DEV_HANDLE dh ) [static]

Definition at line 208 of file mbgdevio_demo.c.

References err_msg(), mbg_get_hr_time(), mbg_get_hr_time_comp(), mbg_str_pcps_hr_tstamp_utc(), PCPS_SCALE_GPS, PCPS_SCALE_TAI, PCPS_SUCCESS, sprint_hr_time(), and PCPS_HR_TIME::status.

Referenced by main(), and print_sec_changes().

static void print_ptp_status ( MBG_DEV_HANDLE dh ) [static]

Definition at line 613 of file mbgdevio_demo.c.

References _nano_time_negative, PTP_CLOCK_IDENTITY::b, PTP_STATE::gm_identity, mbg_get_ptp_state(), mbg_snprintf(), MBG_SUCCESS, N_PTP_PORT_STATE, NANO_TIME::nano_secs, PTP_STATE::offset, PTP_STATE::path_delay, PTP_STATE::port_state, PTP_PORT_STATE_SLAVE, PTP_PORT_STATE_STRS, and NANO_TIME::secs.

Referenced by main().

static void print_receiver_position ( MBG_DEV_HANDLE dh ) [static]

Definition at line 292 of file mbgdevio_demo.c.

References err_msg(), mbg_get_gps_pos(), mbg_str_pos(), and PCPS_SUCCESS.

Referenced by main().

static void print_sec_changes ( MBG_DEV_HANDLE dh ) [static]

Definition at line 260 of file mbgdevio_demo.c.

References err_msg(), mbg_get_time_sec_change(), n_sec_change, PCPS_SUCCESS, print_date_time(), and print_hr_time().

static void print_sv_info ( MBG_DEV_HANDLE dh ) [static]

Definition at line 311 of file mbgdevio_demo.c.

References err_msg(), STAT_INFO::good_svs, mbg_get_gps_stat_info(), PCPS_SUCCESS, and STAT_INFO::svs_in_view.

Referenced by main().

static void print_utc_parameters | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | pdev |
 | ) |  |  | [static]

Definition at line 465 of file mbgdevio_demo.c.

References _pcps_has_utc_parm, UTC::delta_tls, UTC::delta_tlsf, UTC::DNt, GPS_SEC_BIAS, mbg_get_utc_parm(), PCPS_SUCCESS, SECS_PER_DAY, SECS_PER_WEEK, UTC::valid, and UTC::WNlsf.

Referenced by main().

static void show_irig_ctrl_bits ( MBG_DEV_HANDLE dh ) [static]

Definition at line 509 of file mbgdevio_demo.c.

References mbg_get_irig_ctrl_bits(), and MBG_SUCCESS.

Referenced by main().

static void show_irig_debug_status ( MBG_DEV_HANDLE dh ) [static]

Definition at line 525 of file mbgdevio_demo.c.

References _mbg_generic_read_var, MBG_DEBUG_STATUS_STRS, MBG_SUCCESS, N_MBG_DEBUG_BIT, and PCPS_GET_DEBUG_STATUS.

Referenced by main().

static void show_lan_intf_state ( MBG_DEV_HANDLE dh ) [static]

Definition at line 564 of file mbgdevio_demo.c.

References IP4_SETTINGS::broad_addr, IP4_SETTINGS::flags, IP4_SETTINGS::gateway, IP4_MSK_DHCP, IP4_MSK_LINK, IP4_SETTINGS::ip_addr, LAN_IF_INFO::mac_addr, mbg_get_ip4_state(), mbg_get_lan_if_info(), mbg_snprintf(), MBG_SUCCESS, IP4_SETTINGS::netmask, and snprint_ip4_addr().

Referenced by main().

int snprint_ip4_addr | ( | char * | s,
 |  | size_t | max_len,
 |  | const IP4_ADDR * | addr
 | ) |  |

Definition at line 546 of file mbgdevio_demo.c.

References BYTE_OF, and mbg_snprintf().

Referenced by show_lan_intf_state().

static char* sprint_hr_time | ( | char * | s,
 |  | const PCPS_HR_TIME * | t |
 | ) |  |  | [static]

Definition at line 183 of file mbgdevio_demo.c.

References PCPS_TIME_STAMP::frac, PCPS_SCALE_GPS, PCPS_SCALE_TAI, PCPS_TIME_STAMP::sec, PCPS_HR_TIME::status, PCPS_HR_TIME::tstamp, and PCPS_HR_TIME::utc_offs.

Referenced by check_user_captures(), and print_hr_time().

Variable Documentation

int n_sec_change = 0 [static]

Definition at line 66 of file mbgdevio_demo.c.

const char* time_scale_str[N_MBG_TIME_SCALE] = MBG_TIME_SCALE_STRS

Definition at line 68 of file mbgdevio_demo.c.

Referenced by main().

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/xhrtime.c File Reference

  • Files

c/demo/mbgdevio/xhrtime.c File Reference

#include <mbgdevio.h>
#include <mbgutil.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

union | FT_DWL

Defines

#define | N_LOOPS 30
#define | USE_PCPS_HR_TIME 1

Functions

static void | err_msg (const char *msg)
static void | print_drvr_info (void)
static void | print_dev_info (MBG_DEV_HANDLE dh, PCPS_DEV *p_dev)
int | main (int argc, char *argv[])

Detailed Description

To retrieve extrapolated time stamps a polling thread inside the mbgdevio.dll is started which reads a high resolution time stamp and an associated CPU cycles counter value once per second and saves that data pair.

Current time stamps are then computed by taking the current CPU cycles value and extrapolating the time from the last data pair.

This is very much faster than accessing the device for every single time stamp.

On systems where the cycles counter is implemented by a CPU's time stamp counter (TSC) it maybe required to set the thread or process affinity to a single CPU to get reliable cycles counts. In this case also care should be taken that the CPU's clock frequency is not stepped up and down e.g. due to power saving mechanisms (e.g. Intel SpeedStep, or AMD Cool'n'Quiet). Otherwise time interpolation may be messed up.

Notes:

  • This approach works / makes sense only with cards which support high resolution time stamps (PCPS_HR_TIME). If a card doesn't support that then this program prints a warning.
  • Extrapolation is done using the time stamp counter (TSC) registers provided by Pentium CPUs and newer/compatible types as the cycles counter. On SMP / multicore CPUs those counters may not be synchronized, so this works only correctly if all cycles counter values are taken from the same CPU. To achieve this the process CPU affinity is by default set to the first CPU at program start, which means all threads of this process are executed only on that CPU.
Associated functions:

  • mbg_xhrt_poll_thread_create()
  • mbg_get_xhrt_cycles_frequency()
  • mbg_get_xhrt_time_as_pcps_hr_time()
  • mbg_get_xhrt_time_as_filetime()
  • mbg_xhrt_poll_thread_stop()

Build environment settings:

Add "mbglib\include" directory to the include search path. Link the main file plus the required import libraries, in this case mbgdevio.lib and mbgutil.lib.

The import libraries are located:
"mbglib\lib\msc" for Microsoft C compilers
"mbglib\lib\bc" for Inprise/Borland compilers

Definition in file xhrtime.c.

Define Documentation

#define N_LOOPS 30

Definition at line 84 of file xhrtime.c.

Referenced by main().

#define USE_PCPS_HR_TIME 1

Definition at line 85 of file xhrtime.c.

Function Documentation

static void err_msg ( const char * msg ) [static]

Definition at line 99 of file xhrtime.c.

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Definition at line 169 of file xhrtime.c.

References _pcps_has_hr_time, FT_DWL::dwl, err_msg(), FT_DWL::ft, mbg_close_device(), mbg_find_devices(), mbg_get_pc_cycles(), mbg_get_xhrt_cycles_frequency(), mbg_get_xhrt_time_as_filetime(), mbg_get_xhrt_time_as_pcps_hr_time(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), mbg_str_pcps_hr_tstamp_loc(), mbg_str_pcps_hr_tstamp_utc(), MBG_SUCCESS, mbg_xhrt_poll_thread_create(), mbg_xhrt_poll_thread_stop(), mbgdevio_check_version(), mbgdevio_get_version(), MBGDEVIO_VERSION, N_LOOPS, PCPS_SUCCESS, print_dev_info(), print_drvr_info(), and MBG_POLL_THREAD_INFO::xhrt_info.

static void print_dev_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | p_dev |
 | ) |  |  | [static]

Definition at line 144 of file xhrtime.c.

References _pcps_fw_id, _pcps_port_base, _pcps_sernum, err_msg(), mbg_get_device_info(), and PCPS_SUCCESS.

static void print_drvr_info ( void ) [static]

Definition at line 108 of file xhrtime.c.

References err_msg(), PCPS_DRVR_INFO::id_str, mbg_close_device(), mbg_get_drvr_info(), MBG_INVALID_DEV_HANDLE, mbg_open_device(), PCPS_DRVR_INFO::n_devs, PCPS_SUCCESS, and PCPS_DRVR_INFO::ver_num.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/mbgdmpst.c File Reference

  • Files

c/demo/mbgsvcio/mbgdmpst.c File Reference

#include <mbgsvcio.h>
#include <pcpsdefs.h>
#include <stdio.h>

Go to the source code of this file.

Defines

#define | SECTION_INFO "[Info]"
#define | SECTION_OUTPUT "[Output]"
#define | KEY_SVC_ACTIVE "SvcTimeAdjustmentActive"
#define | KEY_SVC_REF_ACCESSIBLE "SvcRefTimeAccessible"
#define | KEY_FREER "RefTimeNotSynchronized"
#define | KEY_DL_ENB "RefDaylightSavingEnabled"
#define | KEY_SYNC_AFTER_RESET "RefSyncAfterReset"
#define | KEY_DL_ANN "RefDaylightChangeAnnounced"
#define | KEY_UTC "RefIsUtc"
#define | KEY_LS_ANN "RefLeapSecondAnnounced"
#define | KEY_SET_MANUALLY "RefTimeSetManually"
#define | KEY_INV_TIME "RefTimeInvalid"
#define | N_STATUS 8

Functions

static void | dump_status_item (FILE *fp, const char *name, int val, int cond)
static void | dump_status (FILE *fp, int st, int cond)
void | mbg_dump_time_adjustment_status (FILE *fp)
int | main (int argc, char *argv[])

Variables

static const char * | prog_info = "Meinberg Time Adjustment Status Dumper"
static const char * | prog_version = "v1.1"

Define Documentation

#define KEY_DL_ANN "RefDaylightChangeAnnounced"

Definition at line 25 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_DL_ENB "RefDaylightSavingEnabled"

Definition at line 23 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_FREER "RefTimeNotSynchronized"

Definition at line 22 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_INV_TIME "RefTimeInvalid"

Definition at line 29 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_LS_ANN "RefLeapSecondAnnounced"

Definition at line 27 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_SET_MANUALLY "RefTimeSetManually"

Definition at line 28 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_SVC_ACTIVE "SvcTimeAdjustmentActive"

Definition at line 18 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

#define KEY_SVC_REF_ACCESSIBLE "SvcRefTimeAccessible"

Definition at line 19 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

#define KEY_SYNC_AFTER_RESET "RefSyncAfterReset"

Definition at line 24 of file mbgdmpst.c.

Referenced by dump_status().

#define KEY_UTC "RefIsUtc"

Definition at line 26 of file mbgdmpst.c.

Referenced by dump_status().

#define N_STATUS 8

Referenced by dump_status().

#define SECTION_INFO "[Info]"

Definition at line 15 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

#define SECTION_OUTPUT "[Output]"

Definition at line 16 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

Function Documentation

static void dump_status | ( | FILE * | fp,
 |  | int | st,
 |  | int | cond |
 | ) |  |  | [static]

Definition at line 48 of file mbgdmpst.c.

References dump_status_item(), KEY_DL_ANN, KEY_DL_ENB, KEY_FREER, KEY_INV_TIME, KEY_LS_ANN, KEY_SET_MANUALLY, KEY_SYNC_AFTER_RESET, KEY_UTC, N_STATUS, PCPS_DL_ANN, PCPS_DL_ENB, PCPS_FREER, PCPS_IFTM, PCPS_INVT, PCPS_LS_ANN, PCPS_SYNCD, and PCPS_UTC.

Referenced by mbg_dump_time_adjustment_status().

static void dump_status_item | ( | FILE * | fp,
 |  | const char * | name,
 |  | int | val,
 |  | int | cond |
 | ) |  |  | [static]

Definition at line 34 of file mbgdmpst.c.

Referenced by dump_status(), and mbg_dump_time_adjustment_status().

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Definition at line 125 of file mbgdmpst.c.

References mbg_dump_time_adjustment_status().

void mbg_dump_time_adjustment_status ( FILE * fp )

Definition at line 85 of file mbgdmpst.c.

References dump_status(), dump_status_item(), KEY_SVC_ACTIVE, KEY_SVC_REF_ACCESSIBLE, mbg_get_ref_time_status(), mbg_ref_time_accessible(), mbg_time_adjustment_active(), prog_info, prog_version, SECTION_INFO, and SECTION_OUTPUT.

Referenced by main().

Variable Documentation

const char* prog_info = "Meinberg Time Adjustment Status Dumper" [static]

Definition at line 12 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

const char* prog_version = "v1.1" [static]

Definition at line 13 of file mbgdmpst.c.

Referenced by mbg_dump_time_adjustment_status().

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/msc/resource.h File Reference

  • Files

c/demo/mbgsvcio/msc/resource.h File Reference

Go to the source code of this file.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/vc6/resource.h File Reference

  • Files

c/demo/mbgsvcio/vc6/resource.h File Reference

Go to the source code of this file.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/gpsdefs.h File Reference

  • Files

c/mbglib/include/gpsdefs.h File Reference

#include <words.h>
#include <use_pack.h>

Go to the source code of this file.

Data Structures

struct | SW_REV
struct | FIXED_FREQ_INFO
struct | RECEIVER_INFO
union | FPGA_INFO
struct | FPGA_START_INFO
struct | T_GPS
struct | TM_GPS
struct | TTM
struct | NANO_TIME
struct | SYNTH
struct | SYNTH_STATE
struct | TZDL
struct | ANT_INFO
struct | ENABLE_FLAGS
struct | COM_PARM
struct | PORT_SETTINGS
struct | PORT_SETTINGS_IDX
struct | PORT_INFO
struct | PORT_INFO_IDX
struct | STR_TYPE_INFO
struct | STR_TYPE_INFO_IDX
struct | PORT_PARM
struct | IRIG_SETTINGS
struct | IRIG_INFO
struct | MBG_OPT_SETTINGS
struct | MBG_OPT_INFO
struct | MBG_TIME_SCALE_SETTINGS
struct | MBG_TIME_SCALE_INFO
struct | MBG_DATE
struct | MBG_TIME
struct | MBG_DATE_TIME
struct | POUT_TIME
struct | POUT_SETTINGS
struct | POUT_SETTINGS_IDX
struct | POUT_INFO
struct | POUT_INFO_IDX
struct | MULTI_REF_SETTINGS
struct | MULTI_REF_INFO
struct | XMULTI_REF_ID
struct | XMULTI_REF_SETTINGS
struct | XMULTI_REF_SETTINGS_IDX
struct | XMULTI_REF_INFO
struct | XMULTI_REF_INFO_IDX
struct | XMULTI_REF_STATUS
struct | XMULTI_REF_STATUS_IDX
struct | SCU_STAT_INFO
struct | SCU_STAT_SETTINGS
struct | STAT_INFO
union | IDENT
struct | IP4_SETTINGS
struct | LAN_IF_INFO
struct | PTP_TABLE
struct | PTP_CLOCK_IDENTITY
struct | PTP_STATE
struct | PTP_CFG_SETTINGS
struct | PTP_CFG_INFO
struct | EPH
struct | ALM
struct | CFGH
struct | UTC
struct | IONO
struct | ASCII_MSG
struct | NAV_TIME_MODE_SETTINGS
struct | NAV_ENGINE_SETTINGS

Defines

#define | MEINBERG_MAGIC 0x6AAC
#define | MIN_SVNO 1
#define | MAX_SVNO 32
#define | N_SVNO ( MAX_SVNO - MIN_SVNO + 1)
#define | GPS_ID_STR_LEN 16
#define | GPS_ID_STR_SIZE ( GPS_ID_STR_LEN + 1 )
#define | GPS_EPLD_STR_LEN 8
#define | GPS_EPLD_STR_SIZE ( GPS_EPLD_STR_LEN + 1 )
#define | DEFAULT_GPS_TICKS_PER_SEC 10000000L
#define | GPS_TICKS_PER_SEC DEFAULT_GPS_TICKS_PER_SEC
#define | _mbg_swab_csum(_p) _mbg_swab16( _p )
#define | _mbg_swab_gps_cmd(_p) _mbg_swab16( _p )
#define | _mbg_swab_sw_rev(_p)
#define | _mbg_swab_bvar_stat(_p) _mbg_swab16( (_p) )
#define | BVAR_CFGH_INVALID ( 1UL << BVAR_BIT_CFGH_INVALID )
#define | BVAR_ALM_NOT_COMPLETE ( 1UL << BVAR_BIT_ALM_NOT_COMPLETE )
#define | BVAR_UTC_INVALID ( 1UL << BVAR_BIT_UTC_INVALID )
#define | BVAR_IONO_INVALID ( 1UL << BVAR_BIT_IONO_INVALID )
#define | BVAR_RCVR_POS_INVALID ( 1UL << BVAR_BIT_RCVR_POS_INVALID )
#define | BVAR_MASK ( ( 1UL << N_BVAR_BIT ) - 1 )
#define | _mbg_swab_fixed_freq_info(_p)
#define | _mbg_swab_receiver_info(_p)
#define | GPS_MODEL_NAME_UNKNOWN "(unknown)"
#define | GPS_MODEL_NAME_GPS166 "GPS166"
#define | GPS_MODEL_NAME_GPS167 "GPS167"
#define | GPS_MODEL_NAME_GPS167SV "GPS167SV"
#define | GPS_MODEL_NAME_GPS167PC "GPS167PC"
#define | GPS_MODEL_NAME_GPS167PCI "GPS167PCI"
#define | GPS_MODEL_NAME_GPS163 "GPS163"
#define | GPS_MODEL_NAME_GPS168PCI "GPS168PCI"
#define | GPS_MODEL_NAME_GPS161 "GPS161"
#define | GPS_MODEL_NAME_GPS169PCI "GPS169PCI"
#define | GPS_MODEL_NAME_TCR167PCI "TCR167PCI"
#define | GPS_MODEL_NAME_GPS164 "GPS164"
#define | GPS_MODEL_NAME_GPS170PCI "GPS170PCI"
#define | GPS_MODEL_NAME_PZF511 "PZF511"
#define | GPS_MODEL_NAME_GPS170 "GPS170"
#define | GPS_MODEL_NAME_TCR511 "TCR511"
#define | GPS_MODEL_NAME_AM511 "AM511"
#define | GPS_MODEL_NAME_MSF511 "MSF511"
#define | GPS_MODEL_NAME_GRC170 "GRC170"
#define | GPS_MODEL_NAME_GPS170PEX "GPS170PEX"
#define | GPS_MODEL_NAME_GPS162 "GPS162"
#define | GPS_MODEL_NAME_PTP270PEX "PTP270PEX"
#define | GPS_MODEL_NAME_FRC511PEX "FRC511PEX"
#define | GPS_MODEL_NAME_GEN170 "GEN170"
#define | GPS_MODEL_NAME_TCR170PEX "TCR170PEX"
#define | GPS_MODEL_NAME_WWVB511 "WWVB511"
#define | GPS_MODEL_NAME_MGR170 "MGR170"
#define | DEFAULT_GPS_MODEL_NAMES
#define | _mbg_rcvr_is_plug_in(_p_ri)
#define | _mbg_rcvr_is_gps(_p_ri)
#define | _mbg_rcvr_is_mobile_gps(_p_ri) ( strstr( (_p_ri)->model_name, "MGR" ) )
#define | _mbg_rcvr_is_gps_plug_in(_p_ri)
#define | _mbg_rcvr_is_irig(_p_ri) ( strstr( (_p_ri)->model_name, "TCR" ) )
#define | _mbg_rcvr_is_irig_plug_in(_p_ri)
#define | _mbg_rcvr_is_dcf77_am(_p_ri) ( strstr( (_p_ri)->model_name, "AM" ) )
#define | _mbg_rcvr_is_dcf77_am_plug_in(_p_ri)
#define | _mbg_rcvr_is_dcf77_pzf(_p_ri) ( strstr( (_p_ri)->model_name, "PZF" ) )
#define | _mbg_rcvr_is_dcf77_pzf_plug_in(_p_ri)
#define | _mbg_rcvr_is_any_dcf77(_p_ri)
#define | _mbg_rcvr_is_any_dcf77_plug_in(_p_ri)
#define | _mbg_rcvr_is_msf(_p_ri) ( strstr( (_p_ri)->model_name, "MSF" ) )
#define | _mbg_rcvr_is_msf_plug_in(_p_ri)
#define | _mbg_rcvr_is_glonass(_p_ri) ( strstr( (_p_ri)->model_name, "GRC" ) )
#define | _mbg_rcvr_is_glonass_plug_in(_p_ri)
#define | _mbg_rcvr_is_wwvb(_p_ri) ( strstr( (_p_ri)->model_name, "WWVB" ) )
#define | _mbg_rcvr_is_wwvb_plug_in(_p_ri)
#define | DEFAULT_GPS_OSC_NAMES
#define | DEFAULT_GPS_OSC_QUALITY_IDX
#define | DEFAULT_GPS_FEATURE_NAMES
#define | GPS_HAS_PPS ( 1UL << GPS_FEAT_PPS )
#define | GPS_HAS_PPM ( 1UL << GPS_FEAT_PPM )
#define | GPS_HAS_SYNTH ( 1UL << GPS_FEAT_SYNTH )
#define | GPS_HAS_DCFMARKS ( 1UL << GPS_FEAT_DCFMARKS )
#define | GPS_HAS_IRIG_TX ( 1UL << GPS_FEAT_IRIG_TX )
#define | GPS_HAS_IRIG_RX ( 1UL << GPS_FEAT_IRIG_RX )
#define | GPS_HAS_LAN_IP4 ( 1UL << GPS_FEAT_LAN_IP4 )
#define | GPS_HAS_MULTI_REF ( 1UL << GPS_FEAT_MULTI_REF )
#define | GPS_HAS_RCV_TIMEOUT ( 1UL << GPS_FEAT_RCV_TIMEOUT )
#define | GPS_HAS_IGNORE_LOCK ( 1UL << GPS_FEAT_IGNORE_LOCK )
#define | GPS_HAS_5_MHZ ( 1UL << GPS_FEAT_5_MHZ )
#define | GPS_HAS_XMULTI_REF ( 1UL << GPS_FEAT_XMULTI_REF )
#define | GPS_HAS_OPT_SETTINGS ( 1UL << GPS_FEAT_OPT_SETTINGS )
#define | GPS_HAS_TIME_SCALE ( 1UL << GPS_FEAT_TIME_SCALE )
#define | GPS_HAS_IRIG_CTRL_BITS ( 1UL << GPS_FEAT_IRIG_CTRL_BITS )
#define | GPS_HAS_PTP ( 1UL << GPS_FEAT_PTP )
#define | GPS_HAS_NAV_ENGINE_SETTINGS ( 1UL << GPS_FEAT_NAV_ENGINE_SETTINGS )
#define | GPS_HAS_REF_OFFS GPS_HAS_IRIG_RX
#define | DEFAULT_GPS_FEATURES_C166
#define | GPS_OSC_CFG_SUPP 0x0001
#define | GPS_IRIG_FO_IN 0x0002
#define | GPS_HAS_FPGA 0x0004
#define | FPGA_NAME_LEN 31
#define | FPGA_NAME_SIZE ( FPGA_NAME_LEN + 1 )
#define | FPGA_INFO_SIZE 128
#define | DEFAULT_FPGA_START_SEG 0x60
#define | DEFAULT_FPGA_START_INFO
#define | _mbg_swab_t_gps(_p)
#define | _mbg_swab_tm_gps(_p)
#define | TM_UTC ( 1UL << TM_BIT_UTC )
#define | TM_LOCAL ( 1UL << TM_BIT_LOCAL )
#define | TM_DL_ANN ( 1UL << TM_BIT_DL_ANN )
#define | TM_DL_ENB ( 1UL << TM_BIT_DL_ENB )
#define | TM_LS_ANN ( 1UL << TM_BIT_LS_ANN )
#define | TM_LS_ENB ( 1UL << TM_BIT_LS_ENB )
#define | TM_LS_ANN_NEG ( 1UL << TM_BIT_LS_ANN_NEG )
#define | TM_EXT_SYNC ( 1UL << TM_BIT_EXT_SYNC )
#define | TM_HOLDOVER ( 1UL << TM_BIT_HOLDOVER )
#define | TM_ANT_SHORT ( 1UL << TM_BIT_ANT_SHORT )
#define | TM_NO_WARM ( 1UL << TM_BIT_NO_WARM )
#define | TM_ANT_DISCONN ( 1UL << TM_BIT_ANT_DISCONN )
#define | TM_SYN_FLAG ( 1UL << TM_BIT_SYN_FLAG )
#define | TM_NO_SYNC ( 1UL << TM_BIT_NO_SYNC )
#define | TM_NO_POS ( 1UL << TM_BIT_NO_POS )
#define | TM_SCALE_GPS ( 1UL << TM_BIT_SCALE_GPS )
#define | TM_SCALE_TAI ( 1UL << TM_BIT_SCALE_TAI )
#define | TM_MSK_TIME_VALID ( TM_UTC | TM_SCALE_GPS | TM_SCALE_TAI )
#define | _mbg_swab_ttm(_p)
#define | _mbg_swab_nano_time(_p)
#define | _nano_time_negative(_nt) ( ( (_nt)->secs < 0 ) || ( (_nt)->nano_secs < 0 ) )
#define | _mbg_swab_xyz(_p) _mbg_swab_doubles( _p, N_XYZ )
#define | _mbg_swab_lla(_p) _mbg_swab_doubles( _p, N_LLA )
#define | N_SYNTH_FREQ_DIGIT 4
#define | MAX_SYNTH_FREQ 1000
#define | MIN_SYNTH_RANGE 0
#define | MAX_SYNTH_RANGE 5
#define | N_SYNTH_RANGE ( MAX_SYNTH_RANGE - MIN_SYNTH_RANGE + 1 )
#define | N_SYNTH_PHASE_DIGIT 4
#define | MAX_SYNTH_PHASE 3600
#define | MAX_SYNTH_FREQ_EDIT 9999
#define | MAX_SYNTH_FREQ_VAL 10000000UL
#define | SYNTH_PHASE_SYNC_LIMIT 10000UL
#define | _synth_dp_pos_from_range(_r) ( ( ( N_SYNTH_RANGE - (_r) ) % ( N_SYNTH_FREQ_DIGIT - 1 ) ) + 1 )
#define | DEFAULT_FREQ_RANGES
#define | _mbg_swab_synth(_p)
#define | _mbg_swab_synth_state(_p) _nop_macro_fnc()
#define | SYNTH_FLAG_PHASE_IGNORED 0x01
#define | _mbg_swab_tzdl(_p)
#define | DL_AUTO_FLAG 0x8000
#define | DEFAULT_TZDL_AUTO_YEAR ( 2007 | DL_AUTO_FLAG )
#define | DEFAULt_TZDL_OFFS_DL 3600L
#define | DEFAULT_TZDL_TM_ON_OFF_NO_DST { DEFAULT_TZDL_AUTO_YEAR, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
#define | TZ_INFO_UTC "UTC (Universal Time, Coordinated)"
#define | DEFAULT_TZDL_NAMES_UTC { "UTC ", "UTC " }
#define | DEFAULT_TZDL_UTC
#define | DEFAULT_TZDL_TM_ON_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 2, 0, 0, 0L, 0L, 0 }
#define | DEFAULT_TZDL_TM_OFF_CET_CEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
#define | TZ_INFO_CET_CEST_EN "CET/CEST (Central Europe)"
#define | TZ_INFO_CET_CEST_DE "MEZ/MESZ (Mitteleuropa)"
#define | DEFAULT_TZDL_NAMES_CET_CEST_EN { "CET ", "CEST " }
#define | DEFAULT_TZDL_NAMES_CET_CEST_DE { "MEZ ", "MESZ " }
#define | DEFAULT_TZDL_OFFS_CET 3600L
#define | DEFAULT_TZDL_CET_CEST_EN
#define | DEFAULT_TZDL_CET_CEST_DE
#define | DEFAULT_TZDL_TM_ON_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
#define | DEFAULT_TZDL_TM_OFF_EET_EEST { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 4, 0, 0, 0L, 0L, 0 }
#define | TZ_INFO_EET_EEST_EN "EET/EEST (East Europe)"
#define | TZ_INFO_EET_EEST_DE "OEZ/OEST (Osteuropa)"
#define | DEFAULT_TZDL_NAMES_EET_EEST_EN { "EET ", "EEST " }
#define | DEFAULT_TZDL_NAMES_EET_EEST_DE { "OEZ ", "OESZ " }
#define | DEFAULT_TZDL_OFFS_EET 7200L
#define | DEFAULT_TZDL_EET_EEST_EN
#define | DEFAULT_TZDL_EET_EEST_DE
#define | _mbg_swab_ant_info(_p)
#define | EF_OFF 0x00
#define | EF_SERIAL_BOTH 0x03
#define | EF_PULSES_BOTH 0x03
#define | EF_FREQ_ALL 0x07
#define | EF_SYNTH 0x01
#define | _mbg_swab_enable_flags(_p)
#define | _mbg_swab_baud_rate(_p) _mbg_swab32( _p )
#define | _mbg_swab_com_parm(_p)
#define | MBG_BAUD_RATES
#define | MBG_BAUD_STRS
#define | MBG_PORT_HAS_300 ( 1UL << MBG_BAUD_RATE_300 )
#define | MBG_PORT_HAS_600 ( 1UL << MBG_BAUD_RATE_600 )
#define | MBG_PORT_HAS_1200 ( 1UL << MBG_BAUD_RATE_1200 )
#define | MBG_PORT_HAS_2400 ( 1UL << MBG_BAUD_RATE_2400 )
#define | MBG_PORT_HAS_4800 ( 1UL << MBG_BAUD_RATE_4800 )
#define | MBG_PORT_HAS_9600 ( 1UL << MBG_BAUD_RATE_9600 )
#define | MBG_PORT_HAS_19200 ( 1UL << MBG_BAUD_RATE_19200 )
#define | MBG_PORT_HAS_38400 ( 1UL << MBG_BAUD_RATE_38400 )
#define | MBG_FRAMING_STRS
#define | MBG_PORT_HAS_7N2 ( 1UL << MBG_FRAMING_7N2 )
#define | MBG_PORT_HAS_7E1 ( 1UL << MBG_FRAMING_7E1 )
#define | MBG_PORT_HAS_7E2 ( 1UL << MBG_FRAMING_7E2 )
#define | MBG_PORT_HAS_8N1 ( 1UL << MBG_FRAMING_8N1 )
#define | MBG_PORT_HAS_8N2 ( 1UL << MBG_FRAMING_8N2 )
#define | MBG_PORT_HAS_8E1 ( 1UL << MBG_FRAMING_8E1 )
#define | MBG_PORT_HAS_7O1 ( 1UL << MBG_FRAMING_7O1 )
#define | MBG_PORT_HAS_7O2 ( 1UL << MBG_FRAMING_7O2 )
#define | MBG_PORT_HAS_8O1 ( 1UL << MBG_FRAMING_8O1 )
#define | DEFAULT_GPS_BAUD_RATES_C166
#define | DEFAULT_GPS_FRAMINGS_C166
#define | DEFAULT_GPS_BAUD_RATES_GP2021
#define | DEFAULT_GPS_FRAMINGS_GP2021
#define | _mbg_swab_port_settings(_p)
#define | MBG_PS_MSK_BAUD_RATE_OVR_SW ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_SW )
#define | MBG_PS_MSK_BAUD_RATE_OVR_DEV ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_DEV )
#define | MBG_PS_MSK_BAUD_RATE ( 1UL << MBG_PS_BIT_BAUD_RATE )
#define | MBG_PS_MSK_FRAMING_OVR_SW ( 1UL << MBG_PS_BIT_FRAMING_OVR_SW )
#define | MBG_PS_MSK_FRAMING_OVR_DEV ( 1UL << MBG_PS_BIT_FRAMING_OVR_DEV )
#define | MBG_PS_MSK_FRAMING ( 1UL << MBG_PS_BIT_FRAMING )
#define | MBG_PS_MSK_HS_OVR_SW ( 1UL << MBG_PS_BIT_HS_OVR_SW )
#define | MBG_PS_MSK_HS ( 1UL << MBG_PS_BIT_HS )
#define | MBG_PS_MSK_STR_TYPE_OVR_SW ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_SW )
#define | MBG_PS_MSK_STR_TYPE_OVR_DEV ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_DEV )
#define | MBG_PS_MSK_STR_TYPE ( 1UL << MBG_PS_BIT_STR_TYPE )
#define | MBG_PS_MSK_STR_MODE_OVR_SW ( 1UL << MBG_PS_BIT_STR_MODE_OVR_SW )
#define | MBG_PS_MSK_STR_MODE_OVR_DEV ( 1UL << MBG_PS_BIT_STR_MODE_OVR_DEV )
#define | MBG_PS_MSK_STR_MODE ( 1UL << MBG_PS_BIT_STR_MODE )
#define | MBG_PS_MSK_FLAGS_OVR_SW ( 1UL << MBG_PS_BIT_FLAGS_OVR_SW )
#define | MBG_PS_MSK_FLAGS ( 1UL << MBG_PS_BIT_FLAGS )
#define | _mbg_swab_port_settings_idx(_p)
#define | _mbg_swab_port_info(_p)
#define | _mbg_swab_port_info_idx(_p)
#define | _mbg_swab_str_type_info(_p)
#define | _mbg_swab_str_type_info_idx(_p)
#define | DEFAULT_SHORT_MODE_NAMES
#define | ENG_MODE_NAME_STR_ON_REQ "on request '?' only"
#define | ENG_MODE_NAME_STR_PER_SEC "per second"
#define | ENG_MODE_NAME_STR_PER_MIN "per minute"
#define | ENG_MODE_NAME_STR_AUTO "automatically"
#define | ENG_MODE_NAME_STR_ON_REQ_SEC "sec after request"
#define | DEFAULT_ENG_MODE_NAMES
#define | MSK_STR_ON_REQ ( 1UL << STR_ON_REQ )
#define | MSK_STR_PER_SEC ( 1UL << STR_PER_SEC )
#define | MSK_STR_PER_MIN ( 1UL << STR_PER_MIN )
#define | MSK_STR_AUTO ( 1UL << STR_AUTO )
#define | MSK_STR_ON_REQ_SEC ( 1UL << STR_ON_REQ_SEC )
#define | DEFAULT_STR_MODES
#define | DEFAULT_STR_MODES_UCAP
#define | DEFAULT_N_COM 2
#define | N_COM DEFAULT_N_COM
#define | _mbg_swab_port_parm(_p)
#define | DEFAULT_ICODE_TX_NAMES
#define | DEFAULT_ICODE_TX_DESCRIPTIONS_ENG
#define | MSK_ICODE_TX_B002_B122 ( 1UL << ICODE_TX_B002_B122 )
#define | MSK_ICODE_TX_B003_B123 ( 1UL << ICODE_TX_B003_B123 )
#define | MSK_ICODE_TX_A002_A132 ( 1UL << ICODE_TX_A002_A132 )
#define | MSK_ICODE_TX_A003_A133 ( 1UL << ICODE_TX_A003_A133 )
#define | MSK_ICODE_TX_AFNOR ( 1UL << ICODE_TX_AFNOR )
#define | MSK_ICODE_TX_IEEE1344 ( 1UL << ICODE_TX_IEEE1344 )
#define | MSK_ICODE_TX_B220_1344 ( 1UL << ICODE_TX_B220_1344 )
#define | MSK_ICODE_TX_B222 ( 1UL << ICODE_TX_B222 )
#define | MSK_ICODE_TX_B223 ( 1UL << ICODE_TX_B223 )
#define | MSK_ICODE_TX_B006_B126 ( 1UL << ICODE_TX_B006_B126 )
#define | MSK_ICODE_TX_B007_B127 ( 1UL << ICODE_TX_B007_B127 )
#define | MSK_ICODE_TX_DC_MANCH
#define | MSK_ICODE_TX_1KHZ
#define | MSK_ICODE_TX_10KHZ
#define | MSK_ICODE_TX_100BPS
#define | MSK_ICODE_TX_1000BPS
#define | MSK_ICODE_TX_HAS_TFOM
#define | MSK_ICODE_TX_HAS_TZI
#define | SUPP_MSK_ICODE_TX
#define | DEFAULT_ICODE_RX_NAMES
#define | DEFAULT_ICODE_RX_DESCRIPTIONS_ENG
#define | MSK_ICODE_RX_B122_B123 ( 1UL << ICODE_RX_B122_B123 )
#define | MSK_ICODE_RX_A132_A133 ( 1UL << ICODE_RX_A132_A133 )
#define | MSK_ICODE_RX_B002_B003 ( 1UL << ICODE_RX_B002_B003 )
#define | MSK_ICODE_RX_A002_A003 ( 1UL << ICODE_RX_A002_A003 )
#define | MSK_ICODE_RX_AFNOR ( 1UL << ICODE_RX_AFNOR )
#define | MSK_ICODE_RX_AFNOR_DC ( 1UL << ICODE_RX_AFNOR_DC )
#define | MSK_ICODE_RX_IEEE1344 ( 1UL << ICODE_RX_IEEE1344 )
#define | MSK_ICODE_RX_IEEE1344_DC ( 1UL << ICODE_RX_IEEE1344_DC )
#define | MSK_ICODE_RX_B126_B127 ( 1UL << ICODE_RX_B126_B127 )
#define | MSK_ICODE_RX_B006_B007 ( 1UL << ICODE_RX_B006_B007 )
#define | MSK_ICODE_RX_DC
#define | MSK_ICODE_RX_1KHZ
#define | MSK_ICODE_RX_10KHZ
#define | MSK_ICODE_RX_100BPS
#define | MSK_ICODE_RX_1000BPS
#define | MSK_ICODE_RX_HAS_TFOM
#define | MSK_ICODE_RX_HAS_TZI
#define | SUPP_MSK_ICODE_RX
#define | _mbg_swab_irig_settings(_p)
#define | IFLAGS_DISABLE_TFOM 0x0001
#define | IFLAGS_TX_GEN_LOCAL_TIME 0x0002
#define | IFLAGS_MASK 0x0003
#define | _mbg_swab_irig_info(_p)
#define | MBG_DEBUG_STATUS_STRS
#define | MBG_IRIG_MSK_WARMED_UP ( 1UL << MBG_IRIG_BIT_WARMED_UP )
#define | MBG_IRIG_MSK_PPS_ACTIVE ( 1UL << MBG_IRIG_BIT_PPS_ACTIVE )
#define | MBG_IRIG_MSK_INV_CONFIG ( 1UL << MBG_IRIG_BIT_INV_CONFIG )
#define | MBG_IRIG_MSK_MSG_DECODED ( 1UL << MBG_IRIG_BIT_MSG_DECODED )
#define | MBG_IRIG_MSK_MSG_INCONSISTENT ( 1UL << MBG_IRIG_BIT_MSG_INCONSISTENT )
#define | MBG_IRIG_MSK_LOOP_LOCKED ( 1UL << MBG_IRIG_BIT_LOOP_LOCKED )
#define | MBG_IRIG_MSK_JITTER_TOO_LARGE ( 1UL << MBG_IRIG_BIT_JITTER_TOO_LARGE )
#define | MBG_IRIG_MSK_INV_REF_OFFS ( 1UL << MBG_IRIG_BIT_INV_REF_OFFS )
#define | MBG_SYS_MSK_INV_TIME ( 1UL << MBG_SYS_BIT_INV_TIME )
#define | MBG_SYS_MSK_TIME_SET_VIA_API ( 1UL << MBG_SYS_BIT_TIME_SET_VIA_API )
#define | MBG_SYS_MSK_INV_RTC ( 1UL << MBG_SYS_BIT_INV_RTC )
#define | MBG_SYS_MSK_CPU_PLL_FAILED ( 1UL << MBG_SYS_BIT_CPU_PLL_FAILED )
#define | _mbg_swab_mbg_ref_offs(_p) _mbg_swab16( (_p) )
#define | MBG_REF_OFFS_MAX ( ( 12L * 60 ) + 30 )
#define | MBG_REF_OFFS_NOT_CFGD 0x8000
#define | _mbg_swab_mbg_opt_settings(_p)
#define | _mbg_swab_mbg_opt_info(_p)
#define | MBG_OPT_FLAG_STR_UTC ( 1UL << MBG_OPT_BIT_STR_UTC )
#define | MBG_OPT_FLAG_EMU_SYNC ( 1UL << MBG_OPT_BIT_EMU_SYNC )
#define | MBG_TIME_SCALE_MSK_DEFAULT ( 1UL << MBG_TIME_SCALE_DEFAULT )
#define | MBG_TIME_SCALE_MSK_GPS ( 1UL << MBG_TIME_SCALE_GPS )
#define | MBG_TIME_SCALE_MSK_TAI ( 1UL << MBG_TIME_SCALE_TAI )
#define | MBG_TIME_SCALE_STRS
#define | GPS_TAI_OFFSET 19
#define | _mbg_swab_mbg_time_scale_settings(_p) _nop_macro_fnc()
#define | _mbg_swab_mbg_time_scale_info(_p)
#define | _mbg_swab_mbg_date(_p)
#define | _mbg_swab_mbg_time(_p) _nop_macro_fnc()
#define | _mbg_swab_mbg_date_time(_p)
#define | _mbg_swab_pout_time(_p)
#define | N_POUT_TIMES 3
#define | _mbg_swab_pout_settings(_p)
#define | MAX_POUT_PULSE_LEN 1000
#define | MAX_POUT_DCF_TIMOUT ( 48 * 60 )
#define | ENG_POUT_NAME_IDLE "Idle"
#define | ENG_POUT_NAME_TIMER "Timer"
#define | ENG_POUT_NAME_SINGLE_SHOT "Single Shot"
#define | ENG_POUT_NAME_CYCLIC_PULSE "Cyclic Pulse"
#define | ENG_POUT_NAME_PER_SEC "Pulse Per Second"
#define | ENG_POUT_NAME_PER_MIN "Pulse Per Min"
#define | ENG_POUT_NAME_PER_HOUR "Pulse Per Hour"
#define | ENG_POUT_NAME_DCF77 "DCF77 Marks"
#define | ENG_POUT_NAME_POS_OK "Position OK"
#define | ENG_POUT_NAME_TIME_SYNC "Time Sync"
#define | ENG_POUT_NAME_ALL_SYNC "All Sync"
#define | ENG_POUT_NAME_TIMECODE "DCLS Time Code"
#define | ENG_POUT_NAME_TIMESTR "COM Time String"
#define | ENG_POUT_NAME_10MHZ "10 MHz Frequency"
#define | DEFAULT_ENG_POUT_NAMES
#define | ENG_POUT_HINT_IDLE "Constant output level"
#define | ENG_POUT_HINT_TIMER "Switch based on configured on/off times"
#define | ENG_POUT_HINT_SINGLE_SHOT "Generate a single pulse of determined length"
#define | ENG_POUT_HINT_CYCLIC_PULSE "Generate cyclic pulses of determined length"
#define | ENG_POUT_HINT_PER_SEC "Generate pulse at beginning of new second"
#define | ENG_POUT_HINT_PER_MIN "Generate pulse at beginning of new minute"
#define | ENG_POUT_HINT_PER_HOUR "Generate pulse at beginning of new hour"
#define | ENG_POUT_HINT_DCF77 "DCF77 compatible time marks"
#define | ENG_POUT_HINT_POS_OK "Switch if receiver position has been verified"
#define | ENG_POUT_HINT_TIME_SYNC "Switch if time is synchronized"
#define | ENG_POUT_HINT_ALL_SYNC "Switch if full sync"
#define | ENG_POUT_HINT_TIMECODE "Duplicate IRIG time code signal"
#define | ENG_POUT_HINT_TIMESTR "Duplicate serial time string of specified port"
#define | ENG_POUT_HINT_10MHZ "10 MHz fixed output frequency"
#define | DEFAULT_ENG_POUT_HINTS
#define | MSK_POUT_IDLE ( 1UL << POUT_IDLE )
#define | MSK_POUT_TIMER ( 1UL << POUT_TIMER )
#define | MSK_POUT_SINGLE_SHOT ( 1UL << POUT_SINGLE_SHOT )
#define | MSK_POUT_CYCLIC_PULSE ( 1UL << POUT_CYCLIC_PULSE )
#define | MSK_POUT_PER_SEC ( 1UL << POUT_PER_SEC )
#define | MSK_POUT_PER_MIN ( 1UL << POUT_PER_MIN )
#define | MSK_POUT_PER_HOUR ( 1UL << POUT_PER_HOUR )
#define | MSK_POUT_DCF77 ( 1UL << POUT_DCF77 )
#define | MSK_POUT_POS_OK ( 1UL << POUT_POS_OK )
#define | MSK_POUT_TIME_SYNC ( 1UL << POUT_TIME_SYNC )
#define | MSK_POUT_ALL_SYNC ( 1UL << POUT_ALL_SYNC )
#define | MSK_POUT_TIMECODE ( 1UL << POUT_TIMECODE )
#define | MSK_POUT_TIMESTR ( 1UL << POUT_TIMESTR )
#define | MSK_POUT_10MHZ ( 1UL << POUT_10MHZ )
#define | POUT_INVERTED 0x0001
#define | _mbg_swab_pout_settings_idx(_p)
#define | _mbg_swab_pout_info(_p)
#define | MAX_POUT_TIMESTR_PORTS 8
#define | _mbg_swab_pout_info_idx(_p)
#define | DEFAULT_MULTI_REF_NAMES
#define | HAS_MULTI_REF_GPS ( 1UL << MULTI_REF_GPS )
#define | HAS_MULTI_REF_10MHZ ( 1UL << MULTI_REF_10MHZ )
#define | HAS_MULTI_REF_PPS ( 1UL << MULTI_REF_PPS )
#define | HAS_MULTI_REF_10MHZ_PPS ( 1UL << MULTI_REF_10MHZ_PPS )
#define | HAS_MULTI_REF_IRIG ( 1UL << MULTI_REF_IRIG )
#define | HAS_MULTI_REF_NTP ( 1UL << MULTI_REF_NTP )
#define | HAS_MULTI_REF_PTP ( 1UL << MULTI_REF_PTP )
#define | HAS_MULTI_REF_PTP_E1 ( 1UL << MULTI_REF_PTP_E1 )
#define | HAS_MULTI_REF_FREQ ( 1UL << MULTI_REF_FREQ )
#define | N_MULTI_REF_PRIO 4
#define | MSK_WRN_COLD_BOOT ( 1UL << WRN_COLD_BOOT )
#define | MSK_WRN_WARM_BOOT ( 1UL << WRN_WARM_BOOT )
#define | MSK_WRN_ANT_DISCONN ( 1UL << WRN_ANT_DISCONN )
#define | MSK_WRN_10MHZ_UNLOCK ( 1UL << WRN_10MHZ_UNLOCK )
#define | MSK_WRN_1PPS_UNLOCK ( 1UL << WRN_1PPS_UNLOCK )
#define | MSK_WRN_GPS_UNLOCK ( 1UL << WRN_GPS_UNLOCK )
#define | MSK_WRN_10MHZ_MISSING ( 1UL << WRN_10MHZ_MISSING )
#define | MSK_WRN_1PPS_MISSING ( 1UL << WRN_1PPS_MISSING )
#define | MSK_WRN_MODULE_MODE ( 1UL << WRN_MODULE_MODE )
#define | XMRS_MSK_NOT_SUPP ( 1UL << XMRS_BIT_NOT_SUPP )
#define | XMRS_MSK_NO_CONN ( 1UL << XMRS_BIT_NO_CONN )
#define | XMRS_MSK_NO_SIGNAL ( 1UL << XMRS_BIT_NO_SIGNAL )
#define | XMRS_MSK_IS_MASTER ( 1UL << XMRS_BIT_IS_MASTER )
#define | XMRS_MSK_IS_LOCKED ( 1UL << XMRS_BIT_IS_LOCKED )
#define | XMRS_MSK_IS_ACCURATE ( 1UL << XMRS_BIT_IS_ACCURATE )
#define | XMRS_MSK_NOT_SETTLED ( 1UL << XMRS_BIT_NOT_SETTLED )
#define | XMULTI_REF_STATUS_INVALID
#define | IGNORE_LOCK_FOR_ALL_PORTS 0x01
#define | _ignore_lock_for_all_ports() ( IGNORE_LOCK_FOR_ALL_PORTS )
#define | _ignore_lock_for_port(_n) ( 0x02 << (_n) )
#define | _is_ignore_lock_all_ports(_il) ( (_il) & IGNORE_LOCK_FOR_ALL_PORTS )
#define | _is_ignore_lock_for_port(_il, _n) ( (_il) & ( _ignore_lock_for_port(_n) | IGNORE_LOCK_FOR_ALL_PORTS ) )
#define | MSK_EPLD_STAT_TS1 0x0001
#define | MSK_EPLD_STAT_TS2 0x0002
#define | MSK_EPLD_STAT_TL_ERROR 0x0004
#define | MSK_EPLD_STAT_PSU1_OK 0x0008
#define | MSK_EPLD_STAT_PSU2_OK 0x0010
#define | MSK_EPLD_STAT_AUTO 0x0020
#define | MSK_EPLD_STAT_SEL 0x0040
#define | MSK_EPLD_STAT_ENA 0x0080
#define | MSK_EPLD_STAT_ACO 0x4000
#define | MSK_EPLD_STAT_WDOG_OK 0x8000
#define | MSK_EPLD_CNTL_SEL_REM 0x0800
#define | MSK_EPLD_CNTL_DIS_REM 0x1000
#define | MSK_EPLD_CNTL_REMOTE 0x2000
#define | MSK_EPLD_CNTL_SEL_SNMP 0x4000
#define | MSK_EPLD_CNTL_ENA_SNMP 0x8000
#define | REMOTE 0x10
#define | BOOT 0x20
#define | TRACK ( 0x01 )
#define | AUTO_166 ( 0x02 )
#define | WARM_166 ( 0x03 | BOOT )
#define | COLD_166 ( 0x04 | BOOT )
#define | AUTO_BC ( 0x05 | REMOTE )
#define | WARM_BC ( 0x06 | REMOTE | BOOT )
#define | COLD_BC ( 0x07 | REMOTE | BOOT )
#define | UPDA_166 ( 0x08 | BOOT )
#define | UPDA_BC ( 0x09 | REMOTE | BOOT )
#define | _mbg_swab_dac_val(_p) _mbg_swab16( _p );
#define | _mbg_swab_stat_info(_p)
#define | OSC_DAC_RANGE 4096UL
#define | OSC_DAC_BIAS ( OSC_DAC_RANGE / 2 )
#define | _mbg_swab_ident(_p)
#define | _mbg_swab_ant_cable_len(_p) _mbg_swab16( _p )
#define | _mbg_swab_ip4_addr(_p) _mbg_swab32( _p );
#define | _mbg_swab_ip4_settings(_p)
#define | _mbg_swab_lan_if_info(_p)
#define | IP4_MSK_DHCP ( 1UL << IP4_BIT_DHCP )
#define | IP4_MSK_LINK ( 1UL << IP4_BIT_LINK )
#define | PTP_NW_PROT_MSK_RESERVED ( 1UL << PTP_NW_PROT_BIT_RESERVED )
#define | PTP_NW_PROT_MSK_UDP_IPV4 ( 1UL << PTP_NW_PROT_BIT_UDP_IPV4 )
#define | PTP_NW_PROT_MSK_UDP_IPV6 ( 1UL << PTP_NW_PROT_BIT_UDP_IPV6 )
#define | PTP_NW_PROT_MSK_IEEE_802_3 ( 1UL << PTP_NW_PROT_BIT_IEEE_802_3 )
#define | PTP_NW_PROT_MSK_DEVICE_NET ( 1UL << PTP_NW_PROT_BIT_DEVICE_NET )
#define | PTP_NW_PROT_MSK_CONTROL_NET ( 1UL << PTP_NW_PROT_BIT_CONTROL_NET )
#define | PTP_NW_PROT_MSK_PROFINET ( 1UL << PTP_NW_PROT_BIT_PROFINET )
#define | DEFAULT_PTP_NW_PROT_MASK ( PTP_NW_PROT_MSK_UDP_IPV4 | PTP_NW_PROT_MSK_IEEE_802_3 )
#define | PTP_NW_PROT_STRS
#define | PTP_PORT_STATE_STRS
#define | PTP_DELAY_MECH_MSK_E2E ( 1UL << PTP_DELAY_MECH_BIT_E2E )
#define | PTP_DELAY_MECH_MSK_P2P ( 1UL << PTP_DELAY_MECH_BIT_P2P )
#define | DEFAULT_PTP_DELAY_MECH_MASK ( PTP_DELAY_MECH_MSK_E2E )
#define | PTP_DELAY_MECH_NAMES
#define | PTP_CLOCK_ACCURACY_RESERVED_OFFSET 0x20
#define | PTP_CLOCK_ACCURACY_STRS
#define | PTP_TIME_SOURCE_ATOMIC_CLOCK 0x10
#define | PTP_TIME_SOURCE_GPS 0x20
#define | PTP_TIME_SOURCE_TERRESTRIAL_RADIO 0x30
#define | PTP_TIME_SOURCE_PTP 0x40
#define | PTP_TIME_SOURCE_NTP 0x50
#define | PTP_TIME_SOURCE_HAND_SET 0x60
#define | PTP_TIME_SOURCE_OTHER 0x90
#define | PTP_TIME_SOURCE_INTERNAL_OSCILLATOR 0xA0
#define | PTP_TIME_SOURCE_TABLE
#define | _mbg_swab_ptp_state(_p)
#define | PTP_FLAG_MSK_SLAVE_ONLY ( 1UL << PTP_FLAG_BIT_SLAVE_ONLY )
#define | PTP_FLAG_MSK_IS_SLAVE ( 1UL << PTP_FLAG_BIT_IS_SLAVE )
#define | PTP_FLAG_MSK_TIMESCALE_IS_PTP ( 1UL << PTP_FLAG_BIT_TIMESCALE_IS_PTP )
#define | PTP_FLAG_MSK_LS_ANN ( 1UL << PTP_FLAG_BIT_LS_ANN )
#define | PTP_FLAG_MSK_LS_ANN_NEG ( 1UL << PTP_FLAG_BIT_LS_ANN_NEG )
#define | PTP_SYNC_INTERVAL_MIN -6
#define | PTP_SYNC_INTERVAL_MAX 6
#define | PTP_DELAY_REQ_INTERVAL_MIN -6
#define | PTP_DELAY_REQ_INTERVAL_MAX 6
#define | _mbg_swab_ptp_cfg_settings(_p)
#define | _mbg_swab_ptp_cfg_info(_p)
#define | PTP_CFG_MSK_TIME_SCALE_IS_PTP ( 1UL << PTP_CFG_BIT_TIME_SCALE_IS_PTP )
#define | PTP_CFG_MSK_V1_HW_COMPAT ( 1UL << PTP_CFG_BIT_V1_HW_COMPAT )
#define | _mbg_swab_utc_parm(_p)
#define | GPS_PLATFORM_STRS

Typedefs

typedef uint16_t | SVNO
typedef uint16_t | HEALTH
typedef uint16_t | CFG
typedef uint16_t | IOD
typedef uint16_t | CSUM
typedef uint16_t | GPS_CMD
typedef uint16_t | BVAR_STAT
typedef uint32_t | TM_STATUS_EXT
typedef double | XYZ [N_XYZ]
typedef double | LLA [N_LLA]
typedef char | TZ_NAME [6]
typedef int32_t | BAUD_RATE
typedef uint32_t | MBG_DEBUG_STATUS
typedef int16_t | MBG_REF_OFFS
typedef uint16_t | MULTI_REF_STATUS
typedef uint16_t | ROM_CSUM
typedef uint16_t | RCV_TIMEOUT
typedef uint16_t | IGNORE_LOCK
typedef int16_t | DAC_VAL
typedef uint16_t | ANT_CABLE_LEN
typedef uint32_t | IP4_ADDR

Enumerations

enum {
BVAR_BIT_CFGH_INVALID, BVAR_BIT_ALM_NOT_COMPLETE, BVAR_BIT_UTC_INVALID, BVAR_BIT_IONO_INVALID,
BVAR_BIT_RCVR_POS_INVALID, N_BVAR_BIT
}
enum {
GPS_MODEL_UNKNOWN, GPS_MODEL_GPS166, GPS_MODEL_GPS167, GPS_MODEL_GPS167SV,
GPS_MODEL_GPS167PC, GPS_MODEL_GPS167PCI, GPS_MODEL_GPS163, GPS_MODEL_GPS168PCI,
GPS_MODEL_GPS161, GPS_MODEL_GPS169PCI, GPS_MODEL_TCR167PCI, GPS_MODEL_GPS164,
GPS_MODEL_GPS170PCI, GPS_MODEL_PZF511, GPS_MODEL_GPS170, GPS_MODEL_TCR511,
GPS_MODEL_AM511, GPS_MODEL_MSF511, GPS_MODEL_GRC170, GPS_MODEL_GPS170PEX,
GPS_MODEL_GPS162, GPS_MODEL_PTP270PEX, GPS_MODEL_FRC511PEX, GPS_MODEL_GEN170,
GPS_MODEL_TCR170PEX, GPS_MODEL_WWVB511, GPS_MODEL_MGR170, N_GPS_MODEL
}
enum {
GPS_OSC_UNKNOWN, GPS_OSC_TCXO_LQ, GPS_OSC_TCXO_HQ, GPS_OSC_OCXO_LQ,
GPS_OSC_OCXO_MQ, GPS_OSC_OCXO_HQ, GPS_OSC_OCXO_XHQ, GPS_OSC_RUBIDIUM,
GPS_OSC_TCXO_MQ, GPS_OSC_OCXO_DHQ, N_GPS_OSC
}
enum {
GPS_FEAT_PPS, GPS_FEAT_PPM, GPS_FEAT_SYNTH, GPS_FEAT_DCFMARKS,
GPS_FEAT_IRIG_TX, GPS_FEAT_IRIG_RX, GPS_FEAT_LAN_IP4, GPS_FEAT_MULTI_REF,
GPS_FEAT_RCV_TIMEOUT, GPS_FEAT_IGNORE_LOCK, GPS_FEAT_5_MHZ, GPS_FEAT_XMULTI_REF,
GPS_FEAT_OPT_SETTINGS, GPS_FEAT_TIME_SCALE, GPS_FEAT_IRIG_CTRL_BITS, GPS_FEAT_PTP,
GPS_FEAT_NAV_ENGINE_SETTINGS, N_GPS_FEATURE
}
enum {
TM_BIT_UTC, TM_BIT_LOCAL, TM_BIT_DL_ANN, TM_BIT_DL_ENB,
TM_BIT_LS_ANN, TM_BIT_LS_ENB, TM_BIT_LS_ANN_NEG, TM_BIT_EXT_SYNC = 8,
TM_BIT_HOLDOVER, TM_BIT_ANT_SHORT, TM_BIT_NO_WARM, TM_BIT_ANT_DISCONN,
TM_BIT_SYN_FLAG, TM_BIT_NO_SYNC, TM_BIT_NO_POS
}
enum | { TM_BIT_SCALE_GPS = 16, TM_BIT_SCALE_TAI }
enum | { XP, YP, ZP, N_XYZ }
enum | { LAT, LON, ALT, N_LLA }
enum {
SYNTH_DISABLED, SYNTH_OFF, SYNTH_FREE, SYNTH_DRIFTING,
SYNTH_SYNC, N_SYNTH_STATE
}
enum | { ANT_INVALID, ANT_DISCONN, ANT_RECONN }
enum | { HS_NONE, HS_XONXOFF, HS_RTSCTS, N_COM_HS }
enum | { F_DBITS, F_PRTY, F_STBITS }
enum {
MBG_BAUD_RATE_300, MBG_BAUD_RATE_600, MBG_BAUD_RATE_1200, MBG_BAUD_RATE_2400,
MBG_BAUD_RATE_4800, MBG_BAUD_RATE_9600, MBG_BAUD_RATE_19200, MBG_BAUD_RATE_38400,
N_MBG_BAUD_RATES
}
enum {
MBG_FRAMING_7N2, MBG_FRAMING_7E1, MBG_FRAMING_7E2, MBG_FRAMING_8N1,
MBG_FRAMING_8N2, MBG_FRAMING_8E1, MBG_FRAMING_7O1, MBG_FRAMING_7O2,
MBG_FRAMING_8O1, N_MBG_FRAMINGS
}
enum {
MBG_PS_BIT_BAUD_RATE_OVR_SW, MBG_PS_BIT_BAUD_RATE_OVR_DEV, MBG_PS_BIT_BAUD_RATE, MBG_PS_BIT_FRAMING_OVR_SW,
MBG_PS_BIT_FRAMING_OVR_DEV, MBG_PS_BIT_FRAMING, MBG_PS_BIT_HS_OVR_SW, MBG_PS_BIT_HS,
MBG_PS_BIT_STR_TYPE_OVR_SW, MBG_PS_BIT_STR_TYPE_OVR_DEV, MBG_PS_BIT_STR_TYPE, MBG_PS_BIT_STR_MODE_OVR_SW,
MBG_PS_BIT_STR_MODE_OVR_DEV, MBG_PS_BIT_STR_MODE, MBG_PS_BIT_FLAGS_OVR_SW, MBG_PS_BIT_FLAGS,
N_MBG_PS_BIT
}
enum {
STR_ON_REQ, STR_PER_SEC, STR_PER_MIN, STR_AUTO,
STR_ON_REQ_SEC, N_STR_MODE
}
enum | { N_STR_MODE_0 = STR_AUTO, STR_UCAP = N_STR_MODE_0, STR_UCAP_REQ, N_STR_MODE_1 }
enum {
ICODE_TX_B002_B122, ICODE_TX_B003_B123, ICODE_TX_A002_A132, ICODE_TX_A003_A133,
ICODE_TX_AFNOR, ICODE_TX_IEEE1344, ICODE_TX_B220_1344, ICODE_TX_B222,
ICODE_TX_B223, ICODE_TX_B006_B126, ICODE_TX_B007_B127, N_ICODE_TX
}
enum {
ICODE_RX_B122_B123, ICODE_RX_A132_A133, ICODE_RX_B002_B003, ICODE_RX_A002_A003,
ICODE_RX_AFNOR, ICODE_RX_AFNOR_DC, ICODE_RX_IEEE1344, ICODE_RX_IEEE1344_DC,
ICODE_RX_B126_B127, ICODE_RX_B006_B007, N_ICODE_RX
}
enum {
MBG_IRIG_BIT_WARMED_UP, MBG_IRIG_BIT_PPS_ACTIVE, MBG_IRIG_BIT_INV_CONFIG, MBG_IRIG_BIT_MSG_DECODED,
MBG_IRIG_BIT_MSG_INCONSISTENT, MBG_IRIG_BIT_LOOP_LOCKED, MBG_IRIG_BIT_JITTER_TOO_LARGE, MBG_IRIG_BIT_INV_REF_OFFS,
MBG_SYS_BIT_INV_TIME, MBG_SYS_BIT_TIME_SET_VIA_API, MBG_SYS_BIT_INV_RTC, MBG_SYS_BIT_CPU_PLL_FAILED,
N_MBG_DEBUG_BIT
}
enum | { MBG_OPT_BIT_STR_UTC, MBG_OPT_BIT_EMU_SYNC, N_MBG_OPT_BIT }
enum | { MBG_TIME_SCALE_DEFAULT, MBG_TIME_SCALE_GPS, MBG_TIME_SCALE_TAI, N_MBG_TIME_SCALE }
enum {
POUT_IDLE, POUT_TIMER, POUT_SINGLE_SHOT, POUT_CYCLIC_PULSE,
POUT_PER_SEC, POUT_PER_MIN, POUT_PER_HOUR, POUT_DCF77,
POUT_POS_OK, POUT_TIME_SYNC, POUT_ALL_SYNC, POUT_TIMECODE,
POUT_TIMESTR, POUT_10MHZ, N_POUT_MODES
}
enum {
MULTI_REF_NONE = -1, MULTI_REF_GPS = 0, MULTI_REF_10MHZ, MULTI_REF_PPS,
MULTI_REF_10MHZ_PPS, MULTI_REF_IRIG, MULTI_REF_NTP, MULTI_REF_PTP,
MULTI_REF_PTP_E1, MULTI_REF_FREQ, N_MULTI_REF
}
enum {
WRN_MODULE_MODE, WRN_COLD_BOOT, WRN_WARM_BOOT, WRN_ANT_DISCONN,
WRN_10MHZ_UNLOCK, WRN_1PPS_UNLOCK, WRN_GPS_UNLOCK, WRN_10MHZ_MISSING,
WRN_1PPS_MISSING, N_MULTI_REF_STATUS_BITS
}
enum {
XMRS_BIT_NOT_SUPP, XMRS_BIT_NO_CONN, XMRS_BIT_NO_SIGNAL, XMRS_BIT_IS_MASTER,
XMRS_BIT_IS_LOCKED, XMRS_BIT_IS_ACCURATE, XMRS_BIT_NOT_SETTLED, N_XMRS_BITS
}
enum | { SCU_CLK_INFO_GPS, SCU_CLK_INFO_DCF_PZF, SCU_CLK_INFO_DCF_AM, SCU_CLK_INFO_TCR }
enum | { LAN_IF_TYPE_XPORT, LAN_IF_TYPE_PTP, N_LAN_IF_TYPE }
enum | { IP4_BIT_DHCP, IP4_BIT_LINK, N_IP4_BIT }
enum {
PTP_NW_PROT_BIT_RESERVED, PTP_NW_PROT_BIT_UDP_IPV4, PTP_NW_PROT_BIT_UDP_IPV6, PTP_NW_PROT_BIT_IEEE_802_3,
PTP_NW_PROT_BIT_DEVICE_NET, PTP_NW_PROT_BIT_CONTROL_NET, PTP_NW_PROT_BIT_PROFINET, N_PTP_NW_PROT
}
enum {
PTP_PORT_STATE_UNINITIALIZED, PTP_PORT_STATE_INITIALIZING, PTP_PORT_STATE_FAULTY, PTP_PORT_STATE_DISABLED,
PTP_PORT_STATE_LISTENING, PTP_PORT_STATE_PRE_MASTER, PTP_PORT_STATE_MASTER, PTP_PORT_STATE_PASSIVE,
PTP_PORT_STATE_UNCALIBRATED, PTP_PORT_STATE_SLAVE, N_PTP_PORT_STATE
}
enum | { PTP_DELAY_MECH_BIT_E2E, PTP_DELAY_MECH_BIT_P2P, N_PTP_DELAY_MECH }
enum {
PTP_CLOCK_ACCURACY_25ns = PTP_CLOCK_ACCURACY_RESERVED_OFFSET, PTP_CLOCK_ACCURACY_100ns, PTP_CLOCK_ACCURACY_250ns, PTP_CLOCK_ACCURACY_1us,
PTP_CLOCK_ACCURACY_2_5us, PTP_CLOCK_ACCURACY_10us, PTP_CLOCK_ACCURACY_25us, PTP_CLOCK_ACCURACY_100us,
PTP_CLOCK_ACCURACY_250us, PTP_CLOCK_ACCURACY_1ms, PTP_CLOCK_ACCURACY_2_5ms, PTP_CLOCK_ACCURACY_10ms,
PTP_CLOCK_ACCURACY_25ms, PTP_CLOCK_ACCURACY_100ms, PTP_CLOCK_ACCURACY_250ms, PTP_CLOCK_ACCURACY_1s,
PTP_CLOCK_ACCURACY_10s, PTP_CLOCK_ACCURACY_MORE_10s, PTP_CLOCK_ACCURACY_RESERVED_1, PTP_CLOCK_ACCURACY_RESERVED_2,
PTP_CLOCK_ACCURACY_RESERVED_3, PTP_CLOCK_ACCURACY_RESERVED_4, N_PTP_CLOCK_ACCURACY
}
enum {
PTP_FLAG_BIT_SLAVE_ONLY, PTP_FLAG_BIT_IS_SLAVE, PTP_FLAG_BIT_TIMESCALE_IS_PTP, PTP_FLAG_BIT_LS_ANN,
PTP_FLAG_BIT_LS_ANN_NEG, N_PTP_FLAG_BIT
}
enum | { PTP_CFG_BIT_TIME_SCALE_IS_PTP, PTP_CFG_BIT_V1_HW_COMPAT, N_PTP_CFG_BIT }
enum {
GPS_PLATFORM_PORTABLE, GPS_PLATFORM_FIXED, GPS_PLATFORM_STATIONARY, GPS_PLATFORM_PEDESTRIAN,
GPS_PLATFORM_AUTOMOTIVE, GPS_PLATFORM_SEA, GPS_PLATFORM_AIRBORNE_1G, GPS_PLATFORM_AIRBORNE_2G,
GPS_PLATFORM_AIRBORNE_4G, N_GPS_PLATFORMS
}
enum | { TIME_MODE_DISABLED, TIME_MODE_SURVEY_IN, TIME_MODE_FIXED }

Define Documentation

#define _ignore_lock_for_all_ports ( ) ( IGNORE_LOCK_FOR_ALL_PORTS )

Definition at line 3076 of file gpsdefs.h.

#define _ignore_lock_for_port ( _n ) ( 0x02 << (_n) )

Definition at line 3078 of file gpsdefs.h.

#define _is_ignore_lock_all_ports ( _il ) ( (_il) & IGNORE_LOCK_FOR_ALL_PORTS )

Definition at line 3081 of file gpsdefs.h.

#define _is_ignore_lock_for_port | ( | _il,
 |  | _n | ) | ( (_il) & ( _ignore_lock_for_port(_n) | IGNORE_LOCK_FOR_ALL_PORTS ) )

Definition at line 3084 of file gpsdefs.h.

#define _mbg_rcvr_is_any_dcf77 ( _p_ri )

Value:

( _mbg_rcvr_is_dcf77_am( _p_ri ) ||     \
    _mbg_rcvr_is_dcf77_pzf( _p_ri ) )

Definition at line 603 of file gpsdefs.h.

#define _mbg_rcvr_is_any_dcf77_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_any_dcf77( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 607 of file gpsdefs.h.

#define _mbg_rcvr_is_dcf77_am ( _p_ri ) ( strstr( (_p_ri)->model_name, "AM" ) )

Definition at line 589 of file gpsdefs.h.

#define _mbg_rcvr_is_dcf77_am_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_dcf77_am( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 592 of file gpsdefs.h.

#define _mbg_rcvr_is_dcf77_pzf ( _p_ri ) ( strstr( (_p_ri)->model_name, "PZF" ) )

Definition at line 596 of file gpsdefs.h.

#define _mbg_rcvr_is_dcf77_pzf_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_dcf77_pzf( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 599 of file gpsdefs.h.

#define _mbg_rcvr_is_glonass ( _p_ri ) ( strstr( (_p_ri)->model_name, "GRC" ) )

Definition at line 618 of file gpsdefs.h.

#define _mbg_rcvr_is_glonass_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_glonass( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 621 of file gpsdefs.h.

#define _mbg_rcvr_is_gps ( _p_ri )

Value:

( strstr( (_p_ri)->model_name, "GPS" ) || \
  ( strstr( (_p_ri)->model_name, "MGR" ) )

Definition at line 571 of file gpsdefs.h.

#define _mbg_rcvr_is_gps_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_gps( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 578 of file gpsdefs.h.

#define _mbg_rcvr_is_irig ( _p_ri ) ( strstr( (_p_ri)->model_name, "TCR" ) )

Definition at line 582 of file gpsdefs.h.

#define _mbg_rcvr_is_irig_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_irig( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 585 of file gpsdefs.h.

#define _mbg_rcvr_is_mobile_gps ( _p_ri ) ( strstr( (_p_ri)->model_name, "MGR" ) )

Definition at line 575 of file gpsdefs.h.

#define _mbg_rcvr_is_msf ( _p_ri ) ( strstr( (_p_ri)->model_name, "MSF" ) )

Definition at line 611 of file gpsdefs.h.

#define _mbg_rcvr_is_msf_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_msf( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 614 of file gpsdefs.h.

#define _mbg_rcvr_is_plug_in ( _p_ri )

Value:

( strstr( (_p_ri)->model_name, "PC" ) || \
  ( strstr( (_p_ri)->model_name, "PEX" ) )

Definition at line 567 of file gpsdefs.h.

#define _mbg_rcvr_is_wwvb ( _p_ri ) ( strstr( (_p_ri)->model_name, "WWVB" ) )

Definition at line 625 of file gpsdefs.h.

#define _mbg_rcvr_is_wwvb_plug_in ( _p_ri )

Value:

( _mbg_rcvr_is_wwvb( _p_ri ) &&          \
    _mbg_rcvr_is_plug_in( _p_ri ) )

Definition at line 628 of file gpsdefs.h.

#define _mbg_swab_ant_cable_len ( _p ) _mbg_swab16( _p )

Definition at line 3224 of file gpsdefs.h.

#define _mbg_swab_ant_info ( _p )

Value:

{                                         \
  _mbg_swab16( &(_p)->status );           \
  _mbg_swab_tm_gps( &(_p)->tm_disconn );  \
  _mbg_swab_tm_gps( &(_p)->tm_reconn );   \
  _mbg_swab32( &(_p)->delta_t );          \
}

Definition at line 1318 of file gpsdefs.h.

#define _mbg_swab_baud_rate ( _p ) _mbg_swab32( _p )

Definition at line 1395 of file gpsdefs.h.

#define _mbg_swab_bvar_stat ( _p ) _mbg_swab16( (_p) )

Definition at line 362 of file gpsdefs.h.

#define _mbg_swab_com_parm ( _p )

Value:

{                                           \
  _mbg_swab_baud_rate( &(_p)->baud_rate );  \
  _mbg_swab16( &(_p)->handshake );          \
}

Definition at line 1397 of file gpsdefs.h.

#define _mbg_swab_csum ( _p ) _mbg_swab16( _p )

Definition at line 330 of file gpsdefs.h.

#define _mbg_swab_dac_val ( _p ) _mbg_swab16( _p );

Definition at line 3171 of file gpsdefs.h.

#define _mbg_swab_enable_flags ( _p )

Value:

{                                     \
  _mbg_swab16( &(_p)->serial );       \
  _mbg_swab16( &(_p)->pulses );       \
  _mbg_swab16( &(_p)->freq );         \
  _mbg_swab16( &(_p)->synth );        \
}

Definition at line 1362 of file gpsdefs.h.

#define _mbg_swab_fixed_freq_info ( _p )

Value:

{                                        \
  _mbg_swab16( &(_p)->khz_val );         \
  _mbg_swab16( &(_p)->range );           \
}

Definition at line 398 of file gpsdefs.h.

#define _mbg_swab_gps_cmd ( _p ) _mbg_swab16( _p )

Definition at line 340 of file gpsdefs.h.

#define _mbg_swab_ident ( _p )

Value:

{                                 \
  int i;                          \
  for ( i = 0; i < 4; i++ )       \
    _mbg_swab32( &(_p)->lw[i] );  \
}

Definition at line 3211 of file gpsdefs.h.

#define _mbg_swab_ip4_addr ( _p ) _mbg_swab32( _p );

Definition at line 3239 of file gpsdefs.h.

#define _mbg_swab_ip4_settings ( _p )

Value:

{                                          \
  _mbg_swab_ip4_addr( &(_p)->ip_addr );    \
  _mbg_swab_ip4_addr( &(_p)->netmask );    \
  _mbg_swab_ip4_addr( &(_p)->broad_addr ); \
  _mbg_swab_ip4_addr( &(_p)->gateway );    \
  _mbg_swab32( &(_p)->flags );             \
}

Definition at line 3253 of file gpsdefs.h.

#define _mbg_swab_irig_info ( _p )

Value:

{                                              \
  _mbg_swab_irig_settings( &(_p)->settings );  \
  _mbg_swab32( &(_p)->supp_codes );            \
}

Definition at line 2275 of file gpsdefs.h.

#define _mbg_swab_irig_settings ( _p )

Value:

{                                      \
  _mbg_swab16( &(_p)->icode );         \
  _mbg_swab16( &(_p)->flags );         \
}

Definition at line 2245 of file gpsdefs.h.

#define _mbg_swab_lan_if_info ( _p )

Value:

{                                    \
  _mbg_swab16( &(_p)->type );        \
  _mbg_swab16( &(_p)->ver_code );    \
  _mbg_swab32( &(_p)->rsvd );        \
  _mbg_swab32( &(_p)->flags );       \
}

Definition at line 3304 of file gpsdefs.h.

#define _mbg_swab_lla ( _p ) _mbg_swab_doubles( _p, N_LLA )

Definition at line 1031 of file gpsdefs.h.

#define _mbg_swab_mbg_date ( _p )

Value:

{                                \
  _mbg_swab16( &(_p)->year );    \
}

Definition at line 2485 of file gpsdefs.h.

#define _mbg_swab_mbg_date_time ( _p )

Value:

{                                     \
  _mbg_swab_mbg_date( &(_p)->d );     \
  _mbg_swab_mbg_time( &(_p)->t );     \
}

Definition at line 2518 of file gpsdefs.h.

#define _mbg_swab_mbg_opt_info ( _p )

Value:

{                                                 \
  _mbg_swab_mbg_opt_settings( &(_p)->settings );  \
  _mbg_swab32( &(_p)->supp_flags );               \
}

Definition at line 2376 of file gpsdefs.h.

#define _mbg_swab_mbg_opt_settings ( _p )

Value:

{                                         \
  _mbg_swab32( &(_p)->flags );            \
}

Definition at line 2364 of file gpsdefs.h.

#define _mbg_swab_mbg_ref_offs ( _p ) _mbg_swab16( (_p) )

Definition at line 2346 of file gpsdefs.h.

#define _mbg_swab_mbg_time ( _p ) _nop_macro_fnc()

Definition at line 2502 of file gpsdefs.h.

#define _mbg_swab_nano_time ( _p )

Value:

{                                   \
  _mbg_swab32( &(_p)->nano_secs );  \
  _mbg_swab32( &(_p)->secs );       \
}

Definition at line 990 of file gpsdefs.h.

#define _mbg_swab_port_info ( _p )

Value:

{                                                   \
  _mbg_swab_port_settings( &(_p)->port_settings );  \
  _mbg_swab32( &(_p)->supp_baud_rates );            \
  _mbg_swab32( &(_p)->supp_framings );              \
  _mbg_swab32( &(_p)->supp_str_types );             \
  _mbg_swab32( &(_p)->reserved );                   \
  _mbg_swab32( &(_p)->flags );                      \
}

Definition at line 1678 of file gpsdefs.h.

#define _mbg_swab_port_info_idx ( _p )

Value:

{                                           \
  _mbg_swab16( &(_p)->idx );                \
  _mbg_swab_port_info( &(_p)->port_info );  \
}

Definition at line 1699 of file gpsdefs.h.

#define _mbg_swab_port_parm ( _p )

Value:

{                                         \
  int i;                                  \
  for ( i = 0; i < DEFAULT_N_COM; i++ )   \
  {                                       \
    _mbg_swab_com_parm( &(_p)->com[i] );  \
    /* no need to swap mode byte */       \
  }                                       \
}

Definition at line 1847 of file gpsdefs.h.

#define _mbg_swab_port_settings ( _p )

Value:

{                                      \
  _mbg_swab_com_parm( &(_p)->parm );   \
  _mbg_swab32( &(_p)->flags );         \
}

Definition at line 1592 of file gpsdefs.h.

#define _mbg_swab_port_settings_idx ( _p )

Value:

{                                                   \
  _mbg_swab16( &(_p)->idx );                        \
  _mbg_swab_port_settings( &(_p)->port_settings );  \
}

Definition at line 1654 of file gpsdefs.h.

#define _mbg_swab_pout_info ( _p )

Value:

{                                                   \
  _mbg_swab_pout_settings( &(_p)->pout_settings );  \
  _mbg_swab32( &(_p)->supp_modes );                 \
  _mbg_swab16( &(_p)->reserved_1 );                 \
  _mbg_swab32( &(_p)->flags );                      \
}

Definition at line 2738 of file gpsdefs.h.

#define _mbg_swab_pout_info_idx ( _p )

Value:

{                                           \
  _mbg_swab16( &(_p)->idx );                \
  _mbg_swab_pout_info( &(_p)->pout_info );  \
}

Definition at line 2760 of file gpsdefs.h.

#define _mbg_swab_pout_settings ( _p )

Value:

{                                         \
  int i;                                  \
  _mbg_swab16( &(_p)->mode );             \
  _mbg_swab16( &(_p)->pulse_len );        \
  _mbg_swab32( &(_p)->timeout );          \
  _mbg_swab16( &(_p)->flags );            \
                                          \
  for ( i = 0; i < N_POUT_TIMES; i++ )    \
    _mbg_swab_pout_time( &(_p)->tm[i] );  \
}

Definition at line 2560 of file gpsdefs.h.

#define _mbg_swab_pout_settings_idx ( _p )

Value:

{                                                   \
  _mbg_swab16( &(_p)->idx );                        \
  _mbg_swab_pout_settings( &(_p)->pout_settings );  \
}

Definition at line 2714 of file gpsdefs.h.

#define _mbg_swab_pout_time ( _p )

Value:

{                                        \
  _mbg_swab_mbg_date_time( &(_p)->on );  \
  _mbg_swab_mbg_date_time( &(_p)->off ); \
}

Definition at line 2535 of file gpsdefs.h.

#define _mbg_swab_ptp_cfg_info ( _p )

Value:

{                                                   \
  _mbg_swab_ptp_cfg_settings( &(_p)->settings );    \
  _mbg_swab16( &(_p)->sync_interval_min );          \
  _mbg_swab16( &(_p)->sync_interval_max );          \
  _mbg_swab16( &(_p)->announce_interval_min );      \
  _mbg_swab16( &(_p)->announce_interval_max );      \
  _mbg_swab16( &(_p)->delay_request_interval_min ); \
  _mbg_swab16( &(_p)->delay_request_interval_max ); \
  _mbg_swab32( &(_p)->supported_flags );            \
  _mbg_swab32( &(_p)->supported_profiles );         \
  _mbg_swab32( &(_p)->supported_delay_mechanisms ); \
}

Definition at line 3667 of file gpsdefs.h.

#define _mbg_swab_ptp_cfg_settings ( _p )

Value:

{                                               \
  _mbg_swab16( &(_p)->network_protocol );       \
  _mbg_swab16( &(_p)->sync_interval );          \
  _mbg_swab16( &(_p)->announce_interval );      \
  _mbg_swab16( &(_p)->delay_request_interval ); \
  _mbg_swab32( &(_p)->upper_bound );            \
  _mbg_swab32( &(_p)->lower_bound );            \
  _mbg_swab32( &(_p)->reserved_1 );             \
  _mbg_swab32( &(_p)->flags );                  \
}

Definition at line 3631 of file gpsdefs.h.

#define _mbg_swab_ptp_state ( _p )

Value:

{                                                         \
  _mbg_swab16( &(_p)->network_protocol );                 \
  _mbg_swab32( &(_p)->flags );                            \
  _mbg_swab_nano_time( &(_p)->offset );                   \
  _mbg_swab_nano_time( &(_p)->path_delay );               \
  _mbg_swab_nano_time( &(_p)->mean_path_delay );          \
  _mbg_swab_nano_time( &(_p)->delay_asymmetry );          \
  _mbg_swab16( &(_p)->clock_offset_scaled_log_variance ); \
  _mbg_swab32( &(_p)->num_clients );                      \
  _mbg_swab32( &(_p)->num_masters );                      \
  _mbg_swab32( &(_p)->utc_offset );                       \
  _mbg_swab_dac_val( &(_p)->osc_dac_cal );                \
}

Definition at line 3560 of file gpsdefs.h.

#define _mbg_swab_receiver_info ( _p )

Value:

{                                                  \
  _mbg_swab16( &(_p)->model_code );                \
  _mbg_swab_sw_rev( &(_p)->sw_rev );               \
  _mbg_swab16( &(_p)->ticks_per_sec );             \
  _mbg_swab32( &(_p)->features );                  \
  _mbg_swab_fixed_freq_info( &(_p)->fixed_freq );  \
  _mbg_swab16( &(_p)->flags );                     \
}

Definition at line 437 of file gpsdefs.h.

#define _mbg_swab_stat_info ( _p )

Value:

{                                      \
  _mbg_swab16( &(_p)->mode );          \
  _mbg_swab16( &(_p)->good_svs );      \
  _mbg_swab16( &(_p)->svs_in_view );   \
  _mbg_swab_dac_val( &(_p)->dac_val ); \
  _mbg_swab_dac_val( &(_p)->dac_cal ); \
}

Definition at line 3185 of file gpsdefs.h.

#define _mbg_swab_str_type_info ( _p )

Value:

{                                      \
  _mbg_swab32( &(_p)->supp_modes );    \
  _mbg_swab16( &(_p)->flags );         \
}

Definition at line 1719 of file gpsdefs.h.

#define _mbg_swab_str_type_info_idx ( _p )

Value:

{                                                   \
  _mbg_swab16( &(_p)->idx );                        \
  _mbg_swab_str_type_info( &(_p)->str_type_info );  \
}

Definition at line 1737 of file gpsdefs.h.

#define _mbg_swab_sw_rev ( _p )

Value:

{                               \
  _mbg_swab16( &(_p)->code );   \
}

Definition at line 353 of file gpsdefs.h.

#define _mbg_swab_t_gps ( _p )

Value:

{                              \
  _mbg_swab16( &(_p)->wn );    \
  _mbg_swab32( &(_p)->sec );   \
  _mbg_swab32( &(_p)->tick );  \
}

Definition at line 864 of file gpsdefs.h.

#define _mbg_swab_tm_gps ( _p )

Value:

{                                       \
  _mbg_swab16( &(_p)->year );           \
  _mbg_swab16( &(_p)->yday );           \
  _mbg_swab32( &(_p)->frac );           \
  _mbg_swab32( &(_p)->offs_from_utc );  \
  _mbg_swab16( &(_p)->status );         \
}

Definition at line 894 of file gpsdefs.h.

#define _mbg_swab_ttm ( _p )

Value:

{                                 \
  _mbg_swab16( &(_p)->channel );  \
  _mbg_swab_t_gps( &(_p)->t );    \
  _mbg_swab_tm_gps( &(_p)->tm );  \
}

Definition at line 975 of file gpsdefs.h.

#define _mbg_swab_utc_parm ( _p )

Value:

{                                 \
  _mbg_swab_csum( &(_p)->csum );  \
  _mbg_swab16( &(_p)->valid );    \
  _mbg_swab_t_gps( &(_p)->t0t );  \
  _mbg_swab_double( &(_p)->A0 );  \
  _mbg_swab_double( &(_p)->A1 );  \
  _mbg_swab16( &(_p)->WNlsf );    \
  _mbg_swab16( &(_p)->DNt );      \
}

Definition at line 3806 of file gpsdefs.h.

#define _mbg_swab_xyz ( _p ) _mbg_swab_doubles( _p, N_XYZ )

Definition at line 1018 of file gpsdefs.h.

#define _nano_time_negative ( _nt ) ( ( (_nt)->secs < 0 ) || ( (_nt)->nano_secs < 0 ) )

Definition at line 997 of file gpsdefs.h.

Referenced by print_ptp_status().

#define AUTO_166 ( 0x02 )

Definition at line 3158 of file gpsdefs.h.

#define AUTO_BC ( 0x05 | REMOTE )

Definition at line 3161 of file gpsdefs.h.

#define BOOT 0x20

Definition at line 3155 of file gpsdefs.h.

#define BVAR_ALM_NOT_COMPLETE ( 1UL << BVAR_BIT_ALM_NOT_COMPLETE )

Definition at line 379 of file gpsdefs.h.

#define BVAR_CFGH_INVALID ( 1UL << BVAR_BIT_CFGH_INVALID )

Definition at line 378 of file gpsdefs.h.

#define BVAR_IONO_INVALID ( 1UL << BVAR_BIT_IONO_INVALID )

Definition at line 381 of file gpsdefs.h.

#define BVAR_MASK ( ( 1UL << N_BVAR_BIT ) - 1 )

Definition at line 385 of file gpsdefs.h.

#define BVAR_RCVR_POS_INVALID ( 1UL << BVAR_BIT_RCVR_POS_INVALID )

bit mask for all defined bits

Definition at line 382 of file gpsdefs.h.

#define BVAR_UTC_INVALID ( 1UL << BVAR_BIT_UTC_INVALID )

Definition at line 380 of file gpsdefs.h.

#define COLD_166 ( 0x04 | BOOT )

Definition at line 3160 of file gpsdefs.h.

#define COLD_BC ( 0x07 | REMOTE | BOOT )

Definition at line 3163 of file gpsdefs.h.

#define DEFAULT_ENG_MODE_NAMES

Value:

{                                \
  ENG_MODE_NAME_STR_ON_REQ,      \
  ENG_MODE_NAME_STR_PER_SEC,     \
  ENG_MODE_NAME_STR_PER_MIN,     \
  ENG_MODE_NAME_STR_AUTO,        \
  ENG_MODE_NAME_STR_ON_REQ_SEC   \
}

Definition at line 1780 of file gpsdefs.h.

#define DEFAULT_ENG_POUT_HINTS

Value:

{                              \
  ENG_POUT_HINT_IDLE,          \
  ENG_POUT_HINT_TIMER,         \
  ENG_POUT_HINT_SINGLE_SHOT,   \
  ENG_POUT_HINT_CYCLIC_PULSE,  \
  ENG_POUT_HINT_PER_SEC,       \
  ENG_POUT_HINT_PER_MIN,       \
  ENG_POUT_HINT_PER_HOUR,      \
  ENG_POUT_HINT_DCF77,         \
  ENG_POUT_HINT_POS_OK,        \
  ENG_POUT_HINT_TIME_SYNC,     \
  ENG_POUT_HINT_ALL_SYNC,      \
  ENG_POUT_HINT_TIMECODE,      \
  ENG_POUT_HINT_TIMESTR,       \
  ENG_POUT_HINT_10MHZ          \
}

Definition at line 2655 of file gpsdefs.h.

#define DEFAULT_ENG_POUT_NAMES

Value:

{                              \
  ENG_POUT_NAME_IDLE,          \
  ENG_POUT_NAME_TIMER,         \
  ENG_POUT_NAME_SINGLE_SHOT,   \
  ENG_POUT_NAME_CYCLIC_PULSE,  \
  ENG_POUT_NAME_PER_SEC,       \
  ENG_POUT_NAME_PER_MIN,       \
  ENG_POUT_NAME_PER_HOUR,      \
  ENG_POUT_NAME_DCF77,         \
  ENG_POUT_NAME_POS_OK,        \
  ENG_POUT_NAME_TIME_SYNC,     \
  ENG_POUT_NAME_ALL_SYNC,      \
  ENG_POUT_NAME_TIMECODE,      \
  ENG_POUT_NAME_TIMESTR,       \
  ENG_POUT_NAME_10MHZ          \
}

Definition at line 2621 of file gpsdefs.h.

#define DEFAULT_FPGA_START_INFO

Value:

{                                  \
  0x1234 + DEFAULT_FPGA_START_SEG, \
  DEFAULT_FPGA_START_SEG           \
}

Definition at line 841 of file gpsdefs.h.

#define DEFAULT_FPGA_START_SEG 0x60

Definition at line 839 of file gpsdefs.h.

#define DEFAULT_GPS_BAUD_RATES_C166

Value:

(                                   \
  MBG_PORT_HAS_300   |              \
  MBG_PORT_HAS_600   |              \
  MBG_PORT_HAS_1200  |              \
  MBG_PORT_HAS_2400  |              \
  MBG_PORT_HAS_4800  |              \
  MBG_PORT_HAS_9600  |              \
  MBG_PORT_HAS_19200                \
)

Definition at line 1531 of file gpsdefs.h.

#define DEFAULT_GPS_BAUD_RATES_GP2021

Value:

(                                     \
  MBG_PORT_HAS_300   |                \
  MBG_PORT_HAS_600   |                \
  MBG_PORT_HAS_1200  |                \
  MBG_PORT_HAS_2400  |                \
  MBG_PORT_HAS_4800  |                \
  MBG_PORT_HAS_9600  |                \
  MBG_PORT_HAS_19200                  \
)

Definition at line 1558 of file gpsdefs.h.

#define DEFAULT_GPS_FEATURE_NAMES

Value:

{                                 \
  "Pulse Per Second",             \
  "Pulse Per Minute",             \
  "Programmable Synth.",          \
  "DCF77 Time Marks",             \
  "IRIG Out",                     \
  "IRIG In",                      \
  "IPv4 LAN Interface",           \
  "Multiple Ref. Sources",        \
  "Receive Timeout",              \
  "Ignore Lock",                  \
  "5 MHz Output",                 \
  "Ext. Multiple Ref. Src. Cfg.", \
  "Supp. Optional Settings",      \
  "Configurable Time Scale",      \
  "Irig Control Bits",            \
  "PTP/IEEE1588",                 \
  "Supp. Nav. Engine Settings"    \
}

Definition at line 732 of file gpsdefs.h.

#define DEFAULT_GPS_FEATURES_C166

Value:

{                                 \
  GPS_HAS_PPS |                   \
  GPS_HAS_PPM |                   \
  GPS_HAS_SYNTH |                 \
  GPS_HAS_DCFMARKS                \
}

Definition at line 783 of file gpsdefs.h.

#define DEFAULT_GPS_FRAMINGS_C166

Value:

(                                   \
  MBG_PORT_HAS_7N2 |                \
  MBG_PORT_HAS_7E1 |                \
  MBG_PORT_HAS_7E2 |                \
  MBG_PORT_HAS_8N1 |                \
  MBG_PORT_HAS_8N2 |                \
  MBG_PORT_HAS_8E1                  \
)

Definition at line 1542 of file gpsdefs.h.

#define DEFAULT_GPS_FRAMINGS_GP2021

Value:

(                                     \
  MBG_PORT_HAS_7N2 |                  \
  MBG_PORT_HAS_7E2 |                  \
  MBG_PORT_HAS_8N1 |                  \
  MBG_PORT_HAS_8E1 |                  \
  MBG_PORT_HAS_8O1                    \
)

Definition at line 1569 of file gpsdefs.h.

#define DEFAULT_GPS_MODEL_NAMES

Value:

{                               \
  GPS_MODEL_NAME_UNKNOWN,       \
  GPS_MODEL_NAME_GPS166,        \
  GPS_MODEL_NAME_GPS167,        \
  GPS_MODEL_NAME_GPS167SV,      \
  GPS_MODEL_NAME_GPS167PC,      \
  GPS_MODEL_NAME_GPS167PCI,     \
  GPS_MODEL_NAME_GPS163,        \
  GPS_MODEL_NAME_GPS168PCI,     \
  GPS_MODEL_NAME_GPS161,        \
  GPS_MODEL_NAME_GPS169PCI,     \
  GPS_MODEL_NAME_TCR167PCI,     \
  GPS_MODEL_NAME_GPS164,        \
  GPS_MODEL_NAME_GPS170PCI,     \
  GPS_MODEL_NAME_PZF511,        \
  GPS_MODEL_NAME_GPS170,        \
  GPS_MODEL_NAME_TCR511,        \
  GPS_MODEL_NAME_AM511,         \
  GPS_MODEL_NAME_MSF511,        \
  GPS_MODEL_NAME_GRC170,        \
  GPS_MODEL_NAME_GPS170PEX,     \
  GPS_MODEL_NAME_GPS162,        \
  GPS_MODEL_NAME_PTP270PEX,     \
  GPS_MODEL_NAME_FRC511PEX,     \
  GPS_MODEL_NAME_GEN170,        \
  GPS_MODEL_NAME_TCR170PEX,     \
  GPS_MODEL_NAME_WWVB511,       \
  GPS_MODEL_NAME_MGR170         \
}

Definition at line 529 of file gpsdefs.h.

#define DEFAULT_GPS_OSC_NAMES

Value:

{                             \
  "[unknown]",                \
  "TCXO LQ",                  \
  "TCXO HQ",                  \
  "OCXO LQ",                  \
  "OCXO MQ",                  \
  "OCXO HQ",                  \
  "OCXO XHQ",                 \
  "RUBIDIUM",                 \
  "TCXO MQ",                  \
  "OCXO DHQ"                  \
}

Definition at line 660 of file gpsdefs.h.

#define DEFAULT_GPS_OSC_QUALITY_IDX

Value:

{                                   \
  GPS_OSC_UNKNOWN,                  \
  GPS_OSC_TCXO_LQ,                  \
  GPS_OSC_TCXO_MQ,                  \
  GPS_OSC_TCXO_HQ,                  \
  GPS_OSC_OCXO_LQ,                  \
  GPS_OSC_OCXO_MQ,                  \
  GPS_OSC_OCXO_HQ,                  \
  GPS_OSC_OCXO_DHQ,                 \
  GPS_OSC_OCXO_XHQ,                 \
  GPS_OSC_RUBIDIUM                  \
}

Definition at line 681 of file gpsdefs.h.

#define DEFAULT_GPS_TICKS_PER_SEC 10000000L

Definition at line 305 of file gpsdefs.h.

#define DEFAULT_MULTI_REF_NAMES

Value:

{                               \
  "GPS",                        \
  "10 MHz freq in",             \
  "PPS in",                     \
  "10 MHz + PPS in",            \
  "IRIG",                       \
  "NTP",                        \
  "PTP (IEEE1588)",             \
  "PTP over E1",                \
  "Fixed Freq. in"              \
}

Definition at line 2796 of file gpsdefs.h.

#define DEFAULT_N_COM 2

The number of serial ports which were available with all GPS receiver models:

Definition at line 1827 of file gpsdefs.h.

#define DEFAULT_PTP_DELAY_MECH_MASK ( PTP_DELAY_MECH_MSK_E2E )

Definition at line 3422 of file gpsdefs.h.

#define DEFAULT_PTP_NW_PROT_MASK ( PTP_NW_PROT_MSK_UDP_IPV4 | PTP_NW_PROT_MSK_IEEE_802_3 )

Definition at line 3358 of file gpsdefs.h.

#define DEFAULT_SHORT_MODE_NAMES

Value:

{                                \
  "'?'",                         \
  "1 sec",                       \
  "1 min",                       \
  "auto",                        \
  "'?' sec"                      \
}

Definition at line 1760 of file gpsdefs.h.

#define DEFAULT_STR_MODES

Value:

(                         \
  MSK_STR_ON_REQ |        \
  MSK_STR_PER_SEC |       \
  MSK_STR_PER_MIN         \
)

Definition at line 1804 of file gpsdefs.h.

#define DEFAULT_STR_MODES_UCAP

Value:

(                              \
  MSK_STR_ON_REQ |             \
  MSK_STR_AUTO                 \
)

Definition at line 1815 of file gpsdefs.h.

#define EF_FREQ_ALL 0x07

all fixed freq. outputs on

Definition at line 1343 of file gpsdefs.h.

#define EF_OFF 0x00

outputs off until sync'd

Definition at line 1339 of file gpsdefs.h.

#define EF_PULSES_BOTH 0x03

both pulses P_SEC and P_MIN on

Definition at line 1342 of file gpsdefs.h.

#define EF_SERIAL_BOTH 0x03

both serial ports on

Definition at line 1341 of file gpsdefs.h.

#define EF_SYNTH 0x01

synth. on

Definition at line 1344 of file gpsdefs.h.

#define ENG_MODE_NAME_STR_AUTO "automatically"

Definition at line 1777 of file gpsdefs.h.

#define ENG_MODE_NAME_STR_ON_REQ "on request '?' only"

Definition at line 1774 of file gpsdefs.h.

#define ENG_MODE_NAME_STR_ON_REQ_SEC "sec after request"

Definition at line 1778 of file gpsdefs.h.

#define ENG_MODE_NAME_STR_PER_MIN "per minute"

Definition at line 1776 of file gpsdefs.h.

#define ENG_MODE_NAME_STR_PER_SEC "per second"

Definition at line 1775 of file gpsdefs.h.

#define ENG_POUT_HINT_10MHZ "10 MHz fixed output frequency"

Definition at line 2653 of file gpsdefs.h.

#define ENG_POUT_HINT_ALL_SYNC "Switch if full sync"

Definition at line 2650 of file gpsdefs.h.

#define ENG_POUT_HINT_CYCLIC_PULSE "Generate cyclic pulses of determined length"

Definition at line 2643 of file gpsdefs.h.

#define ENG_POUT_HINT_DCF77 "DCF77 compatible time marks"

Definition at line 2647 of file gpsdefs.h.

#define ENG_POUT_HINT_IDLE "Constant output level"

Definition at line 2640 of file gpsdefs.h.

#define ENG_POUT_HINT_PER_HOUR "Generate pulse at beginning of new hour"

Definition at line 2646 of file gpsdefs.h.

#define ENG_POUT_HINT_PER_MIN "Generate pulse at beginning of new minute"

Definition at line 2645 of file gpsdefs.h.

#define ENG_POUT_HINT_PER_SEC "Generate pulse at beginning of new second"

Definition at line 2644 of file gpsdefs.h.

#define ENG_POUT_HINT_POS_OK "Switch if receiver position has been verified"

Definition at line 2648 of file gpsdefs.h.

#define ENG_POUT_HINT_SINGLE_SHOT "Generate a single pulse of determined length"

Definition at line 2642 of file gpsdefs.h.

#define ENG_POUT_HINT_TIME_SYNC "Switch if time is synchronized"

Definition at line 2649 of file gpsdefs.h.

#define ENG_POUT_HINT_TIMECODE "Duplicate IRIG time code signal"

Definition at line 2651 of file gpsdefs.h.

#define ENG_POUT_HINT_TIMER "Switch based on configured on/off times"

Definition at line 2641 of file gpsdefs.h.

#define ENG_POUT_HINT_TIMESTR "Duplicate serial time string of specified port"

Definition at line 2652 of file gpsdefs.h.

#define ENG_POUT_NAME_10MHZ "10 MHz Frequency"

Definition at line 2619 of file gpsdefs.h.

#define ENG_POUT_NAME_ALL_SYNC "All Sync"

Definition at line 2616 of file gpsdefs.h.

#define ENG_POUT_NAME_CYCLIC_PULSE "Cyclic Pulse"

Definition at line 2609 of file gpsdefs.h.

#define ENG_POUT_NAME_DCF77 "DCF77 Marks"

Definition at line 2613 of file gpsdefs.h.

#define ENG_POUT_NAME_IDLE "Idle"

Definition at line 2606 of file gpsdefs.h.

#define ENG_POUT_NAME_PER_HOUR "Pulse Per Hour"

Definition at line 2612 of file gpsdefs.h.

#define ENG_POUT_NAME_PER_MIN "Pulse Per Min"

Definition at line 2611 of file gpsdefs.h.

#define ENG_POUT_NAME_PER_SEC "Pulse Per Second"

Definition at line 2610 of file gpsdefs.h.

#define ENG_POUT_NAME_POS_OK "Position OK"

Definition at line 2614 of file gpsdefs.h.

#define ENG_POUT_NAME_SINGLE_SHOT "Single Shot"

Definition at line 2608 of file gpsdefs.h.

#define ENG_POUT_NAME_TIME_SYNC "Time Sync"

Definition at line 2615 of file gpsdefs.h.

#define ENG_POUT_NAME_TIMECODE "DCLS Time Code"

Definition at line 2617 of file gpsdefs.h.

#define ENG_POUT_NAME_TIMER "Timer"

Definition at line 2607 of file gpsdefs.h.

#define ENG_POUT_NAME_TIMESTR "COM Time String"

Definition at line 2618 of file gpsdefs.h.

#define FPGA_INFO_SIZE 128

Definition at line 807 of file gpsdefs.h.

#define FPGA_NAME_LEN 31

Definition at line 804 of file gpsdefs.h.

#define FPGA_NAME_SIZE ( FPGA_NAME_LEN + 1 )

Definition at line 805 of file gpsdefs.h.

#define GPS_EPLD_STR_LEN 8

Definition at line 301 of file gpsdefs.h.

#define GPS_EPLD_STR_SIZE ( GPS_EPLD_STR_LEN + 1 )

Definition at line 302 of file gpsdefs.h.

#define GPS_HAS_5_MHZ ( 1UL << GPS_FEAT_5_MHZ )

Definition at line 768 of file gpsdefs.h.

#define GPS_HAS_DCFMARKS ( 1UL << GPS_FEAT_DCFMARKS )

Definition at line 761 of file gpsdefs.h.

#define GPS_HAS_FPGA 0x0004

Definition at line 797 of file gpsdefs.h.

#define GPS_HAS_IGNORE_LOCK ( 1UL << GPS_FEAT_IGNORE_LOCK )

Definition at line 767 of file gpsdefs.h.

#define GPS_HAS_IRIG_CTRL_BITS ( 1UL << GPS_FEAT_IRIG_CTRL_BITS )

Definition at line 772 of file gpsdefs.h.

#define GPS_HAS_IRIG_RX ( 1UL << GPS_FEAT_IRIG_RX )

Definition at line 763 of file gpsdefs.h.

#define GPS_HAS_IRIG_TX ( 1UL << GPS_FEAT_IRIG_TX )

Definition at line 762 of file gpsdefs.h.

#define GPS_HAS_LAN_IP4 ( 1UL << GPS_FEAT_LAN_IP4 )

Definition at line 764 of file gpsdefs.h.

#define GPS_HAS_MULTI_REF ( 1UL << GPS_FEAT_MULTI_REF )

Definition at line 765 of file gpsdefs.h.

#define GPS_HAS_NAV_ENGINE_SETTINGS ( 1UL << GPS_FEAT_NAV_ENGINE_SETTINGS )

Definition at line 774 of file gpsdefs.h.

#define GPS_HAS_OPT_SETTINGS ( 1UL << GPS_FEAT_OPT_SETTINGS )

Definition at line 770 of file gpsdefs.h.

#define GPS_HAS_PPM ( 1UL << GPS_FEAT_PPM )

Definition at line 759 of file gpsdefs.h.

#define GPS_HAS_PPS ( 1UL << GPS_FEAT_PPS )

Definition at line 758 of file gpsdefs.h.

#define GPS_HAS_PTP ( 1UL << GPS_FEAT_PTP )

Definition at line 773 of file gpsdefs.h.

#define GPS_HAS_RCV_TIMEOUT ( 1UL << GPS_FEAT_RCV_TIMEOUT )

Definition at line 766 of file gpsdefs.h.

#define GPS_HAS_REF_OFFS GPS_HAS_IRIG_RX

Definition at line 776 of file gpsdefs.h.

#define GPS_HAS_SYNTH ( 1UL << GPS_FEAT_SYNTH )

Definition at line 760 of file gpsdefs.h.

#define GPS_HAS_TIME_SCALE ( 1UL << GPS_FEAT_TIME_SCALE )

Definition at line 771 of file gpsdefs.h.

#define GPS_HAS_XMULTI_REF ( 1UL << GPS_FEAT_XMULTI_REF )

Definition at line 769 of file gpsdefs.h.

#define GPS_ID_STR_LEN 16

Definition at line 298 of file gpsdefs.h.

#define GPS_ID_STR_SIZE ( GPS_ID_STR_LEN + 1 )

Definition at line 299 of file gpsdefs.h.

#define GPS_IRIG_FO_IN 0x0002

Definition at line 796 of file gpsdefs.h.

#define GPS_MODEL_NAME_AM511 "AM511"

Definition at line 510 of file gpsdefs.h.

#define GPS_MODEL_NAME_FRC511PEX "FRC511PEX"

Definition at line 516 of file gpsdefs.h.

#define GPS_MODEL_NAME_GEN170 "GEN170"

Definition at line 517 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS161 "GPS161"

Definition at line 502 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS162 "GPS162"

Definition at line 514 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS163 "GPS163"

Definition at line 500 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS164 "GPS164"

Definition at line 505 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS166 "GPS166"

Definition at line 495 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS167 "GPS167"

Definition at line 496 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS167PC "GPS167PC"

Definition at line 498 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS167PCI "GPS167PCI"

Definition at line 499 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS167SV "GPS167SV"

Definition at line 497 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS168PCI "GPS168PCI"

Definition at line 501 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS169PCI "GPS169PCI"

Definition at line 503 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS170 "GPS170"

Definition at line 508 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS170PCI "GPS170PCI"

Definition at line 506 of file gpsdefs.h.

#define GPS_MODEL_NAME_GPS170PEX "GPS170PEX"

Definition at line 513 of file gpsdefs.h.

#define GPS_MODEL_NAME_GRC170 "GRC170"

Definition at line 512 of file gpsdefs.h.

#define GPS_MODEL_NAME_MGR170 "MGR170"

Definition at line 520 of file gpsdefs.h.

#define GPS_MODEL_NAME_MSF511 "MSF511"

Definition at line 511 of file gpsdefs.h.

#define GPS_MODEL_NAME_PTP270PEX "PTP270PEX"

Definition at line 515 of file gpsdefs.h.

#define GPS_MODEL_NAME_PZF511 "PZF511"

Definition at line 507 of file gpsdefs.h.

#define GPS_MODEL_NAME_TCR167PCI "TCR167PCI"

Definition at line 504 of file gpsdefs.h.

#define GPS_MODEL_NAME_TCR170PEX "TCR170PEX"

Definition at line 518 of file gpsdefs.h.

#define GPS_MODEL_NAME_TCR511 "TCR511"

Definition at line 509 of file gpsdefs.h.

#define GPS_MODEL_NAME_UNKNOWN "(unknown)"

Definition at line 494 of file gpsdefs.h.

#define GPS_MODEL_NAME_WWVB511 "WWVB511"

Definition at line 519 of file gpsdefs.h.

#define GPS_OSC_CFG_SUPP 0x0001

Definition at line 795 of file gpsdefs.h.

#define GPS_PLATFORM_STRS

Value:

{                         \
  "Portable    ",         \
  "Fixed       ",         \
  "Stationary  ",         \
  "Pedestrian  ",         \
  "Automotive  ",         \
  "Sea         ",         \
  "Airborne <1G",         \
  "Airborne <2G",         \
  "Airborne <4G"          \
}

Definition at line 3865 of file gpsdefs.h.

#define GPS_TICKS_PER_SEC DEFAULT_GPS_TICKS_PER_SEC

Definition at line 314 of file gpsdefs.h.

#define HAS_MULTI_REF_10MHZ ( 1UL << MULTI_REF_10MHZ )

Definition at line 2814 of file gpsdefs.h.

#define HAS_MULTI_REF_10MHZ_PPS ( 1UL << MULTI_REF_10MHZ_PPS )

Definition at line 2816 of file gpsdefs.h.

#define HAS_MULTI_REF_FREQ ( 1UL << MULTI_REF_FREQ )

Definition at line 2821 of file gpsdefs.h.

#define HAS_MULTI_REF_GPS ( 1UL << MULTI_REF_GPS )

Definition at line 2813 of file gpsdefs.h.

#define HAS_MULTI_REF_IRIG ( 1UL << MULTI_REF_IRIG )

Definition at line 2817 of file gpsdefs.h.

#define HAS_MULTI_REF_NTP ( 1UL << MULTI_REF_NTP )

Definition at line 2818 of file gpsdefs.h.

#define HAS_MULTI_REF_PPS ( 1UL << MULTI_REF_PPS )

Definition at line 2815 of file gpsdefs.h.

#define HAS_MULTI_REF_PTP ( 1UL << MULTI_REF_PTP )

Definition at line 2819 of file gpsdefs.h.

#define HAS_MULTI_REF_PTP_E1 ( 1UL << MULTI_REF_PTP_E1 )

Definition at line 2820 of file gpsdefs.h.

#define IGNORE_LOCK_FOR_ALL_PORTS 0x01

Definition at line 3074 of file gpsdefs.h.

#define IP4_MSK_DHCP ( 1UL << IP4_BIT_DHCP )

Definition at line 3333 of file gpsdefs.h.

Referenced by show_lan_intf_state().

#define IP4_MSK_LINK ( 1UL << IP4_BIT_LINK )

Definition at line 3334 of file gpsdefs.h.

Referenced by show_lan_intf_state().

#define MAX_POUT_DCF_TIMOUT ( 48 * 60 )

48 hours, in minutes

Definition at line 2574 of file gpsdefs.h.

#define MAX_POUT_PULSE_LEN 1000

10 secs, in 10 msec units

Definition at line 2573 of file gpsdefs.h.

#define MAX_POUT_TIMESTR_PORTS 8

The max number of COM ports that can be handled by POUT_INFO::timestr_ports

Definition at line 2748 of file gpsdefs.h.

#define MAX_SVNO 32

Definition at line 294 of file gpsdefs.h.

#define MBG_BAUD_RATES

Value:

{                      \
  300L,                \
  600L,                \
  1200L,               \
  2400L,               \
  4800L,               \
  9600L,               \
  19200L,              \
  38400L               \
}

Definition at line 1426 of file gpsdefs.h.

#define MBG_BAUD_STRS

Value:

{                     \
  "300",              \
  "600",              \
  "1200",             \
  "2400",             \
  "4800",             \
  "9600",             \
  "19200",            \
  "38400"             \
}

Definition at line 1442 of file gpsdefs.h.

#define MBG_DEBUG_STATUS_STRS

Value:

{                                  \
  "Osc has warmed up",             \
  "PPS output is active",          \
  "Config set to default",         \
  "IRIG msg decoded",              \
  "IRIG msg not consistent",       \
  "Decoder control loop locked",   \
  "Phase jitter too large",        \
  "Invalid ref offset",            \
                                   \
  "Internal time not valid",       \
  "On board time set via API",     \
  "On board RTC invalid",          \
  "CPU PLL failure, needs restart" \
}

Definition at line 2309 of file gpsdefs.h.

Referenced by show_irig_debug_status().

#define MBG_FRAMING_STRS

Value:

{                        \
  "7N2",                 \
  "7E1",                 \
  "7E2",                 \
  "8N1",                 \
  "8N2",                 \
  "8E1",                 \
  "7O1",                 \
  "7O2",                 \
  "8O1"                  \
}

Definition at line 1494 of file gpsdefs.h.

#define MBG_IRIG_MSK_INV_CONFIG ( 1UL << MBG_IRIG_BIT_INV_CONFIG )

Definition at line 2330 of file gpsdefs.h.

#define MBG_IRIG_MSK_INV_REF_OFFS ( 1UL << MBG_IRIG_BIT_INV_REF_OFFS )

Definition at line 2335 of file gpsdefs.h.

#define MBG_IRIG_MSK_JITTER_TOO_LARGE ( 1UL << MBG_IRIG_BIT_JITTER_TOO_LARGE )

Definition at line 2334 of file gpsdefs.h.

#define MBG_IRIG_MSK_LOOP_LOCKED ( 1UL << MBG_IRIG_BIT_LOOP_LOCKED )

Definition at line 2333 of file gpsdefs.h.

#define MBG_IRIG_MSK_MSG_DECODED ( 1UL << MBG_IRIG_BIT_MSG_DECODED )

Definition at line 2331 of file gpsdefs.h.

#define MBG_IRIG_MSK_MSG_INCONSISTENT ( 1UL << MBG_IRIG_BIT_MSG_INCONSISTENT )

Definition at line 2332 of file gpsdefs.h.

#define MBG_IRIG_MSK_PPS_ACTIVE ( 1UL << MBG_IRIG_BIT_PPS_ACTIVE )

Definition at line 2329 of file gpsdefs.h.

#define MBG_IRIG_MSK_WARMED_UP ( 1UL << MBG_IRIG_BIT_WARMED_UP )

Definition at line 2328 of file gpsdefs.h.

#define MBG_OPT_FLAG_EMU_SYNC ( 1UL << MBG_OPT_BIT_EMU_SYNC )

Definition at line 2395 of file gpsdefs.h.

#define MBG_OPT_FLAG_STR_UTC ( 1UL << MBG_OPT_BIT_STR_UTC )

Definition at line 2394 of file gpsdefs.h.

#define MBG_PORT_HAS_1200 ( 1UL << MBG_BAUD_RATE_1200 )

Definition at line 1463 of file gpsdefs.h.

#define MBG_PORT_HAS_19200 ( 1UL << MBG_BAUD_RATE_19200 )

Definition at line 1467 of file gpsdefs.h.

#define MBG_PORT_HAS_2400 ( 1UL << MBG_BAUD_RATE_2400 )

Definition at line 1464 of file gpsdefs.h.

#define MBG_PORT_HAS_300 ( 1UL << MBG_BAUD_RATE_300 )

Definition at line 1461 of file gpsdefs.h.

#define MBG_PORT_HAS_38400 ( 1UL << MBG_BAUD_RATE_38400 )

Definition at line 1468 of file gpsdefs.h.

#define MBG_PORT_HAS_4800 ( 1UL << MBG_BAUD_RATE_4800 )

Definition at line 1465 of file gpsdefs.h.

#define MBG_PORT_HAS_600 ( 1UL << MBG_BAUD_RATE_600 )

Definition at line 1462 of file gpsdefs.h.

#define MBG_PORT_HAS_7E1 ( 1UL << MBG_FRAMING_7E1 )

Definition at line 1515 of file gpsdefs.h.

#define MBG_PORT_HAS_7E2 ( 1UL << MBG_FRAMING_7E2 )

Definition at line 1516 of file gpsdefs.h.

#define MBG_PORT_HAS_7N2 ( 1UL << MBG_FRAMING_7N2 )

Definition at line 1514 of file gpsdefs.h.

#define MBG_PORT_HAS_7O1 ( 1UL << MBG_FRAMING_7O1 )

Definition at line 1520 of file gpsdefs.h.

#define MBG_PORT_HAS_7O2 ( 1UL << MBG_FRAMING_7O2 )

Definition at line 1521 of file gpsdefs.h.

#define MBG_PORT_HAS_8E1 ( 1UL << MBG_FRAMING_8E1 )

Definition at line 1519 of file gpsdefs.h.

#define MBG_PORT_HAS_8N1 ( 1UL << MBG_FRAMING_8N1 )

Definition at line 1517 of file gpsdefs.h.

#define MBG_PORT_HAS_8N2 ( 1UL << MBG_FRAMING_8N2 )

Definition at line 1518 of file gpsdefs.h.

#define MBG_PORT_HAS_8O1 ( 1UL << MBG_FRAMING_8O1 )

Definition at line 1522 of file gpsdefs.h.

#define MBG_PORT_HAS_9600 ( 1UL << MBG_BAUD_RATE_9600 )

Definition at line 1466 of file gpsdefs.h.

#define MBG_PS_MSK_BAUD_RATE ( 1UL << MBG_PS_BIT_BAUD_RATE )

Definition at line 1627 of file gpsdefs.h.

#define MBG_PS_MSK_BAUD_RATE_OVR_DEV ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_DEV )

Definition at line 1626 of file gpsdefs.h.

#define MBG_PS_MSK_BAUD_RATE_OVR_SW ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_SW )

Definition at line 1625 of file gpsdefs.h.

#define MBG_PS_MSK_FLAGS ( 1UL << MBG_PS_BIT_FLAGS )

Definition at line 1640 of file gpsdefs.h.

#define MBG_PS_MSK_FLAGS_OVR_SW ( 1UL << MBG_PS_BIT_FLAGS_OVR_SW )

Definition at line 1639 of file gpsdefs.h.

#define MBG_PS_MSK_FRAMING ( 1UL << MBG_PS_BIT_FRAMING )

Definition at line 1630 of file gpsdefs.h.

#define MBG_PS_MSK_FRAMING_OVR_DEV ( 1UL << MBG_PS_BIT_FRAMING_OVR_DEV )

Definition at line 1629 of file gpsdefs.h.

#define MBG_PS_MSK_FRAMING_OVR_SW ( 1UL << MBG_PS_BIT_FRAMING_OVR_SW )

Definition at line 1628 of file gpsdefs.h.

#define MBG_PS_MSK_HS ( 1UL << MBG_PS_BIT_HS )

Definition at line 1632 of file gpsdefs.h.

#define MBG_PS_MSK_HS_OVR_SW ( 1UL << MBG_PS_BIT_HS_OVR_SW )

Definition at line 1631 of file gpsdefs.h.

#define MBG_PS_MSK_STR_MODE ( 1UL << MBG_PS_BIT_STR_MODE )

Definition at line 1638 of file gpsdefs.h.

#define MBG_PS_MSK_STR_MODE_OVR_DEV ( 1UL << MBG_PS_BIT_STR_MODE_OVR_DEV )

Definition at line 1637 of file gpsdefs.h.

#define MBG_PS_MSK_STR_MODE_OVR_SW ( 1UL << MBG_PS_BIT_STR_MODE_OVR_SW )

Definition at line 1636 of file gpsdefs.h.

#define MBG_PS_MSK_STR_TYPE ( 1UL << MBG_PS_BIT_STR_TYPE )

Definition at line 1635 of file gpsdefs.h.

#define MBG_PS_MSK_STR_TYPE_OVR_DEV ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_DEV )

Definition at line 1634 of file gpsdefs.h.

#define MBG_PS_MSK_STR_TYPE_OVR_SW ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_SW )

Definition at line 1633 of file gpsdefs.h.

#define MBG_REF_OFFS_MAX ( ( 12L * 60 ) + 30 )

the maximum allowed positive / negative offset

Definition at line 2350 of file gpsdefs.h.

#define MBG_REF_OFFS_NOT_CFGD 0x8000

the following value is used to indicate that the ref offset value has not yet been configured

Definition at line 2356 of file gpsdefs.h.

#define MBG_SYS_MSK_CPU_PLL_FAILED ( 1UL << MBG_SYS_BIT_CPU_PLL_FAILED )

Definition at line 2340 of file gpsdefs.h.

#define MBG_SYS_MSK_INV_RTC ( 1UL << MBG_SYS_BIT_INV_RTC )

Definition at line 2339 of file gpsdefs.h.

#define MBG_SYS_MSK_INV_TIME ( 1UL << MBG_SYS_BIT_INV_TIME )

Definition at line 2337 of file gpsdefs.h.

#define MBG_SYS_MSK_TIME_SET_VIA_API ( 1UL << MBG_SYS_BIT_TIME_SET_VIA_API )

Definition at line 2338 of file gpsdefs.h.

#define MEINBERG_MAGIC 0x6AAC

Definition at line 291 of file gpsdefs.h.

#define MIN_SVNO 1

Definition at line 293 of file gpsdefs.h.

#define MSK_EPLD_CNTL_DIS_REM 0x1000

Definition at line 3127 of file gpsdefs.h.

#define MSK_EPLD_CNTL_ENA_SNMP 0x8000

Definition at line 3130 of file gpsdefs.h.

#define MSK_EPLD_CNTL_REMOTE 0x2000

Definition at line 3128 of file gpsdefs.h.

#define MSK_EPLD_CNTL_SEL_REM 0x0800

Definition at line 3126 of file gpsdefs.h.

#define MSK_EPLD_CNTL_SEL_SNMP 0x4000

Definition at line 3129 of file gpsdefs.h.

#define MSK_EPLD_STAT_ACO 0x4000

Definition at line 3122 of file gpsdefs.h.

#define MSK_EPLD_STAT_AUTO 0x0020

Definition at line 3119 of file gpsdefs.h.

#define MSK_EPLD_STAT_ENA 0x0080

Definition at line 3121 of file gpsdefs.h.

#define MSK_EPLD_STAT_PSU1_OK 0x0008

Definition at line 3117 of file gpsdefs.h.

#define MSK_EPLD_STAT_PSU2_OK 0x0010

Definition at line 3118 of file gpsdefs.h.

#define MSK_EPLD_STAT_SEL 0x0040

Definition at line 3120 of file gpsdefs.h.

#define MSK_EPLD_STAT_TL_ERROR 0x0004

Definition at line 3116 of file gpsdefs.h.

#define MSK_EPLD_STAT_TS1 0x0001

Definition at line 3114 of file gpsdefs.h.

#define MSK_EPLD_STAT_TS2 0x0002

Definition at line 3115 of file gpsdefs.h.

#define MSK_EPLD_STAT_WDOG_OK 0x8000

Definition at line 3123 of file gpsdefs.h.

#define MSK_POUT_10MHZ ( 1UL << POUT_10MHZ )

Definition at line 2692 of file gpsdefs.h.

#define MSK_POUT_ALL_SYNC ( 1UL << POUT_ALL_SYNC )

Definition at line 2689 of file gpsdefs.h.

#define MSK_POUT_CYCLIC_PULSE ( 1UL << POUT_CYCLIC_PULSE )

Definition at line 2682 of file gpsdefs.h.

#define MSK_POUT_DCF77 ( 1UL << POUT_DCF77 )

Definition at line 2686 of file gpsdefs.h.

#define MSK_POUT_IDLE ( 1UL << POUT_IDLE )

Definition at line 2679 of file gpsdefs.h.

#define MSK_POUT_PER_HOUR ( 1UL << POUT_PER_HOUR )

Definition at line 2685 of file gpsdefs.h.

#define MSK_POUT_PER_MIN ( 1UL << POUT_PER_MIN )

Definition at line 2684 of file gpsdefs.h.

#define MSK_POUT_PER_SEC ( 1UL << POUT_PER_SEC )

Definition at line 2683 of file gpsdefs.h.

#define MSK_POUT_POS_OK ( 1UL << POUT_POS_OK )

Definition at line 2687 of file gpsdefs.h.

#define MSK_POUT_SINGLE_SHOT ( 1UL << POUT_SINGLE_SHOT )

Definition at line 2681 of file gpsdefs.h.

#define MSK_POUT_TIME_SYNC ( 1UL << POUT_TIME_SYNC )

Definition at line 2688 of file gpsdefs.h.

#define MSK_POUT_TIMECODE ( 1UL << POUT_TIMECODE )

Definition at line 2690 of file gpsdefs.h.

#define MSK_POUT_TIMER ( 1UL << POUT_TIMER )

Definition at line 2680 of file gpsdefs.h.

#define MSK_POUT_TIMESTR ( 1UL << POUT_TIMESTR )

Definition at line 2691 of file gpsdefs.h.

#define MSK_STR_AUTO ( 1UL << STR_AUTO )

Definition at line 1797 of file gpsdefs.h.

#define MSK_STR_ON_REQ ( 1UL << STR_ON_REQ )

Definition at line 1794 of file gpsdefs.h.

#define MSK_STR_ON_REQ_SEC ( 1UL << STR_ON_REQ_SEC )

Definition at line 1798 of file gpsdefs.h.

#define MSK_STR_PER_MIN ( 1UL << STR_PER_MIN )

Definition at line 1796 of file gpsdefs.h.

#define MSK_STR_PER_SEC ( 1UL << STR_PER_SEC )

Definition at line 1795 of file gpsdefs.h.

#define MSK_WRN_10MHZ_MISSING ( 1UL << WRN_10MHZ_MISSING )

Definition at line 2901 of file gpsdefs.h.

#define MSK_WRN_10MHZ_UNLOCK ( 1UL << WRN_10MHZ_UNLOCK )

Definition at line 2898 of file gpsdefs.h.

#define MSK_WRN_1PPS_MISSING ( 1UL << WRN_1PPS_MISSING )

Definition at line 2902 of file gpsdefs.h.

#define MSK_WRN_1PPS_UNLOCK ( 1UL << WRN_1PPS_UNLOCK )

Definition at line 2899 of file gpsdefs.h.

#define MSK_WRN_ANT_DISCONN ( 1UL << WRN_ANT_DISCONN )

Definition at line 2897 of file gpsdefs.h.

#define MSK_WRN_COLD_BOOT ( 1UL << WRN_COLD_BOOT )

Definition at line 2895 of file gpsdefs.h.

#define MSK_WRN_GPS_UNLOCK ( 1UL << WRN_GPS_UNLOCK )

Definition at line 2900 of file gpsdefs.h.

#define MSK_WRN_MODULE_MODE ( 1UL << WRN_MODULE_MODE )

Definition at line 2903 of file gpsdefs.h.

#define MSK_WRN_WARM_BOOT ( 1UL << WRN_WARM_BOOT )

Definition at line 2896 of file gpsdefs.h.

#define N_COM DEFAULT_N_COM

Definition at line 1834 of file gpsdefs.h.

#define N_MULTI_REF_PRIO 4

Definition at line 2838 of file gpsdefs.h.

#define N_POUT_TIMES 3

The number of POUT_TIMEs for each programmable pulse output

Definition at line 2545 of file gpsdefs.h.

#define N_SVNO ( MAX_SVNO - MIN_SVNO + 1)

Definition at line 295 of file gpsdefs.h.

#define OSC_DAC_BIAS ( OSC_DAC_RANGE / 2 )

Definition at line 3196 of file gpsdefs.h.

#define OSC_DAC_RANGE 4096UL

Definition at line 3195 of file gpsdefs.h.

#define POUT_INVERTED 0x0001

Definition at line 2698 of file gpsdefs.h.

#define PTP_CFG_MSK_TIME_SCALE_IS_PTP ( 1UL << PTP_CFG_BIT_TIME_SCALE_IS_PTP )

Definition at line 3692 of file gpsdefs.h.

#define PTP_CFG_MSK_V1_HW_COMPAT ( 1UL << PTP_CFG_BIT_V1_HW_COMPAT )

Definition at line 3693 of file gpsdefs.h.

#define PTP_CLOCK_ACCURACY_RESERVED_OFFSET 0x20

Definition at line 3433 of file gpsdefs.h.

#define PTP_CLOCK_ACCURACY_STRS

Value:

{                               \
  "< 25 ns",                    \
  "< 100 ns",                   \
  "< 250 ns",                   \
  "< 1 us",                     \
  "< 2.5 us",                   \
  "< 10 us",                    \
  "< 25 us",                    \
  "< 100 us",                   \
  "< 250 us",                   \
  "< 1 ms",                     \
  "< 2.5 ms",                   \
  "< 10 ms",                    \
  "< 25 ms",                    \
  "< 100 ms",                   \
  "< 250 ms",                   \
  "< 1 s",                      \
  "< 10 s",                     \
  "more than 10 s",             \
  "reserved_1",                 \
  "reserved_2",                 \
  "reserved_3",                 \
  "reserved_4"                  \
}

Definition at line 3465 of file gpsdefs.h.

#define PTP_DELAY_MECH_MSK_E2E ( 1UL << PTP_DELAY_MECH_BIT_E2E )

Definition at line 3418 of file gpsdefs.h.

#define PTP_DELAY_MECH_MSK_P2P ( 1UL << PTP_DELAY_MECH_BIT_P2P )

Definition at line 3419 of file gpsdefs.h.

#define PTP_DELAY_MECH_NAMES

Value:

{                            \
  "E2E",                     \
  "P2P"                      \
}

Definition at line 3425 of file gpsdefs.h.

#define PTP_DELAY_REQ_INTERVAL_MAX 6

Definition at line 3597 of file gpsdefs.h.

#define PTP_DELAY_REQ_INTERVAL_MIN -6

Definition at line 3596 of file gpsdefs.h.

#define PTP_FLAG_MSK_IS_SLAVE ( 1UL << PTP_FLAG_BIT_IS_SLAVE )

Definition at line 3587 of file gpsdefs.h.

#define PTP_FLAG_MSK_LS_ANN ( 1UL << PTP_FLAG_BIT_LS_ANN )

Definition at line 3589 of file gpsdefs.h.

#define PTP_FLAG_MSK_LS_ANN_NEG ( 1UL << PTP_FLAG_BIT_LS_ANN_NEG )

Definition at line 3590 of file gpsdefs.h.

#define PTP_FLAG_MSK_SLAVE_ONLY ( 1UL << PTP_FLAG_BIT_SLAVE_ONLY )

Definition at line 3586 of file gpsdefs.h.

#define PTP_FLAG_MSK_TIMESCALE_IS_PTP ( 1UL << PTP_FLAG_BIT_TIMESCALE_IS_PTP )

Definition at line 3588 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_CONTROL_NET ( 1UL << PTP_NW_PROT_BIT_CONTROL_NET )

Definition at line 3354 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_DEVICE_NET ( 1UL << PTP_NW_PROT_BIT_DEVICE_NET )

Definition at line 3353 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_IEEE_802_3 ( 1UL << PTP_NW_PROT_BIT_IEEE_802_3 )

Definition at line 3352 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_PROFINET ( 1UL << PTP_NW_PROT_BIT_PROFINET )

Definition at line 3355 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_RESERVED ( 1UL << PTP_NW_PROT_BIT_RESERVED )

Definition at line 3349 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_UDP_IPV4 ( 1UL << PTP_NW_PROT_BIT_UDP_IPV4 )

Definition at line 3350 of file gpsdefs.h.

#define PTP_NW_PROT_MSK_UDP_IPV6 ( 1UL << PTP_NW_PROT_BIT_UDP_IPV6 )

Definition at line 3351 of file gpsdefs.h.

#define PTP_NW_PROT_STRS

Value:

{                          \
  "Reserved",              \
  "UDP/IPv4",              \
  "UDP/IPv6",              \
  "IEEE 802.3",            \
  "DeviceNet",             \
  "ControlNet",            \
  "PROFINET"               \
}

Definition at line 3361 of file gpsdefs.h.

#define PTP_PORT_STATE_STRS

Value:

{                             \
  "UNINITIALIZED",            \
  "INITIALIZING",             \
  "FAULTY",                   \
  "DISABLED",                 \
  "LISTENING",                \
  "PRE_MASTER",               \
  "MASTER",                   \
  "PASSIVE",                  \
  "UNCALIBRATED",             \
  "SLAVE"                     \
}

Definition at line 3389 of file gpsdefs.h.

Referenced by print_ptp_status().

#define PTP_SYNC_INTERVAL_MAX 6

Definition at line 3594 of file gpsdefs.h.

#define PTP_SYNC_INTERVAL_MIN -6

Definition at line 3593 of file gpsdefs.h.

#define PTP_TIME_SOURCE_ATOMIC_CLOCK 0x10

Definition at line 3493 of file gpsdefs.h.

#define PTP_TIME_SOURCE_GPS 0x20

Definition at line 3494 of file gpsdefs.h.

#define PTP_TIME_SOURCE_HAND_SET 0x60

Definition at line 3498 of file gpsdefs.h.

#define PTP_TIME_SOURCE_INTERNAL_OSCILLATOR 0xA0

Definition at line 3500 of file gpsdefs.h.

#define PTP_TIME_SOURCE_NTP 0x50

Definition at line 3497 of file gpsdefs.h.

#define PTP_TIME_SOURCE_OTHER 0x90

Definition at line 3499 of file gpsdefs.h.

#define PTP_TIME_SOURCE_PTP 0x40

Definition at line 3496 of file gpsdefs.h.

#define PTP_TIME_SOURCE_TABLE

Value:

{                                                                 \
  { PTP_TIME_SOURCE_ATOMIC_CLOCK, "Atomic Clock" },               \
  { PTP_TIME_SOURCE_GPS, "GPS" },                                 \
  { PTP_TIME_SOURCE_TERRESTRIAL_RADIO, "Terrestrial Radio" },     \
  { PTP_TIME_SOURCE_PTP, "PTP" },                                 \
  { PTP_TIME_SOURCE_NTP, "NTP" },                                 \
  { PTP_TIME_SOURCE_HAND_SET, "HAND SET" },                       \
  { PTP_TIME_SOURCE_OTHER, "OTHER" },                             \
  { PTP_TIME_SOURCE_INTERNAL_OSCILLATOR, "Internal Oscillator" }, \
  { 0, NULL }                                                     \
}

Definition at line 3504 of file gpsdefs.h.

#define PTP_TIME_SOURCE_TERRESTRIAL_RADIO 0x30

Definition at line 3495 of file gpsdefs.h.

#define REMOTE 0x10

Definition at line 3154 of file gpsdefs.h.

#define TM_ANT_DISCONN ( 1UL << TM_BIT_ANT_DISCONN )

Definition at line 954 of file gpsdefs.h.

#define TM_ANT_SHORT ( 1UL << TM_BIT_ANT_SHORT )

Definition at line 952 of file gpsdefs.h.

#define TM_DL_ANN ( 1UL << TM_BIT_DL_ANN )

Definition at line 944 of file gpsdefs.h.

#define TM_DL_ENB ( 1UL << TM_BIT_DL_ENB )

Definition at line 945 of file gpsdefs.h.

#define TM_EXT_SYNC ( 1UL << TM_BIT_EXT_SYNC )

Definition at line 950 of file gpsdefs.h.

#define TM_HOLDOVER ( 1UL << TM_BIT_HOLDOVER )

Definition at line 951 of file gpsdefs.h.

#define TM_LOCAL ( 1UL << TM_BIT_LOCAL )

Definition at line 943 of file gpsdefs.h.

#define TM_LS_ANN ( 1UL << TM_BIT_LS_ANN )

Definition at line 946 of file gpsdefs.h.

#define TM_LS_ANN_NEG ( 1UL << TM_BIT_LS_ANN_NEG )

Definition at line 948 of file gpsdefs.h.

#define TM_LS_ENB ( 1UL << TM_BIT_LS_ENB )

Definition at line 947 of file gpsdefs.h.

#define TM_MSK_TIME_VALID ( TM_UTC | TM_SCALE_GPS | TM_SCALE_TAI )

Definition at line 963 of file gpsdefs.h.

#define TM_NO_POS ( 1UL << TM_BIT_NO_POS )

Definition at line 957 of file gpsdefs.h.

#define TM_NO_SYNC ( 1UL << TM_BIT_NO_SYNC )

Definition at line 956 of file gpsdefs.h.

#define TM_NO_WARM ( 1UL << TM_BIT_NO_WARM )

Definition at line 953 of file gpsdefs.h.

#define TM_SCALE_GPS ( 1UL << TM_BIT_SCALE_GPS )

Definition at line 960 of file gpsdefs.h.

#define TM_SCALE_TAI ( 1UL << TM_BIT_SCALE_TAI )

Definition at line 961 of file gpsdefs.h.

#define TM_SYN_FLAG ( 1UL << TM_BIT_SYN_FLAG )

Definition at line 955 of file gpsdefs.h.

#define TM_UTC ( 1UL << TM_BIT_UTC )

Definition at line 942 of file gpsdefs.h.

#define TRACK ( 0x01 )

Definition at line 3157 of file gpsdefs.h.

#define UPDA_166 ( 0x08 | BOOT )

Definition at line 3164 of file gpsdefs.h.

#define UPDA_BC ( 0x09 | REMOTE | BOOT )

Definition at line 3165 of file gpsdefs.h.

#define WARM_166 ( 0x03 | BOOT )

Definition at line 3159 of file gpsdefs.h.

#define WARM_BC ( 0x06 | REMOTE | BOOT )

Definition at line 3162 of file gpsdefs.h.

#define XMRS_MSK_IS_ACCURATE ( 1UL << XMRS_BIT_IS_ACCURATE )

Definition at line 3029 of file gpsdefs.h.

#define XMRS_MSK_IS_LOCKED ( 1UL << XMRS_BIT_IS_LOCKED )

Definition at line 3028 of file gpsdefs.h.

#define XMRS_MSK_IS_MASTER ( 1UL << XMRS_BIT_IS_MASTER )

Definition at line 3027 of file gpsdefs.h.

#define XMRS_MSK_NO_CONN ( 1UL << XMRS_BIT_NO_CONN )

Definition at line 3025 of file gpsdefs.h.

#define XMRS_MSK_NO_SIGNAL ( 1UL << XMRS_BIT_NO_SIGNAL )

Definition at line 3026 of file gpsdefs.h.

#define XMRS_MSK_NOT_SETTLED ( 1UL << XMRS_BIT_NOT_SETTLED )

Definition at line 3030 of file gpsdefs.h.

#define XMRS_MSK_NOT_SUPP ( 1UL << XMRS_BIT_NOT_SUPP )

Definition at line 3024 of file gpsdefs.h.

#define XMULTI_REF_STATUS_INVALID

Value:

{                                                          \
  { (uint8_t) MULTI_REF_NONE, 0 },  /* id; instance 0 ? */ \
  XMRS_MSK_NO_CONN | XMRS_MSK_NO_SIGNAL,  /* status */     \
  { 0 },                                  /* offset */     \
  0                                      /* reserved */    \
}

Definition at line 3038 of file gpsdefs.h.

Typedef Documentation

typedef uint16_t ANT_CABLE_LEN

The type below is used to configure the length of the antenna cable in [m]:

Definition at line 3222 of file gpsdefs.h.

typedef int32_t BAUD_RATE

Definition at line 1380 of file gpsdefs.h.

typedef uint16_t BVAR_STAT

holds status of battery buffered vars

Definition at line 360 of file gpsdefs.h.

typedef uint16_t CFG

Definition at line 320 of file gpsdefs.h.

typedef uint16_t CSUM

Definition at line 327 of file gpsdefs.h.

typedef int16_t DAC_VAL

Definition at line 3169 of file gpsdefs.h.

typedef uint16_t GPS_CMD

The type which is used to pass a cmd code via serial port, or bus. The cmd codes are defined in gpsserio.h and pcpsdefs.h.

Definition at line 338 of file gpsdefs.h.

typedef uint16_t HEALTH

Definition at line 319 of file gpsdefs.h.

typedef uint16_t IGNORE_LOCK

Definition at line 3056 of file gpsdefs.h.

typedef uint16_t IOD

Definition at line 321 of file gpsdefs.h.

typedef uint32_t IP4_ADDR

Definition at line 3237 of file gpsdefs.h.

typedef double LLA[N_LLA]

a type of array holding a geographic position lon, lat in [rad], alt in [m]

Definition at line 1026 of file gpsdefs.h.

typedef uint32_t MBG_DEBUG_STATUS

Definition at line 2284 of file gpsdefs.h.

typedef int16_t MBG_REF_OFFS

-MBG_REF_OFFS_MAX..MBG_REF_OFFS_MAX

Definition at line 2344 of file gpsdefs.h.

typedef uint16_t MULTI_REF_STATUS

Definition at line 2873 of file gpsdefs.h.

typedef uint16_t RCV_TIMEOUT

Definition at line 3055 of file gpsdefs.h.

typedef uint16_t ROM_CSUM

Definition at line 3054 of file gpsdefs.h.

typedef uint16_t SVNO

Definition at line 318 of file gpsdefs.h.

typedef uint32_t TM_STATUS_EXT

Definition at line 928 of file gpsdefs.h.

typedef double XYZ[N_XYZ]

a type of array holding a cartesian position values are in [m]

Definition at line 1013 of file gpsdefs.h.

Enumeration Type Documentation

anonymous enum

The bits defined below are set in BVAR_STAT if the corresponding parameters are NOT valid and complete:

Enumerator:
BVAR_BIT_CFGH_INVALID
BVAR_BIT_ALM_NOT_COMPLETE
BVAR_BIT_UTC_INVALID
BVAR_BIT_IONO_INVALID
BVAR_BIT_RCVR_POS_INVALID
N_BVAR_BIT

Definition at line 368 of file gpsdefs.h.

anonymous enum

Valid codes for RECEIVER_INFO.model_code:

Enumerator:
GPS_MODEL_UNKNOWN
GPS_MODEL_GPS166
GPS_MODEL_GPS167
GPS_MODEL_GPS167SV
GPS_MODEL_GPS167PC
GPS_MODEL_GPS167PCI
GPS_MODEL_GPS163
GPS_MODEL_GPS168PCI
GPS_MODEL_GPS161
GPS_MODEL_GPS169PCI
GPS_MODEL_TCR167PCI
GPS_MODEL_GPS164
GPS_MODEL_GPS170PCI
GPS_MODEL_PZF511
GPS_MODEL_GPS170
GPS_MODEL_TCR511
GPS_MODEL_AM511
GPS_MODEL_MSF511
GPS_MODEL_GRC170
GPS_MODEL_GPS170PEX
GPS_MODEL_GPS162
GPS_MODEL_PTP270PEX
GPS_MODEL_FRC511PEX
GPS_MODEL_GEN170
GPS_MODEL_TCR170PEX
GPS_MODEL_WWVB511
GPS_MODEL_MGR170
N_GPS_MODEL

Definition at line 451 of file gpsdefs.h.

anonymous enum

Enumerator:
HS_NONE
HS_XONXOFF
HS_RTSCTS
N_COM_HS

Definition at line 1375 of file gpsdefs.h.

anonymous enum

Enumerator:
F_DBITS
F_PRTY
F_STBITS

Definition at line 1383 of file gpsdefs.h.

anonymous enum

Enumerator:
MBG_BAUD_RATE_300
MBG_BAUD_RATE_600
MBG_BAUD_RATE_1200
MBG_BAUD_RATE_2400
MBG_BAUD_RATE_4800
MBG_BAUD_RATE_9600
MBG_BAUD_RATE_19200
MBG_BAUD_RATE_38400
N_MBG_BAUD_RATES

Definition at line 1409 of file gpsdefs.h.

anonymous enum

Enumerator:
MBG_FRAMING_7N2
MBG_FRAMING_7E1
MBG_FRAMING_7E2
MBG_FRAMING_8N1
MBG_FRAMING_8N2
MBG_FRAMING_8E1
MBG_FRAMING_7O1
MBG_FRAMING_7O2
MBG_FRAMING_8O1
N_MBG_FRAMINGS

Definition at line 1476 of file gpsdefs.h.

anonymous enum

Enumerator:
MBG_PS_BIT_BAUD_RATE_OVR_SW
MBG_PS_BIT_BAUD_RATE_OVR_DEV
MBG_PS_BIT_BAUD_RATE
MBG_PS_BIT_FRAMING_OVR_SW
MBG_PS_BIT_FRAMING_OVR_DEV
MBG_PS_BIT_FRAMING
MBG_PS_BIT_HS_OVR_SW
MBG_PS_BIT_HS
MBG_PS_BIT_STR_TYPE_OVR_SW
MBG_PS_BIT_STR_TYPE_OVR_DEV
MBG_PS_BIT_STR_TYPE
MBG_PS_BIT_STR_MODE_OVR_SW
MBG_PS_BIT_STR_MODE_OVR_DEV
MBG_PS_BIT_STR_MODE
MBG_PS_BIT_FLAGS_OVR_SW
MBG_PS_BIT_FLAGS
N_MBG_PS_BIT

Definition at line 1604 of file gpsdefs.h.

anonymous enum

Enumerator:
STR_ON_REQ
STR_PER_SEC
STR_PER_MIN
STR_AUTO
STR_ON_REQ_SEC
N_STR_MODE

Definition at line 1749 of file gpsdefs.h.

anonymous enum

Enumerator:
N_STR_MODE_0
STR_UCAP
STR_UCAP_REQ
N_STR_MODE_1

Definition at line 1863 of file gpsdefs.h.

anonymous enum

Enumerator:
MBG_IRIG_BIT_WARMED_UP | Osc has warmed up
MBG_IRIG_BIT_PPS_ACTIVE | PPS output is active
MBG_IRIG_BIT_INV_CONFIG | Invalid config, e.g. data csum error
MBG_IRIG_BIT_MSG_DECODED | IRIG msg could be decoded
MBG_IRIG_BIT_MSG_INCONSISTENT | IRIG msg contains inconsistent data
MBG_IRIG_BIT_LOOP_LOCKED | Decoder control loop is locked
MBG_IRIG_BIT_JITTER_TOO_LARGE | Phase jitter too large
MBG_IRIG_BIT_INV_REF_OFFS | UTC ref offset not configured
MBG_SYS_BIT_INV_TIME | Internal time not valid/set
MBG_SYS_BIT_TIME_SET_VIA_API | On board time set externally
MBG_SYS_BIT_INV_RTC | On board RTC invalid
MBG_SYS_BIT_CPU_PLL_FAILED | The CPU's PLL watchdog
N_MBG_DEBUG_BIT

Definition at line 2287 of file gpsdefs.h.

anonymous enum

The classification codes for oscillators below are used with RECEIVER_INFO.osc_type. New codes must be appended to the enumeration, so the sequence of codes does NOT reflect the order of quality:

Enumerator:
GPS_OSC_UNKNOWN
GPS_OSC_TCXO_LQ
GPS_OSC_TCXO_HQ
GPS_OSC_OCXO_LQ
GPS_OSC_OCXO_MQ
GPS_OSC_OCXO_HQ
GPS_OSC_OCXO_XHQ
GPS_OSC_RUBIDIUM
GPS_OSC_TCXO_MQ
GPS_OSC_OCXO_DHQ
N_GPS_OSC

Definition at line 639 of file gpsdefs.h.

anonymous enum

Enumerator:
MBG_OPT_BIT_STR_UTC | serial string contains UTC time
MBG_OPT_BIT_EMU_SYNC | emulate/pretend to be synchronized, alternatively GPS_FEAT_IGNORE_LOCK may be supported
N_MBG_OPT_BIT

Definition at line 2383 of file gpsdefs.h.

anonymous enum

These codes are defined for POUT_SETTINGS.mode to setup the basic mode of operation for a single programmable pulse output:

Enumerator:
POUT_IDLE | always off, or on if POUT_INVERTED
POUT_TIMER | switch on/off at configured times
POUT_SINGLE_SHOT | pulse at time POUT_SETTINGS.tm[0].on
POUT_CYCLIC_PULSE | pulse every POUT_SETTINGS.tm[0].on.t interval
POUT_PER_SEC | pulse if second changes
POUT_PER_MIN | pulse if minute changes
POUT_PER_HOUR | pulse if hour changes
POUT_DCF77 | emulate DCF77 signal
POUT_POS_OK | on if pos. OK (nav_solved)
POUT_TIME_SYNC | on if time sync (time_syn)
POUT_ALL_SYNC | on if pos. OK and time sync
POUT_TIMECODE | IRIG/AFNOR DCLS output
POUT_TIMESTR | COM port number in pulse_len field
POUT_10MHZ | 10 MHz fixed frequency
N_POUT_MODES

Definition at line 2582 of file gpsdefs.h.

anonymous enum

Enumerator:
MULTI_REF_NONE
MULTI_REF_GPS
MULTI_REF_10MHZ
MULTI_REF_PPS
MULTI_REF_10MHZ_PPS
MULTI_REF_IRIG
MULTI_REF_NTP
MULTI_REF_PTP
MULTI_REF_PTP_E1
MULTI_REF_FREQ
N_MULTI_REF

Definition at line 2777 of file gpsdefs.h.

anonymous enum

Enumerator:
WRN_MODULE_MODE
WRN_COLD_BOOT
WRN_WARM_BOOT
WRN_ANT_DISCONN
WRN_10MHZ_UNLOCK
WRN_1PPS_UNLOCK
WRN_GPS_UNLOCK
WRN_10MHZ_MISSING
WRN_1PPS_MISSING
N_MULTI_REF_STATUS_BITS

Definition at line 2881 of file gpsdefs.h.

anonymous enum

Enumerator:
XMRS_BIT_NOT_SUPP
XMRS_BIT_NO_CONN
XMRS_BIT_NO_SIGNAL
XMRS_BIT_IS_MASTER
XMRS_BIT_IS_LOCKED
XMRS_BIT_IS_ACCURATE
XMRS_BIT_NOT_SETTLED
N_XMRS_BITS

Definition at line 3009 of file gpsdefs.h.

anonymous enum

Enumerator:
SCU_CLK_INFO_GPS
SCU_CLK_INFO_DCF_PZF
SCU_CLK_INFO_DCF_AM
SCU_CLK_INFO_TCR

Definition at line 3137 of file gpsdefs.h.

anonymous enum

Enumerator:
LAN_IF_TYPE_XPORT
LAN_IF_TYPE_PTP
N_LAN_IF_TYPE

Definition at line 3316 of file gpsdefs.h.

anonymous enum

Enumerator:
IP4_BIT_DHCP
IP4_BIT_LINK
N_IP4_BIT

Definition at line 3326 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_NW_PROT_BIT_RESERVED
PTP_NW_PROT_BIT_UDP_IPV4
PTP_NW_PROT_BIT_UDP_IPV6
PTP_NW_PROT_BIT_IEEE_802_3
PTP_NW_PROT_BIT_DEVICE_NET
PTP_NW_PROT_BIT_CONTROL_NET
PTP_NW_PROT_BIT_PROFINET
N_PTP_NW_PROT

Definition at line 3337 of file gpsdefs.h.

anonymous enum

The codes below enumerate some features which may be supported by a given clock, or not.

Enumerator:
GPS_FEAT_PPS | has pulse per second output
GPS_FEAT_PPM | has pulse per minute output
GPS_FEAT_SYNTH | has programmable synthesizer output
GPS_FEAT_DCFMARKS | has DCF77 compatible time mark output
GPS_FEAT_IRIG_TX | has on-board IRIG output
GPS_FEAT_IRIG_RX | has on-board IRIG input
GPS_FEAT_LAN_IP4 | has LAN IPv4 interface
GPS_FEAT_MULTI_REF | has multiple input sources with priorities
GPS_FEAT_RCV_TIMEOUT | timeout after GPS reception has stopped
GPS_FEAT_IGNORE_LOCK | supports "ignore lock", alternatively MBG_OPT_BIT_EMU_SYNC may be supported
GPS_FEAT_5_MHZ | output 5 MHz rather than 100 kHz
GPS_FEAT_XMULTI_REF | has extended multiple input source configuration
GPS_FEAT_OPT_SETTINGS | supports MBG_OPT_SETTINGS
GPS_FEAT_TIME_SCALE | supports configurable time scale (UTC, TAI, GPS, ...)
GPS_FEAT_IRIG_CTRL_BITS | supports IRIG control bits
GPS_FEAT_PTP | has PTP support
GPS_FEAT_NAV_ENGINE_SETTINGS | supports navigation engine configuration
N_GPS_FEATURE | the number of valid features

Definition at line 708 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_PORT_STATE_UNINITIALIZED
PTP_PORT_STATE_INITIALIZING
PTP_PORT_STATE_FAULTY
PTP_PORT_STATE_DISABLED
PTP_PORT_STATE_LISTENING
PTP_PORT_STATE_PRE_MASTER
PTP_PORT_STATE_MASTER
PTP_PORT_STATE_PASSIVE
PTP_PORT_STATE_UNCALIBRATED
PTP_PORT_STATE_SLAVE
N_PTP_PORT_STATE

Definition at line 3374 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_DELAY_MECH_BIT_E2E
PTP_DELAY_MECH_BIT_P2P
N_PTP_DELAY_MECH

Definition at line 3411 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_CLOCK_ACCURACY_25ns
PTP_CLOCK_ACCURACY_100ns
PTP_CLOCK_ACCURACY_250ns
PTP_CLOCK_ACCURACY_1us
PTP_CLOCK_ACCURACY_2_5us
PTP_CLOCK_ACCURACY_10us
PTP_CLOCK_ACCURACY_25us
PTP_CLOCK_ACCURACY_100us
PTP_CLOCK_ACCURACY_250us
PTP_CLOCK_ACCURACY_1ms
PTP_CLOCK_ACCURACY_2_5ms
PTP_CLOCK_ACCURACY_10ms
PTP_CLOCK_ACCURACY_25ms
PTP_CLOCK_ACCURACY_100ms
PTP_CLOCK_ACCURACY_250ms
PTP_CLOCK_ACCURACY_1s
PTP_CLOCK_ACCURACY_10s
PTP_CLOCK_ACCURACY_MORE_10s
PTP_CLOCK_ACCURACY_RESERVED_1
PTP_CLOCK_ACCURACY_RESERVED_2
PTP_CLOCK_ACCURACY_RESERVED_3
PTP_CLOCK_ACCURACY_RESERVED_4
N_PTP_CLOCK_ACCURACY

Definition at line 3435 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_FLAG_BIT_SLAVE_ONLY
PTP_FLAG_BIT_IS_SLAVE
PTP_FLAG_BIT_TIMESCALE_IS_PTP
PTP_FLAG_BIT_LS_ANN
PTP_FLAG_BIT_LS_ANN_NEG
N_PTP_FLAG_BIT

Definition at line 3576 of file gpsdefs.h.

anonymous enum

Enumerator:
PTP_CFG_BIT_TIME_SCALE_IS_PTP
PTP_CFG_BIT_V1_HW_COMPAT
N_PTP_CFG_BIT

Definition at line 3685 of file gpsdefs.h.

anonymous enum

Enumerator:
GPS_PLATFORM_PORTABLE
GPS_PLATFORM_FIXED
GPS_PLATFORM_STATIONARY
GPS_PLATFORM_PEDESTRIAN
GPS_PLATFORM_AUTOMOTIVE
GPS_PLATFORM_SEA
GPS_PLATFORM_AIRBORNE_1G
GPS_PLATFORM_AIRBORNE_2G
GPS_PLATFORM_AIRBORNE_4G
N_GPS_PLATFORMS

Definition at line 3850 of file gpsdefs.h.

anonymous enum

Enumerator:
TIME_MODE_DISABLED
TIME_MODE_SURVEY_IN
TIME_MODE_FIXED

Definition at line 3880 of file gpsdefs.h.

anonymous enum

Enumerator:
TM_BIT_UTC
TM_BIT_LOCAL
TM_BIT_DL_ANN
TM_BIT_DL_ENB
TM_BIT_LS_ANN
TM_BIT_LS_ENB
TM_BIT_LS_ANN_NEG
TM_BIT_EXT_SYNC
TM_BIT_HOLDOVER
TM_BIT_ANT_SHORT
TM_BIT_NO_WARM
TM_BIT_ANT_DISCONN
TM_BIT_SYN_FLAG
TM_BIT_NO_SYNC
TM_BIT_NO_POS

Definition at line 906 of file gpsdefs.h.

anonymous enum

Enumerator:
TM_BIT_SCALE_GPS
TM_BIT_SCALE_TAI

Definition at line 932 of file gpsdefs.h.

anonymous enum

Enumerator:
XP
YP
ZP
N_XYZ

Definition at line 1010 of file gpsdefs.h.

anonymous enum

Enumerator:
LAT
LON
ALT
N_LLA

Definition at line 1023 of file gpsdefs.h.

anonymous enum

The status field may be set to one of the values below:

Enumerator:
ANT_INVALID | struct not set yet because ant. has not been disconn.
ANT_DISCONN | ant. now disconn., tm_reconn and delta_t not set
ANT_RECONN | ant. has been disconn. and reconn., all fields valid

Definition at line 1330 of file gpsdefs.h.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/gpsutils.h File Reference

  • Files

c/mbglib/include/gpsutils.h File Reference

#include <mbggeo.h>

Go to the source code of this file.

Defines

#define | _ext extern
#define | ANSI_C_DEGREE '°'
#define | ANSI_S_DEGREE "°"
#define | C_DEGREE 'ø'
#define | S_DEGREE "ø"

Functions

void | swap_double (double *d)
void | swap_eph_doubles (EPH *ephp)
void | swap_alm_doubles (ALM *almp)
void | swap_utc_doubles (UTC *utcp)
void | swap_iono_doubles (IONO *ionop)
void | swap_pos_doubles (POS *posp)
void | sprint_dms (char *s, DMS *pdms, int prec)
void | sprint_alt (char *s, double alt)
void | sprint_pos_geo (char *s, POS *ppos, const char *sep, int prec)
void | sprint_fixed_freq (char *s, FIXED_FREQ_INFO *p_ff)

Define Documentation

#define _ext extern

Definition at line 40 of file gpsutils.h.

#define ANSI_C_DEGREE '°'

Definition at line 46 of file gpsutils.h.

#define ANSI_S_DEGREE "°"

Definition at line 47 of file gpsutils.h.

#define C_DEGREE 'ø'

Definition at line 54 of file gpsutils.h.

#define S_DEGREE "ø"

Definition at line 55 of file gpsutils.h.

Function Documentation

void sprint_alt | ( | char * | s,
 |  | double | alt
 | ) |  |

void sprint_dms | ( | char * | s,
 |  | DMS * | pdms,
 |  | int | prec
 | ) |  |

void sprint_fixed_freq | ( | char * | s,
 |  | FIXED_FREQ_INFO * | p_ff
 | ) |  |

void sprint_pos_geo | ( | char * | s,
 |  | POS * | ppos,
 |  | const char * | sep,
 |  | int | prec
 | ) |  |

void swap_alm_doubles ( ALM * almp )

void swap_double ( double * d )

void swap_eph_doubles ( EPH * ephp )

void swap_iono_doubles ( IONO * ionop )

void swap_pos_doubles ( POS * posp )

void swap_utc_doubles ( UTC * utcp )

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbg_arch.h File Reference

  • Files

c/mbglib/include/mbg_arch.h File Reference

#include <mbg_tgt.h>

Go to the source code of this file.

Defines

#define | MBG_ARCH_LITTLE_ENDIAN 1
#define | _pcps_put_unaligned(_v, _p) ((void)( *(_p) = (_v) ))
#define | _pcps_get_unaligned(_p) (*(_p))
#define | __le16_to_cpu(_x) (_x)
#define | __le32_to_cpu(_x) (_x)
#define | __le64_to_cpu(_x) (_x)
#define | __cpu_to_le16(_x) (_x)
#define | __cpu_to_le32(_x) (_x)
#define | __cpu_to_le64(_x) (_x)
#define | _mbg8_to_cpu(_x) ( _x )
#define | _mbg16_to_cpu(_x) __le16_to_cpu( _x )
#define | _mbg32_to_cpu(_x) __le32_to_cpu( _x )
#define | _mbg64_to_cpu(_x) __le64_to_cpu( _x )
#define | _cpu_to_mbg8(_x) ( _x )
#define | _cpu_to_mbg16(_x) __cpu_to_le16( _x )
#define | _cpu_to_mbg32(_x) __cpu_to_le32( _x )
#define | _cpu_to_mbg64(_x) __cpu_to_le64( _x )
#define | _mbg_swab16(_p) _nop_macro_fnc()
#define | _mbg_swab32(_p) _nop_macro_fnc()
#define | _mbg_swab_double(_p) _nop_macro_fnc()
#define | _mbg_swab_doubles(_p, _n) _nop_macro_fnc()

Functions

static __mbg_inline void | mbg_swab_double (double *p)

Define Documentation

#define __cpu_to_le16 ( _x ) (_x)

Definition at line 82 of file mbg_arch.h.

#define __cpu_to_le32 ( _x ) (_x)

Definition at line 86 of file mbg_arch.h.

#define __cpu_to_le64 ( _x ) (_x)

Definition at line 90 of file mbg_arch.h.

#define __le16_to_cpu ( _x ) (_x)

Definition at line 70 of file mbg_arch.h.

#define __le32_to_cpu ( _x ) (_x)

Definition at line 74 of file mbg_arch.h.

#define __le64_to_cpu ( _x ) (_x)

Definition at line 78 of file mbg_arch.h.

#define _cpu_to_mbg16 ( _x ) __cpu_to_le16( _x )

Definition at line 104 of file mbg_arch.h.

#define _cpu_to_mbg32 ( _x ) __cpu_to_le32( _x )

Definition at line 105 of file mbg_arch.h.

#define _cpu_to_mbg64 ( _x ) __cpu_to_le64( _x )

Definition at line 106 of file mbg_arch.h.

#define _cpu_to_mbg8 ( _x ) ( _x )

Definition at line 103 of file mbg_arch.h.

#define _mbg16_to_cpu ( _x ) __le16_to_cpu( _x )

Definition at line 99 of file mbg_arch.h.

#define _mbg32_to_cpu ( _x ) __le32_to_cpu( _x )

Definition at line 100 of file mbg_arch.h.

#define _mbg64_to_cpu ( _x ) __le64_to_cpu( _x )

Definition at line 101 of file mbg_arch.h.

#define _mbg8_to_cpu ( _x ) ( _x )

Definition at line 98 of file mbg_arch.h.

#define _mbg_swab16 ( _p ) _nop_macro_fnc()

Definition at line 148 of file mbg_arch.h.

#define _mbg_swab32 ( _p ) _nop_macro_fnc()

Definition at line 149 of file mbg_arch.h.

#define _mbg_swab_double ( _p ) _nop_macro_fnc()

Definition at line 151 of file mbg_arch.h.

#define _mbg_swab_doubles | ( | _p,
 |  | _n | ) | _nop_macro_fnc()

Definition at line 153 of file mbg_arch.h.

#define _pcps_get_unaligned ( _p ) (*(_p))

Definition at line 61 of file mbg_arch.h.

#define _pcps_put_unaligned | ( | _v,
 |  | _p | ) | ((void)( *(_p) = (_v) ))

Definition at line 57 of file mbg_arch.h.

#define MBG_ARCH_LITTLE_ENDIAN 1

Definition at line 32 of file mbg_arch.h.

Function Documentation

static __mbg_inline void mbg_swab_double ( double * p ) [static]

Definition at line 113 of file mbg_arch.h.

References BYTE_OF.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbg_tgt.h File Reference

  • Files

c/mbglib/include/mbg_tgt.h File Reference

#include <stddef.h>

Go to the source code of this file.

Defines

#define | _ext extern
#define | MBG_ARCH_I386
#define | __mbg_inline
#define | MBG_INVALID_HANDLE -1
#define | _MBG_API
#define | _MBG_API_ATTR
#define | MBG_USE_MM_IO_FOR_PCI 0
#define | _nop_macro_fnc() do {} while (0)
#define | MBG_TGT_C94 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199409L ) )
#define | MBG_TGT_C99 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199901L ) )
#define | MBG_TGT_HAS_WCHAR_T ( MBG_TGT_C94 || defined( WCHAR_MAX ) )
#define | wchar_t char

Typedefs

typedef int | MBG_HANDLE
typedef int | MBG_PORT_HANDLE

Define Documentation

#define __mbg_inline

Definition at line 246 of file mbg_tgt.h.

#define _ext extern

Definition at line 81 of file mbg_tgt.h.

#define _MBG_API

Definition at line 331 of file mbg_tgt.h.

#define _MBG_API_ATTR

Definition at line 335 of file mbg_tgt.h.

#define _nop_macro_fnc ( ) do {} while (0)

Definition at line 349 of file mbg_tgt.h.

#define MBG_ARCH_I386

Definition at line 240 of file mbg_tgt.h.

#define MBG_INVALID_HANDLE -1

Definition at line 325 of file mbg_tgt.h.

#define MBG_TGT_C94 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199409L ) )

Definition at line 355 of file mbg_tgt.h.

#define MBG_TGT_C99 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199901L ) )

Definition at line 356 of file mbg_tgt.h.

#define MBG_TGT_HAS_WCHAR_T ( MBG_TGT_C94 || defined( WCHAR_MAX ) )

Definition at line 360 of file mbg_tgt.h.

#define MBG_USE_MM_IO_FOR_PCI 0

Definition at line 343 of file mbg_tgt.h.

#define wchar_t char

Definition at line 370 of file mbg_tgt.h.

Typedef Documentation

typedef int MBG_HANDLE

Definition at line 322 of file mbg_tgt.h.

typedef int MBG_PORT_HANDLE

Definition at line 323 of file mbg_tgt.h.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgdevio.h File Reference

  • Files

c/mbglib/include/mbgdevio.h File Reference

#include <mbggeo.h>
#include <mbg_tgt.h>
#include <mbg_arch.h>
#include <mbgerror.h>
#include <pcpsdev.h>
#include <pci_asic.h>
#include <use_pack.h>
#include <time.h>
#include <pcpsdrvr.h>

Go to the source code of this file.

Data Structures

struct | MBG_THREAD_INFO
struct | MBG_XHRT_VARS
struct | MBG_XHRT_INFO
struct | MBG_POLL_THREAD_INFO
struct | _MBG_DEVICE_LIST
struct | _MBG_DEVICENAME_LIST

Defines

#define | MBGDEVIO_VERSION 0x0306
#define | MBGDEVIO_COMPAT_VERSION 0x0210
#define | MBG_MAX_DEVICES 8
#define | MBGDEVIO_XHRT_API 0
#define | MBGDEVIO_USE_THREAD_API 0
#define | MBGDEVIO_HAVE_THREAD_AFFINITY 0
#define | _ext extern
#define | MBGDEVIO_SIMPLE 0
#define | MBG_INVALID_DEV_HANDLE NULL
#define | FILETIME int
#define | MBG_PROCESS_ID int
#define | _mbg_get_current_process() 0
#define | MBG_CPU_SET int
#define | MBG_CPU_SET_SIZE ( sizof( MBG_CPU_SET ) * 8 )
#define | _mbg_cpu_clear(_ps) ( *(_ps) = 0 )
#define | _mbg_cpu_set(_i, _ps) ( *(_ps) |= ( 1UL << (_i) ) )
#define | _mbg_cpu_isset(_i, _ps) ( *(_ps) & ( 1UL << (_i) ) )
#define | MBG_THREAD_ID int
#define | _mbg_get_current_thread() 0
#define | MBG_THREAD_FNC_ATTR
#define | MBG_THREAD_FNC_RET_VAL void
#define | _mbg_thread_exit(_v) _nop_macro_fnc()
#define | MBG_MUTEX int
#define | _mbg_mutex_init(_pm) _nop_macro_fnc()
#define | _mbg_mutex_deinit(_pm) _nop_macro_fnc()
#define | _mbg_mutex_lock(_pm) _nop_macro_fnc()
#define | _mbg_mutex_unlock(_pm) _nop_macro_fnc()
#define | _mbg_generic_read_var(_dh, _cmd, _s) mbg_generic_read( _dh, _cmd, &(_s), sizeof( (_s) ) )
#define | _mbg_generic_write_var(_dh, _cmd, _s) mbg_generic_write( _dh, _cmd, &(_s), sizeof( (_s) ) )
#define | _mbg_generic_read_gps_var(_dh, _cmd, _s) mbg_generic_read_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )
#define | _mbg_generic_write_gps_var(_dh, _cmd, _s) mbg_generic_write_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )

Typedefs

typedef PCPS_DDEV * | MBG_DEV_HANDLE
typedef struct _MBG_DEVICE_LIST | MBG_DEVICE_LIST
typedef struct _MBG_DEVICENAME_LIST | MBG_DEVICENAME_LIST

Enumerations

enum | MBG_MATCH_MODE { MBG_MATCH_ANY, MBG_MATCH_MODEL, MBG_MATCH_EXACTLY, N_MBG_MATCH_MODE }

Functions

_MBG_API_ATTR int _MBG_API | mbgdevio_get_version (void)
_MBG_API_ATTR int _MBG_API | mbgdevio_check_version (int header_version)
_MBG_API_ATTR MBG_DEV_HANDLE
_MBG_API 		mbg_open_device (unsigned int device_index)
_MBG_API_ATTR int _MBG_API | mbg_find_devices (void)
_MBG_API_ATTR int _MBG_API | mbg_find_devices_with_names (MBG_DEVICENAME_LIST **device_list, int max_devices)
_MBG_API_ATTR void _MBG_API | mbg_free_device_name_list (MBG_DEVICENAME_LIST *list)
_MBG_API_ATTR MBG_DEV_HANDLE
_MBG_API 		mbg_open_device_by_name (const char *hw_name, int selection_mode)
_MBG_API_ATTR void _MBG_API | mbg_close_device (MBG_DEV_HANDLE *dev_handle)
_MBG_API_ATTR int _MBG_API | mbg_get_drvr_info (MBG_DEV_HANDLE dh, PCPS_DRVR_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_get_device_info (MBG_DEV_HANDLE dh, PCPS_DEV *p)
_MBG_API_ATTR int _MBG_API | mbg_get_status_port (MBG_DEV_HANDLE dh, PCPS_STATUS_PORT *p)
_MBG_API_ATTR int _MBG_API | mbg_generic_read (MBG_DEV_HANDLE dh, int cmd, void *p, int size)
_MBG_API_ATTR int _MBG_API | mbg_generic_read_gps (MBG_DEV_HANDLE dh, int cmd, void *p, int size)
_MBG_API_ATTR int _MBG_API | mbg_generic_write (MBG_DEV_HANDLE dh, int cmd, const void *p, int size)
_MBG_API_ATTR int _MBG_API | mbg_generic_write_gps (MBG_DEV_HANDLE dh, int cmd, const void *p, int size)
_MBG_API_ATTR int _MBG_API | mbg_generic_io (MBG_DEV_HANDLE dh, int type, const void *in_p, int in_sz, void *out_p, int out_sz)
_MBG_API_ATTR int _MBG_API | mbg_get_time (MBG_DEV_HANDLE dh, PCPS_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_set_time (MBG_DEV_HANDLE dh, const PCPS_STIME *p)
_MBG_API_ATTR int _MBG_API | mbg_get_sync_time (MBG_DEV_HANDLE dh, PCPS_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_get_time_sec_change (MBG_DEV_HANDLE dh, PCPS_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_get_hr_time (MBG_DEV_HANDLE dh, PCPS_HR_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_set_event_time (MBG_DEV_HANDLE dh, const PCPS_TIME_STAMP *p)
_MBG_API_ATTR int _MBG_API | mbg_get_serial (MBG_DEV_HANDLE dh, PCPS_SERIAL *p)
_MBG_API_ATTR int _MBG_API | mbg_set_serial (MBG_DEV_HANDLE dh, const PCPS_SERIAL *p)
_MBG_API_ATTR int _MBG_API | mbg_get_tzcode (MBG_DEV_HANDLE dh, PCPS_TZCODE *p)
_MBG_API_ATTR int _MBG_API | mbg_set_tzcode (MBG_DEV_HANDLE dh, const PCPS_TZCODE *p)
_MBG_API_ATTR int _MBG_API | mbg_get_pcps_tzdl (MBG_DEV_HANDLE dh, PCPS_TZDL *p)
_MBG_API_ATTR int _MBG_API | mbg_set_pcps_tzdl (MBG_DEV_HANDLE dh, const PCPS_TZDL *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ref_offs (MBG_DEV_HANDLE dh, MBG_REF_OFFS *p)
_MBG_API_ATTR int _MBG_API | mbg_set_ref_offs (MBG_DEV_HANDLE dh, const MBG_REF_OFFS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_opt_info (MBG_DEV_HANDLE dh, MBG_OPT_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_opt_settings (MBG_DEV_HANDLE dh, const MBG_OPT_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_irig_rx_info (MBG_DEV_HANDLE dh, IRIG_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_irig_rx_settings (MBG_DEV_HANDLE dh, const IRIG_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_irig_ctrl_bits (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_irig_ctrl_bits (MBG_DEV_HANDLE dh, MBG_IRIG_CTRL_BITS *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_irig_time (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_irig_time (MBG_DEV_HANDLE dh, PCPS_IRIG_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_clr_ucap_buff (MBG_DEV_HANDLE dh)
_MBG_API_ATTR int _MBG_API | mbg_get_ucap_entries (MBG_DEV_HANDLE dh, PCPS_UCAP_ENTRIES *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ucap_event (MBG_DEV_HANDLE dh, PCPS_HR_TIME *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_tzdl (MBG_DEV_HANDLE dh, TZDL *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_tzdl (MBG_DEV_HANDLE dh, const TZDL *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_sw_rev (MBG_DEV_HANDLE dh, SW_REV *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_bvar_stat (MBG_DEV_HANDLE dh, BVAR_STAT *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_time (MBG_DEV_HANDLE dh, TTM *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_time (MBG_DEV_HANDLE dh, const TTM *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_port_parm (MBG_DEV_HANDLE dh, PORT_PARM *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_port_parm (MBG_DEV_HANDLE dh, const PORT_PARM *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_ant_info (MBG_DEV_HANDLE dh, ANT_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_ucap (MBG_DEV_HANDLE dh, TTM *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_enable_flags (MBG_DEV_HANDLE dh, ENABLE_FLAGS *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_enable_flags (MBG_DEV_HANDLE dh, const ENABLE_FLAGS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_stat_info (MBG_DEV_HANDLE dh, STAT_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_cmd (MBG_DEV_HANDLE dh, const GPS_CMD *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_pos (MBG_DEV_HANDLE dh, POS *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_pos_xyz (MBG_DEV_HANDLE dh, const XYZ p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_pos_lla (MBG_DEV_HANDLE dh, const LLA p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_ant_cable_len (MBG_DEV_HANDLE dh, ANT_CABLE_LEN *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_ant_cable_len (MBG_DEV_HANDLE dh, const ANT_CABLE_LEN *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_receiver_info (MBG_DEV_HANDLE dh, RECEIVER_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_port_settings_idx (MBG_DEV_HANDLE dh, const PORT_SETTINGS_IDX *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_port_settings (MBG_DEV_HANDLE dh, const PORT_SETTINGS *p, int idx)
_MBG_API_ATTR int _MBG_API | mbg_setup_receiver_info (MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_get_serial_settings (MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_PORT_CFG *pcfg, const RECEIVER_INFO *p_ri)
_MBG_API_ATTR int _MBG_API | mbg_save_serial_settings (MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_PORT_CFG *pcfg, int port_num)
_MBG_API_ATTR int _MBG_API | mbg_get_asic_version (MBG_DEV_HANDLE dh, PCI_ASIC_VERSION *p)
_MBG_API_ATTR int _MBG_API | mbg_get_asic_features (MBG_DEV_HANDLE dh, PCI_ASIC_FEATURES *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_time_scale (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_time_scale_info (MBG_DEV_HANDLE dh, MBG_TIME_SCALE_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_time_scale_settings (MBG_DEV_HANDLE dh, MBG_TIME_SCALE_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_utc_parm (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_utc_parm (MBG_DEV_HANDLE dh, UTC *p)
_MBG_API_ATTR int _MBG_API | mbg_set_utc_parm (MBG_DEV_HANDLE dh, UTC *p)
_MBG_API_ATTR int _MBG_API | mbg_get_time_cycles (MBG_DEV_HANDLE dh, PCPS_TIME_CYCLES *p)
_MBG_API_ATTR int _MBG_API | mbg_get_hr_time_cycles (MBG_DEV_HANDLE dh, PCPS_HR_TIME_CYCLES *p)
_MBG_API_ATTR int _MBG_API | mbg_get_hr_time_comp (MBG_DEV_HANDLE dh, PCPS_HR_TIME *p, int32_t *hns_latency)
_MBG_API_ATTR int _MBG_API | mbg_get_irig_tx_info (MBG_DEV_HANDLE dh, IRIG_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_irig_tx_settings (MBG_DEV_HANDLE dh, const IRIG_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_synth (MBG_DEV_HANDLE dh, SYNTH *p)
_MBG_API_ATTR int _MBG_API | mbg_set_synth (MBG_DEV_HANDLE dh, const SYNTH *p)
_MBG_API_ATTR int _MBG_API | mbg_get_synth_state (MBG_DEV_HANDLE dh, SYNTH_STATE *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_fast_hr_timestamp (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_fast_hr_timestamp_cycles (MBG_DEV_HANDLE dh, PCPS_TIME_STAMP_CYCLES *p)
_MBG_API_ATTR int _MBG_API | mbg_get_fast_hr_timestamp_comp (MBG_DEV_HANDLE dh, PCPS_TIME_STAMP *p, int32_t *hns_latency)
_MBG_API_ATTR int _MBG_API | mbg_get_fast_hr_timestamp (MBG_DEV_HANDLE dh, PCPS_TIME_STAMP *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_gps (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_dcf (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_msf (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_wwvb (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_lwr (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_is_irig_rx (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_hr_time (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_cab_len (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_tzdl (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_pcps_tzdl (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_tzcode (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_tz (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_event_time (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_receiver_info (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_can_clr_ucap_buff (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_ucap (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_irig_tx (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_serial_hs (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_signal (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_mod (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_irig (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_ref_offs (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_opt_flags (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_gps_data (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_synth (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_generic_io (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_asic_version (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_asic_features (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_gps_all_pout_info (MBG_DEV_HANDLE dh, POUT_INFO_IDX pii[], const RECEIVER_INFO *p_ri)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_pout_settings_idx (MBG_DEV_HANDLE dh, const POUT_SETTINGS_IDX *p)
_MBG_API_ATTR int _MBG_API | mbg_set_gps_pout_settings (MBG_DEV_HANDLE dh, const POUT_SETTINGS *p, int idx)
_MBG_API_ATTR int _MBG_API | mbg_get_irq_stat_info (MBG_DEV_HANDLE dh, PCPS_IRQ_STAT_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_lan_intf (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_lan_if_info (MBG_DEV_HANDLE dh, LAN_IF_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ip4_state (MBG_DEV_HANDLE dh, IP4_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ip4_settings (MBG_DEV_HANDLE dh, IP4_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_set_ip4_settings (MBG_DEV_HANDLE dh, const IP4_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_dev_has_ptp (MBG_DEV_HANDLE dh, int *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ptp_state (MBG_DEV_HANDLE dh, PTP_STATE *p)
_MBG_API_ATTR int _MBG_API | mbg_get_ptp_cfg_info (MBG_DEV_HANDLE dh, PTP_CFG_INFO *p)
_MBG_API_ATTR int _MBG_API | mbg_set_ptp_cfg_settings (MBG_DEV_HANDLE dh, const PTP_CFG_SETTINGS *p)
_MBG_API_ATTR int _MBG_API | mbg_get_process_affinity (MBG_PROCESS_ID pid, MBG_CPU_SET *p)
_MBG_API_ATTR int _MBG_API | mbg_set_process_affinity (MBG_PROCESS_ID pid, MBG_CPU_SET *p)
_MBG_API_ATTR int _MBG_API | mbg_set_current_process_affinity_to_cpu (int cpu_num)
_MBG_API_ATTR int _MBG_API | mbg_thread_create (MBG_THREAD_INFO *p_ti, MBG_THREAD_FNC_RET_VAL(MBG_THREAD_FNC_ATTR *fnc)(void *), void *arg)
_MBG_API_ATTR int _MBG_API | mbg_thread_stop (MBG_THREAD_INFO *p_ti)
_MBG_API_ATTR int _MBG_API | mbg_thread_sleep_interruptible (MBG_THREAD_INFO *p_ti, ulong sleep_ms)
_MBG_API_ATTR int _MBG_API | mbg_thread_set_affinity (MBG_THREAD_INFO *p_ti, MBG_CPU_SET *p)
_MBG_API_ATTR int _MBG_API | mbg_xhrt_poll_thread_create (MBG_POLL_THREAD_INFO *p_pti, MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY freq_hz, int sleep_ms)
_MBG_API_ATTR int _MBG_API | mbg_xhrt_poll_thread_stop (MBG_POLL_THREAD_INFO *p_pti)
_MBG_API_ATTR int _MBG_API | mbg_get_xhrt_time_as_pcps_hr_time (MBG_XHRT_INFO *p, PCPS_HR_TIME *p_hrt)
_MBG_API_ATTR int _MBG_API | mbg_get_xhrt_time_as_filetime (MBG_XHRT_INFO *p, FILETIME *p_ft)
_MBG_API_ATTR int _MBG_API | mbg_get_xhrt_cycles_frequency (MBG_XHRT_INFO *p, MBG_PC_CYCLES_FREQUENCY *p_freq_hz)
_MBG_API_ATTR int _MBG_API | mbg_get_default_cycles_frequency_from_dev (MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY *p)
_MBG_API_ATTR
MBG_PC_CYCLES_FREQUENCY
_MBG_API 		mbg_get_default_cycles_frequency (void)
static __mbg_inline void | mbg_init_pc_cycles_frequency (MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY *p)

Define Documentation

#define _ext extern

Definition at line 231 of file mbgdevio.h.

#define _mbg_cpu_clear ( _ps ) ( *(_ps) = 0 )

Definition at line 345 of file mbgdevio.h.

#define _mbg_cpu_isset | ( | _i,
 |  | _ps | ) | ( *(_ps) & ( 1UL << (_i) ) )

Definition at line 353 of file mbgdevio.h.

#define _mbg_cpu_set | ( | _i,
 |  | _ps | ) | ( *(_ps) |= ( 1UL << (_i) ) )

Definition at line 349 of file mbgdevio.h.

#define _mbg_generic_read_gps_var | ( | _dh,
 |  | _cmd,
 |  | _s | ) | mbg_generic_read_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )

Definition at line 473 of file mbgdevio.h.

#define _mbg_generic_read_var | ( | _dh,
 |  | _cmd,
 |  | _s | ) | mbg_generic_read( _dh, _cmd, &(_s), sizeof( (_s) ) )

Definition at line 467 of file mbgdevio.h.

Referenced by show_irig_debug_status().

#define _mbg_generic_write_gps_var | ( | _dh,
 |  | _cmd,
 |  | _s | ) | mbg_generic_write_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )

Definition at line 476 of file mbgdevio.h.

#define _mbg_generic_write_var | ( | _dh,
 |  | _cmd,
 |  | _s | ) | mbg_generic_write( _dh, _cmd, &(_s), sizeof( (_s) ) )

Definition at line 470 of file mbgdevio.h.

#define _mbg_get_current_process ( ) 0

Definition at line 333 of file mbgdevio.h.

#define _mbg_get_current_thread ( ) 0

Definition at line 362 of file mbgdevio.h.

#define _mbg_mutex_deinit ( _pm ) _nop_macro_fnc()

Definition at line 387 of file mbgdevio.h.

#define _mbg_mutex_init ( _pm ) _nop_macro_fnc()

Definition at line 383 of file mbgdevio.h.

#define _mbg_mutex_lock ( _pm ) _nop_macro_fnc()

Definition at line 391 of file mbgdevio.h.

#define _mbg_mutex_unlock ( _pm ) _nop_macro_fnc()

Definition at line 395 of file mbgdevio.h.

#define _mbg_thread_exit ( _v ) _nop_macro_fnc()

Definition at line 374 of file mbgdevio.h.

#define FILETIME int

Definition at line 323 of file mbgdevio.h.

#define MBG_CPU_SET int

Definition at line 337 of file mbgdevio.h.

#define MBG_CPU_SET_SIZE ( sizof( MBG_CPU_SET ) * 8 )

Definition at line 341 of file mbgdevio.h.

#define MBG_INVALID_DEV_HANDLE NULL

Definition at line 261 of file mbgdevio.h.

Referenced by main(), and print_drvr_info().

#define MBG_MAX_DEVICES 8

Definition at line 157 of file mbgdevio.h.

#define MBG_MUTEX int

Definition at line 379 of file mbgdevio.h.

#define MBG_PROCESS_ID int

Definition at line 329 of file mbgdevio.h.

#define MBG_THREAD_FNC_ATTR

Definition at line 366 of file mbgdevio.h.

#define MBG_THREAD_FNC_RET_VAL void

Definition at line 370 of file mbgdevio.h.

#define MBG_THREAD_ID int

Definition at line 358 of file mbgdevio.h.

#define MBGDEVIO_COMPAT_VERSION 0x0210

Definition at line 155 of file mbgdevio.h.

#define MBGDEVIO_HAVE_THREAD_AFFINITY 0

Definition at line 225 of file mbgdevio.h.

#define MBGDEVIO_SIMPLE 0

Definition at line 247 of file mbgdevio.h.

#define MBGDEVIO_USE_THREAD_API 0

Definition at line 221 of file mbgdevio.h.

#define MBGDEVIO_VERSION 0x0306

Definition at line 153 of file mbgdevio.h.

Referenced by main().

#define MBGDEVIO_XHRT_API 0

Definition at line 217 of file mbgdevio.h.

Typedef Documentation

typedef PCPS_DDEV* MBG_DEV_HANDLE

Definition at line 259 of file mbgdevio.h.

typedef struct _MBG_DEVICE_LIST MBG_DEVICE_LIST

typedef struct _MBG_DEVICENAME_LIST MBG_DEVICENAME_LIST

Enumeration Type Documentation

enum MBG_MATCH_MODE

Match modes to decide how to proceed if a certain model type with certain serial number can not be found

Enumerator:
MBG_MATCH_ANY | open the next available device on the system
MBG_MATCH_MODEL | open the next available device on the system with the same clock type
MBG_MATCH_EXACTLY | force opening exactly the requested device otherwise exit with failure
N_MBG_MATCH_MODE | number of known modes

Definition at line 439 of file mbgdevio.h.

Function Documentation

_MBG_API_ATTR void _MBG_API mbg_close_device ( MBG_DEV_HANDLE * dev_handle )

Close a handle to a device and set the handle value to MBG_INVALID_DEV_HANDLE. If required, unmap mapped memory.

Parameters:
dev_handle Handle to a Meinberg device.

Referenced by main(), and print_drvr_info().

_MBG_API_ATTR int _MBG_API mbg_clr_ucap_buff ( MBG_DEV_HANDLE dh )

Clear the card's on-board time capture FIFO buffer. The macro _pcps_can_clr_ucap_buff() or the API call mbg_dev_can_clr_ucap_buff() check whether this call is supported by a specific card.

Parameters:
dh Valid handle to a Meinberg device
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_can_clr_ucap_buff()

mbg_get_ucap_entries()

mbg_get_ucap_event()

Referenced by check_user_captures().

_MBG_API_ATTR int _MBG_API mbg_dev_can_clr_ucap_buff | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_clr_ucap_buff() call used to clear a card's on-board time capture FIFO buffer.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_clr_ucap_buff()

_MBG_API_ATTR int _MBG_API mbg_dev_has_asic_features | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_asic_features() call.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_asic_features()

_MBG_API_ATTR int _MBG_API mbg_dev_has_asic_version | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_asic_version() call.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_asic_version()

_MBG_API_ATTR int _MBG_API mbg_dev_has_cab_len | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports configuration of antenna cable length.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_gps_ant_cable_len()

mbg_set_gps_ant_cable_len()

_MBG_API_ATTR int _MBG_API mbg_dev_has_event_time | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_dev_has_fast_hr_timestamp | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_fast_hr_timestamp_...() calls.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_fast_hr_timestamp_cycles()

mbg_get_fast_hr_timestamp_comp()

mbg_get_fast_hr_timestamp()

_MBG_API_ATTR int _MBG_API mbg_dev_has_generic_io | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_dev_has_gps_data | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports large configuration data structures as have been introducesde with the GPS receivers.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_has_hr_time | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the HR_TIME functions.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_hr_time()

mbg_get_hr_time_cycles()

mbg_get_hr_time_comp()

_MBG_API_ATTR int _MBG_API mbg_dev_has_irig | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides either an IRIG input or output.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_is_irig_rx()

mbg_dev_has_irig_tx()

_MBG_API_ATTR int _MBG_API mbg_dev_has_irig_ctrl_bits | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_irig_ctrl_bits() call.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_ctrl_bits()

_MBG_API_ATTR int _MBG_API mbg_dev_has_irig_time | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_irig_time() call.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_time()

_MBG_API_ATTR int _MBG_API mbg_dev_has_irig_tx | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides an IRIG output which can be configured.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_tx_info()

mbg_set_irig_tx_settings()

mbg_dev_is_irig_rx()

mbg_dev_has_irig()

Irig Codes

_MBG_API_ATTR int _MBG_API mbg_dev_has_lan_intf | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides simple LAN interface API calls.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_lan_if_info()

mbg_get_ip4_state()

mbg_get_ip4_settings()

mbg_set_ip4_settings()

_MBG_API_ATTR int _MBG_API mbg_dev_has_mod | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides an modulation signal which may be displayed, e.g. the second marks of a DCF77 AM receiver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_has_opt_flags | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the MBG_OPT_INFO/MBG_OPT_SETTINGS structures containing optional settings, controlled by flags.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_opt_info()

mbg_set_opt_settings()

_MBG_API_ATTR int _MBG_API mbg_dev_has_pcps_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports timezone / daylight saving configuration using the PCPS_TZDL structure.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_pcps_tzdl()

mbg_set_pcps_tzdl()

mbg_dev_has_tz()

_MBG_API_ATTR int _MBG_API mbg_dev_has_ptp | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides PTP configuration/status calls.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_ptp_state()

mbg_get_ptp_cfg_info()

mbg_set_ptp_cfg_settings()

_MBG_API_ATTR int _MBG_API mbg_dev_has_receiver_info | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the RECEIVER_INFO structure and related calls. Older GPS devices may not support that structure.

The mbg_get_gps_receiver_info() call uses this call to decide whether a RECEIVER_INFO can be read directly from a device, or whether a default structure has to be set up using default values depending on the device type.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_gps_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_dev_has_ref_offs | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides a configurable ref time offset required to convert the received time to UTC.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_ref_offs()

mbg_set_ref_offs()

_MBG_API_ATTR int _MBG_API mbg_dev_has_serial_hs | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_dev_has_signal | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides an input signal level value which may be displayed, e.g. DCF77 or IRIG cards.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_has_synth | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device provides a programmable frequency synthesizer.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_synth()

mbg_set_synth()

_MBG_API_ATTR int _MBG_API mbg_dev_has_time_scale | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports configurable time scales.

By default the cards return UTC and/or local time. However, some cards can be configured to return pure GPS time or TAI instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_time_scale_info()

mbg_set_time_scale_settings()

_MBG_API_ATTR int _MBG_API mbg_dev_has_tz | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports any kind of timezone configuration. This can be used e.g. to check if a specifig dialog or menu has to be displayed.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_tzdl()

mbg_dev_has_pcps_tzdl()

mbg_dev_has_tzcode()

_MBG_API_ATTR int _MBG_API mbg_dev_has_tzcode | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports timezone configuration using the PCPS_TZCODE type.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_tzcode()

mbg_set_tzcode()

mbg_dev_has_tz()

_MBG_API_ATTR int _MBG_API mbg_dev_has_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports timezone / daylight saving configuration using the TZDL structure.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_gps_tzdl()

mbg_set_gps_tzdl()

mbg_dev_has_tz()

_MBG_API_ATTR int _MBG_API mbg_dev_has_ucap | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports the mbg_get_ucap_entries() and mbg_get_ucap_event() calls.

If the card does not but it is a GPS card then the card provides a time capture FIFO buffer and the obsolete mbg_get_gps_ucap() call can be used to retrieve entries from the FIFO buffer.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_ucap_entries()

mbg_get_ucap_event()

mbg_clr_ucap_buff()

mbg_get_gps_ucap()

_MBG_API_ATTR int _MBG_API mbg_dev_has_utc_parm | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device supports reading/writing a GPS UTC parameter set via the PC bus (reading/writing these parameters via the serial port is supported by all GPS devices).

The UTC parameters are normally received from the satellites' broadcasts and contain the current time offset between GPT time and UTC, plus information on a pending leap second.

It may be useful to overwrite them to do some tests, or for applications where a card is freewheeling.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_utc_parm()

mbg_set_utc_parm()

_MBG_API_ATTR int _MBG_API mbg_dev_is_dcf | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is a DCF77 receiver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_is_gps | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is a GPS receiver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_is_irig_rx | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is an IRIG receiver which supports configuration of the IRIG input.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_rx_info()

mbg_set_irig_rx_settings()

mbg_dev_has_irig_tx()

mbg_dev_has_irig()

_MBG_API_ATTR int _MBG_API mbg_dev_is_lwr | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is a long wave signal receiver, e.g. DCF77, MSF or WWVB.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_is_msf | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is a MSF receiver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_dev_is_wwvb | ( | MBG_DEV_HANDLE | dh,
 |  | int * | p
 | ) |  |

Check if a specific device is a WWVB receiver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an int which is set 0 or != 0 unless the call fails.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_find_devices ( void )

Get the number of supported devices installed on the computer. This function is out of date, mbg_find_devices_with_names() should be used instead.

Note: This function is out of date since it may not work correctly for Meinberg devices which are disconnected and reconnected while the system is running (e.g. USB devices). However, the function will be kept for compatibility reasons and works correctly if all Meinberg devices are connected at system boot and are not disconnected and reconnected during operation

Returns:
The number of devices found.
See also:
mbg_find_devices_with_names()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_find_devices_with_names | ( | MBG_DEVICENAME_LIST ** | device_list,
 |  | int | max_devices
 | ) |  |

Return the number of supported devices installed on the system and set up a list of unique names of those devices.

This function should be used preferably instead of mbg_find_devices().

Parameters:
device_list | Pointer to a linked list of type MBG_DEVICENAME_LIST with device names. The list will be allocated by this function and has to be freed after usage by calling mbg_free_device_name_list().
max_devices | Maximum number of devices the function should look for (can not exceed MBG_MAX_DEVICES).
Returns:
Number of present devices
See also:
MBG_HW_NAME for the format of the unique names

mbg_free_device_name_list()

mbg_find_devices()

_MBG_API_ATTR void _MBG_API mbg_free_device_name_list ( MBG_DEVICENAME_LIST * list )

Free the memory of the MBG_DEVICENAME_LIST that has been allocated before by mbg_find_devices_with_names().

Parameters:
*list Linked list of type MBG_DEVICENAME_LIST
See also:
mbg_find_devices_with_names()

_MBG_API_ATTR int _MBG_API mbg_generic_io | ( | MBG_DEV_HANDLE | dh,
 |  | int | type,
 |  | const void * | in_p,
 |  | int | in_sz,
 |  | void * | out_p,
 |  | int | out_sz
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_generic_read | ( | MBG_DEV_HANDLE | dh,
 |  | int | cmd,
 |  | void * | p,
 |  | int | size
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_generic_read_gps | ( | MBG_DEV_HANDLE | dh,
 |  | int | cmd,
 |  | void * | p,
 |  | int | size
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_generic_write | ( | MBG_DEV_HANDLE | dh,
 |  | int | cmd,
 |  | const void * | p,
 |  | int | size
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_generic_write_gps | ( | MBG_DEV_HANDLE | dh,
 |  | int | cmd,
 |  | const void * | p,
 |  | int | size
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_get_asic_features | ( | MBG_DEV_HANDLE | dh,
 |  | PCI_ASIC_FEATURES * | p
 | ) |  |

Read the features of the on-board PCI/PCIe interface ASIC. The macro _pcps_has_asic_features() or the API call mbg_dev_has_asic_features() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a PCI_ASIC_FEATURES type to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_asic_features()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_asic_version | ( | MBG_DEV_HANDLE | dh,
 |  | PCI_ASIC_VERSION * | p
 | ) |  |

Read the version code of the on-board PCI/PCIe interface ASIC. The macro _pcps_has_asic_version() or the API call mbg_dev_has_asic_version() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCI_ASIC_VERSION type to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function
See also:
mbg_dev_has_asic_version()

_MBG_API_ATTR MBG_PC_CYCLES_FREQUENCY _MBG_API mbg_get_default_cycles_frequency ( void )

Retrieve the default system's cycles counter frequency. This may not be supported on all taget platforms, in which case the returned frequency is 0 and the mbg_get_default_cycles_frequency_from_dev() call should be used.

Parameters:
dh | handle of the device to which the IOCTL call is sent.
*p | Pointer of a MBG_PC_CYCLES_FREQUENCY variable to be filled up.
Returns:
the default cycles counter frequency in Hz, or 0 if the value is not available.
See also:
mbg_get_default_cycles_frequency()

_MBG_API_ATTR int _MBG_API mbg_get_default_cycles_frequency_from_dev | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_PC_CYCLES_FREQUENCY * | p
 | ) |  |

Retrieve the default system's cycles counter frequency from the kernel driver.

Parameters:
dh | handle of the device to which the IOCTL call is sent.
*p | Pointer of a MBG_PC_CYCLES_FREQUENCY variable to be filled up.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_default_cycles_frequency()

Referenced by mbg_init_pc_cycles_frequency().

_MBG_API_ATTR int _MBG_API mbg_get_device_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DEV * | p
 | ) |  |

Return a PCPS_DEV structure that provides detailed information about the device.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_DEV structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function

Referenced by print_dev_info().

_MBG_API_ATTR int _MBG_API mbg_get_drvr_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_DRVR_INFO * | p
 | ) |  |

Return a PCPS_DRVR_INFO structure that provides information about the kernel device driver.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_DRVR_INFO structure which is filled up.
Returns:
MBG_SUCCESS or error code returned by device I/O control function

Referenced by print_drvr_info().

_MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME_STAMP * | p
 | ) |  |

Read a high resolution PCPS_TIME_STAMP structure via memory mapped access.

This function does not return or evaluate a cycles count, so the latency of the call can not be determined. However, depending on the timer hardware used as cycles counter it may take quite some time to read the cycles count on some hardware architectures, so this call can be used to yield lower latencies, under the restriction to be unable to determine the exact latency.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME_STAMP structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_fast_hr_timestamp()

mbg_get_fast_hr_timestamp_comp()

mbg_get_fast_hr_timestamp_cycles()

_MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp_comp | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME_STAMP * | p,
 |  | int32_t * | hns_latency
 | ) |  |

Read a high resolution PCPS_TIME_STAMP via memory mapped access, and compensate the latency of the time stamp before it is returned.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME_STAMP structure to be filled up
*hns_latency | Optionally receive the latency in hectonanoseconds
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_fast_hr_timestamp()

mbg_get_fast_hr_timestamp_cycles()

mbg_get_fast_hr_timestamp()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp_cycles | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME_STAMP_CYCLES * | p
 | ) |  |

Read a high resolution PCPS_TIME_STAMP_CYCLES structure via memory mapped access.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME_STAMP_CYCLES structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_fast_hr_timestamp()

mbg_get_fast_hr_timestamp_comp()

mbg_get_fast_hr_timestamp()

_MBG_API_ATTR int _MBG_API mbg_get_gps_all_pout_info | ( | MBG_DEV_HANDLE | dh,
 |  | POUT_INFO_IDX | pii[],
 |  | const RECEIVER_INFO * | p_ri
 | ) |  |

Read a POUT_INFO_IDX array of current settings and configuration options of a card's programmable pulse outputs. The function mbg_setup_receiver_info() must have been called before, and the returned RECEIVER_INFO structure passed to this function. The function should only be called if the RECEIVER_INFO::n_prg_out field (i.e. the number of programmable outputs on the board) is not 0.

The array passed to this function to receive the returned data must be able to hold at least RECEIVER_INFO::n_prg_out elements.

Parameters:
dh | Valid handle to a Meinberg device.
pii | Pointer to a an array of POUT_INFO_IDX structures to be filled up
*p_ri | Pointer to a RECEIVER_INFO structure returned by mbg_setup_receiver_info()
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_gps_pout_settings_idx()

mbg_set_gps_pout_settings()

mbg_setup_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_get_gps_ant_cable_len | ( | MBG_DEV_HANDLE | dh,
 |  | ANT_CABLE_LEN * | p
 | ) |  |

Read the configured length of the GPS antenna cable (ANT_CABLE_LEN). The cable delay is internally compensated by 5ns per meter cable. The macro _pcps_has_cab_len() or the API call mbg_dev_has_cab_len() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | ANT_CABLE_LEN structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_cab_len()

mbg_set_gps_ant_cable_len()

_MBG_API_ATTR int _MBG_API mbg_get_gps_ant_info | ( | MBG_DEV_HANDLE | dh,
 |  | ANT_INFO * | p
 | ) |  |

Read an ANT_INFO structure to retrieve status information of the GPS antenna. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: Normally the antenna connection status can also be determined by evaluation of the PCPS_TIME::signal or PCPS_HR_TIME::signal fields.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a ANT_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_get_gps_bvar_stat | ( | MBG_DEV_HANDLE | dh,
 |  | BVAR_STAT * | p
 | ) |  |

Retrieve the status of the battery buffered GPS variables. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card. The GPS receiver stays in cold boot mode until all of the data sets are valid.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a BVAR_STAT structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_get_gps_enable_flags | ( | MBG_DEV_HANDLE | dh,
 |  | ENABLE_FLAGS * | p
 | ) |  |

Read an ENABLE_FLAGS structure reporting whether certain outputs shall be enabled immediately after the card's power-up, or only after the card has synchronized to its input signal. The macro _pcps_has_gps_data() or the API call mbg_dev_has_gps_data() check whether this call is supported by a specific card.

Note: Not all of the input signals specified for the ENABLE_FLAGS structure can be modified individually.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a ENABLE_FLAGS structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
ENABLE_FLAGS

mbg_set_gps_enable_flags()

_MBG_API_ATTR int _MBG_API mbg_get_gps_port_parm | ( | MBG_DEV_HANDLE | dh,
 |  | PORT_PARM * | p
 | ) |  |

Read a PORT_PARM structure to retrieve the configuration of the device's serial ports. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: This function is obsolete since it is only supported by a certain class of devices and can handle only up to 2 ports. The generic function mbg_get_serial_settings() should be used instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PORT_PARM structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_serial_settings()

_MBG_API_ATTR int _MBG_API mbg_get_gps_pos | ( | MBG_DEV_HANDLE | dh,
 |  | POS * | p
 | ) |  |

Read the current GPS receiver position using the POS structure which contains different coordinate formats. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a POS structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_gps_pos_xyz()

mbg_set_gps_pos_lla()

Referenced by print_receiver_position().

_MBG_API_ATTR int _MBG_API mbg_get_gps_receiver_info | ( | MBG_DEV_HANDLE | dh,
 |  | RECEIVER_INFO * | p
 | ) |  |

Read a RECEIVER_INFO structure from a card. The macro _pcps_has_receiver_info() or the API call mbg_dev_has_receiver_info() check whether this call is supported by a specific card.

Note: Applications should call mbg_setup_receiver_info() preferably, which also sets up a basic RECEIVER_INFO structure for card which don't provide that structure by themselves.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a RECEIVER_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_setup_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_get_gps_stat_info | ( | MBG_DEV_HANDLE | dh,
 |  | STAT_INFO * | p
 | ) |  |

Read a STAT_INFO structure to retrieve the status of the GPS receiver, including mode of operation and numer of visible/usable satellites. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a STAT_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
STAT_INFO

Referenced by print_sv_info().

_MBG_API_ATTR int _MBG_API mbg_get_gps_sw_rev | ( | MBG_DEV_HANDLE | dh,
 |  | SW_REV * | p
 | ) |  |

Retrieve the software revision of a GPS receiver. This call is obsolete but still supported for compatibility with older GPS cards. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: The function mbg_get_gps_receiver_info() should be used instead, if supported by the card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a SW_REV structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_is_gps()

mbg_get_gps_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_get_gps_time | ( | MBG_DEV_HANDLE | dh,
 |  | TTM * | p
 | ) |  |

Read the current board time using a TTM structure. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: This call is pretty slow, so the mbg_get_hr_time_..() group of calls should be used preferably.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a TTM structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_get_gps_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | TZDL * | p
 | ) |  |

Read the card's time zone/daylight saving parameters using the TZDL structure. The macro _pcps_has_tzdl() or the API call mbg_dev_has_tzdl() check whether this call is supported by a specific card.

Note: In spite of the function name this call may also be supported by non-GPS cards. Other cards may support the mbg_get_tzcode() or mbg_get_pcps_tzdl() calls instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a TZDL structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_tzdl()

mbg_set_gps_tzdl()

mbg_get_tzcode()

mbg_get_pcps_tzdl()

Time zone/daylight saving parameters

_MBG_API_ATTR int _MBG_API mbg_get_gps_ucap | ( | MBG_DEV_HANDLE | dh,
 |  | TTM * | p
 | ) |  |

Read a time capture event from the on-board FIFO buffer using a TTM structure. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: This call is pretty slow and has been obsoleted by mbg_get_ucap_event() which should be used preferably, if supported by the card. Anyway, this call is still supported for compatibility with older cards.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a TTM structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_ucap_entries()

mbg_get_ucap_event()

mbg_clr_ucap_buff()

Referenced by check_user_captures().

_MBG_API_ATTR int _MBG_API mbg_get_hr_time | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_HR_TIME * | p
 | ) |  |

Read a PCPS_HR_TIME (High Resolution time) structure returning the current UTC time (seconds since 1970), UTC offset, and status. The macro _pcps_has_hr_time() or the API call mbg_dev_has_hr_time() check whether this call is supported by a specific card.

Note: This API call provides a higher accuracy and resolution than mbg_get_time(). However, it does not account for the latency which is introduced when accessing the board. The mbg_get_hr_time_cycles() and mbg_get_hr_time_comp() calls provides mechanisms to account for and/or compensate the latency.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_HR_TIME structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_hr_time()

mbg_get_time()

mbg_get_hr_time_cycles()

mbg_get_hr_time_comp()

Referenced by main(), and print_hr_time().

_MBG_API_ATTR int _MBG_API mbg_get_hr_time_comp | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_HR_TIME * | p,
 |  | int32_t * | hns_latency
 | ) |  |

Read a PCPS_HR_TIME structure plus cycle counter value, and correct the time stamp for the latency of the call as described for mbg_get_hr_time_cycles(), then return the compensated time stamp and optionally the latency.

The macro _pcps_has_hr_time() or the API call mbg_dev_has_hr_time() check whether this call is supported by a specific card.

The cycle counter value corresponds to a value returned by QueryPerformanceCounter() under Windows, and get_cycles() under Linux. On other operating systems the returned cycles value is always 0.

Applications should first pick up their own cycle counter value and then call this function. The difference of the cycle counter values corresponds to the latency of the call in units of the cycle counter clock frequency, e.g as reported by QueryPerformanceFrequency() under Windows.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_HR_TIME structure to be filled up
*hns_latency | Optional pointer to an int32_t value to return the latency in 100ns units. Pass NULL if not used.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_hr_time_comp()

mbg_get_hr_time()

mbg_get_time_cycles()

mbg_get_time()

Referenced by main(), and print_hr_time().

_MBG_API_ATTR int _MBG_API mbg_get_hr_time_cycles | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_HR_TIME_CYCLES * | p
 | ) |  |

Read a PCPS_HR_TIME_CYCLES structure that contains a PCPS_HR_TIME structure and a PC cycle counter value which can be used to compensate the latency of the call, i.e. the program execution time until the time stamp has actually been read from the board.

The macro _pcps_has_hr_time() or the API call mbg_dev_has_hr_time() check whether this call is supported by a specific card.

The cycle counter value corresponds to a value returned by QueryPerformanceCounter() under Windows, and get_cycles() under Linux. On other operating systems the returned cycles value is always 0.

Applications should first pick up their own cycle counter value and then call this function. The difference of the cycle counter values corresponds to the latency of the call in units of the cycle counter clock frequency, e.g as reported by QueryPerformanceFrequency() under Windows.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_HR_TIME_CYCLES structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_hr_time_comp()

mbg_get_hr_time()

mbg_get_time_cycles()

mbg_get_time()

_MBG_API_ATTR int _MBG_API mbg_get_ip4_settings | ( | MBG_DEV_HANDLE | dh,
 |  | IP4_SETTINGS * | p
 | ) |  |

Read LAN IPv4 settings from a card which supports this. The macro _pcps_has_lan_intf() or the API call mbg_dev_has_lan_intf() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a IP4_SETTINGS variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_lan_intf()

mbg_get_lan_if_info()

mbg_get_ip4_state()

mbg_set_ip4_settings()

_MBG_API_ATTR int _MBG_API mbg_get_ip4_state | ( | MBG_DEV_HANDLE | dh,
 |  | IP4_SETTINGS * | p
 | ) |  |

Read LAN IPv4 state from a card which supports this. The macro _pcps_has_lan_intf() or the API call mbg_dev_has_lan_intf() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a IP4_SETTINGS variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_lan_intf()

mbg_get_lan_if_info()

mbg_get_ip4_settings()

mbg_set_ip4_settings()

Referenced by show_lan_intf_state().

_MBG_API_ATTR int _MBG_API mbg_get_irig_ctrl_bits | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_IRIG_CTRL_BITS * | p
 | ) |  |

Read a MBG_IRIG_CTRL_BITS type which contains the control function bits of the latest IRIG input frame. Those bits may carry some well-known information, as in the IEEE1344 code, but may also contain some customized information, depending on the IRIG frame type and the configuration of the IRIG generator. So these bits are returned as-is and must be interpreted by the application. The macro _pcps_has_irig_ctrl_bits() or the API call mbg_dev_has_irig_ctrl_bits() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_IRIG_CTRL_BITS type to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_irig_ctrl_bits()

Referenced by show_irig_ctrl_bits().

_MBG_API_ATTR int _MBG_API mbg_get_irig_rx_info | ( | MBG_DEV_HANDLE | dh,
 |  | IRIG_INFO * | p
 | ) |  |

Read an IRIG_INFO structure containing the configuration of an IRIG input plus the possible settings supported by that input. The macro _pcps_is_irig_rx() or the API call mbg_dev_is_irig_rx() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an IRIG_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_irig_rx_settings()

mbg_dev_is_irig_rx()

mbg_dev_has_irig_tx()

mbg_dev_has_irig()

Irig Codes

_MBG_API_ATTR int _MBG_API mbg_get_irig_time | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_IRIG_TIME * | p
 | ) |  |

Read a PCPS_IRIG_TIME type which returns the raw IRIG day-of-year number and time decoded from the latest IRIG input frame. If the configured IRIG code also contains the year number then the year number is also returned, otherwise the returned year number is 0xFF. The macro _pcps_has_irig_time() or the API call mbg_dev_has_irig_time() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_IRIG_TIME type to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_irig_time()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_irig_tx_info | ( | MBG_DEV_HANDLE | dh,
 |  | IRIG_INFO * | p
 | ) |  |

Read an IRIG_INFO structure containing the configuration of an IRIG output plus the possible settings supported by that output. The macro _pcps_has_irig_tx() or the API call mbg_dev_has_irig_tx() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an IRIG_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_irig_tx_settings()

mbg_dev_has_irig_tx()

mbg_dev_is_irig_rx()

mbg_dev_has_irig()

Irig Codes

_MBG_API_ATTR int _MBG_API mbg_get_irq_stat_info | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_IRQ_STAT_INFO * | p
 | ) |  |

Read a card's IRQ status information which includes flags indicating whether IRQs are currently enabled, and whether IRQ support by a card is possibly unsafe due to the firmware and interface chip version.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_IRQ_STAT_INFO variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_get_lan_if_info | ( | MBG_DEV_HANDLE | dh,
 |  | LAN_IF_INFO * | p
 | ) |  |

Read LAN interface information from a card which supports this. The macro _pcps_has_lan_intf() or the API call mbg_dev_has_lan_intf() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a LAN_IF_INFO variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_lan_intf()

mbg_get_ip4_state()

mbg_get_ip4_settings()

mbg_set_ip4_settings()

Referenced by show_lan_intf_state().

_MBG_API_ATTR int _MBG_API mbg_get_opt_info | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_OPT_INFO * | p
 | ) |  |

Read a MBG_OPT_INFO structure containing optional settings, controlled by flags. The MBG_OPT_INFO structure contains a mask of supported flags plus the current settings of those flags. The macro _pcps_has_opt_flags() or the API call mbg_dev_has_opt_flags() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_OPT_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_opt_flags()

mbg_set_opt_settings()

_MBG_API_ATTR int _MBG_API mbg_get_pcps_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TZDL * | p
 | ) |  |

Read the card's time zone/daylight saving parameters using the PCPS_TZDL structure. The macro _pcps_has_pcps_tzdl() or the API call mbg_dev_has_pcps_tzdl() check whether this call is supported by a specific card. Other cards may support the mbg_get_tzcode() or mbg_get_gps_tzdl() calls instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TZDL structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_pcps_tzdl()

mbg_set_pcps_tzdl()

mbg_get_tzcode()

mbg_get_gps_tzdl()

Command bytes used to access the device

_MBG_API_ATTR int _MBG_API mbg_get_process_affinity | ( | MBG_PROCESS_ID | pid,
 |  | MBG_CPU_SET * | p
 | ) |  |

Read the CPU affinity of a process, i.e. on which of the available CPUs the process can be executed.

Parameters:
pid | The process ID.
*p | Pointer to a MBG_CPU_SET variable which contains a mask of CPUs.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_set_process_affinity()

mbg_set_current_process_affinity_to_cpu()

_MBG_API_ATTR int _MBG_API mbg_get_ptp_cfg_info | ( | MBG_DEV_HANDLE | dh,
 |  | PTP_CFG_INFO * | p
 | ) |  |

Read PTP/IEEE1588 config info and current settings from a card which supports this. The macro _pcps_ddev_has_ptp() or the API call mbg_dev_has_ptp() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PTP_CFG_INFO variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ptp()

mbg_get_ptp_state()

mbg_set_ptp_cfg_settings()

_MBG_API_ATTR int _MBG_API mbg_get_ptp_state | ( | MBG_DEV_HANDLE | dh,
 |  | PTP_STATE * | p
 | ) |  |

Read PTP/IEEE1588 status from a card which supports this. The macro _pcps_ddev_has_ptp() or the API call mbg_dev_has_ptp() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PTP_CFG_INFO variable to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ptp()

mbg_get_ptp_cfg_info()

mbg_set_ptp_cfg_settings()

Referenced by print_ptp_status().

_MBG_API_ATTR int _MBG_API mbg_get_ref_offs | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_REF_OFFS * | p
 | ) |  |

Read the reference time offset from UTC for clocks which can't determine that offset automatically, e.g. from an IRIG input signal. The macro _pcps_has_ref_offs() or the API call mbg_dev_has_ref_offs() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_REF_OFFS value to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ref_offs()

mbg_set_ref_offs()

PCPS_GET_REF_OFFS

_MBG_API_ATTR int _MBG_API mbg_get_serial | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_SERIAL * | p
 | ) |  |

Read the configuration of a device's serial port. The macro _pcps_has_serial() checks whether this call is supported by a specific card.

Note: This function is supported only by a certain class of devices, so it should not be called directly. The generic function mbg_get_serial_settings() should be used instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_SERIAL structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
Command bytes used to access the device

mbg_get_serial_settings()

_MBG_API_ATTR int _MBG_API mbg_get_serial_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_DEV * | pdev,
 |  | RECEIVER_PORT_CFG * | pcfg,
 |  | const RECEIVER_INFO * | p_ri
 | ) |  |

Read all serial port settings and supported configuration parameters.

The functions mbg_get_device_info() and mbg_setup_receiver_info() must have been called before, and the returned PCPS_DEV and RECEIVER_INFO structures must be passed to this function.

The complementary function mbg_save_serial_settings() should be used to write the modified serial port configuration back to the board.

Parameters:
dh | Valid handle to a Meinberg device.
*pdev | Pointer to a PCPS_DEV structure.
*pcfg | Pointer to a RECEIVER_PORT_CFG structure to be filled up.
*p_ri | Pointer to a RECEIVER_INFO structure.
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_device_info()

mbg_setup_receiver_info()

mbg_save_serial_settings()

_MBG_API_ATTR int _MBG_API mbg_get_status_port | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_STATUS_PORT * | p
 | ) |  |

Return the current state of the on-boardPCPS_STATUS_PORT.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_STATUS_PORT value to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function
See also:
bitmask

_MBG_API_ATTR int _MBG_API mbg_get_sync_time | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME * | p
 | ) |  |

Read a PCPS_TIME structure returning the date/time/status reporting when the device was synchronized the last time to its time source, e.g. the DCF77 signal or the GPS satellites. The macro _pcps_has_sync_time() or the API call mbg_dev_has_sync_time() check whether this call is supported by a specific card.

The macro _pcps_has_sync_time() checks whether this call is supported by a specific card.

Note: If that information is not available on the board then the value of the returned PCPS_TIME::sec field is set to 0xFF. The macro _pcps_time_is_read() can be used to check whether the returned information is valid, or not available.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_time()

_MBG_API_ATTR int _MBG_API mbg_get_synth | ( | MBG_DEV_HANDLE | dh,
 |  | SYNTH * | p
 | ) |  |

Read a SYNTH structure containing the configuration of an optional on-board programmable frequency synthesizer. The macro _pcps_has_synth() or the API call mbg_dev_has_synth() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a SYNTH structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_synth()

mbg_set_synth()

mbg_get_synth_state()

Synthesizer parameters

_MBG_API_ATTR int _MBG_API mbg_get_synth_state | ( | MBG_DEV_HANDLE | dh,
 |  | SYNTH_STATE * | p
 | ) |  |

Read a SYNTH_STATE structure reporting the current state of an optional on-board programmable frequency synthesizer. The macro _pcps_has_synth() or the API call mbg_dev_has_synth() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a SYNTH_STATE structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_synth()

mbg_get_synth()

mbg_set_synth()

Synthesizer parameters

_MBG_API_ATTR int _MBG_API mbg_get_time | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME * | p
 | ) |  |

Read a PCPS_TIME structure returning the current date/time/status. The returned time is local time according to the card's time zone setting, with a resolution of 10 ms (i.e. 10ths of seconds).

This call is supported by any device manufactured by Meinberg. However, for higher accuracy and resolution the mbg_get_hr_time..() group of calls should be used preferably if supported by the specific device.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_hr_time()

mbg_set_time()

mbg_get_sync_time()

Referenced by print_date_time_status().

_MBG_API_ATTR int _MBG_API mbg_get_time_cycles | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME_CYCLES * | p
 | ) |  |

Read a PCPS_TIME_CYCLES structure that contains a PCPS_TIME structure and a PC cycle counter value which can be used to compensate the latency of the call, i.e. the program execution time until the time stamp has actually been read from the board.

This call is supported for any card, similar to mbg_get_time(). However, the mbg_get_hr_time_cyles() call should be used preferably if supported by the specific card since that call provides much better accuracy than this one.

The cycle counter value corresponds to a value returned by QueryPerformanceCounter() under Windows, and get_cycles() under Linux. On other operating systems the returned cycles value is always 0.

Applications should first pick up their own cycle counter value and then call this function. The difference of the cycle counter values corresponds to the latency of the call in units of the cycle counter clock frequency, e.g as reported by QueryPerformanceFrequency() under Windows.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME_CYCLES structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_hr_time_cycles()

mbg_get_hr_time_comp()

mbg_get_hr_time()

mbg_get_time()

_MBG_API_ATTR int _MBG_API mbg_get_time_scale_info | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_TIME_SCALE_INFO * | p
 | ) |  |

Read a MBG_TIME_SCALE_INFO structure from a card telling which time scales are supported by a card, and the current settings of the card.

The macro _pcps_has_time_scale() or the API call mbg_dev_has_time_scale() check whether this call is supported by a specific card. See also the notes for mbg_dev_has_time_scale().

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_TIME_SCALE_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_time_scale_settings()

mbg_dev_has_time_scale()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_time_sec_change | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TIME * | p
 | ) |  |

Wait until the next second change, then return a PCPS_TIME structure similar to mbg_get_time().

Note: This API call is supported under Windows only. The call blocks until the kernel driver detects a second change reported by the device.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TIME structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_time()

Referenced by print_sec_changes().

_MBG_API_ATTR int _MBG_API mbg_get_tzcode | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_TZCODE * | p
 | ) |  |

Read the card's time zone/daylight saving configuration code. That tzcode is supported by some simpler cards and only allows only a very basic configuration. The macro _pcps_has_tzcode() or the API call mbg_dev_has_tzcode() check whether this call is supported by a specific card. Other cards may support the mbg_get_pcps_tzdl() or mbg_get_gps_tzdl() calls instead which allow for a more detailed configuration of the time zone and daylight saving settings.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TZCODE structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_tzcode()

mbg_set_tzcode()

mbg_get_pcps_tzdl()

mbg_get_gps_tzdl()

Command bytes used to access the device

_MBG_API_ATTR int _MBG_API mbg_get_ucap_entries | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_UCAP_ENTRIES * | p
 | ) |  |

Read a PCPS_UCAP_ENTRIES structure to retrieve the number of saved user capture events and the maximum capture buffer size. The macro _pcps_has_ucap() or the API call mbg_dev_has_ucap() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_UCAP_ENTRIES structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ucap()

mbg_get_ucap_entries()

mbg_get_ucap_event()

Referenced by check_user_captures().

_MBG_API_ATTR int _MBG_API mbg_get_ucap_event | ( | MBG_DEV_HANDLE | dh,
 |  | PCPS_HR_TIME * | p
 | ) |  |

Retrieve a single time capture event from the on-board FIFO buffer using a PCPS_HR_TIME structure. The oldest entry of the FIFO is retrieved and then removed from the FIFO. If no capture event is available in the FIFO buffer then both the seconds and the fractions of the returned timestamp are 0. The macro _pcps_has_ucap() or the API call mbg_dev_has_ucap() check whether this call is supported by a specific card.

Note: This call is very much faster than the older mbg_get_gps_ucap() call which is obsolete but still supported for compatibility with older cards.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_HR_TIME structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ucap()

mbg_get_ucap_entries()

mbg_clr_ucap_buff()

Referenced by check_user_captures().

_MBG_API_ATTR int _MBG_API mbg_get_utc_parm | ( | MBG_DEV_HANDLE | dh,
 |  | UTC * | p
 | ) |  |

Read a UTC structure from a card.

The macro _pcps_has_utc_parm() or the API call mbg_dev_has_utc_parm() check whether this call is supported by a specific card. See also the notes for mbg_dev_has_utc_parm().

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a UTC structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_utc_parm()

mbg_set_utc_parm()

Referenced by print_utc_parameters().

_MBG_API_ATTR int _MBG_API mbg_get_xhrt_cycles_frequency | ( | MBG_XHRT_INFO * | p,
 |  | MBG_PC_CYCLES_FREQUENCY * | p_freq_hz
 | ) |  |

Retrieve the frequency of the system's cycles counter as determined by the device polling thread. See mbg_xhrt_poll_thread_fnc() for details and limitations. This function is only implemented for targets which support threads.

Parameters:
*p | Pointer to a MBG_XHRT_INFO structure used to retrieve data from the polling thread.
*p_freq_hz | Pointer to a MBG_PC_CYCLES_FREQUENCY variable in which the frequency is returned.
Returns:
a status code from the polling thread: MBG_SUCCESS or an IOCTL error code.
See also:
mbg_xhrt_poll_thread_fnc()

mbg_xhrt_poll_thread_create()

mbg_xhrt_poll_thread_stop()

mbg_get_xhrt_time_as_pcps_hr_time()

mbg_get_xhrt_time_as_filetime()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_xhrt_time_as_filetime | ( | MBG_XHRT_INFO * | p,
 |  | FILETIME * | p_ft
 | ) |  |

Retrieve a time stamp in FILETIME format which is extrapolated using the system's current cycles counter value and a time stamp plus associated cycles counter value saved by the polling thread. See mbg_xhrt_poll_thread_fnc() for details and limitations. Since FILETIME is a Windows specific type this function is only implemented under Windows.

Parameters:
*p | Pointer to a MBG_XHRT_INFO structure used to retrieve data from the polling thread.
*p_ft | Pointer to a FILETIME structure to be filled up.
Returns:
MBG_SUCCESS or another return value from the polling thread's IOCTL call.
See also:
mbg_xhrt_poll_thread_fnc()

mbg_xhrt_poll_thread_create()

mbg_xhrt_poll_thread_stop()

mbg_get_xhrt_time_as_pcps_hr_time()

mbg_get_xhrt_cycles_frequency()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_get_xhrt_time_as_pcps_hr_time | ( | MBG_XHRT_INFO * | p,
 |  | PCPS_HR_TIME * | p_hrt
 | ) |  |

Retrieve a time stamp in PCPS_HR_TIME format which is extrapolated using the system's current cycles counter value and a time stamp plus associated cycles counter value saved by the polling thread. See mbg_xhrt_poll_thread_fnc() for details and limitations. This function is only implemented for targets which support threads.

Parameters:
*p | Pointer to a MBG_XHRT_INFO structure used to retrieve data from the polling thread.
*p_hrt | Pointer to a PCPS_HR_TIME structure to be filled up.
Returns:
MBG_SUCCESS or another return value from the polling thread's IOCTL call.
See also:
mbg_xhrt_poll_thread_fnc()

mbg_xhrt_poll_thread_create()

mbg_xhrt_poll_thread_stop()

mbg_get_xhrt_time_as_filetime()

mbg_get_xhrt_cycles_frequency()

Referenced by main().

static __mbg_inline void mbg_init_pc_cycles_frequency | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_PC_CYCLES_FREQUENCY * | p |
 | ) |  |  | [static]

Definition at line 2909 of file mbgdevio.h.

References mbg_get_default_cycles_frequency_from_dev().

_MBG_API_ATTR MBG_DEV_HANDLE _MBG_API mbg_open_device ( unsigned int device_index )

Open a device by index, starting from 0. This function is out of date, mbg_open_device_by_name() should be used instead.

See the note for mbg_find_device() for details.

Parameters:
device_index Index of the device, use 0 for the first device.

Referenced by main(), and print_drvr_info().

_MBG_API_ATTR MBG_DEV_HANDLE _MBG_API mbg_open_device_by_name | ( | const char * | hw_name,
 |  | int | selection_mode
 | ) |  |

Return a handle to a device with a certain unique name. The names of the devices that are installed on the system can be retrieved by the function mbg_find_devices_with_names().

This function should be used preferably instead of mbg_open_device().

Parameters:
hw_name | String with the unique name of the device to be opened
selection_mode | One of the enum values of MBG_MATCH_MODE
Returns:
On success, the function returns a handle to the device, otherwise MBG_INVALID_DEV_HANDLE
See also:
MBG_HW_NAME for the format of the unique names.

MBG_MATCH_MODE

mbg_find_devices_with_names()

_MBG_API_ATTR int _MBG_API mbg_save_serial_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_DEV * | pdev,
 |  | RECEIVER_PORT_CFG * | pcfg,
 |  | int | port_num
 | ) |  |

Write the configuration settings for a single serial port to the board.

Modifications to the serial port configuration should be made only after mbg_get_serial_settings() had been called to read all serial port settings and supported configuration parameters. This function has finally to be called once for every serial port the configuration of which has been modified.

As also required by mbg_get_serial_settings(), the functions mbg_get_device_info() and mbg_setup_receiver_info() must have been called before, and the returned PCPS_DEV and RECEIVER_INFO structures must be passed to this function.

Parameters:
dh | Valid handle to a Meinberg device
*pdev | Pointer to a PCPS_DEV structure
*pcfg | Pointer to a RECEIVER_PORT_CFG structure
port_num | Index of the serial port to be saved
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_serial_settings()

mbg_get_device_info()

mbg_setup_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_set_current_process_affinity_to_cpu ( int cpu_num )

Set the CPU affinity of a process for a single CPU only, i.e. the process may only be executed on that single CPU.

Parameters:
pid | The process ID.
cpu_num | The number of the CPU.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_get_process_affinity()

mbg_set_process_affinity()

_MBG_API_ATTR int _MBG_API mbg_set_event_time | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_TIME_STAMP * | p
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_set_gps_ant_cable_len | ( | MBG_DEV_HANDLE | dh,
 |  | const ANT_CABLE_LEN * | p
 | ) |  |

Write the length of the GPS antenna cable (ANT_CABLE_LEN). The cable delay is internally compensated by 5ns per meter cable. The macro _pcps_has_cab_len() or the API call mbg_dev_has_cab_len() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | ANT_CABLE_LEN structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_cab_len()

mbg_get_gps_ant_cable_len()

_MBG_API_ATTR int _MBG_API mbg_set_gps_cmd | ( | MBG_DEV_HANDLE | dh,
 |  | const GPS_CMD * | p
 | ) |  |

Sends a GPS_CMD to a GPS receiver. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a GPS_CMD
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
PC_GPS_CMD_BOOT, PC_GPS_CMD_INIT_SYS, PC_GPS_CMD_INIT_USER, PC_GPS_CMD_INIT_DAC

_MBG_API_ATTR int _MBG_API mbg_set_gps_enable_flags | ( | MBG_DEV_HANDLE | dh,
 |  | const ENABLE_FLAGS * | p
 | ) |  |

Write an ENABLE_FLAGS structure to configure whether certain outputs shall be enabled immediately after the card's power-up, or only after the card has synchronized to its input signal. The macro _pcps_has_gps_data() or the API call mbg_dev_has_gps_data() check whether this call is supported by a specific card.

Note: Not all of the input signals specified for the ENABLE_FLAGS structure can be modified individually.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a ENABLE_FLAGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
ENABLE_FLAGS

mbg_get_gps_enable_flags()

_MBG_API_ATTR int _MBG_API mbg_set_gps_port_parm | ( | MBG_DEV_HANDLE | dh,
 |  | const PORT_PARM * | p
 | ) |  |

Write a PORT_PARM structure to configure the on-board serial ports. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Note: This function is obsolete since it is only supported by a certain class of devices and can handle only up to 2 ports. The generic function mbg_save_serial_settings() should be used instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PORT_PARM structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_save_serial_settings()

_MBG_API_ATTR int _MBG_API mbg_set_gps_port_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const PORT_SETTINGS * | p,
 |  | int | idx
 | ) |  |

Write the configuration for a single serial port using the PORT_SETTINGS structure plus the port index. Except for the parameter types, this call is equivalent to mbg_set_gps_port_settings_idx(). The macro _pcps_has_receiver_info() or the API call mbg_dev_has_receiver_info() check whether this call is supported by a specific card.

Note: The function mbg_save_serial_settings() should be used preferably to write new port configuration to the board.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a PORT_SETTINGS structure to be filled up
idx | Index of the serial port to be configured (starting from 0 ).
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_save_serial_settings()

mbg_set_gps_port_settings_idx()

mbg_dev_has_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_set_gps_port_settings_idx | ( | MBG_DEV_HANDLE | dh,
 |  | const PORT_SETTINGS_IDX * | p
 | ) |  |

Write the configuration for a single serial port using the PORT_SETTINGS_IDX structure which contains both the PORT_SETTINGS and the port index value. Except for the parameter types, this call is equivalent to mbg_set_gps_port_settings(). The macro _pcps_has_receiver_info() or the API call mbg_dev_has_receiver_info() check whether this call is supported by a specific card.

Note: The function mbg_save_serial_settings() should be used preferably to write new port configuration to the board.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a PORT_SETTINGS_IDX structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_save_serial_settings()

mbg_set_gps_port_settings()

mbg_dev_has_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_set_gps_pos_lla | ( | MBG_DEV_HANDLE | dh,
 |  | const LLA | p
 | ) |  |

Preset the GPS receiver position using LLA coordinates (longitude, latitude, altitude) The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
p | Position in LLA format to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_gps_pos_xyz()

mbg_get_gps_pos()

_MBG_API_ATTR int _MBG_API mbg_set_gps_pos_xyz | ( | MBG_DEV_HANDLE | dh,
 |  | const XYZ | p
 | ) |  |

Preset the GPS receiver position using XYZ coordinates (ECEF: WGS84 "Earth Centered, Earth fixed" kartesian coordinates). The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
p | Position in XYZ format to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_set_gps_pos_lla()

mbg_get_gps_pos()

_MBG_API_ATTR int _MBG_API mbg_set_gps_pout_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const POUT_SETTINGS * | p,
 |  | int | idx
 | ) |  |

Write the configuration for a single programmable pulse output using the POUT_SETTINGS structure plus the index of the output to be configured. Except for the parameter types, this call is equivalent to mbg_set_gps_pout_settings_idx(). The function should only be called if the RECEIVER_INFO::n_prg_out field (i.e. the number of programmable outputs on the board) is not 0, and the output index value must be in the range 0..RECEIVER_INFO::n_prg_out.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a POUT_SETTINGS structure to be written
idx | Index of the programmable pulse output to be configured (starting from 0 ).
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_gps_all_pout_info()

mbg_set_gps_pout_settings_idx()

_MBG_API_ATTR int _MBG_API mbg_set_gps_pout_settings_idx | ( | MBG_DEV_HANDLE | dh,
 |  | const POUT_SETTINGS_IDX * | p
 | ) |  |

Write the configuration for a single programmable pulse output using the POUT_SETTINGS_IDX structure which contains both the POUT_SETTINGS and the output index value. Except for the parameter types, this call is equivalent to mbg_set_gps_pout_settings(). The function should only be called if the RECEIVER_INFO::n_prg_out field (i.e. the number of programmable outputs on the board) is not 0, and the output index value must be in the range 0..RECEIVER_INFO::n_prg_out.

Parameters:
dh | Valid handle to a Meinberg device.
*p | Pointer to a POUT_SETTINGS_IDX structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_gps_all_pout_info()

mbg_set_gps_pout_settings()

_MBG_API_ATTR int _MBG_API mbg_set_gps_time | ( | MBG_DEV_HANDLE | dh,
 |  | const TTM * | p
 | ) |  |

Write a TTM structure to a GPS receiver in order to set the on-board date and time. The macro _pcps_is_gps() or the API call mbg_dev_is_gps() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a TTM structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.

_MBG_API_ATTR int _MBG_API mbg_set_gps_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | const TZDL * | p
 | ) |  |

Write the card's time zone/daylight saving parameters using the TZDL structure. The macro _pcps_has_tzdl() or the API call mbg_dev_has_tzdl() check whether this call is supported by a specific card.

Note: In spite of the function name this call may also be supported by non-GPS cards. Other cards may support the mbg_set_tzcode() or mbg_set_pcps_tzdl() calls instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a TZDL structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_tzdl()

mbg_get_gps_tzdl()

mbg_set_tzcode()

mbg_set_pcps_tzdl()

Time zone/daylight saving parameters

_MBG_API_ATTR int _MBG_API mbg_set_ip4_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const IP4_SETTINGS * | p
 | ) |  |

Write LAN IPv4 settings to a card which supports this. The macro _pcps_has_lan_intf() or the API call mbg_dev_has_lan_intf() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | IP4_SETTINGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_lan_intf()

mbg_get_lan_if_info()

mbg_get_ip4_settings()

_MBG_API_ATTR int _MBG_API mbg_set_irig_rx_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const IRIG_SETTINGS * | p
 | ) |  |

Write an IRIG_SETTINGS structure containing the configuration of an IRIG input. The macro _pcps_is_irig_rx() or the API call mbg_dev_is_irig_rx() check whether this call is supported by a specific card. The IRIG_INFO structure should be read first to determine the possible settings supported by this card's IRIG input.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a IRIG_SETTINGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_rx_info()

mbg_dev_is_irig_rx()

mbg_dev_has_irig_tx()

mbg_dev_has_irig()

Irig Codes

_MBG_API_ATTR int _MBG_API mbg_set_irig_tx_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const IRIG_SETTINGS * | p
 | ) |  |

Write an IRIG_SETTINGS structure containing the configuration of an IRIG output. The macro _pcps_has_irig_tx() or the API call mbg_dev_has_irig_tx() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to an IRIG_INFO structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_irig_tx_info()

mbg_dev_has_irig_tx()

mbg_dev_is_irig_rx()

mbg_dev_has_irig()

Irig Codes

_MBG_API_ATTR int _MBG_API mbg_set_opt_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const MBG_OPT_SETTINGS * | p
 | ) |  |

Write a MBG_OPT_SETTINGS structure contains optional settings, controlled by flags. The macro _pcps_has_opt_flags() or the API call mbg_dev_has_opt_flags() check whether this call is supported by a specific card. The MBG_OPT_INFO structure should be read first to check which of the specified flags is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_OPT_SETTINGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_opt_flags()

mbg_get_opt_info()

_MBG_API_ATTR int _MBG_API mbg_set_pcps_tzdl | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_TZDL * | p
 | ) |  |

Write the card's time zone/daylight saving parameters using the PCPS_TZDL structure. The macro _pcps_has_pcps_tzdl() or the API call mbg_dev_has_pcps_tzdl() check whether this call is supported by a specific card. Other cards may support the mbg_set_tzcode() or mbg_set_gps_tzdl() calls instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TZDL structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_pcps_tzdl()

mbg_get_pcps_tzdl()

mbg_set_tzcode()

mbg_set_gps_tzdl()

Command bytes used to access the device

_MBG_API_ATTR int _MBG_API mbg_set_process_affinity | ( | MBG_PROCESS_ID | pid,
 |  | MBG_CPU_SET * | p
 | ) |  |

Set the CPU affinity of a process, i.e. on which of the available CPUs the process is allowed to be executed.

Parameters:
pid | The process ID.
*p | Pointer to a MBG_CPU_SET variable which contains a mask of CPUs.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_get_process_affinity()

mbg_set_current_process_affinity_to_cpu()

_MBG_API_ATTR int _MBG_API mbg_set_ptp_cfg_settings | ( | MBG_DEV_HANDLE | dh,
 |  | const PTP_CFG_SETTINGS * | p
 | ) |  |

Write PTP/IEEE1588 configuration settings to a card which supports this. The macro _pcps_ddev_has_ptp() or the API call mbg_dev_has_ptp() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device.
*p | PTP_CFG_SETTINGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ptp()

mbg_get_ptp_state()

mbg_get_ptp_cfg_info()

_MBG_API_ATTR int _MBG_API mbg_set_ref_offs | ( | MBG_DEV_HANDLE | dh,
 |  | const MBG_REF_OFFS * | p
 | ) |  |

Write the reference time offset from UTC for clocks which can't determine that offset automatically, e.g. from an IRIG input signal. The macro _pcps_has_ref_offs() or the API call mbg_dev_has_ref_offs() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_REF_OFFS value to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_ref_offs()

mbg_get_ref_offs()

PCPS_SET_REF_OFFS

_MBG_API_ATTR int _MBG_API mbg_set_serial | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_SERIAL * | p
 | ) |  |

Write the configuration of a device's serial port. The macro _pcps_has_serial() checks whether this call is supported by a specific card.

Note: This function is supported only by a certain class of devices, so it should not be called directly. The generic function mbg_save_serial_settings() should be used instead.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_SERIAL structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
Command bytes used to access the device

mbg_save_serial_settings()

_MBG_API_ATTR int _MBG_API mbg_set_synth | ( | MBG_DEV_HANDLE | dh,
 |  | const SYNTH * | p
 | ) |  |

Write a SYNTH structure containing the configuration of an optional on-board programmable frequency synthesizer. The macro _pcps_has_synth() or the API call mbg_dev_has_synth() check whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a SYNTH structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_synth()

mbg_get_synth()

mbg_get_synth_state()

Synthesizer parameters

_MBG_API_ATTR int _MBG_API mbg_set_time | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_STIME * | p
 | ) |  |

Set a device's on-board clock manually by passing a PCPS_STIME structure The macro _pcps_can_set_time() checks whether this call is supported by a specific card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_STIME structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_time()

_MBG_API_ATTR int _MBG_API mbg_set_time_scale_settings | ( | MBG_DEV_HANDLE | dh,
 |  | MBG_TIME_SCALE_SETTINGS * | p
 | ) |  |

Write a MBG_TIME_SCALE_SETTINGS structure to a card which determines which time scale shall be represented by time stamps read from the card.

The macro _pcps_has_time_scale() or the API call mbg_dev_has_time_scale() check whether this call is supported by a specific card. See also the notes for mbg_dev_has_time_scale().

The function mbg_get_time_scale_info() should have been called before in order to determine which time scales are supported by the card.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a MBG_TIME_SCALE_SETTINGS structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_time_scale_info()

mbg_dev_has_time_scale()

_MBG_API_ATTR int _MBG_API mbg_set_tzcode | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_TZCODE * | p
 | ) |  |

Write the card's time zone/daylight saving configuration code. That tzcode is supported by some simpler cards and only allows only a very basic configuration. The macro _pcps_has_tzcode() or the API call mbg_dev_has_tzcode() check whether this call is supported by a specific card. Other cards may support the mbg_set_pcps_tzdl() or mbg_set_gps_tzdl() calls instead which allow for a more detailed configuration of the time zone and daylight saving settings.

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a PCPS_TZCODE structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_tzcode()

mbg_get_tzcode()

mbg_set_pcps_tzdl()

mbg_set_gps_tzdl()

Command bytes used to access the device

_MBG_API_ATTR int _MBG_API mbg_set_utc_parm | ( | MBG_DEV_HANDLE | dh,
 |  | UTC * | p
 | ) |  |

Write a UTC structure to a card.

This should only be done for testing, or if a card is operated in freewheeling mode. If the card receives any satellites the settings written to the board are overwritten by the parameters broadcasted by the satellites.

The macro _pcps_has_utc_parm() or the API call mbg_dev_has_utc_parm() check whether this call is supported by a specific card. See also the notes for mbg_dev_has_utc_parm().

Parameters:
dh | Valid handle to a Meinberg device
*p | Pointer to a valid UTC structure to be written
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_dev_has_utc_parm()

mbg_get_utc_parm()

_MBG_API_ATTR int _MBG_API mbg_setup_receiver_info | ( | MBG_DEV_HANDLE | dh,
 |  | const PCPS_DEV * | pdev,
 |  | RECEIVER_INFO * | p
 | ) |  |

Set up a RECEIVER_INFO structure for a device. If the device supports the RECEIVER_INFO structure then the structure is read from the device, otherwise a structure is set up using default values depending on the device type. The function mbg_get_device_info() must have been called before, and the returned PCPS_DEV structure passed to this function.

Parameters:
dh | Valid handle to a Meinberg device.
*pdev | Pointer to a PCPS_DEV structure returned by mbg_get_device_info()
*p | Pointer to a RECEIVER_INFO structure to be filled up
Returns:
MBG_SUCCESS or error code returned by device I/O control function.
See also:
mbg_get_device_info()

mbg_dev_has_receiver_info()

_MBG_API_ATTR int _MBG_API mbg_thread_create | ( | MBG_THREAD_INFO * | p_ti,
 |  | MBG_THREAD_FNC_RET_VAL(MBG_THREAD_FNC_ATTR *fnc)(void *) | ,
 |  | void * | arg
 | ) |  |

Create a new execution thread for the current process. This function is only implemented for targets which support threads.

Parameters:
p_ti | Pointer to a MBG_THREAD_INFO structure to be filled up.
fnc | The name of the thread function to be started.
arg | A generic argument passed to the thread function.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_thread_stop()

mbg_thread_sleep_interruptible()

mbg_thread_set_affinity()

_MBG_API_ATTR int _MBG_API mbg_thread_set_affinity | ( | MBG_THREAD_INFO * | p_ti,
 |  | MBG_CPU_SET * | p
 | ) |  |

Set the CPU affinity of a single thread, i.e. on which of the available CPUs the thread is allowed to be executed. This function is only implemented for targets which support thread affinity.

Parameters:
p_ti | Pointer to a MBG_THREAD_INFO structure associated with the thread.
*p | Pointer to a MBG_CPU_SET variable which contains a mask of CPUs.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_thread_create()

mbg_thread_stop()

mbg_thread_sleep_interruptible()

_MBG_API_ATTR int _MBG_API mbg_thread_sleep_interruptible | ( | MBG_THREAD_INFO * | p_ti,
 |  | ulong | sleep_ms
 | ) |  |

Let the current thread sleep for a certain interval unless a signal is received indicating the thread should terminate. This function is only implemented for targets which support threads.

Parameters:
p_ti | Pointer to a MBG_THREAD_INFO structure associated with the thread.
sleep_ms | The number of milliseconds to sleep
Returns:
0 if the sleep interval has expired normally 1 if a signal to terminate has been received <0 if an error has occurred
See also:
mbg_thread_create()

mbg_thread_stop()

mbg_thread_set_affinity()

_MBG_API_ATTR int _MBG_API mbg_thread_stop ( MBG_THREAD_INFO * p_ti )

Stop a thread which has been created by mbg_thread_create(). Wait until the thread has finished and release all resources. This function is only implemented for targets which support threads.

Parameters:
p_ti Pointer to a MBG_THREAD_INFO structure associated with the thread.
Returns:
MBG_SUCCESS or error code returned by the system call.
See also:
mbg_thread_create()

mbg_thread_sleep_interruptible()

mbg_thread_set_affinity()

_MBG_API_ATTR int _MBG_API mbg_xhrt_poll_thread_create | ( | MBG_POLL_THREAD_INFO * | p_pti,
 |  | MBG_DEV_HANDLE | dh,
 |  | MBG_PC_CYCLES_FREQUENCY | freq_hz,
 |  | int | sleep_ms
 | ) |  |

Set up a MBG_POLL_THREAD_INFO structure and start a new thread which runs the mbg_xhrt_poll_thread_fnc() function. This function is only implemented for targets which support threads.

Parameters:
*p_pti | Pointer to a MBG_POLL_THREAD_INFO structure.
dh | the handle of the device to be polled.
freq_hz | The initial cycles frequency, if known, in Hz.
sleep_ms | the sleep interval for the poll thread function in ms. If this parameter is 0 then the default sleep interval is used.
Returns:
MBG_SUCCESS on success, MBG_ERR_NOT_SUPP_BY_DEV if the device to poll does not support HR time else the result of mbg_thread_create()
See also:
mbg_xhrt_poll_thread_fnc()

mbg_xhrt_poll_thread_stop()

mbg_get_xhrt_time_as_pcps_hr_time()

mbg_get_xhrt_time_as_filetime()

mbg_get_xhrt_cycles_frequency()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_xhrt_poll_thread_stop ( MBG_POLL_THREAD_INFO * p_pti )

Stop a polling thread started by mbg_xhrt_poll_thread_create() and release all associated resources.

Parameters:
*p_pti Pointer to a MBG_POLL_THREAD_INFO structure.
Returns:
the result of mbg_thread_stop()
See also:
mbg_xhrt_poll_thread_fnc()

mbg_xhrt_poll_thread_create()

mbg_get_xhrt_time_as_pcps_hr_time()

mbg_get_xhrt_time_as_filetime()

mbg_get_xhrt_cycles_frequency()

Referenced by main().

_MBG_API_ATTR int _MBG_API mbgdevio_check_version ( int header_version )

Check if the version of the compiled mbgdevio library is compatible with a certain version which is passed as parameter.

Parameters:
header_version Version number to be checked, should be MBGDEVIO_VERSION defined in mbgdevio.h.
Returns:
MBG_SUCCESS if compatible, MBG_ERR_LIB_NOT_COMPATIBLE if not.
See also:
MBGDEVIO_VERSION defined in mbgdevio.h.

Referenced by main().

_MBG_API_ATTR int _MBG_API mbgdevio_get_version ( void )

Get the version number of the compiled mbgdevio library. If the mbgdevio library is built as a DLL/shared object then the version number of the compiled library may differ from the version number of the import library and header files which have been used to build an application.

Returns:
The version number
See also:
MBGDEVIO_VERSION defined in mbgdevio.h.

Referenced by main().

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgerror.h File Reference

  • Files

c/mbglib/include/mbgerror.h File Reference

#include <mbg_tgt.h>

Go to the source code of this file.

Defines

#define | _ext extern
#define | MBG_SUCCESS PCPS_SUCCESS
#define | MBG_ERR_STIME PCPS_ERR_STIME
#define | MBG_ERR_CFG PCPS_ERR_CFG
#define | MBG_ERR_GENERIC -19
#define | MBG_ERR_TIMEOUT -20
#define | MBG_ERR_FW_ID -21
#define | MBG_ERR_NBYTES -22
#define | MBG_ERR_INV_TIME -23
#define | MBG_ERR_FIFO -24
#define | MBG_ERR_NOT_READY -25
#define | MBG_ERR_INV_TYPE -26
#define | MBG_ERR_NO_MEM -27
#define | MBG_ERR_CLAIM_RSRC -28
#define | MBG_ERR_DEV_NOT_SUPP -29
#define | MBG_ERR_INV_DEV_REQUEST -30
#define | MBG_ERR_NOT_SUPP_BY_DEV -31
#define | MBG_ERR_USB_ACCESS -32
#define | MBG_ERR_CYCLIC_TIMEOUT -33
#define | MBG_ERR_NOT_SUPP_ON_OS -34
#define | MBG_ERR_LIB_NOT_COMPATIBLE -35
#define | MBG_ERR_N_COM_EXCEEDS_SUPP -36
#define | MBG_ERR_N_STR_EXCEEDS_SUPP -37
#define | MBG_ERR_IRQ_UNSAFE -38
#define | MBG_ERR_INV_INTNO -40
#define | MBG_ERR_NO_DRIVER -41
#define | MBG_ERR_DRV_VERSION -42
#define | _mbg_err_to_os(_c) ( _c )

Define Documentation

#define _ext extern

Definition at line 41 of file mbgerror.h.

#define _mbg_err_to_os ( _c ) ( _c )

Definition at line 126 of file mbgerror.h.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbggeo.h File Reference

  • Files

c/mbglib/include/mbggeo.h File Reference

#include <gpsdefs.h>
#include <use_pack.h>

Go to the source code of this file.

Data Structures

struct | DMS
struct | POS
struct | USER_POS
struct | ELLIPSOID

Defines

#define | _ext extern
#define | _mbg_swab_dms(_p)
#define | _mbg_swab_pos(_p)
#define | PI 3.1415926535897932

Enumerations

enum | { WGS84, BESSEL, N_ELLIPSOIDS }

Functions

void | dms_to_rad (const DMS *dms, double *rad)
void | rad_to_dms (const double *rad, DMS *dms, const char prefix)
void | dms_to_lla (POS *pos)
void | lla_to_dms (POS *pos)
void | lla_to_xyz (USER_POS *pos)
void | xyz_to_lla (POS *pos, void(*cyclic_func)(void))
void | dms_to_xyz (USER_POS *pos)
void | setup_user_pos_from_dms (USER_POS *user)
void | setup_user_pos_from_lla (USER_POS *user)
void | setup_user_pos_from_xyz (USER_POS *user, void(*cyclic_func)(void))
double | distance (XYZ xyz_1, XYZ xyz_2)
void | init_mbggeo (void)

Variables

_ext ELLIPSOID | ellipsoid [N_ELLIPSOIDS]
_ext double | OMEGADOTe
_ext double | mue
_ext double | vr_to_doppler
_ext double | gps_pi
_ext double | gps_c0
_ext double | pi
_ext double | r2d
_ext double | d2r
_ext double | gps_two_pi
_ext double | sqrt_mue

Define Documentation

#define _ext extern

Definition at line 59 of file mbggeo.h.

#define _mbg_swab_dms ( _p )

Value:

{                                  \
  _mbg_swab16( &(_p)->prefix );    \
  _mbg_swab16( &(_p)->deg );       \
  _mbg_swab16( &(_p)->min );       \
  _mbg_swab_double( &(_p)->sec );  \
}

Definition at line 83 of file mbggeo.h.

#define _mbg_swab_pos ( _p )

Value:

{                                     \
  _mbg_swab_xyz( (_p)->xyz );         \
  _mbg_swab_lla( (_p)->lla );         \
  _mbg_swab_dms( &(_p)->longitude );  \
  _mbg_swab_dms( &(_p)->latitude );   \
  _mbg_swab16( &(_p)->ellipsoid );    \
}

Definition at line 102 of file mbggeo.h.

#define PI 3.1415926535897932

Definition at line 224 of file mbggeo.h.

Enumeration Type Documentation

anonymous enum

Enumerator:
WGS84
BESSEL
N_ELLIPSOIDS

Definition at line 168 of file mbggeo.h.

Function Documentation

double distance | ( | XYZ | xyz_1,
 |  | XYZ | xyz_2
 | ) |  |

void dms_to_lla ( POS * pos )

void dms_to_rad | ( | const DMS * | dms,
 |  | double * | rad
 | ) |  |

void dms_to_xyz ( USER_POS * pos )

void init_mbggeo ( void )

void lla_to_dms ( POS * pos )

void lla_to_xyz ( USER_POS * pos )

void rad_to_dms | ( | const double * | rad,
 |  | DMS * | dms,
 |  | const char | prefix
 | ) |  |

void setup_user_pos_from_dms ( USER_POS * user )

void setup_user_pos_from_lla ( USER_POS * user )

void setup_user_pos_from_xyz | ( | USER_POS * | user,
 |  | void(*)(void) | cyclic_func
 | ) |  |

void xyz_to_lla | ( | POS * | pos,
 |  | void(*)(void) | cyclic_func
 | ) |  |

Variable Documentation

_ext double d2r

Definition at line 246 of file mbggeo.h.

_ext ELLIPSOID ellipsoid[N_ELLIPSOIDS]

Definition at line 188 of file mbggeo.h.

_ext double gps_c0

Definition at line 220 of file mbggeo.h.

_ext double gps_pi

Definition at line 214 of file mbggeo.h.

_ext double gps_two_pi

Definition at line 251 of file mbggeo.h.

_ext double mue

Definition at line 203 of file mbggeo.h.

_ext double OMEGADOTe

Definition at line 197 of file mbggeo.h.

_ext double pi

Definition at line 232 of file mbggeo.h.

_ext double r2d

Definition at line 239 of file mbggeo.h.

_ext double sqrt_mue

Definition at line 252 of file mbggeo.h.

_ext double vr_to_doppler

Definition at line 207 of file mbggeo.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgsvcio.h File Reference

  • Files

c/mbglib/include/mbgsvcio.h File Reference

#include <mbg_tgt.h>

Go to the source code of this file.

Defines

#define | _ext extern
#define | MBGSVCIO_VERSION 0x0306
#define | MBGSVCIO_COMPAT_VERSION 0x0200

Functions

_MBG_API_ATTR int _MBG_API | mbgsvcio_get_version (void)
_MBG_API_ATTR int _MBG_API | mbgsvcio_check_version (int header_version)
_MBG_API_ATTR int _MBG_API | mbg_time_adjustment_active (void)
_MBG_API_ATTR int _MBG_API | mbg_ref_time_accessible (void)
_MBG_API_ATTR int _MBG_API | mbg_get_ref_time_status (void)

Define Documentation

#define _ext extern

Definition at line 62 of file mbgsvcio.h.

#define MBGSVCIO_COMPAT_VERSION 0x0200

Definition at line 74 of file mbgsvcio.h.

#define MBGSVCIO_VERSION 0x0306

Definition at line 72 of file mbgsvcio.h.

Function Documentation

_MBG_API_ATTR int _MBG_API mbg_get_ref_time_status ( void )

Return the current state of the reference clock.

Returns:
PCPS_TIME_STATUS_X.

The status information can be extracted by using the following bit masks:
  • PCPS_FREER
  • PCPS_DL_ENB
  • PCPS_SYNCD
  • PCPS_DL_ANN
  • PCPS_UTC
  • PCPS_LS_ANN
  • PCPS_IFTM
  • PCPS_INVT
  • PCPS_LS_ENB
  • PCPS_ANT_FAIL
  • PCPS_UCAP_OVERRUN
  • PCPS_UCAP_BUFFER_FULL
  • PCPS_IO_BLOCKED

Referenced by mbg_dump_time_adjustment_status().

_MBG_API_ATTR int _MBG_API mbg_ref_time_accessible ( void )

Check if the time of the reference clock is accessible.

Returns:
1: The reference clock is accessible and delivers a valid time.
0: The reference time is invalid or inaccessible.
-1: The shared memory area which provides information from the service is not accessible.

Referenced by mbg_dump_time_adjustment_status().

_MBG_API_ATTR int _MBG_API mbg_time_adjustment_active ( void )

Query the status of the Meinberg time adjustment service "mbgadjtm.exe"

Returns:
1, if the service has the state "SERVICE_RUNNING", otherwise 0.

Referenced by mbg_dump_time_adjustment_status().

_MBG_API_ATTR int _MBG_API mbgsvcio_check_version ( int header_version )

Check if the version of the compiled mbgsvcio library is compatible with a certain version which is passed as parameter.

Parameters:
header_version Version number to be checked, should be MBGSVCIO_VERSION defined in mbgsvcio.h.
Returns:
MBG_SUCCESS if compatible, MBG_WINERR_LIB_NOT_COMPATIBLE if not.
See also:
MBGSVCIO_VERSION defined in mbgsvcio.h.

_MBG_API_ATTR int _MBG_API mbgsvcio_get_version ( void )

Get the version number of the compiled mbgsvcio library. If the mbgsvcio library is built as a DLL then the version number of the compiled library may differ from the version number of the import library and header files which have been used to build an application.

Returns:
The version number
See also:
MBGSVCIO_VERSION defined in mbgsvcio.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgtime.h File Reference

  • Files

c/mbglib/include/mbgtime.h File Reference

#include <gpsdefs.h>
#include <time.h>

Go to the source code of this file.

Data Structures

struct | TIMEOUT

Defines

#define | _ext extern
#define | _const
#define | GPS_SEC_BIAS 315964800UL
#define | DAYS_PER_WEEK 7
#define | SECS_PER_MIN 60
#define | MINS_PER_HOUR 60
#define | HOURS_PER_DAY 24
#define | DAYS_PER_WEEK 7
#define | MINS_PER_DAY ( MINS_PER_HOUR * HOURS_PER_DAY )
#define | SECS_PER_HOUR 3600
#define | SECS_PER_DAY 86400L
#define | SECS_PER_WEEK 604800L
#define | SEC100S_PER_SEC 100L
#define | SEC100S_PER_MIN ( SEC100S_PER_SEC * SECS_PER_MIN )
#define | SEC100S_PER_HOUR ( SEC100S_PER_SEC * SECS_PER_HOUR )
#define | SEC100S_PER_DAY ( SEC100S_PER_SEC * SECS_PER_DAY )
#define | MSEC_PER_SEC 1000L
#define | MSEC_PER_MIN ( MSEC_PER_SEC * SECS_PER_MIN )
#define | MSEC_PER_HOUR ( MSEC_PER_SEC * SECS_PER_HOUR )
#define | MSEC_PER_DAY ( MSEC_PER_SEC * SECS_PER_DAY )
#define | _n_days(_s) n_days( (_s)->mday, (_s)->month, (_s)->year )

Functions

void | set_timeout (TIMEOUT *t, clock_t clk, clock_t interval)
void | stretch_timeout (TIMEOUT *t, clock_t interval)
bit | check_timeout (TIMEOUT *t, clock_t clk)
int | err_tm (TM_GPS *tm)
TM_GPS * | clear_time (TM_GPS *tm)
TM_GPS * | wsec_to_tm (long wsec, TM_GPS *tm)
long | tm_to_wsec (TM_GPS *tm)
int | is_leap_year (int y)
int | day_of_year (int day, int month, int year)
void | date_of_year (int year, int day_num, TM_GPS *tm)
int | day_of_week (int day, int month, int year)
int | days_to_years (long *day_num, int year)
long | n_days (ushort mday, ushort month, ushort year)
double | nano_time_to_double (const NANO_TIME *p)
void | double_to_nano_time (NANO_TIME *p, double d)
int | sprint_time (char *s, const TM_GPS *tm)
int | sprint_short_time (char *s, TM_GPS *time)
int | sprint_date (char *s, const TM_GPS *tm)
int | sprint_day_date (char *s, const TM_GPS *tm)
int | sprint_tm (char *s, const TM_GPS *tm)
void | sscan_time (char *s, TM_GPS *tm)
void | sscan_date (char *s, TM_GPS *tm)

Variables

_ext TM_GPS | dhms
_ext TM_GPS | datum
_ext const char * | short_time_fmt
_ext const char * | time_fmt
_ext const char * | long_time_fmt
_ext const char * | date_fmt
_ext const char * | day_date_fmt
_ext const char * | day_name_eng []
_ext const char * | day_name_ger []
_ext _const TM_GPS | init_tm
_ext char | days_of_month [2][12]

Define Documentation

#define _const

Definition at line 65 of file mbgtime.h.

#define _ext extern

Definition at line 56 of file mbgtime.h.

#define _n_days ( _s ) n_days( (_s)->mday, (_s)->month, (_s)->year )

Definition at line 220 of file mbgtime.h.

#define DAYS_PER_WEEK 7

Definition at line 136 of file mbgtime.h.

#define DAYS_PER_WEEK 7

Definition at line 136 of file mbgtime.h.

#define GPS_SEC_BIAS 315964800UL

Definition at line 73 of file mbgtime.h.

Referenced by print_utc_parameters().

#define HOURS_PER_DAY 24

Definition at line 135 of file mbgtime.h.

#define MINS_PER_DAY ( MINS_PER_HOUR * HOURS_PER_DAY )

Definition at line 138 of file mbgtime.h.

#define MINS_PER_HOUR 60

Definition at line 134 of file mbgtime.h.

#define MSEC_PER_DAY ( MSEC_PER_SEC * SECS_PER_DAY )

Definition at line 152 of file mbgtime.h.

#define MSEC_PER_HOUR ( MSEC_PER_SEC * SECS_PER_HOUR )

Definition at line 151 of file mbgtime.h.

#define MSEC_PER_MIN ( MSEC_PER_SEC * SECS_PER_MIN )

Definition at line 150 of file mbgtime.h.

#define MSEC_PER_SEC 1000L

Definition at line 149 of file mbgtime.h.

#define SEC100S_PER_DAY ( SEC100S_PER_SEC * SECS_PER_DAY )

Definition at line 147 of file mbgtime.h.

#define SEC100S_PER_HOUR ( SEC100S_PER_SEC * SECS_PER_HOUR )

Definition at line 146 of file mbgtime.h.

#define SEC100S_PER_MIN ( SEC100S_PER_SEC * SECS_PER_MIN )

Definition at line 145 of file mbgtime.h.

#define SEC100S_PER_SEC 100L

Definition at line 144 of file mbgtime.h.

#define SECS_PER_DAY 86400L

Definition at line 141 of file mbgtime.h.

Referenced by print_utc_parameters().

#define SECS_PER_HOUR 3600

Definition at line 140 of file mbgtime.h.

#define SECS_PER_MIN 60

Definition at line 133 of file mbgtime.h.

#define SECS_PER_WEEK 604800L

Definition at line 142 of file mbgtime.h.

Referenced by print_utc_parameters().

Function Documentation

bit check_timeout | ( | TIMEOUT * | t,
 |  | clock_t | clk
 | ) |  |

TM_GPS* clear_time ( TM_GPS * tm )

void date_of_year | ( | int | year,
 |  | int | day_num,
 |  | TM_GPS * | tm
 | ) |  |

int day_of_week | ( | int | day,
 |  | int | month,
 |  | int | year
 | ) |  |

int day_of_year | ( | int | day,
 |  | int | month,
 |  | int | year
 | ) |  |

int days_to_years | ( | long * | day_num,
 |  | int | year
 | ) |  |

void double_to_nano_time | ( | NANO_TIME * | p,
 |  | double | d
 | ) |  |

int err_tm ( TM_GPS * tm )

int is_leap_year ( int y )

long n_days | ( | ushort | mday,
 |  | ushort | month,
 |  | ushort | year
 | ) |  |

double nano_time_to_double ( const NANO_TIME * p )

void set_timeout | ( | TIMEOUT * | t,
 |  | clock_t | clk,
 |  | clock_t | interval
 | ) |  |

int sprint_date | ( | char * | s,
 |  | const TM_GPS * | tm
 | ) |  |

int sprint_day_date | ( | char * | s,
 |  | const TM_GPS * | tm
 | ) |  |

int sprint_short_time | ( | char * | s,
 |  | TM_GPS * | time
 | ) |  |

int sprint_time | ( | char * | s,
 |  | const TM_GPS * | tm
 | ) |  |

int sprint_tm | ( | char * | s,
 |  | const TM_GPS * | tm
 | ) |  |

void sscan_date | ( | char * | s,
 |  | TM_GPS * | tm
 | ) |  |

void sscan_time | ( | char * | s,
 |  | TM_GPS * | tm
 | ) |  |

void stretch_timeout | ( | TIMEOUT * | t,
 |  | clock_t | interval
 | ) |  |

long tm_to_wsec ( TM_GPS * tm )

TM_GPS* wsec_to_tm | ( | long | wsec,
 |  | TM_GPS * | tm
 | ) |  |

Variable Documentation

_ext const char* date_fmt

Definition at line 182 of file mbgtime.h.

_ext TM_GPS datum

Definition at line 157 of file mbgtime.h.

_ext const char* day_date_fmt

Definition at line 188 of file mbgtime.h.

_ext const char* day_name_eng[]

Definition at line 194 of file mbgtime.h.

_ext const char* day_name_ger[]

Definition at line 200 of file mbgtime.h.

_ext char days_of_month[2][12]

Definition at line 216 of file mbgtime.h.

_ext TM_GPS dhms

Definition at line 156 of file mbgtime.h.

_ext _const TM_GPS init_tm

Definition at line 206 of file mbgtime.h.

_ext const char* long_time_fmt

Definition at line 176 of file mbgtime.h.

_ext const char* short_time_fmt

Definition at line 164 of file mbgtime.h.

_ext const char* time_fmt

Definition at line 170 of file mbgtime.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgutil.h File Reference

  • Files

c/mbglib/include/mbgutil.h File Reference

#include <mbg_tgt.h>
#include <use_pack.h>
#include <pcpsdefs.h>
#include <mbggeo.h>
#include <pci_asic.h>

Go to the source code of this file.

Defines

#define | MBGUTIL_VERSION 0x0306
#define | MBGUTIL_COMPAT_VERSION 0x0110
#define | _ext extern
#define | _mbg_strncpy(_s, _src) mbg_strncpy( _s, sizeof( _s ), _src )

Functions

_MBG_API_ATTR int _MBG_API | mbgutil_get_version (void)
_MBG_API_ATTR int _MBG_API | mbgutil_check_version (int header_version)
_MBG_API_ATTR int _MBG_API | mbg_snprintf (char *s, size_t max_len, const char *fmt,...)
_MBG_API_ATTR int _MBG_API | mbg_strncpy (char *s, size_t max_len, const char *src)
_MBG_API_ATTR int _MBG_API | mbg_strchar (char *s, size_t max_len, char c, size_t n)
_MBG_API_ATTR int _MBG_API | mbg_str_date_short (char *s, int max_len, int mday, int month)
_MBG_API_ATTR int _MBG_API | mbg_str_date (char *s, int max_len, int mday, int month, int year)
_MBG_API_ATTR int _MBG_API | mbg_str_time_short (char *s, int max_len, int hour, int min)
_MBG_API_ATTR int _MBG_API | mbg_str_time (char *s, int max_len, int hour, int min, int sec)
_MBG_API_ATTR int _MBG_API | mbg_str_time_long (char *s, int max_len, int hour, int min, int sec, int sec100)
_MBG_API_ATTR int _MBG_API | mbg_str_tm_gps_date_time (char *s, int max_len, const TM_GPS *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_date_short (char *s, int max_len, const PCPS_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_date (char *s, int max_len, const PCPS_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_time_short (char *s, int max_len, const PCPS_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_time (char *s, int max_len, const PCPS_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_time_long (char *s, int max_len, const PCPS_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_date_time (char *s, int max_len, const PCPS_TIME *pt, const char *tz_str)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_date (char *s, int max_len, uint32_t sec)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_time (char *s, int max_len, uint32_t sec)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_date_time_utc (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_date_time_loc (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_time_frac (char *s, int max_len, uint32_t frac)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_time_offs (char *s, int max_len, const PCPS_HR_TIME *pt, const char *info)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_tstamp_utc (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_tstamp_loc (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_tstamp_raw (char *s, int max_len, const PCPS_TIME_STAMP *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pcps_hr_time_raw (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_ucap (char *s, int max_len, const PCPS_HR_TIME *pt)
_MBG_API_ATTR int _MBG_API | mbg_str_pos_dms (char *s, int max_len, const DMS *pdms, int prec)
_MBG_API_ATTR int _MBG_API | mbg_str_pos_alt (char *s, int max_len, double alt)
_MBG_API_ATTR int _MBG_API | mbg_str_pos (char *s, int max_len, const POS *ppos, int prec)
_MBG_API_ATTR int _MBG_API | mbg_str_dev_name (char *s, int max_len, const char *short_name, uint16_t fw_rev_num, PCI_ASIC_VERSION asic_version_num)

Define Documentation

#define _ext extern

Definition at line 89 of file mbgutil.h.

#define _mbg_strncpy | ( | _s,
 |  | _src | ) | mbg_strncpy( _s, sizeof( _s ), _src )

Definition at line 120 of file mbgutil.h.

#define MBGUTIL_COMPAT_VERSION 0x0110

Definition at line 63 of file mbgutil.h.

#define MBGUTIL_VERSION 0x0306

Definition at line 61 of file mbgutil.h.

Function Documentation

_MBG_API_ATTR int _MBG_API mbg_snprintf | ( | char * | s,
 |  | size_t | max_len,
 |  | const char * | fmt,
 |  |  | ...
 | ) |  |

Referenced by print_ptp_status(), show_lan_intf_state(), and snprint_ip4_addr().

_MBG_API_ATTR int _MBG_API mbg_str_date | ( | char * | s,
 |  | int | max_len,
 |  | int | mday,
 |  | int | month,
 |  | int | year
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_date_short | ( | char * | s,
 |  | int | max_len,
 |  | int | mday,
 |  | int | month
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_dev_name | ( | char * | s,
 |  | int | max_len,
 |  | const char * | short_name,
 |  | uint16_t | fw_rev_num,
 |  | PCI_ASIC_VERSION | asic_version_num
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_date | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_date_short | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_date_time | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt,
 |  | const char * | tz_str
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date | ( | char * | s,
 |  | int | max_len,
 |  | uint32_t | sec
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date_time_loc | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date_time_utc | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time | ( | char * | s,
 |  | int | max_len,
 |  | uint32_t | sec
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_frac | ( | char * | s,
 |  | int | max_len,
 |  | uint32_t | frac
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_offs | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt,
 |  | const char * | info
 | ) |  |

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_raw | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_tstamp_loc | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

Referenced by main().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_tstamp_utc | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

Referenced by main(), and print_hr_time().

_MBG_API_ATTR int _MBG_API mbg_str_pcps_time | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_time_long | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_time_short | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pcps_tstamp_raw | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_TIME_STAMP * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pos | ( | char * | s,
 |  | int | max_len,
 |  | const POS * | ppos,
 |  | int | prec
 | ) |  |

Referenced by print_receiver_position().

_MBG_API_ATTR int _MBG_API mbg_str_pos_alt | ( | char * | s,
 |  | int | max_len,
 |  | double | alt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_pos_dms | ( | char * | s,
 |  | int | max_len,
 |  | const DMS * | pdms,
 |  | int | prec
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_time | ( | char * | s,
 |  | int | max_len,
 |  | int | hour,
 |  | int | min,
 |  | int | sec
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_time_long | ( | char * | s,
 |  | int | max_len,
 |  | int | hour,
 |  | int | min,
 |  | int | sec,
 |  | int | sec100
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_time_short | ( | char * | s,
 |  | int | max_len,
 |  | int | hour,
 |  | int | min
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_tm_gps_date_time | ( | char * | s,
 |  | int | max_len,
 |  | const TM_GPS * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_str_ucap | ( | char * | s,
 |  | int | max_len,
 |  | const PCPS_HR_TIME * | pt
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_strchar | ( | char * | s,
 |  | size_t | max_len,
 |  | char | c,
 |  | size_t | n
 | ) |  |

_MBG_API_ATTR int _MBG_API mbg_strncpy | ( | char * | s,
 |  | size_t | max_len,
 |  | const char * | src
 | ) |  |

_MBG_API_ATTR int _MBG_API mbgutil_check_version ( int header_version )

_MBG_API_ATTR int _MBG_API mbgutil_get_version ( void )

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pci_asic.h File Reference

  • Files

c/mbglib/include/pci_asic.h File Reference

#include <words.h>
#include <use_pack.h>

Go to the source code of this file.

Data Structures

struct | PCI_ASIC_CFG
union | PCI_ASIC_REG
union | PCI_ASIC_ADDON_DATA
struct | PCI_ASIC

Defines

#define | _ext extern
#define | _mbg_swab_asic_version(_p) _mbg_swab32( _p )
#define | _mbg_swab_asic_features(_p) _mbg_swab32( _p )
#define | PCI_ASIC_HAS_MM_IO 0x0001
#define | PCI_ASIC_HAS_PGMB_IRQ 0x0002
#define | PCI_ASIC_ADD_ON_IRQF 0x00000001UL
#define | PCI_ASIC_PCI_IRQF 0x00010000UL
#define | PCI_ASIC_ADDR_RANGE 0x100U
#define | PCPS_DEV_CLASS_CODE 0x08800000UL
#define | PCI_ASIC_BADR0_INIT ( ~( PCI_ASIC_ADDR_RANGE - 1 ) | 0x01 )
#define | PCI_ASIC_CFG_PCI510
#define | PCI_ASIC_CFG_GPS169PCI
#define | PCI_ASIC_CFG_TCR510PCI
#define | PCI_ASIC_CFG_TCR167PCI
#define | PCI_ASIC_CFG_GPS170PCI
#define | PCI_ASIC_CFG_PCI511
#define | PCI_ASIC_CFG_TCR511PCI
#define | _convert_asic_version_number(_n) ( ( (_n) < 0x100 ) ? ( (_n) << 8 ) : (_n) )
#define | _pcps_asic_version_major(_v) ( ( (_v) >> 8 ) & 0xFF )
#define | _pcps_asic_version_minor(_v) ( (_v) & 0xFF )
#define | _pcps_asic_version_greater_equal(_v, _v_major, _v_minor)
#define | PCI_ASIC_CURRENT_MINOR_PEX511 0x04
#define | PCI_ASIC_REQUIRED_MINOR_PEX511 0x03
#define | PCI_ASIC_FIX_HRT_MINOR_PEX511 0x04
#define | PCI_ASIC_FIX_IRQ_MINOR_PEX511 0x03
#define | PCI_ASIC_HR_TIME_MINOR_PEX511 0x02
#define | PCI_ASIC_CURRENT_MINOR_GPS170PEX 0x04
#define | PCI_ASIC_REQUIRED_MINOR_GPS170PEX 0x03
#define | PCI_ASIC_FIX_HRT_MINOR_GPS170PEX 0x04
#define | PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX 0x03
#define | PCI_ASIC_CURRENT_MINOR_TCR511PEX 0x04
#define | PCI_ASIC_REQUIRED_MINOR_TCR511PEX 0x03
#define | PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX 0x03
#define | PCI_ASIC_CURRENT_MINOR_PTP270PEX 0x01
#define | PCI_ASIC_REQUIRED_MINOR_PTP270PEX 0x01
#define | PCI_ASIC_CURRENT_MINOR_FRC511PEX 0x01
#define | PCI_ASIC_REQUIRED_MINOR_FRC511PEX 0x01
#define | PCI_ASIC_CURRENT_MINOR_TCR170PEX 0x02
#define | PCI_ASIC_REQUIRED_MINOR_TCR170PEX 0x02
#define | PCI_ASIC_FIX_EE_ACCESS_TCR170PEX 0x02

Typedefs

typedef uint32_t | PCI_ASIC_VERSION
typedef uint32_t | PCI_ASIC_FEATURES

Enumerations

enum {
PCI_ASIC_MAJOR_PCI_0, PCI_ASIC_MAJOR_PCI_1, PCI_ASIC_MAJOR_PEX511, PCI_ASIC_MAJOR_GPS170PEX,
PCI_ASIC_MAJOR_TCR511PEX, PCI_ASIC_MAJOR_PTP270PEX, PCI_ASIC_MAJOR_FRC511PEX, PCI_ASIC_MAJOR_TCR170PEX,
N_PCI_ASIC_MAJOR
}

Define Documentation

#define _convert_asic_version_number ( _n ) ( ( (_n) < 0x100 ) ? ( (_n) << 8 ) : (_n) )

Definition at line 222 of file pci_asic.h.

#define _ext extern

Definition at line 77 of file pci_asic.h.

#define _mbg_swab_asic_features ( _p ) _mbg_swab32( _p )

Definition at line 104 of file pci_asic.h.

#define _mbg_swab_asic_version ( _p ) _mbg_swab32( _p )

Definition at line 101 of file pci_asic.h.

#define _pcps_asic_version_greater_equal | ( | _v,
 |  | _v_major,
 |  | _v_minor | )

Value:

(                                                                \
    ( _pcps_asic_version_major( _v ) == (_v_major) ) &&            \
    ( _pcps_asic_version_minor( _v ) >= (_v_minor) )               \
  )

Definition at line 241 of file pci_asic.h.

#define _pcps_asic_version_major ( _v ) ( ( (_v) >> 8 ) & 0xFF )

Definition at line 230 of file pci_asic.h.

#define _pcps_asic_version_minor ( _v ) ( (_v) & 0xFF )

Definition at line 233 of file pci_asic.h.

#define PCI_ASIC_ADD_ON_IRQF 0x00000001UL

Definition at line 141 of file pci_asic.h.

#define PCI_ASIC_ADDR_RANGE 0x100U

Definition at line 154 of file pci_asic.h.

#define PCI_ASIC_BADR0_INIT ( ~( PCI_ASIC_ADDR_RANGE - 1 ) | 0x01 )

Definition at line 160 of file pci_asic.h.

#define PCI_ASIC_CFG_GPS169PCI

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_GPS169PCI )      \
}

Definition at line 170 of file pci_asic.h.

#define PCI_ASIC_CFG_GPS170PCI

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_GPS170PCI )      \
}

Definition at line 191 of file pci_asic.h.

#define PCI_ASIC_CFG_PCI510

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_PCI510 )         \
}

Definition at line 163 of file pci_asic.h.

#define PCI_ASIC_CFG_PCI511

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_PCI511 )         \
}

Definition at line 198 of file pci_asic.h.

#define PCI_ASIC_CFG_TCR167PCI

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_TCR167PCI )      \
}

Definition at line 184 of file pci_asic.h.

#define PCI_ASIC_CFG_TCR510PCI

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_TCR510PCI )      \
}

Definition at line 177 of file pci_asic.h.

#define PCI_ASIC_CFG_TCR511PCI

Value:

{                                    \
  _hilo_32( PCPS_DEV_CLASS_CODE ),   \
  _hilo_16( PCI_ASIC_BADR0_INIT ),   \
  _hilo_16( PCI_DEV_TCR511PCI )      \
}

Definition at line 205 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_FRC511PEX 0x01

Definition at line 292 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_GPS170PEX 0x04

Definition at line 279 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_PEX511 0x04

Definition at line 273 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_PTP270PEX 0x01

Definition at line 289 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_TCR170PEX 0x02

Definition at line 295 of file pci_asic.h.

#define PCI_ASIC_CURRENT_MINOR_TCR511PEX 0x04

Definition at line 284 of file pci_asic.h.

#define PCI_ASIC_FIX_EE_ACCESS_TCR170PEX 0x02

Definition at line 297 of file pci_asic.h.

#define PCI_ASIC_FIX_HRT_MINOR_GPS170PEX 0x04

Definition at line 281 of file pci_asic.h.

#define PCI_ASIC_FIX_HRT_MINOR_PEX511 0x04

Definition at line 275 of file pci_asic.h.

#define PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX 0x03

Definition at line 282 of file pci_asic.h.

#define PCI_ASIC_FIX_IRQ_MINOR_PEX511 0x03

Definition at line 276 of file pci_asic.h.

#define PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX 0x03

Definition at line 287 of file pci_asic.h.

#define PCI_ASIC_HAS_MM_IO 0x0001

Definition at line 106 of file pci_asic.h.

Referenced by main().

#define PCI_ASIC_HAS_PGMB_IRQ 0x0002

Definition at line 107 of file pci_asic.h.

#define PCI_ASIC_HR_TIME_MINOR_PEX511 0x02

Definition at line 277 of file pci_asic.h.

#define PCI_ASIC_PCI_IRQF 0x00010000UL

Definition at line 148 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_FRC511PEX 0x01

Definition at line 293 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_GPS170PEX 0x03

Definition at line 280 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_PEX511 0x03

Definition at line 274 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_PTP270PEX 0x01

Definition at line 290 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_TCR170PEX 0x02

Definition at line 296 of file pci_asic.h.

#define PCI_ASIC_REQUIRED_MINOR_TCR511PEX 0x03

Definition at line 285 of file pci_asic.h.

#define PCPS_DEV_CLASS_CODE 0x08800000UL

Definition at line 159 of file pci_asic.h.

Typedef Documentation

typedef uint32_t PCI_ASIC_FEATURES

Definition at line 103 of file pci_asic.h.

typedef uint32_t PCI_ASIC_VERSION

Definition at line 100 of file pci_asic.h.

Enumeration Type Documentation

anonymous enum

Enumerator:
PCI_ASIC_MAJOR_PCI_0
PCI_ASIC_MAJOR_PCI_1
PCI_ASIC_MAJOR_PEX511
PCI_ASIC_MAJOR_GPS170PEX
PCI_ASIC_MAJOR_TCR511PEX
PCI_ASIC_MAJOR_PTP270PEX
PCI_ASIC_MAJOR_FRC511PEX
PCI_ASIC_MAJOR_TCR170PEX
N_PCI_ASIC_MAJOR

Definition at line 254 of file pci_asic.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pcpsdefs.h File Reference

  • Files

c/mbglib/include/pcpsdefs.h File Reference

#include <words.h>
#include <use_pack.h>

Go to the source code of this file.

Data Structures

struct | PCPS_DL_ONOFF
struct | PCPS_TZDL
struct | PCPS_UCAP_ENTRIES
struct | PCPS_TIME_STAMP
struct | PCPS_HR_TIME
struct | PCPS_TIME_s
struct | PCPS_STIME_s
union | PCPS_TIME_UNION
struct | PCPS_IRIG_TIME_s
struct | CORR_INFO

Defines

#define | PCPS_REF_NAME_NONE_ENG "unknown"
#define | PCPS_REF_NAME_NONE_GER "nicht bekannt"
#define | PCPS_REF_NAME_DCF "DCF77"
#define | PCPS_REF_NAME_GPS "GPS"
#define | PCPS_REF_NAME_IRIG "IRIG"
#define | PCPS_REF_NAME_MSF "MSF"
#define | PCPS_REF_NAME_PTP "PTP"
#define | PCPS_REF_NAME_FRC "FRC"
#define | PCPS_REF_NAME_WWVB "WWVB"
#define | PCPS_REF_NAMES_ENG
#define | PCPS_REF_NAMES_LSTR
#define | PCI_VENDOR_MEINBERG 0x1360
#define | PCI_DEV_PCI32 ( ( PCPS_REF_DCF << 8 ) | 0x01 )
#define | PCI_DEV_PCI509 ( ( PCPS_REF_DCF << 8 ) | 0x02 )
#define | PCI_DEV_PCI510 ( ( PCPS_REF_DCF << 8 ) | 0x03 )
#define | PCI_DEV_PCI511 ( ( PCPS_REF_DCF << 8 ) | 0x04 )
#define | PCI_DEV_PEX511 ( ( PCPS_REF_DCF << 8 ) | 0x05 )
#define | PCI_DEV_GPS167PCI ( ( PCPS_REF_GPS << 8 ) | 0x01 )
#define | PCI_DEV_GPS168PCI ( ( PCPS_REF_GPS << 8 ) | 0x02 )
#define | PCI_DEV_GPS169PCI ( ( PCPS_REF_GPS << 8 ) | 0x03 )
#define | PCI_DEV_GPS170PCI ( ( PCPS_REF_GPS << 8 ) | 0x04 )
#define | PCI_DEV_GPS170PEX ( ( PCPS_REF_GPS << 8 ) | 0x05 )
#define | PCI_DEV_TCR510PCI ( ( PCPS_REF_IRIG << 8 ) | 0x01 )
#define | PCI_DEV_TCR167PCI ( ( PCPS_REF_IRIG << 8 ) | 0x02 )
#define | PCI_DEV_TCR511PCI ( ( PCPS_REF_IRIG << 8 ) | 0x03 )
#define | PCI_DEV_TCR511PEX ( ( PCPS_REF_IRIG << 8 ) | 0x04 )
#define | PCI_DEV_TCR170PEX ( ( PCPS_REF_IRIG << 8 ) | 0x05 )
#define | PCI_DEV_PTP270PEX ( ( PCPS_REF_PTP << 8 ) | 0x01 )
#define | PCI_DEV_FRC511PEX ( ( PCPS_REF_FRC << 8 ) | 0x01 )
#define | PCPS_GIVE_TIME_GROUP 0x00
#define | PCPS_SET_TIME_GROUP 0x10
#define | PCPS_IRQ_GROUP 0x20
#define | PCPS_CFG_GROUP 0x30
#define | PCPS_GIVE_DATA_GROUP 0x40
#define | PCPS_GPS_DATA_GROUP 0x50
#define | PCPS_CTRL_GROUP 0x60
#define | PCPS_CFG2_GROUP 0x70
#define | PCPS_GIVE_TIME ( PCPS_GIVE_TIME_GROUP | 0x0 )
#define | PCPS_GIVE_TIME_NOCLEAR ( PCPS_GIVE_TIME_GROUP | 0x1 )
#define | PCPS_GIVE_SYNC_TIME ( PCPS_GIVE_TIME_GROUP | 0x2 )
#define | PCPS_GIVE_HR_TIME ( PCPS_GIVE_TIME_GROUP | 0x3 )
#define | PCPS_GIVE_IRIG_TIME ( PCPS_GIVE_TIME_GROUP | 0x4 )
#define | PCPS_SET_TIME ( PCPS_SET_TIME_GROUP | 0x0 )
#define | PCPS_SET_EVENT_TIME ( PCPS_SET_TIME_GROUP | 0x4 )
#define | PCPS_IRQ_NONE ( PCPS_IRQ_GROUP | 0x0 )
#define | PCPS_IRQ_1_SEC ( PCPS_IRQ_GROUP | 0x1 )
#define | PCPS_IRQ_1_MIN ( PCPS_IRQ_GROUP | 0x2 )
#define | PCPS_IRQ_10_MIN ( PCPS_IRQ_GROUP | 0x4 )
#define | PCPS_IRQ_30_MIN ( PCPS_IRQ_GROUP | 0x8 )
#define | PCPS_GET_SERIAL ( PCPS_CFG_GROUP | 0x0 )
#define | PCPS_SET_SERIAL ( PCPS_CFG_GROUP | 0x1 )
#define | PCPS_GET_TZCODE ( PCPS_CFG_GROUP | 0x2 )
#define | PCPS_SET_TZCODE ( PCPS_CFG_GROUP | 0x3 )
#define | PCPS_TZCODE_MEZMESZ PCPS_TZCODE_CET_CEST
#define | PCPS_TZCODE_MEZ PCPS_TZCODE_CET
#define | PCPS_TZCODE_OEZ PCPS_TZCODE_EET_EEST
#define | PCPS_GET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x4 )
#define | PCPS_SET_PCPS_TZDL ( PCPS_CFG_GROUP | 0x5 )
#define | _mbg_swab_pcps_dl_onoff(_p)
#define | DL_AUTO_FLAG 0x8000
#define | _mbg_swab_pcps_tzdl(_p)
#define | PCPS_GET_REF_OFFS ( PCPS_CFG_GROUP | 0x6 )
#define | PCPS_SET_REF_OFFS ( PCPS_CFG_GROUP | 0x7 )
#define | PCPS_GET_OPT_INFO ( PCPS_CFG_GROUP | 0x8 )
#define | PCPS_SET_OPT_SETTINGS ( PCPS_CFG_GROUP | 0x9 )
#define | PCPS_GET_IRIG_RX_INFO ( PCPS_CFG_GROUP | 0xA )
#define | PCPS_SET_IRIG_RX_SETTINGS ( PCPS_CFG_GROUP | 0xB )
#define | PCPS_GET_IRIG_TX_INFO ( PCPS_CFG_GROUP | 0xC )
#define | PCPS_SET_IRIG_TX_SETTINGS ( PCPS_CFG_GROUP | 0xD )
#define | PCPS_GET_SYNTH ( PCPS_CFG_GROUP | 0xE )
#define | PCPS_SET_SYNTH ( PCPS_CFG_GROUP | 0xF )
#define | PCPS_GIVE_FW_ID_1 ( PCPS_GIVE_DATA_GROUP | 0x0 )
#define | PCPS_GIVE_FW_ID_2 ( PCPS_GIVE_DATA_GROUP | 0x1 )
#define | PCPS_GIVE_SERNUM ( PCPS_GIVE_DATA_GROUP | 0x2 )
#define | PCPS_GENERIC_IO ( PCPS_GIVE_DATA_GROUP | 0x3 )
#define | PCPS_GET_SYNTH_STATE ( PCPS_GIVE_DATA_GROUP | 0x4 )
#define | PCPS_GET_IRIG_CTRL_BITS ( PCPS_GIVE_DATA_GROUP | 0x5 )
#define | _mbg_swab_irig_ctrl_bits(_p) _mbg_swab32( _p )
#define | PCPS_GET_STATUS_PORT ( PCPS_GIVE_DATA_GROUP | 0xB )
#define | PCPS_GET_DEBUG_STATUS ( PCPS_GIVE_DATA_GROUP | 0xC )
#define | PCPS_READ_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x0 )
#define | PCPS_WRITE_GPS_DATA ( PCPS_GPS_DATA_GROUP | 0x1 )
#define | PCPS_CLR_UCAP_BUFF ( PCPS_CTRL_GROUP | 0x0 )
#define | PCPS_GIVE_UCAP_ENTRIES ( PCPS_CTRL_GROUP | 0x1 )
#define | PCPS_GIVE_UCAP_EVENT ( PCPS_CTRL_GROUP | 0x2 )
#define | _mbg_swab_pcps_ucap_entries(_p)
#define | PCPS_FORCE_RESET 0x80
#define | PCPS_SUCCESS 0
#define | PCPS_ERR_STIME -1
#define | PCPS_ERR_CFG -2
#define | BITMASK(b) ( ( 1 << b ) - 1 )
#define | PCPS_FIFO_SIZE 16
#define | PCPS_ID_SIZE ( 2 * PCPS_FIFO_SIZE + 1 )
#define | PCPS_SN_SIZE ( PCPS_FIFO_SIZE + 1 )
#define | _mbg_swab_pcps_time_stamp(_p)
#define | PCPS_HRT_FRAC_CONVERSION_TYPE double
#define | PCPS_HRT_BIN_FRAC_SCALE ( (PCPS_HRT_FRAC_CONVERSION_TYPE) 4294967296.0 )
#define | PCPS_HRT_FRAC_SCALE 10000000UL
#define | PCPS_HRT_FRAC_SCALE_FMT "%07lu"
#define | _mbg_swab_pcps_time_status_x(_p) _mbg_swab16( _p )
#define | _mbg_swab_pcps_hr_time(_p)
#define | sizeof_PCPS_TIME sizeof( PCPS_TIME )
#define | sizeof_PCPS_STIME sizeof( PCPS_STIME )
#define | _mbg_swab_pcps_irig_time(_p)
#define | PCPS_FREER 0x01
#define | PCPS_DL_ENB 0x02
#define | PCPS_SYNCD 0x04
#define | PCPS_DL_ANN 0x08
#define | PCPS_UTC 0x10
#define | PCPS_LS_ANN 0x20
#define | PCPS_IFTM 0x40
#define | PCPS_INVT 0x80
#define | PCPS_LS_ENB 0x0100
#define | PCPS_ANT_FAIL 0x0200
#define | PCPS_LS_ANN_NEG 0x0400
#define | PCPS_SCALE_GPS 0x0800
#define | PCPS_SCALE_TAI 0x1000
#define | PCPS_UCAP_OVERRUN 0x2000
#define | PCPS_UCAP_BUFFER_FULL 0x4000
#define | PCPS_IO_BLOCKED 0x8000
#define | PCPS_SCALE_MASK ( PCPS_SCALE_TAI | PCPS_SCALE_GPS )
#define | PCPS_BD_BITS 4
#define | PCPS_BD_SHIFT 0
#define | PCPS_FR_BITS 2
#define | PCPS_FR_SHIFT PCPS_BD_BITS
#define | PCPS_MOD_BITS 2
#define | PCPS_MOD_SHIFT ( PCPS_BD_BITS + PCPS_FR_BITS )

Typedefs

typedef uint8_t | PCPS_SERIAL
typedef uint8_t | PCPS_TZCODE
typedef uint32_t | MBG_IRIG_CTRL_BITS
typedef int8_t | PCPS_BUFF [PCPS_FIFO_SIZE]
typedef char | PCPS_ID_STR [PCPS_ID_SIZE]
typedef char | PCPS_SN_STR [PCPS_SN_SIZE]
typedef uint16_t | PCPS_TIME_STATUS_X
typedef uint8_t | PCPS_TIME_STATUS
typedef struct PCPS_TIME_s | PCPS_TIME
typedef struct PCPS_STIME_s | PCPS_STIME
typedef struct PCPS_IRIG_TIME_s | PCPS_IRIG_TIME
typedef uint16_t | TR_DISTANCE
typedef uint16_t | PCPS_CMD_INFO

Enumerations

enum {
PCPS_REF_NONE, PCPS_REF_DCF, PCPS_REF_GPS, PCPS_REF_IRIG,
PCPS_REF_MSF, PCPS_REF_PTP, PCPS_REF_FRC, PCPS_REF_WWVB,
N_PCPS_REF
}
enum {
PCPS_TZCODE_CET_CEST, PCPS_TZCODE_CET, PCPS_TZCODE_UTC, PCPS_TZCODE_EET_EEST,
N_PCPS_TZCODE
}
enum {
PCPS_BD_300, PCPS_BD_600, PCPS_BD_1200, PCPS_BD_2400,
PCPS_BD_4800, PCPS_BD_9600, PCPS_BD_19200, N_PCPS_BD
}
enum {
PCPS_FR_8N1, PCPS_FR_7E2, PCPS_FR_8N2, PCPS_FR_8E1,
N_PCPS_FR_DCF
}
enum {
PCPS_MOD_REQ, PCPS_MOD_SEC, PCPS_MOD_MIN, PCPS_MOD_RSVD,
N_PCPS_MOD_DCF
}
enum | { PZF_CORR_RAW, PZF_CORR_CHECK, PZF_CORR_FINE, N_PZF_CORR_STATE }
enum {
PC_GPS_TZDL = 0, PC_GPS_SW_REV, PC_GPS_BVAR_STAT, PC_GPS_TIME,
PC_GPS_POS_XYZ, PC_GPS_POS_LLA, PC_GPS_PORT_PARM, PC_GPS_ANT_INFO,
PC_GPS_UCAP, PC_GPS_ENABLE_FLAGS, PC_GPS_STAT_INFO, PC_GPS_CMD,
PC_GPS_IDENT, PC_GPS_POS, PC_GPS_ANT_CABLE_LEN, PC_GPS_RECEIVER_INFO,
PC_GPS_ALL_STR_TYPE_INFO, PC_GPS_ALL_PORT_INFO, PC_GPS_PORT_SETTINGS_IDX, PC_GPS_ALL_POUT_INFO,
PC_GPS_POUT_SETTINGS_IDX, PC_GPS_TIME_SCALE, PC_GPS_LAN_IF_INFO, PC_GPS_IP4_STATE,
PC_GPS_IP4_SETTINGS, PC_GPS_PTP_STATE, PC_GPS_PTP_CFG, PC_GPS_CFGH = 0x80,
PC_GPS_ALM, PC_GPS_EPH, PC_GPS_UTC, PC_GPS_IONO,
PC_GPS_ASCII_MSG
}
enum {
PC_GPS_CMD_BOOT = 1, PC_GPS_CMD_INIT_SYS, PC_GPS_CMD_INIT_USER, PC_GPS_CMD_INIT_DAC,
N_PC_GPS_CMD
}

Define Documentation

#define _mbg_swab_pcps_hr_time ( _p )

Value:

{                                                 \
  _mbg_swab_pcps_time_stamp( &(_p)->tstamp );     \
  _mbg_swab32( &(_p)->utc_offs );                 \
  _mbg_swab_pcps_time_status_x( &(_p)->status );  \
}

Definition at line 839 of file pcpsdefs.h.

#define _mbg_swab_pcps_irig_time ( _p )

Value:

{                                                 \
  _mbg_swab_pcps_time_status_x( &(_p)->status );  \
  _mbg_swab16( &(_p)->offs_utc );                 \
  _mbg_swab16( &(_p)->yday );                     \
  _mbg_swab16( &(_p)->frac );                     \
}

Definition at line 933 of file pcpsdefs.h.

#define _mbg_swab_pcps_time_stamp ( _p )

Value:

{                                        \
  _mbg_swab32( &(_p)->sec );             \
  _mbg_swab32( &(_p)->frac );            \
}

Definition at line 771 of file pcpsdefs.h.

#define _mbg_swab_pcps_time_status_x ( _p ) _mbg_swab16( _p )

Definition at line 814 of file pcpsdefs.h.

#define BITMASK ( b ) ( ( 1 << b ) - 1 )

Definition at line 743 of file pcpsdefs.h.

#define PCI_DEV_FRC511PEX ( ( PCPS_REF_FRC << 8 ) | 0x01 )

Definition at line 293 of file pcpsdefs.h.

#define PCI_DEV_GPS167PCI ( ( PCPS_REF_GPS << 8 ) | 0x01 )

Definition at line 279 of file pcpsdefs.h.

#define PCI_DEV_GPS168PCI ( ( PCPS_REF_GPS << 8 ) | 0x02 )

Definition at line 280 of file pcpsdefs.h.

#define PCI_DEV_GPS169PCI ( ( PCPS_REF_GPS << 8 ) | 0x03 )

Definition at line 281 of file pcpsdefs.h.

#define PCI_DEV_GPS170PCI ( ( PCPS_REF_GPS << 8 ) | 0x04 )

Definition at line 282 of file pcpsdefs.h.

#define PCI_DEV_GPS170PEX ( ( PCPS_REF_GPS << 8 ) | 0x05 )

Definition at line 283 of file pcpsdefs.h.

#define PCI_DEV_PCI32 ( ( PCPS_REF_DCF << 8 ) | 0x01 )

Definition at line 273 of file pcpsdefs.h.

#define PCI_DEV_PCI509 ( ( PCPS_REF_DCF << 8 ) | 0x02 )

Definition at line 274 of file pcpsdefs.h.

#define PCI_DEV_PCI510 ( ( PCPS_REF_DCF << 8 ) | 0x03 )

Definition at line 275 of file pcpsdefs.h.

#define PCI_DEV_PCI511 ( ( PCPS_REF_DCF << 8 ) | 0x04 )

Definition at line 276 of file pcpsdefs.h.

#define PCI_DEV_PEX511 ( ( PCPS_REF_DCF << 8 ) | 0x05 )

Definition at line 277 of file pcpsdefs.h.

#define PCI_DEV_PTP270PEX ( ( PCPS_REF_PTP << 8 ) | 0x01 )

Definition at line 291 of file pcpsdefs.h.

#define PCI_DEV_TCR167PCI ( ( PCPS_REF_IRIG << 8 ) | 0x02 )

Definition at line 286 of file pcpsdefs.h.

#define PCI_DEV_TCR170PEX ( ( PCPS_REF_IRIG << 8 ) | 0x05 )

Definition at line 289 of file pcpsdefs.h.

#define PCI_DEV_TCR510PCI ( ( PCPS_REF_IRIG << 8 ) | 0x01 )

Definition at line 285 of file pcpsdefs.h.

#define PCI_DEV_TCR511PCI ( ( PCPS_REF_IRIG << 8 ) | 0x03 )

Definition at line 287 of file pcpsdefs.h.

#define PCI_DEV_TCR511PEX ( ( PCPS_REF_IRIG << 8 ) | 0x04 )

Definition at line 288 of file pcpsdefs.h.

#define PCI_VENDOR_MEINBERG 0x1360

PCI vendor ID number (assigned by PCI SIG)

Definition at line 267 of file pcpsdefs.h.

#define PCPS_ANT_FAIL 0x0200

antenna failure

Definition at line 968 of file pcpsdefs.h.

#define PCPS_BD_BITS 4

Definition at line 1028 of file pcpsdefs.h.

#define PCPS_BD_SHIFT 0

Definition at line 1029 of file pcpsdefs.h.

#define PCPS_DL_ANN 0x08

a change in daylight saving is announced

Definition at line 952 of file pcpsdefs.h.

Referenced by dump_status().

#define PCPS_DL_ENB 0x02

daylight saving enabled

Definition at line 948 of file pcpsdefs.h.

Referenced by dump_status().

#define PCPS_ERR_CFG -2

invalid parms with a PCPS_CFG_GROUP cmd

Definition at line 738 of file pcpsdefs.h.

#define PCPS_ERR_STIME -1

invalid date/time/status passed

Definition at line 737 of file pcpsdefs.h.

#define PCPS_FIFO_SIZE 16

The size of the plug-in radio clock's on-board FIFO:

Definition at line 748 of file pcpsdefs.h.

#define PCPS_FR_BITS 2

Definition at line 1051 of file pcpsdefs.h.

#define PCPS_FR_SHIFT PCPS_BD_BITS

Definition at line 1052 of file pcpsdefs.h.

#define PCPS_FREER 0x01

DCF77 clock running on xtal GPS receiver has not verified its position

Definition at line 945 of file pcpsdefs.h.

Referenced by dump_status(), and print_date_time_status().

#define PCPS_HRT_BIN_FRAC_SCALE ( (PCPS_HRT_FRAC_CONVERSION_TYPE) 4294967296.0 )

Definition at line 793 of file pcpsdefs.h.

#define PCPS_HRT_FRAC_CONVERSION_TYPE double

Definition at line 789 of file pcpsdefs.h.

#define PCPS_HRT_FRAC_SCALE 10000000UL

Definition at line 801 of file pcpsdefs.h.

#define PCPS_HRT_FRAC_SCALE_FMT "%07lu"

Definition at line 805 of file pcpsdefs.h.

#define PCPS_ID_SIZE ( 2 * PCPS_FIFO_SIZE + 1 )

ASCIIZ string

Definition at line 753 of file pcpsdefs.h.

#define PCPS_IFTM 0x40

the current time was set via PC (requires firmware rev. REV_PCPS_IFTM_...)

Definition at line 959 of file pcpsdefs.h.

Referenced by dump_status().

#define PCPS_INVT 0x80

invalid time because battery was disconn'd

Definition at line 962 of file pcpsdefs.h.

Referenced by dump_status().

#define PCPS_IO_BLOCKED 0x8000

Immediately after a clock has been accessed, subsequent accesses are blocked for up to 1.5 msec to give the clock's microprocessor some time to decode the incoming time signal. The flag below is set if a program tries to read the PCPS_HR_TIME during this interval. In this case the read function returns the proper time stamp which is taken if the command byte is written, however, the read function returns with delay. This flag is not supported by all clocks.

Definition at line 988 of file pcpsdefs.h.

#define PCPS_LS_ANN 0x20

leap second announced (requires firmware rev. REV_PCPS_LS_ANN_...)

Definition at line 956 of file pcpsdefs.h.

Referenced by dump_status().

#define PCPS_LS_ANN_NEG 0x0400

announced leap second is negative

Definition at line 969 of file pcpsdefs.h.

#define PCPS_LS_ENB 0x0100

current second is leap second

Definition at line 967 of file pcpsdefs.h.

#define PCPS_MOD_BITS 2

Definition at line 1078 of file pcpsdefs.h.

#define PCPS_MOD_SHIFT ( PCPS_BD_BITS + PCPS_FR_BITS )

Definition at line 1079 of file pcpsdefs.h.

#define PCPS_REF_NAME_DCF "DCF77"

Definition at line 228 of file pcpsdefs.h.

#define PCPS_REF_NAME_FRC "FRC"

Definition at line 233 of file pcpsdefs.h.

#define PCPS_REF_NAME_GPS "GPS"

Definition at line 229 of file pcpsdefs.h.

#define PCPS_REF_NAME_IRIG "IRIG"

Definition at line 230 of file pcpsdefs.h.

#define PCPS_REF_NAME_MSF "MSF"

Definition at line 231 of file pcpsdefs.h.

#define PCPS_REF_NAME_NONE_ENG "unknown"

Definition at line 226 of file pcpsdefs.h.

#define PCPS_REF_NAME_NONE_GER "nicht bekannt"

Definition at line 227 of file pcpsdefs.h.

#define PCPS_REF_NAME_PTP "PTP"

Definition at line 232 of file pcpsdefs.h.

#define PCPS_REF_NAME_WWVB "WWVB"

Definition at line 234 of file pcpsdefs.h.

#define PCPS_REF_NAMES_ENG

Value:

{                          \
  PCPS_REF_NAME_NONE_ENG,  \
  PCPS_REF_NAME_DCF,       \
  PCPS_REF_NAME_GPS,       \
  PCPS_REF_NAME_IRIG,      \
  PCPS_REF_NAME_MSF,       \
  PCPS_REF_NAME_PTP,       \
  PCPS_REF_NAME_FRC,       \
  PCPS_REF_NAME_WWVB       \
}

Definition at line 237 of file pcpsdefs.h.

#define PCPS_REF_NAMES_LSTR

Value:

{                                                      \
  { PCPS_REF_NAME_NONE_ENG, PCPS_REF_NAME_NONE_GER },  \
  { PCPS_REF_NAME_DCF, NULL },                         \
  { PCPS_REF_NAME_GPS, NULL },                         \
  { PCPS_REF_NAME_IRIG, NULL },                        \
  { PCPS_REF_NAME_MSF, NULL },                         \
  { PCPS_REF_NAME_PTP, NULL },                         \
  { PCPS_REF_NAME_FRC, NULL },                         \
  { PCPS_REF_NAME_WWVB, NULL }                         \
}

Definition at line 250 of file pcpsdefs.h.

#define PCPS_SCALE_GPS 0x0800

time stamp is GPS scale

Definition at line 970 of file pcpsdefs.h.

Referenced by print_hr_time(), and sprint_hr_time().

#define PCPS_SCALE_MASK ( PCPS_SCALE_TAI | PCPS_SCALE_GPS )

This bit mask can be used to extract the time scale information out of a PCPS_TIME_STATUS_X value.

Definition at line 994 of file pcpsdefs.h.

#define PCPS_SCALE_TAI 0x1000

time stamp is TAI scale

Definition at line 971 of file pcpsdefs.h.

Referenced by print_hr_time(), and sprint_hr_time().

#define PCPS_SN_SIZE ( PCPS_FIFO_SIZE + 1 )

ASCIIZ string

Definition at line 757 of file pcpsdefs.h.

#define PCPS_SUCCESS 0

OK, no error

Definition at line 736 of file pcpsdefs.h.

Referenced by check_user_captures(), main(), print_date_time_status(), print_dev_info(), print_drvr_info(), print_hr_time(), print_receiver_position(), print_sec_changes(), print_sv_info(), and print_utc_parameters().

#define PCPS_SYNCD 0x04

clock has sync'ed at least once after pwr up

Definition at line 950 of file pcpsdefs.h.

Referenced by dump_status(), and print_date_time_status().

#define PCPS_UCAP_BUFFER_FULL 0x4000

events read too slow

Definition at line 976 of file pcpsdefs.h.

#define PCPS_UCAP_OVERRUN 0x2000

events interval too short

Definition at line 975 of file pcpsdefs.h.

#define PCPS_UTC 0x10

a special UTC firmware is installed

Definition at line 954 of file pcpsdefs.h.

Referenced by dump_status().

#define sizeof_PCPS_STIME sizeof( PCPS_STIME )

Definition at line 898 of file pcpsdefs.h.

#define sizeof_PCPS_TIME sizeof( PCPS_TIME )

Definition at line 897 of file pcpsdefs.h.

Typedef Documentation

typedef int8_t PCPS_BUFF[PCPS_FIFO_SIZE]

Definition at line 750 of file pcpsdefs.h.

typedef uint16_t PCPS_CMD_INFO

Definition at line 1213 of file pcpsdefs.h.

typedef char PCPS_ID_STR[PCPS_ID_SIZE]

Definition at line 754 of file pcpsdefs.h.

typedef struct PCPS_IRIG_TIME_s PCPS_IRIG_TIME

typedef char PCPS_SN_STR[PCPS_SN_SIZE]

Definition at line 758 of file pcpsdefs.h.

typedef struct PCPS_STIME_s PCPS_STIME

typedef struct PCPS_TIME_s PCPS_TIME

typedef uint8_t PCPS_TIME_STATUS

Definition at line 847 of file pcpsdefs.h.

typedef uint16_t PCPS_TIME_STATUS_X

extended status

Definition at line 812 of file pcpsdefs.h.

typedef uint16_t TR_DISTANCE

The fixed-length standard time string being sent on the serial output is described below:

<STX>D:dd.mm.yy;T:d;U:hh.mm.ss;uvwx<ETX>

where <STX> and <ETX> represent the ASCII codes 0x02 and 0x03, 'dd.mm.yy' is the format of the current date, 'd' is the current day of week (1..7, 1 == Monday ) and 'hh.mm.ss' is the format of the current time. The characters 'uvwx' reflect the clock's status:

u clock status character: '#' clock has not synchronized after reset ' ' (space, 20h) clock has synchronized after reset

v clock status character, different for DCF77 or GPS receivers: '*' DCF77 clock currently runs on XTAL GPS receiver has not checked its position ' ' (space, 20h): DCF77 clock is syncronized with transmitter GPS receiver has determined its position

x time zone indicator: 'U' UTC Universal Time, Coordinated ' ' MEZ European Standard Time, daylight saving disabled 'S' MESZ European Summertime, daylight saving enabled

y anouncement of discontinuity of time, enabled during last hour before discontinuity comes in effect: '!' announcement of start or end of daylight saving 'A' announcement of leap second insertion ' ' (space, 20h): nothing announced Some definitions used with PZF receivers

Definition at line 1123 of file pcpsdefs.h.

Enumeration Type Documentation

anonymous enum

The following codes enumerate the ref time sources from which the clocks receive the reference time.

Enumerator:
PCPS_REF_NONE | (unknown or not defined)
PCPS_REF_DCF | see http://www.meinberg.de/english/info/dcf77.htm
PCPS_REF_GPS | see http://www.meinberg.de/english/info/gps.htm
PCPS_REF_IRIG | see http://www.meinberg.de/english/info/irig.htm
PCPS_REF_MSF | MSF Receiver (UK)
PCPS_REF_PTP | PTP Timestamp card
PCPS_REF_FRC | Free Running Clock
PCPS_REF_WWVB | WWVB Receiver (US)
N_PCPS_REF | number of valid ref time sources

Definition at line 210 of file pcpsdefs.h.

anonymous enum

Some DCF77 clocks have a serial interface that can be controlled using the commands PCPS_SET_SERIAL and PCPS_GET_SERIAL. Both commands use a parameter byte describing transmission speed, framing and mode of operation. The parameter byte can be build using the constants defined below, by or'ing one of the constants of each group, shifted to the right position. PCPS_GET_SERIAL expects that parameter byte and PCPS_GET_SERIAL returns the current configuration from the board. _pcps_has_serial() checks whether supported. For GPS clocks, please refer to the comments for the PCPS_GET_SERIAL command. Baud rate indices. The values below are obsolete and should be replaced by the codes named MBG_BAUD_RATE_... which are defined in gpsdefs.h. The resulting index numbers, however, have not changed.

Enumerator:
PCPS_BD_300
PCPS_BD_600
PCPS_BD_1200
PCPS_BD_2400
PCPS_BD_4800
PCPS_BD_9600
PCPS_BD_19200
N_PCPS_BD

Definition at line 1016 of file pcpsdefs.h.

anonymous enum

Unfortunately, the framing codes below can not simply be replaced by the newer MBG_FRAMING_... definitions since the order of indices does not match.

Enumerator:
PCPS_FR_8N1
PCPS_FR_7E2
PCPS_FR_8N2
PCPS_FR_8E1
N_PCPS_FR_DCF

Definition at line 1042 of file pcpsdefs.h.

anonymous enum

Modes of operation

Indices for modes of operation. The values below are obsolete and should be replaced by the codes named STR_... which are defined in gpsdefs.h. The resulting index numbers, however, have not changed.

Enumerator:
PCPS_MOD_REQ
PCPS_MOD_SEC
PCPS_MOD_MIN
PCPS_MOD_RSVD
N_PCPS_MOD_DCF

Definition at line 1069 of file pcpsdefs.h.

anonymous enum

Codes used with CORR_INFO::status:

Enumerator:
PZF_CORR_RAW
PZF_CORR_CHECK
PZF_CORR_FINE
N_PZF_CORR_STATE

Definition at line 1135 of file pcpsdefs.h.

anonymous enum

The enumeration below defines the various types of data that can be read from or written to a Meinberg GPS plug-in clock. Access should be done using the functions pcps_read_gps_data() and pcps_write_gps_data() in file pcpsio.c because the size of some of the structures exceeds the size of the clock's on-board FIFO and must therefore be accessed in several portions.

The structures to be used are defined in gpsdefs.h. Not all structures are supportet, yet. Check the R/W indicators for details.

Enumerator:
PC_GPS_TZDL
PC_GPS_SW_REV
PC_GPS_BVAR_STAT
PC_GPS_TIME
PC_GPS_POS_XYZ
PC_GPS_POS_LLA
PC_GPS_PORT_PARM
PC_GPS_ANT_INFO
PC_GPS_UCAP
PC_GPS_ENABLE_FLAGS
PC_GPS_STAT_INFO
PC_GPS_CMD
PC_GPS_IDENT
PC_GPS_POS
PC_GPS_ANT_CABLE_LEN
PC_GPS_RECEIVER_INFO
PC_GPS_ALL_STR_TYPE_INFO
PC_GPS_ALL_PORT_INFO
PC_GPS_PORT_SETTINGS_IDX
PC_GPS_ALL_POUT_INFO
PC_GPS_POUT_SETTINGS_IDX
PC_GPS_TIME_SCALE
PC_GPS_LAN_IF_INFO
PC_GPS_IP4_STATE
PC_GPS_IP4_SETTINGS
PC_GPS_PTP_STATE
PC_GPS_PTP_CFG
PC_GPS_CFGH
PC_GPS_ALM
PC_GPS_EPH
PC_GPS_UTC
PC_GPS_IONO
PC_GPS_ASCII_MSG

Definition at line 1155 of file pcpsdefs.h.

anonymous enum

codes used with PC_GPS_CMD

Enumerator:
PC_GPS_CMD_BOOT | force the clock to boot mode
PC_GPS_CMD_INIT_SYS | let the clock clear its system variables
PC_GPS_CMD_INIT_USER | reset the clock's user parameters to defaults
PC_GPS_CMD_INIT_DAC | initialize the oscillator disciplining values
N_PC_GPS_CMD | no command, just the number of known commands

Definition at line 1198 of file pcpsdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pcpsdev.h File Reference

  • Files

c/mbglib/include/pcpsdev.h File Reference

#include <pcpsdefs.h>
#include <gpsdefs.h>
#include <usbdefs.h>
#include <mbg_tgt.h>
#include <use_pack.h>

Go to the source code of this file.

Data Structures

struct | PCPS_DEV_TYPE
struct | PCPS_PORT_RSRC
struct | PCPS_MAPPED_MEM
struct | PCPS_DEV_CFG
struct | PCPS_DEV
struct | PCPS_DRVR_INFO
struct | RECEIVER_PORT_CFG
struct | PCPS_TIME_CYCLES
struct | PCPS_TIME_STAMP_CYCLES
struct | PCPS_HR_TIME_CYCLES

Defines

#define | _mbg_swab_mbg_pc_cycles(_p) _nop_macro_fnc()
#define | _mbg_swab_mbg_pc_cycles_frequency(_p) _nop_macro_fnc()
#define | MBG_MEM_ADDR uint64_t
#define | PCPS_ST_BUSY 0x01
#define | PCPS_ST_IRQF 0x02
#define | PCPS_ST_MOD 0x20
#define | PCPS_ST_SEC 0x40
#define | PCPS_ST_MIN 0x80
#define | PCPS_BUS_ISA 0x0001
#define | PCPS_BUS_MCA 0x0002
#define | PCPS_BUS_PCI 0x0004
#define | PCPS_BUS_USB 0x0008
#define | PCPS_BUS_PCI_CHIP_S5920 0x8000
#define | PCPS_BUS_PCI_CHIP_ASIC 0x4000
#define | PCPS_BUS_PCI_CHIP_PEX8311 0x2000
#define | PCPS_BUS_PCI_S5933 ( PCPS_BUS_PCI )
#define | PCPS_BUS_PCI_S5920 ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_S5920 )
#define | PCPS_BUS_PCI_ASIC ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_ASIC )
#define | PCPS_BUS_PCI_PEX8311 ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_PEX8311 )
#define | PCPS_CLOCK_NAME_SZ 10
#define | N_PCPS_PORT_RSRC 2
#define | PCPS_EF_TIMEOUT 0x00000001
#define | PCPS_EF_INV_EPROM_ID 0x00000002
#define | PCPS_EF_IO_INIT 0x00000004
#define | PCPS_EF_IO_CFG 0x00000008
#define | PCPS_EF_IO_ENB 0x00000010
#define | PCPS_EF_IO_RSRC 0x00000020
#define | PCPS_CAN_SET_TIME 0x00000001UL
#define | PCPS_HAS_SERIAL 0x00000002UL
#define | PCPS_HAS_SYNC_TIME 0x00000004UL
#define | PCPS_HAS_TZDL 0x00000008UL
#define | PCPS_HAS_IDENT 0x00000010UL
#define | PCPS_HAS_UTC_OFFS 0x00000020UL
#define | PCPS_HAS_HR_TIME 0x00000040UL
#define | PCPS_HAS_SERNUM 0x00000080UL
#define | PCPS_HAS_TZCODE 0x00000100UL
#define | PCPS_HAS_CABLE_LEN 0x00000200UL
#define | PCPS_HAS_EVENT_TIME 0x00000400UL
#define | PCPS_HAS_RECEIVER_INFO 0x00000800UL
#define | PCPS_CAN_CLR_UCAP_BUFF 0x00001000UL
#define | PCPS_HAS_PCPS_TZDL 0x00002000UL
#define | PCPS_HAS_UCAP 0x00004000UL
#define | PCPS_HAS_IRIG_TX 0x00008000UL
#define | PCPS_HAS_GPS_DATA_16 0x00010000UL
#define | PCPS_HAS_SYNTH 0x00020000UL
#define | PCPS_HAS_GENERIC_IO 0x00040000UL
#define | PCPS_HAS_TIME_SCALE 0x00080000UL
#define | PCPS_HAS_UTC_PARM 0x00100000UL
#define | PCPS_HAS_IRIG_CTRL_BITS 0x00200000UL
#define | PCPS_HAS_LAN_INTF 0x00400000UL
#define | PCPS_HAS_PTP 0x00800000UL
#define | PCPS_HAS_IRIG_TIME 0x01000000UL
#define | PCPS_FEAT_PC31PS31 0
#define | PCPS_FEAT_LVL2
#define | PCPS_FEAT_PC32 ( PCPS_FEAT_LVL2 )
#define | PCPS_FEAT_PCI32 ( PCPS_FEAT_LVL2 )
#define | PCPS_FEAT_PCI509
#define | PCPS_FEAT_PCI510 ( PCPS_FEAT_PCI509 )
#define | PCPS_FEAT_PCI511 ( PCPS_FEAT_PCI510 )
#define | PCPS_FEAT_GPS167PC
#define | PCPS_FEAT_GPS167PCI
#define | PCPS_FEAT_GPS168PCI
#define | PCPS_FEAT_GPS169PCI
#define | PCPS_FEAT_GPS170PCI
#define | PCPS_FEAT_TCR510PCI
#define | PCPS_FEAT_TCR167PCI
#define | PCPS_FEAT_TCR511PCI
#define | PCPS_FEAT_PEX511 ( PCPS_FEAT_PCI511 )
#define | PCPS_FEAT_TCR511PEX ( PCPS_FEAT_TCR511PCI )
#define | PCPS_FEAT_GPS170PEX ( PCPS_FEAT_GPS170PCI )
#define | PCPS_FEAT_USB5131
#define | PCPS_FEAT_TCR51USB
#define | PCPS_FEAT_MSF51USB
#define | PCPS_FEAT_PTP270PEX
#define | PCPS_FEAT_FRC511PEX
#define | PCPS_FEAT_TCR170PEX ( PCPS_FEAT_TCR167PCI )
#define | PCPS_FEAT_WWVB51USB ( PCPS_FEAT_MSF51USB )
#define | REV_HAS_IRQ_FIX_MINOR_PEX511 0x0106
#define | REV_HAS_IRQ_FIX_MINOR_TCR511PEX 0x0105
#define | REV_HAS_IRQ_FIX_MINOR_GPS170PEX 0x0104
#define | _pcps_pex_irq_is_safe(_curr_fw_ver, _req_fw_ver, _curr_asic_ver,_req_asic_ver_major, _req_asic_ver_minor)
#define | REV_HAS_IRIG_TIME_TCR511PEX 0x0109
#define | REV_HAS_IRIG_TIME_TCR511PCI 0x0109
#define | REV_HAS_IRIG_CTRL_BITS_TCR511PEX 0x0107
#define | REV_HAS_IRIG_CTRL_BITS_TCR511PCI 0x0107
#define | REV_HAS_GPS_DATA_16_GPS169PCI 0x0202
#define | REV_HAS_SERIAL_HS_PCI509 0x0104
#define | REV_HAS_UCAP_GPS167PCI 0x0421
#define | REV_HAS_UCAP_GPS168PCI 0x0104
#define | REV_CAN_CLR_UCAP_BUFF_GPS167PCI 0x0419
#define | REV_CAN_CLR_UCAP_BUFF_GPS168PCI 0x0101
#define | REV_HAS_CABLE_LEN_GPS167PCI 0x0411
#define | REV_HAS_CABLE_LEN_GPS167PC 0x0411
#define | REV_HAS_HR_TIME_GPS167PC 0x0305
#define | REV_HAS_HR_TIME_TCR510PCI 0x0200
#define | REV_HAS_HR_TIME_PEX511 0x0105
#define | REV_HAS_HR_TIME_PCI511 0x0103
#define | REV_HAS_UTC_OFFS_PC31PS31 0x0300
#define | REV_HAS_SYNC_TIME_PC31PS31 0x0300
#define | REV_HAS_SERIAL_PC31PS31 0x0300
#define | REV_GIVE_TIME_NOCLEAR_PC31PS31 0x0300
#define | REV_PCPS_LS_ANN_PC31PS31 0x0300
#define | REV_PCPS_IFTM_PC31PS31 0x0300
#define | REV_CAN_SET_TIME_PC31PS31 0x0240
#define | _pcps_type_num(_d) ( (_d)->type.num )
#define | _pcps_type_name(_d) ( (_d)->type.name )
#define | _pcps_dev_id(_d) ( (_d)->type.dev_id )
#define | _pcps_ref_type(_d) ( (_d)->type.ref_type )
#define | _pcps_bus_flags(_d) ( (_d)->type.bus_flags )
#define | _pcps_is_gps(_d) ( _pcps_ref_type( _d ) == PCPS_REF_GPS )
#define | _pcps_is_dcf(_d) ( _pcps_ref_type( _d ) == PCPS_REF_DCF )
#define | _pcps_is_msf(_d) ( _pcps_ref_type( _d ) == PCPS_REF_MSF )
#define | _pcps_is_wwvb(_d) ( _pcps_ref_type( _d ) == PCPS_REF_WWVB )
#define | _pcps_is_irig_rx(_d) ( _pcps_ref_type( _d ) == PCPS_REF_IRIG )
#define | _pcps_is_ptp(_d) ( _pcps_ref_type( _d ) == PCPS_REF_PTP )
#define | _pcps_is_frc(_d) ( _pcps_ref_type( _d ) == PCPS_REF_FRC )
#define | _pcps_is_lwr(_d) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )
#define | _pcps_is_isa(_d) ( _pcps_bus_flags( _d ) & PCPS_BUS_ISA )
#define | _pcps_is_mca(_d) ( _pcps_bus_flags( _d ) & PCPS_BUS_MCA )
#define | _pcps_is_pci(_d) ( _pcps_bus_flags( _d ) & PCPS_BUS_PCI )
#define | _pcps_is_usb(_d) ( _pcps_bus_flags( _d ) & PCPS_BUS_USB )
#define | _pcps_is_pci_s5933(_d) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5933 )
#define | _pcps_is_pci_s5920(_d) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5920 )
#define | _pcps_is_pci_amcc(_d) ( _pcps_is_pci_s5920( _d ) || _pcps_is_pci_s5933( _d ) )
#define | _pcps_is_pci_asic(_d) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_ASIC )
#define | _pcps_is_pci_pex8311(_d) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_PEX8311 )
#define | _pcps_bus_num(_d) ( (_d)->cfg.bus_num )
#define | _pcps_slot_num(_d) ( (_d)->cfg.slot_num )
#define | _pcps_cfg_port_rsrc(_c, _n) ( (_c)->port[_n] )
#define | _pcps_port_rsrc(_d, _n) _pcps_cfg_port_rsrc( &(_d)->cfg, (_n) )
#define | _pcps_port_rsrc_unused(_d) ( (_d)->base == 0 || (_d)->num == 0 )
#define | _pcps_cfg_port_base(_c, _n) ( _pcps_cfg_port_rsrc( (_c), (_n) ).base )
#define | _pcps_port_base(_d, _n) ( _pcps_port_rsrc( (_d), (_n) ).base )
#define | _pcps_cfg_irq_num(_c) ( (_c)->irq_num )
#define | _pcps_irq_num(_d) _pcps_cfg_irq_num( &(_d)->cfg )
#define | _pcps_cfg_timeout_clk(_c) ( (_c)->timeout_clk )
#define | _pcps_timeout_clk(_d) _pcps_cfg_timeout_clk( &(_d)->cfg )
#define | _pcps_fw_rev_num(_d) ( (_d)->cfg.fw_rev_num )
#define | _pcps_fw_id(_d) ( (_d)->cfg.fw_id )
#define | _pcps_sernum(_d) ( (_d)->cfg.sernum )
#define | _pcps_err_flags(_d) ( (_d)->cfg.err_flags )
#define | _pcps_chk_err_flags(_d, _msk) ( _pcps_err_flags( _d ) & (_msk) )
#define | _pcps_set_err_flags(_d, _msk) ( _pcps_err_flags( _d ) |= (_msk) )
#define | _pcps_clr_err_flags(_d, _msk) ( _pcps_err_flags( _d ) &= ~(_msk) )
#define | _pcps_has_feature(_d, _f) ( ( (_d)->cfg.features & (_f) ) != 0 )
#define | _pcps_can_set_time(_d) _pcps_has_feature( (_d), PCPS_CAN_SET_TIME )
#define | _pcps_has_serial(_d) _pcps_has_feature( (_d), PCPS_HAS_SERIAL )
#define | _pcps_has_sync_time(_d) _pcps_has_feature( (_d), PCPS_HAS_SYNC_TIME )
#define | _pcps_has_ident(_d) _pcps_has_feature( (_d), PCPS_HAS_IDENT )
#define | _pcps_has_utc_offs(_d) _pcps_has_feature( (_d), PCPS_HAS_UTC_OFFS )
#define | _pcps_has_hr_time(_d) _pcps_has_feature( (_d), PCPS_HAS_HR_TIME )
#define | _pcps_has_sernum(_d) _pcps_has_feature( (_d), PCPS_HAS_SERNUM )
#define | _pcps_has_cab_len(_d) _pcps_has_feature( (_d), PCPS_HAS_CABLE_LEN )
#define | _pcps_has_tzdl(_d) _pcps_has_feature( (_d), PCPS_HAS_TZDL )
#define | _pcps_has_pcps_tzdl(_d) _pcps_has_feature( (_d), PCPS_HAS_PCPS_TZDL )
#define | _pcps_has_tzcode(_d) _pcps_has_feature( (_d), PCPS_HAS_TZCODE )
#define | _pcps_has_tz(_d)
#define | _pcps_has_event_time(_d) _pcps_has_feature( (_d), PCPS_HAS_EVENT_TIME )
#define | _pcps_has_receiver_info(_d) _pcps_has_feature( (_d), PCPS_HAS_RECEIVER_INFO )
#define | _pcps_can_clr_ucap_buff(_d) _pcps_has_feature( (_d), PCPS_CAN_CLR_UCAP_BUFF )
#define | _pcps_has_ucap(_d) _pcps_has_feature( (_d), PCPS_HAS_UCAP )
#define | _pcps_has_irig_tx(_d) _pcps_has_feature( (_d), PCPS_HAS_IRIG_TX )
#define | _pcps_has_serial_hs(_d)
#define | _pcps_has_signal(_d) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) || _pcps_is_irig_rx( _d ) )
#define | _pcps_has_mod(_d) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )
#define | _pcps_has_irig(_d) ( _pcps_is_irig_rx( _d ) || _pcps_has_irig_tx( _d ) )
#define | _pcps_has_irig_ctrl_bits(_d) _pcps_has_feature( (_d), PCPS_HAS_IRIG_CTRL_BITS )
#define | _pcps_has_irig_time(_d) _pcps_has_feature( (_d), PCPS_HAS_IRIG_TIME )
#define | _pcps_has_ref_offs(_d) _pcps_is_irig_rx( _d )
#define | _pcps_ref_offs_out_of_range(_n) ( ( (_n) > MBG_REF_OFFS_MAX ) || ( (_n) < -MBG_REF_OFFS_MAX ) )
#define | _pcps_has_opt_flags(_d) _pcps_is_irig_rx( _d )
#define | _pcps_has_gps_data_16(_d) _pcps_has_feature( (_d), PCPS_HAS_GPS_DATA_16 )
#define | _pcps_has_gps_data(_d) ( _pcps_is_gps( _d ) || _pcps_has_gps_data_16( _d ) )
#define | _pcps_has_synth(_d) _pcps_has_feature( (_d), PCPS_HAS_SYNTH )
#define | _pcps_has_generic_io(_d) _pcps_has_feature( (_d), PCPS_HAS_GENERIC_IO )
#define | _pcps_has_time_scale(_d) _pcps_has_feature( (_d), PCPS_HAS_TIME_SCALE )
#define | _pcps_has_utc_parm(_d) _pcps_has_feature( (_d), PCPS_HAS_UTC_PARM )
#define | _pcps_has_lan_intf(_d) _pcps_has_feature( (_d), PCPS_HAS_LAN_INTF )
#define | _pcps_has_ptp(_d) _pcps_has_feature( (_d), PCPS_HAS_PTP )
#define | _pcps_has_asic_version(_d) ( _pcps_is_pci_asic( _d ) || _pcps_is_pci_pex8311( _d ) )
#define | _pcps_has_asic_features(_d) _pcps_has_asic_version( _d )
#define | MAX_PARM_PORT 4
#define | MAX_PARM_STR_TYPE 20
#define | MAX_PARM_POUT 4
#define | _pcps_time_set_unread(_t) ; { (_t)->sec = 0xFF; }
#define | _pcps_time_is_read(_t) ( (uchar) (_t)->sec != 0xFF )
#define | _mbg_swab_pcps_time_stamp_cycles(_p)
#define | _mbg_swab_pcps_hr_time_cycles(_p)
#define | PCPS_IRQ_STAT_ENABLE_CALLED 0x01
#define | PCPS_IRQ_STAT_ENABLED 0x02
#define | PCPS_IRQ_STAT_UNSAFE 0x04
#define | PCPS_IRQ_STATE_DANGER ( PCPS_IRQ_STAT_ENABLED | PCPS_IRQ_STAT_UNSAFE )
#define | _pcps_fw_rev_num_major(_v) ( ( (_v) >> 8 ) & 0xFF )
#define | _pcps_fw_rev_num_minor(_v) ( (_v) & 0xFF )

Typedefs

typedef uint32_t | MBG_PC_CYCLES
typedef uint32_t | MBG_PC_CYCLES_FREQUENCY
typedef uint8_t | PCPS_STATUS_PORT
typedef uint8_t | MBG_DBG_DATA
typedef uint16_t | MBG_DBG_PORT
typedef uint16_t | PCPS_DEV_ID
typedef uint16_t | PCPS_REF_TYPE
typedef uint16_t | PCPS_BUS_FLAGS
typedef uint16_t | PCPS_PORT_ADDR
typedef uint32_t | PCPS_ERR_FLAGS
typedef uint32_t | PCPS_FEATURES
typedef uint16_t | PCPS_BUS_NUM
typedef uint16_t | PCPS_SLOT_NUM
typedef PORT_INFO_IDX | ALL_PORT_INFO [MAX_PARM_PORT]
typedef STR_TYPE_INFO_IDX | ALL_STR_TYPE_INFO [MAX_PARM_STR_TYPE]
typedef POUT_INFO_IDX | ALL_POUT_INFO [MAX_PARM_POUT]
typedef uint32_t | PCPS_IRQ_STAT_INFO

Enumerations

enum PCPS_TYPES {
PCPS_TYPE_PC31, PCPS_TYPE_PS31_OLD, PCPS_TYPE_PS31, PCPS_TYPE_PC32,
PCPS_TYPE_PCI32, PCPS_TYPE_GPS167PC, PCPS_TYPE_GPS167PCI, PCPS_TYPE_PCI509,
PCPS_TYPE_GPS168PCI, PCPS_TYPE_PCI510, PCPS_TYPE_GPS169PCI, PCPS_TYPE_TCR510PCI,
PCPS_TYPE_TCR167PCI, PCPS_TYPE_GPS170PCI, PCPS_TYPE_PCI511, PCPS_TYPE_TCR511PCI,
PCPS_TYPE_PEX511, PCPS_TYPE_TCR511PEX, PCPS_TYPE_GPS170PEX, PCPS_TYPE_USB5131,
PCPS_TYPE_TCR51USB, PCPS_TYPE_MSF51USB, PCPS_TYPE_PTP270PEX, PCPS_TYPE_FRC511PEX,
PCPS_TYPE_TCR170PEX, PCPS_TYPE_WWVB51USB, N_PCPS_DEV_TYPE
}

Functions

static __mbg_inline void | mbg_get_pc_cycles (MBG_PC_CYCLES *p)
static __mbg_inline void | mbg_get_pc_cycles_frequency (MBG_PC_CYCLES_FREQUENCY *p)
static __mbg_inline MBG_PC_CYCLES | mbg_delta_pc_cycles (const MBG_PC_CYCLES *p1, const MBG_PC_CYCLES *p2)

Define Documentation

#define _mbg_swab_mbg_pc_cycles ( _p ) _nop_macro_fnc()

Definition at line 241 of file pcpsdev.h.

#define _mbg_swab_mbg_pc_cycles_frequency ( _p ) _nop_macro_fnc()

Definition at line 244 of file pcpsdev.h.

#define _mbg_swab_pcps_hr_time_cycles ( _p )

Value:

{                                           \
  _mbg_swab_mbg_pc_cycles( &(_p)->cycles ); \
  _mbg_swab_pcps_hr_time( &(_p)->t );       \
}

Definition at line 1086 of file pcpsdev.h.

#define _mbg_swab_pcps_time_stamp_cycles ( _p )

Value:

{                                              \
  _mbg_swab_mbg_pc_cycles( &(_p)->cycles );    \
  _mbg_swab_pcps_time_stamp( &(_p)->tstamp );  \
}

Definition at line 1064 of file pcpsdev.h.

#define _pcps_bus_flags ( _d ) ( (_d)->type.bus_flags )

Definition at line 844 of file pcpsdev.h.

#define _pcps_bus_num ( _d ) ( (_d)->cfg.bus_num )

Definition at line 870 of file pcpsdev.h.

#define _pcps_can_clr_ucap_buff ( _d ) _pcps_has_feature( (_d), PCPS_CAN_CLR_UCAP_BUFF )

Definition at line 917 of file pcpsdev.h.

Referenced by check_user_captures().

#define _pcps_can_set_time ( _d ) _pcps_has_feature( (_d), PCPS_CAN_SET_TIME )

Definition at line 900 of file pcpsdev.h.

#define _pcps_cfg_irq_num ( _c ) ( (_c)->irq_num )

Definition at line 880 of file pcpsdev.h.

#define _pcps_cfg_port_base | ( | _c,
 |  | _n | ) | ( _pcps_cfg_port_rsrc( (_c), (_n) ).base )

Definition at line 877 of file pcpsdev.h.

#define _pcps_cfg_port_rsrc | ( | _c,
 |  | _n | ) | ( (_c)->port[_n] )

Definition at line 873 of file pcpsdev.h.

#define _pcps_cfg_timeout_clk ( _c ) ( (_c)->timeout_clk )

Definition at line 883 of file pcpsdev.h.

#define _pcps_chk_err_flags | ( | _d,
 |  | _msk | ) | ( _pcps_err_flags( _d ) & (_msk) )

Definition at line 893 of file pcpsdev.h.

#define _pcps_clr_err_flags | ( | _d,
 |  | _msk | ) | ( _pcps_err_flags( _d ) &= ~(_msk) )

Definition at line 895 of file pcpsdev.h.

#define _pcps_dev_id ( _d ) ( (_d)->type.dev_id )

Definition at line 842 of file pcpsdev.h.

#define _pcps_err_flags ( _d ) ( (_d)->cfg.err_flags )

Definition at line 892 of file pcpsdev.h.

#define _pcps_fw_id ( _d ) ( (_d)->cfg.fw_id )

Definition at line 887 of file pcpsdev.h.

Referenced by print_dev_info().

#define _pcps_fw_rev_num ( _d ) ( (_d)->cfg.fw_rev_num )

Definition at line 886 of file pcpsdev.h.

#define _pcps_fw_rev_num_major ( _v ) ( ( (_v) >> 8 ) & 0xFF )

Definition at line 1103 of file pcpsdev.h.

#define _pcps_fw_rev_num_minor ( _v ) ( (_v) & 0xFF )

Definition at line 1106 of file pcpsdev.h.

#define _pcps_has_asic_features ( _d ) _pcps_has_asic_version( _d )

Definition at line 979 of file pcpsdev.h.

#define _pcps_has_asic_version ( _d ) ( _pcps_is_pci_asic( _d ) || _pcps_is_pci_pex8311( _d ) )

Definition at line 977 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_cab_len ( _d ) _pcps_has_feature( (_d), PCPS_HAS_CABLE_LEN )

Definition at line 907 of file pcpsdev.h.

#define _pcps_has_event_time ( _d ) _pcps_has_feature( (_d), PCPS_HAS_EVENT_TIME )

Definition at line 915 of file pcpsdev.h.

#define _pcps_has_feature | ( | _d,
 |  | _f | ) | ( ( (_d)->cfg.features & (_f) ) != 0 )

Definition at line 899 of file pcpsdev.h.

#define _pcps_has_generic_io ( _d ) _pcps_has_feature( (_d), PCPS_HAS_GENERIC_IO )

Definition at line 966 of file pcpsdev.h.

#define _pcps_has_gps_data ( _d ) ( _pcps_is_gps( _d ) || _pcps_has_gps_data_16( _d ) )

Definition at line 961 of file pcpsdev.h.

#define _pcps_has_gps_data_16 ( _d ) _pcps_has_feature( (_d), PCPS_HAS_GPS_DATA_16 )

Definition at line 959 of file pcpsdev.h.

#define _pcps_has_hr_time ( _d ) _pcps_has_feature( (_d), PCPS_HAS_HR_TIME )

Definition at line 905 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_ident ( _d ) _pcps_has_feature( (_d), PCPS_HAS_IDENT )

Definition at line 903 of file pcpsdev.h.

#define _pcps_has_irig ( _d ) ( _pcps_is_irig_rx( _d ) || _pcps_has_irig_tx( _d ) )

Definition at line 941 of file pcpsdev.h.

#define _pcps_has_irig_ctrl_bits ( _d ) _pcps_has_feature( (_d), PCPS_HAS_IRIG_CTRL_BITS )

Definition at line 944 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_irig_time ( _d ) _pcps_has_feature( (_d), PCPS_HAS_IRIG_TIME )

Definition at line 947 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_irig_tx ( _d ) _pcps_has_feature( (_d), PCPS_HAS_IRIG_TX )

Definition at line 919 of file pcpsdev.h.

#define _pcps_has_lan_intf ( _d ) _pcps_has_feature( (_d), PCPS_HAS_LAN_INTF )

Definition at line 972 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_mod ( _d ) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )

Definition at line 937 of file pcpsdev.h.

#define _pcps_has_opt_flags ( _d ) _pcps_is_irig_rx( _d )

Definition at line 956 of file pcpsdev.h.

#define _pcps_has_pcps_tzdl ( _d ) _pcps_has_feature( (_d), PCPS_HAS_PCPS_TZDL )

Definition at line 909 of file pcpsdev.h.

#define _pcps_has_ptp ( _d ) _pcps_has_feature( (_d), PCPS_HAS_PTP )

Definition at line 974 of file pcpsdev.h.

#define _pcps_has_receiver_info ( _d ) _pcps_has_feature( (_d), PCPS_HAS_RECEIVER_INFO )

Definition at line 916 of file pcpsdev.h.

#define _pcps_has_ref_offs ( _d ) _pcps_is_irig_rx( _d )

Definition at line 950 of file pcpsdev.h.

#define _pcps_has_serial ( _d ) _pcps_has_feature( (_d), PCPS_HAS_SERIAL )

Definition at line 901 of file pcpsdev.h.

#define _pcps_has_serial_hs ( _d )

Value:

( ( _pcps_type_num( _d ) == PCPS_TYPE_TCR511PEX ) || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_PEX511 )    || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_TCR511PCI ) || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_TCR510PCI ) || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_PCI511 )    || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_PCI510 )    || \
    ( _pcps_type_num( _d ) == PCPS_TYPE_PCI509 &&      \
      _pcps_fw_rev_num( _d ) >= REV_HAS_SERIAL_HS_PCI509 ) )

Definition at line 923 of file pcpsdev.h.

#define _pcps_has_sernum ( _d ) _pcps_has_feature( (_d), PCPS_HAS_SERNUM )

Definition at line 906 of file pcpsdev.h.

#define _pcps_has_signal ( _d ) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) || _pcps_is_irig_rx( _d ) )

Definition at line 934 of file pcpsdev.h.

#define _pcps_has_sync_time ( _d ) _pcps_has_feature( (_d), PCPS_HAS_SYNC_TIME )

Definition at line 902 of file pcpsdev.h.

#define _pcps_has_synth ( _d ) _pcps_has_feature( (_d), PCPS_HAS_SYNTH )

Definition at line 964 of file pcpsdev.h.

#define _pcps_has_time_scale ( _d ) _pcps_has_feature( (_d), PCPS_HAS_TIME_SCALE )

Definition at line 968 of file pcpsdev.h.

Referenced by main().

#define _pcps_has_tz ( _d )

Value:

_pcps_has_feature( (_d), PCPS_HAS_TZDL \
                                                          | PCPS_HAS_PCPS_TZDL \
                                                          | PCPS_HAS_TZCODE )

Definition at line 911 of file pcpsdev.h.

#define _pcps_has_tzcode ( _d ) _pcps_has_feature( (_d), PCPS_HAS_TZCODE )

Definition at line 910 of file pcpsdev.h.

#define _pcps_has_tzdl ( _d ) _pcps_has_feature( (_d), PCPS_HAS_TZDL )

Definition at line 908 of file pcpsdev.h.

#define _pcps_has_ucap ( _d ) _pcps_has_feature( (_d), PCPS_HAS_UCAP )

Definition at line 918 of file pcpsdev.h.

Referenced by check_user_captures().

#define _pcps_has_utc_offs ( _d ) _pcps_has_feature( (_d), PCPS_HAS_UTC_OFFS )

Definition at line 904 of file pcpsdev.h.

#define _pcps_has_utc_parm ( _d ) _pcps_has_feature( (_d), PCPS_HAS_UTC_PARM )

Definition at line 970 of file pcpsdev.h.

Referenced by main(), and print_utc_parameters().

#define _pcps_irq_num ( _d ) _pcps_cfg_irq_num( &(_d)->cfg )

Definition at line 881 of file pcpsdev.h.

#define _pcps_is_dcf ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_DCF )

Definition at line 848 of file pcpsdev.h.

#define _pcps_is_frc ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_FRC )

Definition at line 853 of file pcpsdev.h.

#define _pcps_is_gps ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_GPS )

Definition at line 847 of file pcpsdev.h.

Referenced by main().

#define _pcps_is_irig_rx ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_IRIG )

Definition at line 851 of file pcpsdev.h.

Referenced by main().

#define _pcps_is_isa ( _d ) ( _pcps_bus_flags( _d ) & PCPS_BUS_ISA )

Definition at line 857 of file pcpsdev.h.

#define _pcps_is_lwr ( _d ) ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )

Definition at line 855 of file pcpsdev.h.

#define _pcps_is_mca ( _d ) ( _pcps_bus_flags( _d ) & PCPS_BUS_MCA )

Definition at line 858 of file pcpsdev.h.

#define _pcps_is_msf ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_MSF )

Definition at line 849 of file pcpsdev.h.

#define _pcps_is_pci ( _d ) ( _pcps_bus_flags( _d ) & PCPS_BUS_PCI )

Definition at line 859 of file pcpsdev.h.

#define _pcps_is_pci_amcc ( _d ) ( _pcps_is_pci_s5920( _d ) || _pcps_is_pci_s5933( _d ) )

Definition at line 864 of file pcpsdev.h.

#define _pcps_is_pci_asic ( _d ) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_ASIC )

Definition at line 865 of file pcpsdev.h.

#define _pcps_is_pci_pex8311 ( _d ) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_PEX8311 )

Definition at line 866 of file pcpsdev.h.

#define _pcps_is_pci_s5920 ( _d ) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5920 )

Definition at line 863 of file pcpsdev.h.

#define _pcps_is_pci_s5933 ( _d ) ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5933 )

Definition at line 862 of file pcpsdev.h.

#define _pcps_is_ptp ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_PTP )

Definition at line 852 of file pcpsdev.h.

Referenced by main().

#define _pcps_is_usb ( _d ) ( _pcps_bus_flags( _d ) & PCPS_BUS_USB )

Definition at line 860 of file pcpsdev.h.

#define _pcps_is_wwvb ( _d ) ( _pcps_ref_type( _d ) == PCPS_REF_WWVB )

Definition at line 850 of file pcpsdev.h.

#define _pcps_pex_irq_is_safe | ( | _curr_fw_ver,
 |  | _req_fw_ver,
 |  | _curr_asic_ver,
 |  | _req_asic_ver_major,
 |  | _req_asic_ver_minor | )

Value:

( ( (_curr_fw_ver) >= (_req_fw_ver) ) && _pcps_asic_version_greater_equal( \
    (_curr_asic_ver), (_req_asic_ver_major), (_req_asic_ver_minor ) )        \
  )

Definition at line 751 of file pcpsdev.h.

#define _pcps_port_base | ( | _d,
 |  | _n | ) | ( _pcps_port_rsrc( (_d), (_n) ).base )

Definition at line 878 of file pcpsdev.h.

Referenced by print_dev_info().

#define _pcps_port_rsrc | ( | _d,
 |  | _n | ) | _pcps_cfg_port_rsrc( &(_d)->cfg, (_n) )

Definition at line 874 of file pcpsdev.h.

#define _pcps_port_rsrc_unused ( _d ) ( (_d)->base == 0 || (_d)->num == 0 )

Definition at line 875 of file pcpsdev.h.

#define _pcps_ref_offs_out_of_range ( _n ) ( ( (_n) > MBG_REF_OFFS_MAX ) || ( (_n) < -MBG_REF_OFFS_MAX ) )

Definition at line 953 of file pcpsdev.h.

#define _pcps_ref_type ( _d ) ( (_d)->type.ref_type )

Definition at line 843 of file pcpsdev.h.

#define _pcps_sernum ( _d ) ( (_d)->cfg.sernum )

Definition at line 888 of file pcpsdev.h.

Referenced by print_dev_info().

#define _pcps_set_err_flags | ( | _d,
 |  | _msk | ) | ( _pcps_err_flags( _d ) |= (_msk) )

Definition at line 894 of file pcpsdev.h.

#define _pcps_slot_num ( _d ) ( (_d)->cfg.slot_num )

Definition at line 871 of file pcpsdev.h.

#define _pcps_time_is_read ( _t ) ( (uchar) (_t)->sec != 0xFF )

Definition at line 1034 of file pcpsdev.h.

Referenced by check_user_captures().

#define _pcps_time_set_unread ( _t ) ; { (_t)->sec = 0xFF; }

Definition at line 1033 of file pcpsdev.h.

#define _pcps_timeout_clk ( _d ) _pcps_cfg_timeout_clk( &(_d)->cfg )

Definition at line 884 of file pcpsdev.h.

#define _pcps_type_name ( _d ) ( (_d)->type.name )

Definition at line 841 of file pcpsdev.h.

Referenced by print_dev_info().

#define _pcps_type_num ( _d ) ( (_d)->type.num )

Definition at line 840 of file pcpsdev.h.

#define MAX_PARM_PORT 4

Definition at line 1002 of file pcpsdev.h.

#define MAX_PARM_POUT 4

Definition at line 1024 of file pcpsdev.h.

#define MAX_PARM_STR_TYPE 20

Definition at line 1003 of file pcpsdev.h.

#define MBG_MEM_ADDR uint64_t

Definition at line 386 of file pcpsdev.h.

#define N_PCPS_PORT_RSRC 2

The max number of I/O port resources used by a clock.

Definition at line 527 of file pcpsdev.h.

#define PCPS_BUS_ISA 0x0001

Definition at line 423 of file pcpsdev.h.

#define PCPS_BUS_MCA 0x0002

Definition at line 424 of file pcpsdev.h.

#define PCPS_BUS_PCI 0x0004

Definition at line 425 of file pcpsdev.h.

#define PCPS_BUS_PCI_ASIC ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_ASIC )

Definition at line 447 of file pcpsdev.h.

#define PCPS_BUS_PCI_CHIP_ASIC 0x4000

Definition at line 438 of file pcpsdev.h.

#define PCPS_BUS_PCI_CHIP_PEX8311 0x2000

Definition at line 441 of file pcpsdev.h.

#define PCPS_BUS_PCI_CHIP_S5920 0x8000

Definition at line 435 of file pcpsdev.h.

#define PCPS_BUS_PCI_PEX8311 ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_PEX8311 )

Definition at line 448 of file pcpsdev.h.

#define PCPS_BUS_PCI_S5920 ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_S5920 )

Definition at line 446 of file pcpsdev.h.

#define PCPS_BUS_PCI_S5933 ( PCPS_BUS_PCI )

Definition at line 445 of file pcpsdev.h.

#define PCPS_BUS_USB 0x0008

Definition at line 426 of file pcpsdev.h.

#define PCPS_CLOCK_NAME_SZ 10

Definition at line 485 of file pcpsdev.h.

#define PCPS_FEAT_FRC511PEX

Value:

( PCPS_HAS_SERNUM    \
                            | PCPS_HAS_HR_TIME   \
                            | PCPS_HAS_RECEIVER_INFO \
                            | PCPS_CAN_SET_TIME  \
                            | PCPS_CAN_CLR_UCAP_BUFF \
                            | PCPS_HAS_UCAP \
                            | PCPS_HAS_GPS_DATA_16 )

Definition at line 720 of file pcpsdev.h.

#define PCPS_FEAT_GPS167PC

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_TZDL \
                            | PCPS_HAS_IDENT )

Definition at line 644 of file pcpsdev.h.

#define PCPS_FEAT_GPS167PCI

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_TZDL  \
                            | PCPS_HAS_IDENT \
                            | PCPS_HAS_HR_TIME )

Definition at line 648 of file pcpsdev.h.

#define PCPS_FEAT_GPS168PCI

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_TZDL  \
                            | PCPS_HAS_IDENT \
                            | PCPS_HAS_HR_TIME \
                            | PCPS_HAS_CABLE_LEN \
                            | PCPS_HAS_RECEIVER_INFO )

Definition at line 653 of file pcpsdev.h.

#define PCPS_FEAT_GPS169PCI

Value:

( PCPS_FEAT_GPS168PCI \
                            | PCPS_CAN_CLR_UCAP_BUFF \
                            | PCPS_HAS_UCAP )

Definition at line 660 of file pcpsdev.h.

#define PCPS_FEAT_GPS170PCI

Value:

( PCPS_FEAT_GPS169PCI \
                            | PCPS_HAS_IRIG_TX \
                            | PCPS_HAS_GPS_DATA_16 \
                            | PCPS_HAS_GENERIC_IO )

Definition at line 664 of file pcpsdev.h.

#define PCPS_FEAT_GPS170PEX ( PCPS_FEAT_GPS170PCI )

Definition at line 690 of file pcpsdev.h.

#define PCPS_FEAT_LVL2

Value:

( PCPS_CAN_SET_TIME   \
                            | PCPS_HAS_SERIAL     \
                            | PCPS_HAS_SYNC_TIME  \
                            | PCPS_HAS_UTC_OFFS )

Definition at line 627 of file pcpsdev.h.

#define PCPS_FEAT_MSF51USB

Value:

( PCPS_HAS_UTC_OFFS  \
                            | PCPS_HAS_SERNUM    \
                            | PCPS_HAS_SYNC_TIME \
                            | PCPS_HAS_HR_TIME   \
                            | PCPS_CAN_SET_TIME )

Definition at line 705 of file pcpsdev.h.

#define PCPS_FEAT_PC31PS31 0

Definition at line 623 of file pcpsdev.h.

#define PCPS_FEAT_PC32 ( PCPS_FEAT_LVL2 )

Definition at line 632 of file pcpsdev.h.

#define PCPS_FEAT_PCI32 ( PCPS_FEAT_LVL2 )

Definition at line 634 of file pcpsdev.h.

#define PCPS_FEAT_PCI509

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_SERNUM \
                            | PCPS_HAS_TZCODE )

Definition at line 636 of file pcpsdev.h.

#define PCPS_FEAT_PCI510 ( PCPS_FEAT_PCI509 )

Definition at line 640 of file pcpsdev.h.

#define PCPS_FEAT_PCI511 ( PCPS_FEAT_PCI510 )

Definition at line 642 of file pcpsdev.h.

#define PCPS_FEAT_PEX511 ( PCPS_FEAT_PCI511 )

Definition at line 686 of file pcpsdev.h.

#define PCPS_FEAT_PTP270PEX

Value:

( PCPS_HAS_SERNUM    \
                            | PCPS_HAS_SYNC_TIME \
                            | PCPS_HAS_HR_TIME   \
                            | PCPS_HAS_RECEIVER_INFO \
                            | PCPS_CAN_SET_TIME  \
                            | PCPS_CAN_CLR_UCAP_BUFF \
                            | PCPS_HAS_UCAP \
                            | PCPS_HAS_GPS_DATA_16 )

Definition at line 711 of file pcpsdev.h.

#define PCPS_FEAT_TCR167PCI

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_SERNUM \
                            | PCPS_HAS_TZDL \
                            | PCPS_HAS_HR_TIME \
                            | PCPS_HAS_RECEIVER_INFO \
                            | PCPS_CAN_CLR_UCAP_BUFF \
                            | PCPS_HAS_UCAP \
                            | PCPS_HAS_IRIG_TX \
                            | PCPS_HAS_GPS_DATA_16 \
                            | PCPS_HAS_GENERIC_IO )

Definition at line 672 of file pcpsdev.h.

#define PCPS_FEAT_TCR170PEX ( PCPS_FEAT_TCR167PCI )

Definition at line 728 of file pcpsdev.h.

#define PCPS_FEAT_TCR510PCI

Value:

( PCPS_FEAT_LVL2 \
                            | PCPS_HAS_SERNUM )

Definition at line 669 of file pcpsdev.h.

#define PCPS_FEAT_TCR511PCI

Value:

( PCPS_FEAT_TCR510PCI \
                            | PCPS_HAS_HR_TIME )

Definition at line 683 of file pcpsdev.h.

#define PCPS_FEAT_TCR511PEX ( PCPS_FEAT_TCR511PCI )

Definition at line 688 of file pcpsdev.h.

#define PCPS_FEAT_TCR51USB

Value:

( PCPS_HAS_UTC_OFFS  \
                            | PCPS_HAS_SERNUM    \
                            | PCPS_HAS_SYNC_TIME \
                            | PCPS_HAS_HR_TIME   \
                            | PCPS_CAN_SET_TIME )

Definition at line 699 of file pcpsdev.h.

#define PCPS_FEAT_USB5131

Value:

( PCPS_HAS_UTC_OFFS  \
                            | PCPS_HAS_SERNUM    \
                            | PCPS_HAS_SYNC_TIME \
                            | PCPS_HAS_HR_TIME   \
                            | PCPS_CAN_SET_TIME  \
                            | PCPS_HAS_TZCODE )

Definition at line 692 of file pcpsdev.h.

#define PCPS_FEAT_WWVB51USB ( PCPS_FEAT_MSF51USB )

Definition at line 730 of file pcpsdev.h.

#define PCPS_IRQ_STAT_ENABLE_CALLED 0x01

Definition at line 1097 of file pcpsdev.h.

#define PCPS_IRQ_STAT_ENABLED 0x02

Definition at line 1098 of file pcpsdev.h.

#define PCPS_IRQ_STAT_UNSAFE 0x04

Definition at line 1099 of file pcpsdev.h.

#define PCPS_IRQ_STATE_DANGER ( PCPS_IRQ_STAT_ENABLED | PCPS_IRQ_STAT_UNSAFE )

Definition at line 1101 of file pcpsdev.h.

#define REV_CAN_CLR_UCAP_BUFF_GPS167PCI 0x0419

Definition at line 778 of file pcpsdev.h.

#define REV_CAN_CLR_UCAP_BUFF_GPS168PCI 0x0101

Definition at line 779 of file pcpsdev.h.

#define REV_CAN_SET_TIME_PC31PS31 0x0240

Definition at line 811 of file pcpsdev.h.

#define REV_GIVE_TIME_NOCLEAR_PC31PS31 0x0300

Definition at line 802 of file pcpsdev.h.

#define REV_HAS_CABLE_LEN_GPS167PC 0x0411

Definition at line 784 of file pcpsdev.h.

#define REV_HAS_CABLE_LEN_GPS167PCI 0x0411

Definition at line 783 of file pcpsdev.h.

#define REV_HAS_GPS_DATA_16_GPS169PCI 0x0202

Definition at line 768 of file pcpsdev.h.

#define REV_HAS_HR_TIME_GPS167PC 0x0305

Definition at line 787 of file pcpsdev.h.

#define REV_HAS_HR_TIME_PCI511 0x0103

Definition at line 790 of file pcpsdev.h.

#define REV_HAS_HR_TIME_PEX511 0x0105

Definition at line 789 of file pcpsdev.h.

#define REV_HAS_HR_TIME_TCR510PCI 0x0200

Definition at line 788 of file pcpsdev.h.

#define REV_HAS_IRIG_CTRL_BITS_TCR511PCI 0x0107

Definition at line 763 of file pcpsdev.h.

#define REV_HAS_IRIG_CTRL_BITS_TCR511PEX 0x0107

Definition at line 762 of file pcpsdev.h.

#define REV_HAS_IRIG_TIME_TCR511PCI 0x0109

Definition at line 759 of file pcpsdev.h.

#define REV_HAS_IRIG_TIME_TCR511PEX 0x0109

Definition at line 758 of file pcpsdev.h.

#define REV_HAS_IRQ_FIX_MINOR_GPS170PEX 0x0104

Definition at line 745 of file pcpsdev.h.

#define REV_HAS_IRQ_FIX_MINOR_PEX511 0x0106

Definition at line 743 of file pcpsdev.h.

#define REV_HAS_IRQ_FIX_MINOR_TCR511PEX 0x0105

Definition at line 744 of file pcpsdev.h.

#define REV_HAS_SERIAL_HS_PCI509 0x0104

Definition at line 771 of file pcpsdev.h.

#define REV_HAS_SERIAL_PC31PS31 0x0300

Definition at line 799 of file pcpsdev.h.

#define REV_HAS_SYNC_TIME_PC31PS31 0x0300

Definition at line 796 of file pcpsdev.h.

#define REV_HAS_UCAP_GPS167PCI 0x0421

Definition at line 774 of file pcpsdev.h.

#define REV_HAS_UCAP_GPS168PCI 0x0104

Definition at line 775 of file pcpsdev.h.

#define REV_HAS_UTC_OFFS_PC31PS31 0x0300

Definition at line 793 of file pcpsdev.h.

#define REV_PCPS_IFTM_PC31PS31 0x0300

Definition at line 808 of file pcpsdev.h.

#define REV_PCPS_LS_ANN_PC31PS31 0x0300

Definition at line 805 of file pcpsdev.h.

Typedef Documentation

typedef PORT_INFO_IDX ALL_PORT_INFO[MAX_PARM_PORT]

Definition at line 1005 of file pcpsdev.h.

typedef POUT_INFO_IDX ALL_POUT_INFO[MAX_PARM_POUT]

Definition at line 1026 of file pcpsdev.h.

typedef STR_TYPE_INFO_IDX ALL_STR_TYPE_INFO[MAX_PARM_STR_TYPE]

Definition at line 1006 of file pcpsdev.h.

typedef uint8_t MBG_DBG_DATA

Definition at line 391 of file pcpsdev.h.

typedef uint16_t MBG_DBG_PORT

Definition at line 392 of file pcpsdev.h.

typedef uint32_t MBG_PC_CYCLES

Definition at line 233 of file pcpsdev.h.

typedef uint32_t MBG_PC_CYCLES_FREQUENCY

Definition at line 234 of file pcpsdev.h.

typedef uint16_t PCPS_BUS_FLAGS

Definition at line 489 of file pcpsdev.h.

typedef uint16_t PCPS_BUS_NUM

Definition at line 544 of file pcpsdev.h.

typedef uint16_t PCPS_DEV_ID

Definition at line 487 of file pcpsdev.h.

typedef uint32_t PCPS_ERR_FLAGS

see Error flags

Definition at line 542 of file pcpsdev.h.

typedef uint32_t PCPS_FEATURES

see Features

Definition at line 543 of file pcpsdev.h.

typedef uint32_t PCPS_IRQ_STAT_INFO

Definition at line 1094 of file pcpsdev.h.

typedef uint16_t PCPS_PORT_ADDR

Definition at line 511 of file pcpsdev.h.

typedef uint16_t PCPS_REF_TYPE

Definition at line 488 of file pcpsdev.h.

typedef uint16_t PCPS_SLOT_NUM

Definition at line 545 of file pcpsdev.h.

typedef uint8_t PCPS_STATUS_PORT

see Bitmask

Definition at line 390 of file pcpsdev.h.

Enumeration Type Documentation

enum PCPS_TYPES

A list of known radio clocks.

Enumerator:
PCPS_TYPE_PC31
PCPS_TYPE_PS31_OLD
PCPS_TYPE_PS31
PCPS_TYPE_PC32
PCPS_TYPE_PCI32
PCPS_TYPE_GPS167PC
PCPS_TYPE_GPS167PCI
PCPS_TYPE_PCI509
PCPS_TYPE_GPS168PCI
PCPS_TYPE_PCI510
PCPS_TYPE_GPS169PCI
PCPS_TYPE_TCR510PCI
PCPS_TYPE_TCR167PCI
PCPS_TYPE_GPS170PCI
PCPS_TYPE_PCI511
PCPS_TYPE_TCR511PCI
PCPS_TYPE_PEX511
PCPS_TYPE_TCR511PEX
PCPS_TYPE_GPS170PEX
PCPS_TYPE_USB5131
PCPS_TYPE_TCR51USB
PCPS_TYPE_MSF51USB
PCPS_TYPE_PTP270PEX
PCPS_TYPE_FRC511PEX
PCPS_TYPE_TCR170PEX
PCPS_TYPE_WWVB51USB
N_PCPS_DEV_TYPE

Definition at line 453 of file pcpsdev.h.

Function Documentation

static __mbg_inline MBG_PC_CYCLES mbg_delta_pc_cycles | ( | const MBG_PC_CYCLES * | p1,
 |  | const MBG_PC_CYCLES * | p2 |
 | ) |  |  | [static]

Definition at line 370 of file pcpsdev.h.

static __mbg_inline void mbg_get_pc_cycles ( MBG_PC_CYCLES * p ) [static]

Definition at line 308 of file pcpsdev.h.

Referenced by main().

static __mbg_inline void mbg_get_pc_cycles_frequency ( MBG_PC_CYCLES_FREQUENCY * p ) [static]

Definition at line 338 of file pcpsdev.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/usbdefs.h File Reference

  • Files

c/mbglib/include/usbdefs.h File Reference

Go to the source code of this file.

Defines

#define | USB_VENDOR_MEINBERG 0x1938
#define | USB_DEV_CPC_01 ( ( MBG_USB_CLASS_CPC << 8 ) | 0x01 )
#define | USB_DEV_TSU_01 ( ( MBG_USB_CLASS_TSU << 8 ) | 0x01 )
#define | USB_DEV_USB5131 ( ( MBG_USB_CLASS_DCF << 8 ) | 0x01 )
#define | USB_DEV_CMC ( ( MBG_USB_CLASS_CMC << 8 ) | 0x01 )
#define | USB_DEV_TCR51USB ( ( MBG_USB_CLASS_TCR << 8 ) | 0x01 )
#define | USB_DEV_MSF51USB ( ( MBG_USB_CLASS_MSF << 8 ) | 0x01 )
#define | USB_DEV_WWVB51USB ( ( MBG_USB_CLASS_WWVB << 8 ) | 0x01 )
#define | USB_DEV_SCU_USB ( ( MBG_USB_CLASS_SCU << 8 ) | 0x01 )

Enumerations

enum {
MBG_USB_CLASS_NONE, MBG_USB_CLASS_CPC, MBG_USB_CLASS_TSU, MBG_USB_CLASS_DCF,
MBG_USB_CLASS_CMC, MBG_USB_CLASS_TCR, MBG_USB_CLASS_MSF, MBG_USB_CLASS_WWVB,
MBG_USB_CLASS_SCU, N_MBG_USB_CLASS
}
enum | { MBGUSB_EP_IDX_HOST_IN, MBGUSB_EP_IDX_HOST_OUT, MBGUSB_EP_IDX_HOST_IN_CYCLIC, MBGUSB_MAX_ENDPOINTS }

Define Documentation

#define USB_DEV_CMC ( ( MBG_USB_CLASS_CMC << 8 ) | 0x01 )

Definition at line 82 of file usbdefs.h.

#define USB_DEV_CPC_01 ( ( MBG_USB_CLASS_CPC << 8 ) | 0x01 )

Definition at line 76 of file usbdefs.h.

#define USB_DEV_MSF51USB ( ( MBG_USB_CLASS_MSF << 8 ) | 0x01 )

Definition at line 86 of file usbdefs.h.

#define USB_DEV_SCU_USB ( ( MBG_USB_CLASS_SCU << 8 ) | 0x01 )

Definition at line 90 of file usbdefs.h.

#define USB_DEV_TCR51USB ( ( MBG_USB_CLASS_TCR << 8 ) | 0x01 )

Definition at line 84 of file usbdefs.h.

#define USB_DEV_TSU_01 ( ( MBG_USB_CLASS_TSU << 8 ) | 0x01 )

Definition at line 78 of file usbdefs.h.

#define USB_DEV_USB5131 ( ( MBG_USB_CLASS_DCF << 8 ) | 0x01 )

Definition at line 80 of file usbdefs.h.

#define USB_DEV_WWVB51USB ( ( MBG_USB_CLASS_WWVB << 8 ) | 0x01 )

Definition at line 88 of file usbdefs.h.

#define USB_VENDOR_MEINBERG 0x1938

Definition at line 50 of file usbdefs.h.

Enumeration Type Documentation

anonymous enum

Enumerator:
MBG_USB_CLASS_NONE
MBG_USB_CLASS_CPC
MBG_USB_CLASS_TSU
MBG_USB_CLASS_DCF
MBG_USB_CLASS_CMC
MBG_USB_CLASS_TCR
MBG_USB_CLASS_MSF
MBG_USB_CLASS_WWVB
MBG_USB_CLASS_SCU
N_MBG_USB_CLASS

Definition at line 56 of file usbdefs.h.

anonymous enum

Enumerator:
MBGUSB_EP_IDX_HOST_IN
MBGUSB_EP_IDX_HOST_OUT
MBGUSB_EP_IDX_HOST_IN_CYCLIC
MBGUSB_MAX_ENDPOINTS

Definition at line 92 of file usbdefs.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/use_pack.h File Reference

  • Files

c/mbglib/include/use_pack.h File Reference

Go to the source code of this file.

Defines

#define _USE_PACK

Define Documentation

#define _USE_PACK

Definition at line 25 of file use_pack.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/words.h File Reference

  • Files

c/mbglib/include/words.h File Reference

#include <mbg_tgt.h>

Go to the source code of this file.

Defines

#define | _IS_MBG_FIRMWARE 0
#define | _ext extern
#define | MBG_TGT_HAS_64BIT_TYPES 0
#define | HI_BYTE(_x) ( (_x) >> 8 )
#define | LO_BYTE(_x) ( (_x) & 0xFF )
#define | HI_WORD(_x) ( (_x) >> 16 )
#define | LO_WORD(_x) ( (_x) & 0xFFFF )
#define | BYTE_OF(_v, _n) *( ( (uint8_t *) &(_v) ) + (_n) )
#define | WORD_OF(_v, _n) *( ( (uint16_t *) &(_v) ) + (_n) )
#define | BYTE_OF_P(_p, _n) *( ( (uint8_t *) (_p) ) + (_n) )
#define | WORD_OF_P(_p, _n) *( ( (uint16_t *) (_p) ) + (_n) )
#define | _bswap16(_x)
#define | _bswap32(_x)
#define | _wswap32(_x)
#define | _var_bswap16(_v) (_v) = _bswap16( _v )
#define | _var_bswap32(_v) (_v) = _bswap32( _v )
#define | _hilo_16(_x) (_x)
#define | _hilo_32(_x) (_x)

Typedefs

typedef unsigned char | bit
typedef char | int8_t
typedef unsigned char | uint8_t
typedef short | int16_t
typedef unsigned short | uint16_t
typedef long | int32_t
typedef unsigned long | uint32_t
typedef void * | int64_t
typedef void * | uint64_t
typedef unsigned char | uchar
typedef unsigned short | ushort
typedef unsigned int | uint
typedef unsigned long | ulong
typedef double | udouble
typedef unsigned char | byte
typedef unsigned short | word
typedef unsigned long | longword
typedef unsigned long | dword

Define Documentation

#define _bswap16 ( _x )

Value:

(                                             \
  ( ( ( (uint16_t) (_x) ) & 0x00FF ) << 8 ) | \
  ( ( ( (uint16_t) (_x) ) & 0xFF00 ) >> 8 )   \
)

Definition at line 246 of file words.h.

#define _bswap32 ( _x )

Value:

(                                                    \
  ( ( ( (uint32_t) (_x) ) & 0x000000FFUL ) << 24 ) | \
  ( ( ( (uint32_t) (_x) ) & 0x0000FF00UL ) << 8 )  | \
  ( ( ( (uint32_t) (_x) ) & 0x00FF0000UL ) >> 8 )  | \
  ( ( ( (uint32_t) (_x) ) & 0xFF000000UL ) >> 24 )   \
)

Definition at line 253 of file words.h.

#define _ext extern

Definition at line 91 of file words.h.

#define _hilo_16 ( _x ) (_x)

Definition at line 282 of file words.h.

#define _hilo_32 ( _x ) (_x)

Definition at line 283 of file words.h.

#define _IS_MBG_FIRMWARE 0

Definition at line 75 of file words.h.

#define _var_bswap16 ( _v ) (_v) = _bswap16( _v )

Definition at line 268 of file words.h.

#define _var_bswap32 ( _v ) (_v) = _bswap32( _v )

Definition at line 269 of file words.h.

#define _wswap32 ( _x )

Value:

(                                                    \
  ( ( ( (uint32_t) (_x) ) & 0x0000FFFFUL ) << 16 ) | \
  ( ( ( (uint32_t) (_x) ) >> 16 ) & 0x0000FFFFUL )   \
)

Definition at line 262 of file words.h.

#define BYTE_OF | ( | _v,
 |  | _n | ) | *( ( (uint8_t *) &(_v) ) + (_n) )

Definition at line 237 of file words.h.

Referenced by mbg_swab_double(), and snprint_ip4_addr().

#define BYTE_OF_P | ( | _p,
 |  | _n | ) | *( ( (uint8_t *) (_p) ) + (_n) )

Definition at line 241 of file words.h.

#define HI_BYTE ( _x ) ( (_x) >> 8 )

Definition at line 229 of file words.h.

#define HI_WORD ( _x ) ( (_x) >> 16 )

Definition at line 232 of file words.h.

#define LO_BYTE ( _x ) ( (_x) & 0xFF )

Definition at line 230 of file words.h.

#define LO_WORD ( _x ) ( (_x) & 0xFFFF )

Definition at line 233 of file words.h.

#define MBG_TGT_HAS_64BIT_TYPES 0

Definition at line 205 of file words.h.

#define WORD_OF | ( | _v,
 |  | _n | ) | *( ( (uint16_t *) &(_v) ) + (_n) )

Definition at line 238 of file words.h.

#define WORD_OF_P | ( | _p,
 |  | _n | ) | *( ( (uint16_t *) (_p) ) + (_n) )

Definition at line 242 of file words.h.

Typedef Documentation

typedef unsigned char bit

Definition at line 84 of file words.h.

typedef unsigned char byte

Definition at line 223 of file words.h.

typedef unsigned long dword

Definition at line 226 of file words.h.

typedef short int16_t

Definition at line 174 of file words.h.

typedef long int32_t

Definition at line 177 of file words.h.

typedef void* int64_t

Definition at line 195 of file words.h.

typedef char int8_t

Definition at line 171 of file words.h.

typedef unsigned long longword

Definition at line 225 of file words.h.

typedef unsigned char uchar

Definition at line 213 of file words.h.

typedef double udouble

Definition at line 221 of file words.h.

typedef unsigned int uint

Definition at line 217 of file words.h.

typedef unsigned short uint16_t

Definition at line 175 of file words.h.

typedef unsigned long uint32_t

Definition at line 178 of file words.h.

typedef void* uint64_t

Definition at line 196 of file words.h.

typedef unsigned char uint8_t

Definition at line 172 of file words.h.

typedef unsigned long ulong

Definition at line 218 of file words.h.

typedef unsigned short ushort

Definition at line 216 of file words.h.

typedef unsigned short word

Definition at line 224 of file words.h.

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/common/mbg_arch.h File Reference

  • Files

c/mbglib/include/common/mbg_arch.h File Reference

#include <mbg_tgt.h>

Go to the source code of this file.

Defines

#define | MBG_ARCH_LITTLE_ENDIAN 1
#define | _pcps_put_unaligned(_v, _p) ((void)( *(_p) = (_v) ))
#define | _pcps_get_unaligned(_p) (*(_p))
#define | __le16_to_cpu(_x) (_x)
#define | __le32_to_cpu(_x) (_x)
#define | __le64_to_cpu(_x) (_x)
#define | __cpu_to_le16(_x) (_x)
#define | __cpu_to_le32(_x) (_x)
#define | __cpu_to_le64(_x) (_x)
#define | _mbg8_to_cpu(_x) ( _x )
#define | _mbg16_to_cpu(_x) __le16_to_cpu( _x )
#define | _mbg32_to_cpu(_x) __le32_to_cpu( _x )
#define | _mbg64_to_cpu(_x) __le64_to_cpu( _x )
#define | _cpu_to_mbg8(_x) ( _x )
#define | _cpu_to_mbg16(_x) __cpu_to_le16( _x )
#define | _cpu_to_mbg32(_x) __cpu_to_le32( _x )
#define | _cpu_to_mbg64(_x) __cpu_to_le64( _x )
#define | _mbg_swab16(_p) _nop_macro_fnc()
#define | _mbg_swab32(_p) _nop_macro_fnc()
#define | _mbg_swab_double(_p) _nop_macro_fnc()
#define | _mbg_swab_doubles(_p, _n) _nop_macro_fnc()

Functions

static __mbg_inline void | mbg_swab_double (double *p)

Define Documentation

#define __cpu_to_le16 ( _x ) (_x)

Definition at line 82 of file mbg_arch.h.

#define __cpu_to_le32 ( _x ) (_x)

Definition at line 86 of file mbg_arch.h.

#define __cpu_to_le64 ( _x ) (_x)

Definition at line 90 of file mbg_arch.h.

#define __le16_to_cpu ( _x ) (_x)

Definition at line 70 of file mbg_arch.h.

#define __le32_to_cpu ( _x ) (_x)

Definition at line 74 of file mbg_arch.h.

#define __le64_to_cpu ( _x ) (_x)

Definition at line 78 of file mbg_arch.h.

#define _cpu_to_mbg16 ( _x ) __cpu_to_le16( _x )

Definition at line 104 of file mbg_arch.h.

#define _cpu_to_mbg32 ( _x ) __cpu_to_le32( _x )

Definition at line 105 of file mbg_arch.h.

#define _cpu_to_mbg64 ( _x ) __cpu_to_le64( _x )

Definition at line 106 of file mbg_arch.h.

#define _cpu_to_mbg8 ( _x ) ( _x )

Definition at line 103 of file mbg_arch.h.

#define _mbg16_to_cpu ( _x ) __le16_to_cpu( _x )

Definition at line 99 of file mbg_arch.h.

#define _mbg32_to_cpu ( _x ) __le32_to_cpu( _x )

Definition at line 100 of file mbg_arch.h.

#define _mbg64_to_cpu ( _x ) __le64_to_cpu( _x )

Definition at line 101 of file mbg_arch.h.

#define _mbg8_to_cpu ( _x ) ( _x )

Definition at line 98 of file mbg_arch.h.

#define _mbg_swab16 ( _p ) _nop_macro_fnc()

Definition at line 148 of file mbg_arch.h.

#define _mbg_swab32 ( _p ) _nop_macro_fnc()

Definition at line 149 of file mbg_arch.h.

#define _mbg_swab_double ( _p ) _nop_macro_fnc()

Definition at line 151 of file mbg_arch.h.

#define _mbg_swab_doubles | ( | _p,
 |  | _n | ) | _nop_macro_fnc()

Definition at line 153 of file mbg_arch.h.

#define _pcps_get_unaligned ( _p ) (*(_p))

Definition at line 61 of file mbg_arch.h.

#define _pcps_put_unaligned | ( | _v,
 |  | _p | ) | ((void)( *(_p) = (_v) ))

Definition at line 57 of file mbg_arch.h.

#define MBG_ARCH_LITTLE_ENDIAN 1

Definition at line 32 of file mbg_arch.h.

Function Documentation

static __mbg_inline void mbg_swab_double ( double * p ) [static]

Definition at line 113 of file mbg_arch.h.

References BYTE_OF.

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- _ -

  • __cpu_to_le16 : mbg_arch.h
  • __cpu_to_le32 : mbg_arch.h
  • __cpu_to_le64 : mbg_arch.h
  • __le16_to_cpu : mbg_arch.h
  • __le32_to_cpu : mbg_arch.h
  • __le64_to_cpu : mbg_arch.h
  • __mbg_inline : mbg_tgt.h
  • _bswap16 : words.h
  • _bswap32 : words.h
  • _const : mbgtime.h
  • _convert_asic_version_number : pci_asic.h
  • _cpu_to_mbg16 : mbg_arch.h
  • _cpu_to_mbg32 : mbg_arch.h
  • _cpu_to_mbg64 : mbg_arch.h
  • _cpu_to_mbg8 : mbg_arch.h
  • _ext : mbgtime.h , mbgutil.h , pci_asic.h , words.h , gpsutils.h , mbg_tgt.h , mbgdevio.h , mbgerror.h , mbggeo.h , mbgsvcio.h
  • _hilo_16 : words.h
  • _hilo_32 : words.h
  • _ignore_lock_for_all_ports : gpsdefs.h
  • _ignore_lock_for_port : gpsdefs.h
  • _is_ignore_lock_all_ports : gpsdefs.h
  • _is_ignore_lock_for_port : gpsdefs.h
  • _IS_MBG_FIRMWARE : words.h
  • _mbg16_to_cpu : mbg_arch.h
  • _mbg32_to_cpu : mbg_arch.h
  • _mbg64_to_cpu : mbg_arch.h
  • _mbg8_to_cpu : mbg_arch.h
  • _MBG_API : mbg_tgt.h
  • _MBG_API_ATTR : mbg_tgt.h
  • _mbg_cpu_clear : mbgdevio.h
  • _mbg_cpu_isset : mbgdevio.h
  • _mbg_cpu_set : mbgdevio.h
  • _mbg_err_to_os : mbgerror.h
  • _mbg_generic_read_gps_var : mbgdevio.h
  • _mbg_generic_read_var : mbgdevio.h
  • _mbg_generic_write_gps_var : mbgdevio.h
  • _mbg_generic_write_var : mbgdevio.h
  • _mbg_get_current_process : mbgdevio.h
  • _mbg_get_current_thread : mbgdevio.h
  • _mbg_mutex_deinit : mbgdevio.h
  • _mbg_mutex_init : mbgdevio.h
  • _mbg_mutex_lock : mbgdevio.h
  • _mbg_mutex_unlock : mbgdevio.h
  • _mbg_rcvr_is_any_dcf77 : gpsdefs.h
  • _mbg_rcvr_is_any_dcf77_plug_in : gpsdefs.h
  • _mbg_rcvr_is_dcf77_am : gpsdefs.h
  • _mbg_rcvr_is_dcf77_am_plug_in : gpsdefs.h
  • _mbg_rcvr_is_dcf77_pzf : gpsdefs.h
  • _mbg_rcvr_is_dcf77_pzf_plug_in : gpsdefs.h
  • _mbg_rcvr_is_glonass : gpsdefs.h
  • _mbg_rcvr_is_glonass_plug_in : gpsdefs.h
  • _mbg_rcvr_is_gps : gpsdefs.h
  • _mbg_rcvr_is_gps_plug_in : gpsdefs.h
  • _mbg_rcvr_is_irig : gpsdefs.h
  • _mbg_rcvr_is_irig_plug_in : gpsdefs.h
  • _mbg_rcvr_is_mobile_gps : gpsdefs.h
  • _mbg_rcvr_is_msf : gpsdefs.h
  • _mbg_rcvr_is_msf_plug_in : gpsdefs.h
  • _mbg_rcvr_is_plug_in : gpsdefs.h
  • _mbg_rcvr_is_wwvb : gpsdefs.h
  • _mbg_rcvr_is_wwvb_plug_in : gpsdefs.h
  • _mbg_strncpy : mbgutil.h
  • _mbg_swab16 : mbg_arch.h
  • _mbg_swab32 : mbg_arch.h
  • _mbg_swab_ant_cable_len : gpsdefs.h
  • _mbg_swab_ant_info : gpsdefs.h
  • _mbg_swab_asic_features : pci_asic.h
  • _mbg_swab_asic_version : pci_asic.h
  • _mbg_swab_baud_rate : gpsdefs.h
  • _mbg_swab_bvar_stat : gpsdefs.h
  • _mbg_swab_com_parm : gpsdefs.h
  • _mbg_swab_csum : gpsdefs.h
  • _mbg_swab_dac_val : gpsdefs.h
  • _mbg_swab_dms : mbggeo.h
  • _mbg_swab_double : mbg_arch.h
  • _mbg_swab_doubles : mbg_arch.h
  • _mbg_swab_enable_flags : gpsdefs.h
  • _mbg_swab_fixed_freq_info : gpsdefs.h
  • _mbg_swab_gps_cmd : gpsdefs.h
  • _mbg_swab_ident : gpsdefs.h
  • _mbg_swab_ip4_addr : gpsdefs.h
  • _mbg_swab_ip4_settings : gpsdefs.h
  • _mbg_swab_irig_ctrl_bits : pcpsdefs.h
  • _mbg_swab_irig_info : gpsdefs.h
  • _mbg_swab_irig_settings : gpsdefs.h
  • _mbg_swab_lan_if_info : gpsdefs.h
  • _mbg_swab_lla : gpsdefs.h
  • _mbg_swab_mbg_date : gpsdefs.h
  • _mbg_swab_mbg_date_time : gpsdefs.h
  • _mbg_swab_mbg_opt_info : gpsdefs.h
  • _mbg_swab_mbg_opt_settings : gpsdefs.h
  • _mbg_swab_mbg_pc_cycles : pcpsdev.h
  • _mbg_swab_mbg_pc_cycles_frequency : pcpsdev.h
  • _mbg_swab_mbg_ref_offs : gpsdefs.h
  • _mbg_swab_mbg_time : gpsdefs.h
  • _mbg_swab_mbg_time_scale_info : gpsdefs.h
  • _mbg_swab_mbg_time_scale_settings : gpsdefs.h
  • _mbg_swab_nano_time : gpsdefs.h
  • _mbg_swab_pcps_dl_onoff : pcpsdefs.h
  • _mbg_swab_pcps_hr_time : pcpsdefs.h
  • _mbg_swab_pcps_hr_time_cycles : pcpsdev.h
  • _mbg_swab_pcps_irig_time : pcpsdefs.h
  • _mbg_swab_pcps_time_stamp : pcpsdefs.h
  • _mbg_swab_pcps_time_stamp_cycles : pcpsdev.h
  • _mbg_swab_pcps_time_status_x : pcpsdefs.h
  • _mbg_swab_pcps_tzdl : pcpsdefs.h
  • _mbg_swab_pcps_ucap_entries : pcpsdefs.h
  • _mbg_swab_port_info : gpsdefs.h
  • _mbg_swab_port_info_idx : gpsdefs.h
  • _mbg_swab_port_parm : gpsdefs.h
  • _mbg_swab_port_settings : gpsdefs.h
  • _mbg_swab_port_settings_idx : gpsdefs.h
  • _mbg_swab_pos : mbggeo.h
  • _mbg_swab_pout_info : gpsdefs.h
  • _mbg_swab_pout_info_idx : gpsdefs.h
  • _mbg_swab_pout_settings : gpsdefs.h
  • _mbg_swab_pout_settings_idx : gpsdefs.h
  • _mbg_swab_pout_time : gpsdefs.h
  • _mbg_swab_ptp_cfg_info : gpsdefs.h
  • _mbg_swab_ptp_cfg_settings : gpsdefs.h
  • _mbg_swab_ptp_state : gpsdefs.h
  • _mbg_swab_receiver_info : gpsdefs.h
  • _mbg_swab_stat_info : gpsdefs.h
  • _mbg_swab_str_type_info : gpsdefs.h
  • _mbg_swab_str_type_info_idx : gpsdefs.h
  • _mbg_swab_sw_rev : gpsdefs.h
  • _mbg_swab_synth : gpsdefs.h
  • _mbg_swab_synth_state : gpsdefs.h
  • _mbg_swab_t_gps : gpsdefs.h
  • _mbg_swab_tm_gps : gpsdefs.h
  • _mbg_swab_ttm : gpsdefs.h
  • _mbg_swab_tzdl : gpsdefs.h
  • _mbg_swab_utc_parm : gpsdefs.h
  • _mbg_swab_xyz : gpsdefs.h
  • _mbg_thread_exit : mbgdevio.h
  • _n_days : mbgtime.h
  • _nano_time_negative : gpsdefs.h
  • _nop_macro_fnc : mbg_tgt.h
  • _pcps_asic_version_greater_equal : pci_asic.h
  • _pcps_asic_version_major : pci_asic.h
  • _pcps_asic_version_minor : pci_asic.h
  • _pcps_bus_flags : pcpsdev.h
  • _pcps_bus_num : pcpsdev.h
  • _pcps_can_clr_ucap_buff : pcpsdev.h
  • _pcps_can_set_time : pcpsdev.h
  • _pcps_cfg_irq_num : pcpsdev.h
  • _pcps_cfg_port_base : pcpsdev.h
  • _pcps_cfg_port_rsrc : pcpsdev.h
  • _pcps_cfg_timeout_clk : pcpsdev.h
  • _pcps_chk_err_flags : pcpsdev.h
  • _pcps_clr_err_flags : pcpsdev.h
  • _pcps_dev_id : pcpsdev.h
  • _pcps_err_flags : pcpsdev.h
  • _pcps_fw_id : pcpsdev.h
  • _pcps_fw_rev_num : pcpsdev.h
  • _pcps_fw_rev_num_major : pcpsdev.h
  • _pcps_fw_rev_num_minor : pcpsdev.h
  • _pcps_get_unaligned : mbg_arch.h
  • _pcps_has_asic_features : pcpsdev.h
  • _pcps_has_asic_version : pcpsdev.h
  • _pcps_has_cab_len : pcpsdev.h
  • _pcps_has_event_time : pcpsdev.h
  • _pcps_has_feature : pcpsdev.h
  • _pcps_has_generic_io : pcpsdev.h
  • _pcps_has_gps_data : pcpsdev.h
  • _pcps_has_gps_data_16 : pcpsdev.h
  • _pcps_has_hr_time : pcpsdev.h
  • _pcps_has_ident : pcpsdev.h
  • _pcps_has_irig : pcpsdev.h
  • _pcps_has_irig_ctrl_bits : pcpsdev.h
  • _pcps_has_irig_time : pcpsdev.h
  • _pcps_has_irig_tx : pcpsdev.h
  • _pcps_has_lan_intf : pcpsdev.h
  • _pcps_has_mod : pcpsdev.h
  • _pcps_has_opt_flags : pcpsdev.h
  • _pcps_has_pcps_tzdl : pcpsdev.h
  • _pcps_has_ptp : pcpsdev.h
  • _pcps_has_receiver_info : pcpsdev.h
  • _pcps_has_ref_offs : pcpsdev.h
  • _pcps_has_serial : pcpsdev.h
  • _pcps_has_serial_hs : pcpsdev.h
  • _pcps_has_sernum : pcpsdev.h
  • _pcps_has_signal : pcpsdev.h
  • _pcps_has_sync_time : pcpsdev.h
  • _pcps_has_synth : pcpsdev.h
  • _pcps_has_time_scale : pcpsdev.h
  • _pcps_has_tz : pcpsdev.h
  • _pcps_has_tzcode : pcpsdev.h
  • _pcps_has_tzdl : pcpsdev.h
  • _pcps_has_ucap : pcpsdev.h
  • _pcps_has_utc_offs : pcpsdev.h
  • _pcps_has_utc_parm : pcpsdev.h
  • _pcps_irq_num : pcpsdev.h
  • _pcps_is_dcf : pcpsdev.h
  • _pcps_is_frc : pcpsdev.h
  • _pcps_is_gps : pcpsdev.h
  • _pcps_is_irig_rx : pcpsdev.h
  • _pcps_is_isa : pcpsdev.h
  • _pcps_is_lwr : pcpsdev.h
  • _pcps_is_mca : pcpsdev.h
  • _pcps_is_msf : pcpsdev.h
  • _pcps_is_pci : pcpsdev.h
  • _pcps_is_pci_amcc : pcpsdev.h
  • _pcps_is_pci_asic : pcpsdev.h
  • _pcps_is_pci_pex8311 : pcpsdev.h
  • _pcps_is_pci_s5920 : pcpsdev.h
  • _pcps_is_pci_s5933 : pcpsdev.h
  • _pcps_is_ptp : pcpsdev.h
  • _pcps_is_usb : pcpsdev.h
  • _pcps_is_wwvb : pcpsdev.h
  • _pcps_pex_irq_is_safe : pcpsdev.h
  • _pcps_port_base : pcpsdev.h
  • _pcps_port_rsrc : pcpsdev.h
  • _pcps_port_rsrc_unused : pcpsdev.h
  • _pcps_put_unaligned : mbg_arch.h
  • _pcps_ref_offs_out_of_range : pcpsdev.h
  • _pcps_ref_type : pcpsdev.h
  • _pcps_sernum : pcpsdev.h
  • _pcps_set_err_flags : pcpsdev.h
  • _pcps_slot_num : pcpsdev.h
  • _pcps_time_is_read : pcpsdev.h
  • _pcps_time_set_unread : pcpsdev.h
  • _pcps_timeout_clk : pcpsdev.h
  • _pcps_type_name : pcpsdev.h
  • _pcps_type_num : pcpsdev.h
  • _synth_dp_pos_from_range : gpsdefs.h
  • _USE_PACK : use_pack.h
  • _var_bswap16 : words.h
  • _var_bswap32 : words.h
  • _wswap32 : words.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Alphabetical List

  • Alphabetical List
  • Data Structures
  • Data Fields

Data Structure Index

A | C | D | E | F | I | L | M | N | P | R | S | T | U | X | _

A
IRIG_SETTINGS PCI_ASIC_ADDON_DATA PORT_PARM SW_REV
ALM
L
PCI_ASIC_CFG PORT_SETTINGS SYNTH
ANT_INFO LAN_IF_INFO PCI_ASIC_REG PORT_SETTINGS_IDX SYNTH_STATE
ASCII_MSG
M
PCPS_DEV POS
T
C
MBG_DATE PCPS_DEV_CFG POUT_INFO T_GPS
CFGH MBG_DATE_TIME PCPS_DEV_TYPE POUT_INFO_IDX TIMEOUT
COM_PARM MBG_OPT_INFO PCPS_DL_ONOFF POUT_SETTINGS TM_GPS
CORR_INFO MBG_OPT_SETTINGS PCPS_DRVR_INFO POUT_SETTINGS_IDX TTM
D
MBG_POLL_THREAD_INFO PCPS_HR_TIME POUT_TIME TZDL
DMS MBG_THREAD_INFO PCPS_HR_TIME_CYCLES PTP_CFG_INFO
U
E
MBG_TIME PCPS_IRIG_TIME_s PTP_CFG_SETTINGS USER_POS
ELLIPSOID MBG_TIME_SCALE_INFO PCPS_MAPPED_MEM PTP_CLOCK_IDENTITY UTC
ENABLE_FLAGS MBG_TIME_SCALE_SETTINGS PCPS_PORT_RSRC PTP_STATE
X
EPH MBG_XHRT_INFO PCPS_STIME_s PTP_TABLE XMULTI_REF_ID
F
MBG_XHRT_VARS PCPS_TIME_CYCLES
R
XMULTI_REF_INFO
FIXED_FREQ_INFO MULTI_REF_INFO PCPS_TIME_s RECEIVER_INFO XMULTI_REF_INFO_IDX
FPGA_INFO MULTI_REF_SETTINGS PCPS_TIME_STAMP RECEIVER_PORT_CFG XMULTI_REF_SETTINGS
FPGA_START_INFO
N
PCPS_TIME_STAMP_CYCLES
S
XMULTI_REF_SETTINGS_IDX
FT_DWL NANO_TIME PCPS_TIME_UNION SCU_STAT_INFO XMULTI_REF_STATUS
I
NAV_ENGINE_SETTINGS PCPS_TZDL SCU_STAT_SETTINGS XMULTI_REF_STATUS_IDX
IDENT NAV_TIME_MODE_SETTINGS PCPS_UCAP_ENTRIES STAT_INFO
_
IONO
P
PORT_INFO STR_TYPE_INFO _MBG_DEVICE_LIST
IP4_SETTINGS PCI_ASIC PORT_INFO_IDX STR_TYPE_INFO_IDX _MBG_DEVICENAME_LIST
IRIG_INFO

A | C | D | E | F | I | L | M | N | P | R | S | T | U | X | _

Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/common/mbg_arch.h Source File

  • Files

c/mbglib/include/common/mbg_arch.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbg_arch.h 1.2 2009/03/19 15:14:15Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions to support different computer hardware architectures.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbg_arch.h $
00013  *  Revision 1.2  2009/03/19 15:14:15Z  martin
00014  *  Fixed byte swapping of doubles for SPARC architecture.
00015  *  Revision 1.1  2008/12/05 13:47:42  martin
00016  *  Initial revision.
00017  *
00018  **************************************************************************/
00019
00020 #ifndef _MBG_ARCH_H
00021 #define _MBG_ARCH_H
00022
00023 #include <mbg_tgt.h>
00024
00025
00026 #if defined( MBG_ARCH_SPARC )
00027   #define MBG_ARCH_BIG_ENDIAN      1
00028 #endif
00029
00030
00031 #if !defined( MBG_ARCH_BIG_ENDIAN )
00032   #define MBG_ARCH_LITTLE_ENDIAN   1
00033 #endif
00034
00035
00036
00037 #if defined( MBG_TGT_LINUX )
00038
00039   #include <asm/byteorder.h>
00040
00041   #if defined( __KERNEL__ )
00042     #include <asm/unaligned.h>
00043
00044     #define _mbg_put_unaligned( _v, _p )  put_unaligned( _v, _p )
00045     #define _mbg_get_unaligned( _p )      get_unaligned( _p )
00046   #endif
00047
00048 #endif
00049
00050
00051
00052 // If no macros required to access unaligned data have yet been defined,
00053 // define some default macros assuming no special handling is required
00054 // to access unaligned data.
00055
00056 #if !defined( _pcps_put_unaligned )
00057   #define _pcps_put_unaligned( _v, _p )   ((void)( *(_p) = (_v) ))
00058 #endif
00059
00060 #if !defined( _pcps_get_unaligned )
00061   #define _pcps_get_unaligned( _p )       (*(_p))
00062 #endif
00063
00064
00065
00066 // If no macros to convert endianess have yet been defined, define
00067 // some default macros assuming endianess conversion is not required.
00068
00069 #if !defined( __le16_to_cpu )
00070   #define __le16_to_cpu( _x )   (_x)
00071 #endif
00072
00073 #if !defined( __le32_to_cpu )
00074   #define __le32_to_cpu( _x )   (_x)
00075 #endif
00076
00077 #if !defined( __le64_to_cpu )
00078   #define __le64_to_cpu( _x )   (_x)
00079 #endif
00080
00081 #if !defined( __cpu_to_le16 )
00082   #define __cpu_to_le16( _x )   (_x)
00083 #endif
00084
00085 #if !defined( __cpu_to_le32 )
00086   #define __cpu_to_le32( _x )   (_x)
00087 #endif
00088
00089 #if !defined( __cpu_to_le64 )
00090   #define __cpu_to_le64( _x )   (_x)
00091 #endif
00092
00093
00094
00095 // The macros below are used to convert the endianess
00096 // of the plug-in cards to the endianess of the host CPU
00097
00098 #define _mbg8_to_cpu( _x )   ( _x )
00099 #define _mbg16_to_cpu( _x )  __le16_to_cpu( _x )
00100 #define _mbg32_to_cpu( _x )  __le32_to_cpu( _x )
00101 #define _mbg64_to_cpu( _x )  __le64_to_cpu( _x )
00102
00103 #define _cpu_to_mbg8( _x )   ( _x )
00104 #define _cpu_to_mbg16( _x )  __cpu_to_le16( _x )
00105 #define _cpu_to_mbg32( _x )  __cpu_to_le32( _x )
00106 #define _cpu_to_mbg64( _x )  __cpu_to_le64( _x )
00107
00108
00109
00110 // swap a double type variable bytewise e.g. to convert the endianess
00111
00112 static __mbg_inline
00113 void mbg_swab_double( double *p )
00114 {
00115 #if 0  // The __swab64() may not work correctly for whatever reason ...
00116   __swab64p( p );
00117 #else  // ... so we do the swapping manually
00118   double d = 0;
00119   int i;
00120
00121   for ( i = 0; i < sizeof( double); i++ )
00122     BYTE_OF( d, i ) = BYTE_OF( *p, ( sizeof( double) - 1 - i ) );
00123
00124   for ( i = 0; i < sizeof( double); i++ )
00125     BYTE_OF( *p, i ) = BYTE_OF( d, i );
00126 #endif
00127
00128 }  // mbg_swab_double
00129
00130
00131
00132 #if defined( MBG_ARCH_BIG_ENDIAN )
00133
00134   #define _mbg_swab16( _p )        *(_p) = __swab16( *(_p) )
00135   #define _mbg_swab32( _p )        *(_p) = __swab32( *(_p) )
00136
00137   #define _mbg_swab_double( _p )   mbg_swab_double( _p )
00138
00139   #define _mbg_swab_doubles( _p, _n )  \
00140   {                                    \
00141     int i;                             \
00142     for ( i = 0; i < (_n); i++ )       \
00143       _mbg_swab_double( &_p[i] );      \
00144   }
00145
00146 #else
00147
00148   #define _mbg_swab16( _p )             _nop_macro_fnc()
00149   #define _mbg_swab32( _p )             _nop_macro_fnc()
00150
00151   #define _mbg_swab_double( _p )        _nop_macro_fnc()
00152
00153   #define _mbg_swab_doubles( _p, _n )   _nop_macro_fnc()
00154
00155 #endif
00156
00157 #endif  /* _MBG_ARCH_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: doxyindex.txt File Reference

  • Files

doxyindex.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/doxypage_c.txt File Reference

  • Files

c/doxypage_c.txt File Reference

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/doxypage_c_mbgdevio.txt File Reference

  • Files

c/doxypage_c_mbgdevio.txt File Reference

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/doxypage_c_mbgsvcio.txt File Reference

  • Files

c/doxypage_c_mbgsvcio.txt File Reference

Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: delphi/doxypage_delphi.txt File Reference

  • Files

delphi/doxypage_delphi.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: delphi/doxypage_delphi_mbgdevio.txt File Reference

  • Files

delphi/doxypage_delphi_mbgdevio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: delphi/doxypage_delphi_mbgsvcio.txt File Reference

  • Files

delphi/doxypage_delphi_mbgsvcio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: doxypage_mbgdevio.txt File Reference

  • Files

doxypage_mbgdevio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: doxypage_mbgsvcio.txt File Reference

  • Files

doxypage_mbgsvcio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb6/doxypage_vb6.txt File Reference

  • Files

vb6/doxypage_vb6.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb6/doxypage_vb6_mbgdevio.txt File Reference

  • Files

vb6/doxypage_vb6_mbgdevio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb6/doxypage_vb6_mbgsvcio.txt File Reference

  • Files

vb6/doxypage_vb6_mbgsvcio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb.net/doxypage_vb.net.txt File Reference

  • Files

vb.net/doxypage_vb.net.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb.net/doxypage_vb.net_mbgdevio.txt File Reference

  • Files

vb.net/doxypage_vb.net_mbgdevio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: vb.net/doxypage_vb.net_mbgsvcio.txt File Reference

  • Files

vb.net/doxypage_vb.net_mbgsvcio.txt File Reference

Generated on Tue Aug 18 16:18:10 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- k -

  • khz_val : FIXED_FREQ_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- l -

  • L2code : EPH
  • L2flag : EPH
  • latitude : POS
  • len : PCPS_MAPPED_MEM
  • lla : POS
  • log_delay_req_intv : PTP_STATE
  • long_name : STR_TYPE_INFO
  • longitude : POS
  • lower_bound : PTP_CFG_SETTINGS
  • lw : IDENT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- m -

  • M0 : EPH , ALM
  • mac_addr : LAN_IF_INFO
  • max : PCPS_UCAP_ENTRIES
  • max_settings : MBG_TIME_SCALE_INFO
  • mday : PCPS_DL_ONOFF , PCPS_TIME_s , PCPS_STIME_s , TM_GPS , MBG_DATE
  • mean_path_delay : PTP_STATE
  • min : PCPS_TIME_s , PCPS_STIME_s , PCPS_IRIG_TIME_s , TM_GPS , MBG_TIME , DMS , PCPS_DL_ONOFF
  • min_elevation : NAV_ENGINE_SETTINGS
  • mode : PORT_SETTINGS , PORT_PARM , POUT_SETTINGS , STAT_INFO
  • model_code : RECEIVER_INFO
  • model_name : RECEIVER_INFO
  • month : PCPS_STIME_s , TM_GPS , MBG_DATE , PCPS_DL_ONOFF , PCPS_TIME_s
  • mutex : MBG_XHRT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- n -

  • n_channels : RECEIVER_INFO
  • n_com_ports : RECEIVER_INFO
  • n_devs : PCPS_DRVR_INFO
  • n_levels : MULTI_REF_INFO
  • n_prg_out : RECEIVER_INFO
  • n_prio : XMULTI_REF_INFO
  • n_str_type : RECEIVER_INFO
  • n_supp_ref : XMULTI_REF_INFO
  • n_ucaps : RECEIVER_INFO
  • name : PCPS_DEV_TYPE , SW_REV , FPGA_INFO , TZDL , PTP_TABLE , USER_POS , ELLIPSOID
  • nano_secs : NANO_TIME
  • nav_time_mode_settings : NAV_ENGINE_SETTINGS
  • netmask : IP4_SETTINGS
  • network_protocol : PTP_STATE , PTP_CFG_SETTINGS
  • next : _MBG_DEVICE_LIST , _MBG_DEVICENAME_LIST
  • nt1 : USER_POS
  • nt2 : USER_POS
  • num : PCPS_DEV_TYPE , PCPS_PORT_RSRC
  • num_clients : PTP_STATE
  • num_masters : PTP_STATE
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- o -

  • off : POUT_TIME
  • offs : TZDL , PCPS_TZDL
  • offs_dl : TZDL , PCPS_TZDL
  • offs_from_utc : TM_GPS
  • offs_utc : PCPS_IRIG_TIME_s , PCPS_TIME_s
  • offset : XMULTI_REF_STATUS , PTP_STATE
  • omega : EPH , ALM
  • OMEGA0 : EPH , ALM
  • OMEGADOT : EPH , ALM
  • on : POUT_TIME
  • osc_dac_cal : PTP_STATE
  • osc_flags : RECEIVER_INFO
  • osc_type : RECEIVER_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- b -

  • b : FPGA_INFO , PTP_CLOCK_IDENTITY , PCI_ASIC_REG , PCI_ASIC_ADDON_DATA , ELLIPSOID
  • base : PCPS_PORT_RSRC
  • baud_rate : COM_PARM
  • beta_0 : IONO
  • beta_1 : IONO
  • beta_2 : IONO
  • beta_3 : IONO
  • bias : XMULTI_REF_SETTINGS
  • broad_addr : IP4_SETTINGS
  • bus_flags : PCPS_DEV_TYPE
  • bus_num : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- c -

  • c : IDENT
  • cfg : CFGH , PCPS_DEV , PCI_ASIC
  • cfg_badr_0 : PCI_ASIC_CFG
  • cfg_class_rev_id : PCI_ASIC_CFG
  • cfg_dev_id : PCI_ASIC_CFG
  • channel : TTM
  • cic : EPH
  • cis : EPH
  • clk0_info : SCU_STAT_INFO
  • clk1_info : SCU_STAT_INFO
  • clock_accuracy : PTP_STATE
  • clock_class : PTP_STATE
  • clock_offset_scaled_log_variance : PTP_STATE
  • code : SW_REV
  • com : PORT_PARM
  • control_status : PCI_ASIC
  • corr_dir : CORR_INFO
  • cos_lat : USER_POS
  • cos_lon : USER_POS
  • crc : EPH
  • crs : EPH
  • csum : UTC , ALM , CFGH , ELLIPSOID , USER_POS , ASCII_MSG , IONO , FPGA_INFO , FPGA_START_INFO , EPH
  • cuc : EPH
  • cus : EPH
  • cycles : PCPS_HR_TIME_CYCLES , PCPS_TIME_CYCLES , PCPS_TIME_STAMP_CYCLES
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- d -

  • d : MBG_DATE_TIME
  • dac_cal : STAT_INFO
  • dac_val : STAT_INFO
  • deg : DMS
  • delay_asymmetry : PTP_STATE
  • delay_mech : PTP_STATE
  • delay_mechanism : PTP_CFG_SETTINGS
  • delay_request_interval : PTP_CFG_SETTINGS
  • delay_request_interval_max : PTP_CFG_INFO
  • delay_request_interval_min : PTP_CFG_INFO
  • delta_t : ANT_INFO
  • delta_tls : UTC
  • delta_tlsf : UTC
  • deltai : ALM
  • deltan : EPH
  • det : USER_POS
  • dev_id : PCPS_DEV_TYPE
  • device_name : _MBG_DEVICENAME_LIST
  • device_path : _MBG_DEVICE_LIST
  • dflt_clk_class_sync_cold : PTP_CFG_SETTINGS
  • dflt_clk_class_sync_warm : PTP_CFG_SETTINGS
  • dflt_clk_class_unsync_cold : PTP_CFG_SETTINGS
  • dflt_clk_class_unsync_warm : PTP_CFG_SETTINGS
  • dh : MBG_XHRT_INFO
  • DNt : UTC
  • domain_number : PTP_CFG_SETTINGS , PTP_STATE
  • dwl : FT_DWL
  • dxyz : ELLIPSOID
  • dynamic_platform : NAV_ENGINE_SETTINGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- e -

  • e : EPH , ALM
  • e_radius : USER_POS
  • e_radius_alt : USER_POS
  • ellipsoid : POS
  • epld_control : SCU_STAT_INFO
  • epld_control_mask : SCU_STAT_SETTINGS
  • epld_control_value : SCU_STAT_SETTINGS
  • epld_name : RECEIVER_INFO
  • epld_status : SCU_STAT_INFO
  • err_flags : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- f -

  • f : ELLIPSOID
  • features : RECEIVER_INFO , PCPS_DEV_CFG , PCI_ASIC
  • fine_limit : XMULTI_REF_SETTINGS
  • fix_mode : NAV_ENGINE_SETTINGS
  • fixed_altitude : NAV_ENGINE_SETTINGS
  • fixed_altitude_variance : NAV_ENGINE_SETTINGS
  • fixed_freq : RECEIVER_INFO
  • fixedPosVar : NAV_TIME_MODE_SETTINGS
  • fixedPosX : NAV_TIME_MODE_SETTINGS
  • fixedPosY : NAV_TIME_MODE_SETTINGS
  • fixedPosZ : NAV_TIME_MODE_SETTINGS
  • flags : PORT_SETTINGS , PTP_STATE , PTP_CFG_SETTINGS , PORT_INFO , NAV_TIME_MODE_SETTINGS , NAV_ENGINE_SETTINGS , LAN_IF_INFO , IP4_SETTINGS , SCU_STAT_SETTINGS , STR_TYPE_INFO , XMULTI_REF_INFO , CORR_INFO , IRIG_SETTINGS , MBG_OPT_SETTINGS , MBG_TIME_SCALE_SETTINGS , MBG_DATE_TIME , POUT_SETTINGS , POUT_INFO , MULTI_REF_INFO , XMULTI_REF_SETTINGS , RECEIVER_INFO , SCU_STAT_INFO , SYNTH_STATE
  • fpga_start_seg : FPGA_START_INFO
  • frac : PCPS_TIME_STAMP , PCPS_IRIG_TIME_s , TM_GPS
  • framing : COM_PARM
  • freq : ENABLE_FLAGS , SYNTH
  • freq_hz : MBG_XHRT_INFO
  • fsize : FPGA_INFO
  • ft : FT_DWL
  • fw_id : SCU_STAT_INFO , PCPS_DEV_CFG
  • fw_rev_num : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- g -

  • gateway : IP4_SETTINGS
  • gm_identity : PTP_STATE
  • good_svs : STAT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- h -

  • handshake : COM_PARM
  • hdr : FPGA_INFO
  • health : ALM , CFGH , EPH
  • hour : PCPS_TIME_s , PCPS_IRIG_TIME_s , MBG_TIME , PCPS_DL_ONOFF , PCPS_STIME_s , TM_GPS
  • htc : MBG_XHRT_VARS
  • hw_id : SCU_STAT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- i -

  • i0 : EPH
  • icode : IRIG_SETTINGS
  • id : XMULTI_REF_STATUS , XMULTI_REF_SETTINGS
  • id_str : PCPS_DRVR_INFO
  • idot : EPH
  • idx : PORT_INFO_IDX , STR_TYPE_INFO_IDX , POUT_SETTINGS_IDX , POUT_INFO_IDX , XMULTI_REF_STATUS_IDX , XMULTI_REF_SETTINGS_IDX , XMULTI_REF_INFO_IDX , PORT_SETTINGS_IDX
  • info : XMULTI_REF_INFO_IDX
  • instance : XMULTI_REF_ID
  • ioctl_status : MBG_XHRT_INFO
  • IODC : EPH
  • IODE2 : EPH
  • IODE3 : EPH
  • ip_addr : IP4_SETTINGS
  • irq_num : PCPS_DEV_CFG
  • is_set : TIMEOUT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- p -

  • parm : PORT_SETTINGS
  • path_delay : PTP_STATE
  • pci_data : PCI_ASIC
  • phase : SYNTH
  • pii : RECEIVER_PORT_CFG
  • port : PCPS_DEV_CFG
  • port_info : PORT_INFO_IDX
  • port_settings : PORT_SETTINGS_IDX , PORT_INFO
  • port_state : PTP_STATE
  • pos : USER_POS
  • pout_info : POUT_INFO_IDX
  • pout_settings : POUT_SETTINGS_IDX , POUT_INFO
  • precision : XMULTI_REF_SETTINGS
  • prefix : DMS
  • prio : MULTI_REF_SETTINGS
  • priority_1 : PTP_CFG_SETTINGS
  • priority_2 : PTP_CFG_SETTINGS
  • profile : PTP_CFG_SETTINGS
  • prv_vars : MBG_XHRT_INFO
  • ptp_proto_version : PTP_STATE , PTP_CFG_INFO
  • pulse_len : POUT_SETTINGS
  • pulses : ENABLE_FLAGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- r -

  • range : FIXED_FREQ_INFO , SYNTH
  • raw_version : PCI_ASIC
  • rcp_f : ELLIPSOID
  • ref_type : PCPS_DEV_TYPE
  • reserved : XMULTI_REF_STATUS , PTP_STATE , NAV_TIME_MODE_SETTINGS , NAV_ENGINE_SETTINGS , SW_REV , PCPS_IRIG_TIME_s , PORT_INFO
  • reserved_0 : POUT_INFO , PTP_CFG_SETTINGS
  • reserved_1 : PTP_CFG_SETTINGS , PTP_CFG_INFO , PCI_ASIC , POUT_INFO
  • reserved_2 : PCI_ASIC , PTP_CFG_SETTINGS , PTP_CFG_INFO
  • reserved_3 : PTP_CFG_SETTINGS
  • rsvd : LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- s -

  • s : ASCII_MSG
  • scale : MBG_TIME_SCALE_SETTINGS
  • sec : TM_GPS , PCPS_TIME_s , PCPS_STIME_s , MBG_TIME , PCPS_IRIG_TIME_s , T_GPS , DMS , PCPS_TIME_STAMP
  • sec100 : MBG_TIME , PCPS_TIME_s , PCPS_STIME_s
  • secs : NANO_TIME
  • serial : ENABLE_FLAGS
  • sernum : RECEIVER_INFO , LAN_IF_INFO , PCPS_DEV_CFG
  • settings : IRIG_INFO , MBG_OPT_INFO , MBG_TIME_SCALE_INFO , MULTI_REF_INFO , XMULTI_REF_SETTINGS_IDX , XMULTI_REF_INFO , PTP_CFG_INFO
  • short_name : STR_TYPE_INFO
  • signal : PCPS_HR_TIME , PCPS_TIME_s , PCPS_IRIG_TIME_s
  • sin_lat : USER_POS
  • sin_lon : USER_POS
  • sleep_ms : MBG_XHRT_INFO
  • slot_num : PCPS_DEV_CFG
  • sqr_e : ELLIPSOID
  • sqrt_A : EPH , ALM
  • start : TIMEOUT
  • start_addr : FPGA_INFO
  • state : SYNTH_STATE
  • static_hold_threshold : NAV_ENGINE_SETTINGS
  • status : PCPS_STIME_s , XMULTI_REF_STATUS , TM_GPS , ANT_INFO , XMULTI_REF_STATUS_IDX , PCPS_HR_TIME , PCPS_TIME_s , PCPS_IRIG_TIME_s , CORR_INFO
  • status_port : PCI_ASIC , PCPS_DEV_CFG
  • stii : RECEIVER_PORT_CFG
  • stime : PCPS_TIME_UNION
  • stop : TIMEOUT
  • str_type : PORT_SETTINGS
  • str_type_info : STR_TYPE_INFO_IDX
  • supp_baud_rates : PORT_INFO
  • supp_codes : IRIG_INFO
  • supp_flags : MBG_OPT_INFO
  • supp_framings : PORT_INFO
  • supp_modes : POUT_INFO , STR_TYPE_INFO
  • supp_ref : XMULTI_REF_INFO , MULTI_REF_INFO
  • supp_scales : MBG_TIME_SCALE_INFO
  • supp_str_types : PORT_INFO
  • supported_delay_mechanisms : PTP_CFG_INFO
  • supported_flags : PTP_CFG_INFO
  • supported_network_protocols : PTP_CFG_INFO
  • supported_profiles : PTP_CFG_INFO
  • survey_in_duration : NAV_TIME_MODE_SETTINGS
  • survey_in_pos_var : NAV_TIME_MODE_SETTINGS
  • svs_in_view : STAT_INFO
  • sw_rev : RECEIVER_INFO
  • sync_interval : PTP_CFG_SETTINGS
  • sync_interval_max : PTP_CFG_INFO
  • sync_interval_min : PTP_CFG_INFO
  • synth : ENABLE_FLAGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- t -

  • t : TTM , MBG_DATE_TIME , PCPS_TIME_CYCLES , PCPS_HR_TIME_CYCLES , PCPS_TIME_UNION
  • t0a : ALM , CFGH
  • t0c : EPH
  • t0e : EPH
  • t0t : UTC
  • tgd : EPH
  • thread_id : MBG_THREAD_INFO
  • ti : MBG_POLL_THREAD_INFO
  • tick : T_GPS
  • ticks_per_sec : RECEIVER_INFO
  • time_mode : NAV_TIME_MODE_SETTINGS
  • time_source : PTP_STATE
  • timeout : POUT_SETTINGS
  • timeout_clk : PCPS_DEV_CFG
  • timestr_ports : POUT_INFO
  • tm : TTM , POUT_SETTINGS
  • tm_disconn : ANT_INFO
  • tm_off : TZDL , PCPS_TZDL
  • tm_on : TZDL , PCPS_TZDL
  • tm_reconn : ANT_INFO
  • tmp_pp : RECEIVER_PORT_CFG
  • tot_51 : CFGH
  • tot_63 : CFGH
  • tstamp : PCPS_HR_TIME , PCPS_TIME_STAMP_CYCLES
  • tstamp64 : MBG_XHRT_VARS
  • tt : EPH
  • type : PCPS_DEV , XMULTI_REF_ID , LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- u -

  • ul : PCI_ASIC_REG , PCI_ASIC_ADDON_DATA
  • upper_bound : PTP_CFG_SETTINGS
  • URA : EPH
  • us : PCI_ASIC_REG , PCI_ASIC_ADDON_DATA
  • used : PCPS_UCAP_ENTRIES
  • user_virtual_address : PCPS_MAPPED_MEM
  • utc_offs : PCPS_HR_TIME
  • utc_offset : PTP_STATE
  • utx : USER_POS
  • uty : USER_POS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- v -

  • val : CORR_INFO
  • valid : EPH , CFGH , USER_POS , ELLIPSOID , UTC , ALM , IONO , ASCII_MSG
  • value : PTP_TABLE
  • vars : MBG_XHRT_INFO
  • ver_code : LAN_IF_INFO
  • ver_num : PCPS_DRVR_INFO
  • ver_str : LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- w -

  • wday : TM_GPS , MBG_DATE_TIME , PCPS_STIME_s , PCPS_TIME_s
  • wn : T_GPS
  • WNlsf : UTC
  • wrd : IDENT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- x -

  • xhrt_info : MBG_POLL_THREAD_INFO
  • xyz : POS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

Here is a list of all struct and union fields with links to the structures/unions they belong to:

- y -

  • yday : TM_GPS , PCPS_IRIG_TIME_s
  • year : PCPS_IRIG_TIME_s , PCPS_STIME_s , PCPS_TIME_s , MBG_DATE , TM_GPS
  • year_or_wday : PCPS_DL_ONOFF
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- a -

  • a : ELLIPSOID
  • A0 : UTC
  • A1 : UTC
  • addon_data : PCI_ASIC
  • af0 : EPH , ALM
  • af1 : ALM , EPH
  • af2 : EPH
  • alpha_0 : IONO
  • alpha_1 : IONO
  • alpha_2 : IONO
  • alpha_3 : IONO
  • announce_interval : PTP_CFG_SETTINGS
  • announce_interval_max : PTP_CFG_INFO
  • announce_interval_min : PTP_CFG_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- k -

  • khz_val : FIXED_FREQ_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- l -

  • L2code : EPH
  • L2flag : EPH
  • latitude : POS
  • len : PCPS_MAPPED_MEM
  • lla : POS
  • log_delay_req_intv : PTP_STATE
  • long_name : STR_TYPE_INFO
  • longitude : POS
  • lower_bound : PTP_CFG_SETTINGS
  • lw : IDENT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- m -

  • M0 : EPH , ALM
  • mac_addr : LAN_IF_INFO
  • max : PCPS_UCAP_ENTRIES
  • max_settings : MBG_TIME_SCALE_INFO
  • mday : PCPS_DL_ONOFF , PCPS_TIME_s , PCPS_STIME_s , TM_GPS , MBG_DATE
  • mean_path_delay : PTP_STATE
  • min : PCPS_TIME_s , PCPS_STIME_s , PCPS_IRIG_TIME_s , TM_GPS , MBG_TIME , DMS , PCPS_DL_ONOFF
  • min_elevation : NAV_ENGINE_SETTINGS
  • mode : PORT_SETTINGS , PORT_PARM , POUT_SETTINGS , STAT_INFO
  • model_code : RECEIVER_INFO
  • model_name : RECEIVER_INFO
  • month : PCPS_STIME_s , TM_GPS , MBG_DATE , PCPS_DL_ONOFF , PCPS_TIME_s
  • mutex : MBG_XHRT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- n -

  • n_channels : RECEIVER_INFO
  • n_com_ports : RECEIVER_INFO
  • n_devs : PCPS_DRVR_INFO
  • n_levels : MULTI_REF_INFO
  • n_prg_out : RECEIVER_INFO
  • n_prio : XMULTI_REF_INFO
  • n_str_type : RECEIVER_INFO
  • n_supp_ref : XMULTI_REF_INFO
  • n_ucaps : RECEIVER_INFO
  • name : PCPS_DEV_TYPE , SW_REV , FPGA_INFO , TZDL , PTP_TABLE , USER_POS , ELLIPSOID
  • nano_secs : NANO_TIME
  • nav_time_mode_settings : NAV_ENGINE_SETTINGS
  • netmask : IP4_SETTINGS
  • network_protocol : PTP_STATE , PTP_CFG_SETTINGS
  • next : _MBG_DEVICE_LIST , _MBG_DEVICENAME_LIST
  • nt1 : USER_POS
  • nt2 : USER_POS
  • num : PCPS_DEV_TYPE , PCPS_PORT_RSRC
  • num_clients : PTP_STATE
  • num_masters : PTP_STATE
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- o -

  • off : POUT_TIME
  • offs : TZDL , PCPS_TZDL
  • offs_dl : TZDL , PCPS_TZDL
  • offs_from_utc : TM_GPS
  • offs_utc : PCPS_IRIG_TIME_s , PCPS_TIME_s
  • offset : XMULTI_REF_STATUS , PTP_STATE
  • omega : EPH , ALM
  • OMEGA0 : EPH , ALM
  • OMEGADOT : EPH , ALM
  • on : POUT_TIME
  • osc_dac_cal : PTP_STATE
  • osc_flags : RECEIVER_INFO
  • osc_type : RECEIVER_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- b -

  • b : FPGA_INFO , PTP_CLOCK_IDENTITY , PCI_ASIC_REG , PCI_ASIC_ADDON_DATA , ELLIPSOID
  • base : PCPS_PORT_RSRC
  • baud_rate : COM_PARM
  • beta_0 : IONO
  • beta_1 : IONO
  • beta_2 : IONO
  • beta_3 : IONO
  • bias : XMULTI_REF_SETTINGS
  • broad_addr : IP4_SETTINGS
  • bus_flags : PCPS_DEV_TYPE
  • bus_num : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- c -

  • c : IDENT
  • cfg : CFGH , PCPS_DEV , PCI_ASIC
  • cfg_badr_0 : PCI_ASIC_CFG
  • cfg_class_rev_id : PCI_ASIC_CFG
  • cfg_dev_id : PCI_ASIC_CFG
  • channel : TTM
  • cic : EPH
  • cis : EPH
  • clk0_info : SCU_STAT_INFO
  • clk1_info : SCU_STAT_INFO
  • clock_accuracy : PTP_STATE
  • clock_class : PTP_STATE
  • clock_offset_scaled_log_variance : PTP_STATE
  • code : SW_REV
  • com : PORT_PARM
  • control_status : PCI_ASIC
  • corr_dir : CORR_INFO
  • cos_lat : USER_POS
  • cos_lon : USER_POS
  • crc : EPH
  • crs : EPH
  • csum : UTC , ALM , CFGH , ELLIPSOID , USER_POS , ASCII_MSG , IONO , FPGA_INFO , FPGA_START_INFO , EPH
  • cuc : EPH
  • cus : EPH
  • cycles : PCPS_HR_TIME_CYCLES , PCPS_TIME_CYCLES , PCPS_TIME_STAMP_CYCLES
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- d -

  • d : MBG_DATE_TIME
  • dac_cal : STAT_INFO
  • dac_val : STAT_INFO
  • deg : DMS
  • delay_asymmetry : PTP_STATE
  • delay_mech : PTP_STATE
  • delay_mechanism : PTP_CFG_SETTINGS
  • delay_request_interval : PTP_CFG_SETTINGS
  • delay_request_interval_max : PTP_CFG_INFO
  • delay_request_interval_min : PTP_CFG_INFO
  • delta_t : ANT_INFO
  • delta_tls : UTC
  • delta_tlsf : UTC
  • deltai : ALM
  • deltan : EPH
  • det : USER_POS
  • dev_id : PCPS_DEV_TYPE
  • device_name : _MBG_DEVICENAME_LIST
  • device_path : _MBG_DEVICE_LIST
  • dflt_clk_class_sync_cold : PTP_CFG_SETTINGS
  • dflt_clk_class_sync_warm : PTP_CFG_SETTINGS
  • dflt_clk_class_unsync_cold : PTP_CFG_SETTINGS
  • dflt_clk_class_unsync_warm : PTP_CFG_SETTINGS
  • dh : MBG_XHRT_INFO
  • DNt : UTC
  • domain_number : PTP_CFG_SETTINGS , PTP_STATE
  • dwl : FT_DWL
  • dxyz : ELLIPSOID
  • dynamic_platform : NAV_ENGINE_SETTINGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- e -

  • e : EPH , ALM
  • e_radius : USER_POS
  • e_radius_alt : USER_POS
  • ellipsoid : POS
  • epld_control : SCU_STAT_INFO
  • epld_control_mask : SCU_STAT_SETTINGS
  • epld_control_value : SCU_STAT_SETTINGS
  • epld_name : RECEIVER_INFO
  • epld_status : SCU_STAT_INFO
  • err_flags : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- f -

  • f : ELLIPSOID
  • features : RECEIVER_INFO , PCPS_DEV_CFG , PCI_ASIC
  • fine_limit : XMULTI_REF_SETTINGS
  • fix_mode : NAV_ENGINE_SETTINGS
  • fixed_altitude : NAV_ENGINE_SETTINGS
  • fixed_altitude_variance : NAV_ENGINE_SETTINGS
  • fixed_freq : RECEIVER_INFO
  • fixedPosVar : NAV_TIME_MODE_SETTINGS
  • fixedPosX : NAV_TIME_MODE_SETTINGS
  • fixedPosY : NAV_TIME_MODE_SETTINGS
  • fixedPosZ : NAV_TIME_MODE_SETTINGS
  • flags : PORT_SETTINGS , PTP_STATE , PTP_CFG_SETTINGS , PORT_INFO , NAV_TIME_MODE_SETTINGS , NAV_ENGINE_SETTINGS , LAN_IF_INFO , IP4_SETTINGS , SCU_STAT_SETTINGS , STR_TYPE_INFO , XMULTI_REF_INFO , CORR_INFO , IRIG_SETTINGS , MBG_OPT_SETTINGS , MBG_TIME_SCALE_SETTINGS , MBG_DATE_TIME , POUT_SETTINGS , POUT_INFO , MULTI_REF_INFO , XMULTI_REF_SETTINGS , RECEIVER_INFO , SCU_STAT_INFO , SYNTH_STATE
  • fpga_start_seg : FPGA_START_INFO
  • frac : PCPS_TIME_STAMP , PCPS_IRIG_TIME_s , TM_GPS
  • framing : COM_PARM
  • freq : ENABLE_FLAGS , SYNTH
  • freq_hz : MBG_XHRT_INFO
  • fsize : FPGA_INFO
  • ft : FT_DWL
  • fw_id : SCU_STAT_INFO , PCPS_DEV_CFG
  • fw_rev_num : PCPS_DEV_CFG
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- g -

  • gateway : IP4_SETTINGS
  • gm_identity : PTP_STATE
  • good_svs : STAT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- h -

  • handshake : COM_PARM
  • hdr : FPGA_INFO
  • health : ALM , CFGH , EPH
  • hour : PCPS_TIME_s , PCPS_IRIG_TIME_s , MBG_TIME , PCPS_DL_ONOFF , PCPS_STIME_s , TM_GPS
  • htc : MBG_XHRT_VARS
  • hw_id : SCU_STAT_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- i -

  • i0 : EPH
  • icode : IRIG_SETTINGS
  • id : XMULTI_REF_STATUS , XMULTI_REF_SETTINGS
  • id_str : PCPS_DRVR_INFO
  • idot : EPH
  • idx : PORT_INFO_IDX , STR_TYPE_INFO_IDX , POUT_SETTINGS_IDX , POUT_INFO_IDX , XMULTI_REF_STATUS_IDX , XMULTI_REF_SETTINGS_IDX , XMULTI_REF_INFO_IDX , PORT_SETTINGS_IDX
  • info : XMULTI_REF_INFO_IDX
  • instance : XMULTI_REF_ID
  • ioctl_status : MBG_XHRT_INFO
  • IODC : EPH
  • IODE2 : EPH
  • IODE3 : EPH
  • ip_addr : IP4_SETTINGS
  • irq_num : PCPS_DEV_CFG
  • is_set : TIMEOUT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- p -

  • parm : PORT_SETTINGS
  • path_delay : PTP_STATE
  • pci_data : PCI_ASIC
  • phase : SYNTH
  • pii : RECEIVER_PORT_CFG
  • port : PCPS_DEV_CFG
  • port_info : PORT_INFO_IDX
  • port_settings : PORT_SETTINGS_IDX , PORT_INFO
  • port_state : PTP_STATE
  • pos : USER_POS
  • pout_info : POUT_INFO_IDX
  • pout_settings : POUT_SETTINGS_IDX , POUT_INFO
  • precision : XMULTI_REF_SETTINGS
  • prefix : DMS
  • prio : MULTI_REF_SETTINGS
  • priority_1 : PTP_CFG_SETTINGS
  • priority_2 : PTP_CFG_SETTINGS
  • profile : PTP_CFG_SETTINGS
  • prv_vars : MBG_XHRT_INFO
  • ptp_proto_version : PTP_STATE , PTP_CFG_INFO
  • pulse_len : POUT_SETTINGS
  • pulses : ENABLE_FLAGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- r -

  • range : FIXED_FREQ_INFO , SYNTH
  • raw_version : PCI_ASIC
  • rcp_f : ELLIPSOID
  • ref_type : PCPS_DEV_TYPE
  • reserved : XMULTI_REF_STATUS , PTP_STATE , NAV_TIME_MODE_SETTINGS , NAV_ENGINE_SETTINGS , SW_REV , PCPS_IRIG_TIME_s , PORT_INFO
  • reserved_0 : POUT_INFO , PTP_CFG_SETTINGS
  • reserved_1 : PTP_CFG_SETTINGS , PTP_CFG_INFO , PCI_ASIC , POUT_INFO
  • reserved_2 : PCI_ASIC , PTP_CFG_SETTINGS , PTP_CFG_INFO
  • reserved_3 : PTP_CFG_SETTINGS
  • rsvd : LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- s -

  • s : ASCII_MSG
  • scale : MBG_TIME_SCALE_SETTINGS
  • sec : TM_GPS , PCPS_TIME_s , PCPS_STIME_s , MBG_TIME , PCPS_IRIG_TIME_s , T_GPS , DMS , PCPS_TIME_STAMP
  • sec100 : MBG_TIME , PCPS_TIME_s , PCPS_STIME_s
  • secs : NANO_TIME
  • serial : ENABLE_FLAGS
  • sernum : RECEIVER_INFO , LAN_IF_INFO , PCPS_DEV_CFG
  • settings : IRIG_INFO , MBG_OPT_INFO , MBG_TIME_SCALE_INFO , MULTI_REF_INFO , XMULTI_REF_SETTINGS_IDX , XMULTI_REF_INFO , PTP_CFG_INFO
  • short_name : STR_TYPE_INFO
  • signal : PCPS_HR_TIME , PCPS_TIME_s , PCPS_IRIG_TIME_s
  • sin_lat : USER_POS
  • sin_lon : USER_POS
  • sleep_ms : MBG_XHRT_INFO
  • slot_num : PCPS_DEV_CFG
  • sqr_e : ELLIPSOID
  • sqrt_A : EPH , ALM
  • start : TIMEOUT
  • start_addr : FPGA_INFO
  • state : SYNTH_STATE
  • static_hold_threshold : NAV_ENGINE_SETTINGS
  • status : PCPS_STIME_s , XMULTI_REF_STATUS , TM_GPS , ANT_INFO , XMULTI_REF_STATUS_IDX , PCPS_HR_TIME , PCPS_TIME_s , PCPS_IRIG_TIME_s , CORR_INFO
  • status_port : PCI_ASIC , PCPS_DEV_CFG
  • stii : RECEIVER_PORT_CFG
  • stime : PCPS_TIME_UNION
  • stop : TIMEOUT
  • str_type : PORT_SETTINGS
  • str_type_info : STR_TYPE_INFO_IDX
  • supp_baud_rates : PORT_INFO
  • supp_codes : IRIG_INFO
  • supp_flags : MBG_OPT_INFO
  • supp_framings : PORT_INFO
  • supp_modes : POUT_INFO , STR_TYPE_INFO
  • supp_ref : XMULTI_REF_INFO , MULTI_REF_INFO
  • supp_scales : MBG_TIME_SCALE_INFO
  • supp_str_types : PORT_INFO
  • supported_delay_mechanisms : PTP_CFG_INFO
  • supported_flags : PTP_CFG_INFO
  • supported_network_protocols : PTP_CFG_INFO
  • supported_profiles : PTP_CFG_INFO
  • survey_in_duration : NAV_TIME_MODE_SETTINGS
  • survey_in_pos_var : NAV_TIME_MODE_SETTINGS
  • svs_in_view : STAT_INFO
  • sw_rev : RECEIVER_INFO
  • sync_interval : PTP_CFG_SETTINGS
  • sync_interval_max : PTP_CFG_INFO
  • sync_interval_min : PTP_CFG_INFO
  • synth : ENABLE_FLAGS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- t -

  • t : TTM , MBG_DATE_TIME , PCPS_TIME_CYCLES , PCPS_HR_TIME_CYCLES , PCPS_TIME_UNION
  • t0a : ALM , CFGH
  • t0c : EPH
  • t0e : EPH
  • t0t : UTC
  • tgd : EPH
  • thread_id : MBG_THREAD_INFO
  • ti : MBG_POLL_THREAD_INFO
  • tick : T_GPS
  • ticks_per_sec : RECEIVER_INFO
  • time_mode : NAV_TIME_MODE_SETTINGS
  • time_source : PTP_STATE
  • timeout : POUT_SETTINGS
  • timeout_clk : PCPS_DEV_CFG
  • timestr_ports : POUT_INFO
  • tm : TTM , POUT_SETTINGS
  • tm_disconn : ANT_INFO
  • tm_off : TZDL , PCPS_TZDL
  • tm_on : TZDL , PCPS_TZDL
  • tm_reconn : ANT_INFO
  • tmp_pp : RECEIVER_PORT_CFG
  • tot_51 : CFGH
  • tot_63 : CFGH
  • tstamp : PCPS_HR_TIME , PCPS_TIME_STAMP_CYCLES
  • tstamp64 : MBG_XHRT_VARS
  • tt : EPH
  • type : PCPS_DEV , XMULTI_REF_ID , LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- u -

  • ul : PCI_ASIC_REG , PCI_ASIC_ADDON_DATA
  • upper_bound : PTP_CFG_SETTINGS
  • URA : EPH
  • us : PCI_ASIC_REG , PCI_ASIC_ADDON_DATA
  • used : PCPS_UCAP_ENTRIES
  • user_virtual_address : PCPS_MAPPED_MEM
  • utc_offs : PCPS_HR_TIME
  • utc_offset : PTP_STATE
  • utx : USER_POS
  • uty : USER_POS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- v -

  • val : CORR_INFO
  • valid : EPH , CFGH , USER_POS , ELLIPSOID , UTC , ALM , IONO , ASCII_MSG
  • value : PTP_TABLE
  • vars : MBG_XHRT_INFO
  • ver_code : LAN_IF_INFO
  • ver_num : PCPS_DRVR_INFO
  • ver_str : LAN_IF_INFO
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- w -

  • wday : TM_GPS , MBG_DATE_TIME , PCPS_STIME_s , PCPS_TIME_s
  • wn : T_GPS
  • WNlsf : UTC
  • wrd : IDENT
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- x -

  • xhrt_info : MBG_POLL_THREAD_INFO
  • xyz : POS
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields - Variables

  • Alphabetical List
  • Data Structures
  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y

- y -

  • yday : TM_GPS , PCPS_IRIG_TIME_s
  • year : PCPS_IRIG_TIME_s , PCPS_STIME_s , PCPS_TIME_s , MBG_DATE , TM_GPS
  • year_or_wday : PCPS_DL_ONOFF
Generated on Tue Aug 18 16:18:11 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- k -

  • KEY_DL_ANN : mbgdmpst.c
  • KEY_DL_ENB : mbgdmpst.c
  • KEY_FREER : mbgdmpst.c
  • KEY_INV_TIME : mbgdmpst.c
  • KEY_LS_ANN : mbgdmpst.c
  • KEY_SET_MANUALLY : mbgdmpst.c
  • KEY_SVC_ACTIVE : mbgdmpst.c
  • KEY_SVC_REF_ACCESSIBLE : mbgdmpst.c
  • KEY_SYNC_AFTER_RESET : mbgdmpst.c
  • KEY_UTC : mbgdmpst.c
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- l -

  • LAN_IF_TYPE_PTP : gpsdefs.h
  • LAN_IF_TYPE_XPORT : gpsdefs.h
  • LAT : gpsdefs.h
  • LLA : gpsdefs.h
  • lla_to_dms() : mbggeo.h
  • lla_to_xyz() : mbggeo.h
  • LO_BYTE : words.h
  • LO_WORD : words.h
  • LON : gpsdefs.h
  • long_time_fmt : mbgtime.h
  • longword : words.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- m -

  • main() : hrtime.c , mbgdevio_demo.c , mbgdmpst.c , xhrtime.c
  • MAX_MEM_MAPPED_CNT : mbgdevio_demo.c
  • MAX_PARM_PORT : pcpsdev.h
  • MAX_PARM_POUT : pcpsdev.h
  • MAX_PARM_STR_TYPE : pcpsdev.h
  • MAX_POUT_DCF_TIMOUT : gpsdefs.h
  • MAX_POUT_PULSE_LEN : gpsdefs.h
  • MAX_POUT_TIMESTR_PORTS : gpsdefs.h
  • MAX_SVNO : gpsdefs.h
  • MAX_SYNTH_FREQ : gpsdefs.h
  • MAX_SYNTH_FREQ_EDIT : gpsdefs.h
  • MAX_SYNTH_FREQ_VAL : gpsdefs.h
  • MAX_SYNTH_PHASE : gpsdefs.h
  • MAX_SYNTH_RANGE : gpsdefs.h
  • MBG_ARCH_I386 : mbg_tgt.h
  • MBG_ARCH_LITTLE_ENDIAN : mbg_arch.h
  • MBG_BAUD_RATE_1200 : gpsdefs.h
  • MBG_BAUD_RATE_19200 : gpsdefs.h
  • MBG_BAUD_RATE_2400 : gpsdefs.h
  • MBG_BAUD_RATE_300 : gpsdefs.h
  • MBG_BAUD_RATE_38400 : gpsdefs.h
  • MBG_BAUD_RATE_4800 : gpsdefs.h
  • MBG_BAUD_RATE_600 : gpsdefs.h
  • MBG_BAUD_RATE_9600 : gpsdefs.h
  • MBG_BAUD_RATES : gpsdefs.h
  • MBG_BAUD_STRS : gpsdefs.h
  • mbg_close_device() : mbgdevio.h
  • mbg_clr_ucap_buff() : mbgdevio.h
  • MBG_CPU_SET : mbgdevio.h
  • MBG_CPU_SET_SIZE : mbgdevio.h
  • MBG_DBG_DATA : pcpsdev.h
  • MBG_DBG_PORT : pcpsdev.h
  • MBG_DEBUG_STATUS : gpsdefs.h
  • MBG_DEBUG_STATUS_STRS : gpsdefs.h
  • mbg_delta_pc_cycles() : pcpsdev.h
  • mbg_dev_can_clr_ucap_buff() : mbgdevio.h
  • MBG_DEV_HANDLE : mbgdevio.h
  • mbg_dev_has_asic_features() : mbgdevio.h
  • mbg_dev_has_asic_version() : mbgdevio.h
  • mbg_dev_has_cab_len() : mbgdevio.h
  • mbg_dev_has_event_time() : mbgdevio.h
  • mbg_dev_has_fast_hr_timestamp() : mbgdevio.h
  • mbg_dev_has_generic_io() : mbgdevio.h
  • mbg_dev_has_gps_data() : mbgdevio.h
  • mbg_dev_has_hr_time() : mbgdevio.h
  • mbg_dev_has_irig() : mbgdevio.h
  • mbg_dev_has_irig_ctrl_bits() : mbgdevio.h
  • mbg_dev_has_irig_time() : mbgdevio.h
  • mbg_dev_has_irig_tx() : mbgdevio.h
  • mbg_dev_has_lan_intf() : mbgdevio.h
  • mbg_dev_has_mod() : mbgdevio.h
  • mbg_dev_has_opt_flags() : mbgdevio.h
  • mbg_dev_has_pcps_tzdl() : mbgdevio.h
  • mbg_dev_has_ptp() : mbgdevio.h
  • mbg_dev_has_receiver_info() : mbgdevio.h
  • mbg_dev_has_ref_offs() : mbgdevio.h
  • mbg_dev_has_serial_hs() : mbgdevio.h
  • mbg_dev_has_signal() : mbgdevio.h
  • mbg_dev_has_synth() : mbgdevio.h
  • mbg_dev_has_time_scale() : mbgdevio.h
  • mbg_dev_has_tz() : mbgdevio.h
  • mbg_dev_has_tzcode() : mbgdevio.h
  • mbg_dev_has_tzdl() : mbgdevio.h
  • mbg_dev_has_ucap() : mbgdevio.h
  • mbg_dev_has_utc_parm() : mbgdevio.h
  • mbg_dev_is_dcf() : mbgdevio.h
  • mbg_dev_is_gps() : mbgdevio.h
  • mbg_dev_is_irig_rx() : mbgdevio.h
  • mbg_dev_is_lwr() : mbgdevio.h
  • mbg_dev_is_msf() : mbgdevio.h
  • mbg_dev_is_wwvb() : mbgdevio.h
  • MBG_DEVICE_LIST : mbgdevio.h
  • MBG_DEVICENAME_LIST : mbgdevio.h
  • mbg_dump_time_adjustment_status() : mbgdmpst.c
  • MBG_ERR_CFG : mbgerror.h
  • MBG_ERR_CLAIM_RSRC : mbgerror.h
  • MBG_ERR_CYCLIC_TIMEOUT : mbgerror.h
  • MBG_ERR_DEV_NOT_SUPP : mbgerror.h
  • MBG_ERR_DRV_VERSION : mbgerror.h
  • MBG_ERR_FIFO : mbgerror.h
  • MBG_ERR_FW_ID : mbgerror.h
  • MBG_ERR_GENERIC : mbgerror.h
  • MBG_ERR_INV_DEV_REQUEST : mbgerror.h
  • MBG_ERR_INV_INTNO : mbgerror.h
  • MBG_ERR_INV_TIME : mbgerror.h
  • MBG_ERR_INV_TYPE : mbgerror.h
  • MBG_ERR_IRQ_UNSAFE : mbgerror.h
  • MBG_ERR_LIB_NOT_COMPATIBLE : mbgerror.h
  • MBG_ERR_N_COM_EXCEEDS_SUPP : mbgerror.h
  • MBG_ERR_N_STR_EXCEEDS_SUPP : mbgerror.h
  • MBG_ERR_NBYTES : mbgerror.h
  • MBG_ERR_NO_DRIVER : mbgerror.h
  • MBG_ERR_NO_MEM : mbgerror.h
  • MBG_ERR_NOT_READY : mbgerror.h
  • MBG_ERR_NOT_SUPP_BY_DEV : mbgerror.h
  • MBG_ERR_NOT_SUPP_ON_OS : mbgerror.h
  • MBG_ERR_STIME : mbgerror.h
  • MBG_ERR_TIMEOUT : mbgerror.h
  • MBG_ERR_USB_ACCESS : mbgerror.h
  • mbg_find_devices() : mbgdevio.h
  • mbg_find_devices_with_names() : mbgdevio.h
  • MBG_FRAMING_7E1 : gpsdefs.h
  • MBG_FRAMING_7E2 : gpsdefs.h
  • MBG_FRAMING_7N2 : gpsdefs.h
  • MBG_FRAMING_7O1 : gpsdefs.h
  • MBG_FRAMING_7O2 : gpsdefs.h
  • MBG_FRAMING_8E1 : gpsdefs.h
  • MBG_FRAMING_8N1 : gpsdefs.h
  • MBG_FRAMING_8N2 : gpsdefs.h
  • MBG_FRAMING_8O1 : gpsdefs.h
  • MBG_FRAMING_STRS : gpsdefs.h
  • mbg_free_device_name_list() : mbgdevio.h
  • mbg_generic_io() : mbgdevio.h
  • mbg_generic_read() : mbgdevio.h
  • mbg_generic_read_gps() : mbgdevio.h
  • mbg_generic_write() : mbgdevio.h
  • mbg_generic_write_gps() : mbgdevio.h
  • mbg_get_asic_features() : mbgdevio.h
  • mbg_get_asic_version() : mbgdevio.h
  • mbg_get_default_cycles_frequency() : mbgdevio.h
  • mbg_get_default_cycles_frequency_from_dev() : mbgdevio.h
  • mbg_get_device_info() : mbgdevio.h
  • mbg_get_drvr_info() : mbgdevio.h
  • mbg_get_fast_hr_timestamp() : mbgdevio.h
  • mbg_get_fast_hr_timestamp_comp() : mbgdevio.h
  • mbg_get_fast_hr_timestamp_cycles() : mbgdevio.h
  • mbg_get_gps_all_pout_info() : mbgdevio.h
  • mbg_get_gps_ant_cable_len() : mbgdevio.h
  • mbg_get_gps_ant_info() : mbgdevio.h
  • mbg_get_gps_bvar_stat() : mbgdevio.h
  • mbg_get_gps_enable_flags() : mbgdevio.h
  • mbg_get_gps_port_parm() : mbgdevio.h
  • mbg_get_gps_pos() : mbgdevio.h
  • mbg_get_gps_receiver_info() : mbgdevio.h
  • mbg_get_gps_stat_info() : mbgdevio.h
  • mbg_get_gps_sw_rev() : mbgdevio.h
  • mbg_get_gps_time() : mbgdevio.h
  • mbg_get_gps_tzdl() : mbgdevio.h
  • mbg_get_gps_ucap() : mbgdevio.h
  • mbg_get_hr_time() : mbgdevio.h
  • mbg_get_hr_time_comp() : mbgdevio.h
  • mbg_get_hr_time_cycles() : mbgdevio.h
  • mbg_get_ip4_settings() : mbgdevio.h
  • mbg_get_ip4_state() : mbgdevio.h
  • mbg_get_irig_ctrl_bits() : mbgdevio.h
  • mbg_get_irig_rx_info() : mbgdevio.h
  • mbg_get_irig_time() : mbgdevio.h
  • mbg_get_irig_tx_info() : mbgdevio.h
  • mbg_get_irq_stat_info() : mbgdevio.h
  • mbg_get_lan_if_info() : mbgdevio.h
  • mbg_get_opt_info() : mbgdevio.h
  • mbg_get_pc_cycles() : pcpsdev.h
  • mbg_get_pc_cycles_frequency() : pcpsdev.h
  • mbg_get_pcps_tzdl() : mbgdevio.h
  • mbg_get_process_affinity() : mbgdevio.h
  • mbg_get_ptp_cfg_info() : mbgdevio.h
  • mbg_get_ptp_state() : mbgdevio.h
  • mbg_get_ref_offs() : mbgdevio.h
  • mbg_get_ref_time_status() : mbgsvcio.h
  • mbg_get_serial() : mbgdevio.h
  • mbg_get_serial_settings() : mbgdevio.h
  • mbg_get_status_port() : mbgdevio.h
  • mbg_get_sync_time() : mbgdevio.h
  • mbg_get_synth() : mbgdevio.h
  • mbg_get_synth_state() : mbgdevio.h
  • mbg_get_time() : mbgdevio.h
  • mbg_get_time_cycles() : mbgdevio.h
  • mbg_get_time_scale_info() : mbgdevio.h
  • mbg_get_time_sec_change() : mbgdevio.h
  • mbg_get_tzcode() : mbgdevio.h
  • mbg_get_ucap_entries() : mbgdevio.h
  • mbg_get_ucap_event() : mbgdevio.h
  • mbg_get_utc_parm() : mbgdevio.h
  • mbg_get_xhrt_cycles_frequency() : mbgdevio.h
  • mbg_get_xhrt_time_as_filetime() : mbgdevio.h
  • mbg_get_xhrt_time_as_pcps_hr_time() : mbgdevio.h
  • MBG_HANDLE : mbg_tgt.h
  • mbg_init_pc_cycles_frequency() : mbgdevio.h
  • MBG_INVALID_DEV_HANDLE : mbgdevio.h
  • MBG_INVALID_HANDLE : mbg_tgt.h
  • MBG_IRIG_BIT_INV_CONFIG : gpsdefs.h
  • MBG_IRIG_BIT_INV_REF_OFFS : gpsdefs.h
  • MBG_IRIG_BIT_JITTER_TOO_LARGE : gpsdefs.h
  • MBG_IRIG_BIT_LOOP_LOCKED : gpsdefs.h
  • MBG_IRIG_BIT_MSG_DECODED : gpsdefs.h
  • MBG_IRIG_BIT_MSG_INCONSISTENT : gpsdefs.h
  • MBG_IRIG_BIT_PPS_ACTIVE : gpsdefs.h
  • MBG_IRIG_BIT_WARMED_UP : gpsdefs.h
  • MBG_IRIG_CTRL_BITS : pcpsdefs.h
  • MBG_IRIG_MSK_INV_CONFIG : gpsdefs.h
  • MBG_IRIG_MSK_INV_REF_OFFS : gpsdefs.h
  • MBG_IRIG_MSK_JITTER_TOO_LARGE : gpsdefs.h
  • MBG_IRIG_MSK_LOOP_LOCKED : gpsdefs.h
  • MBG_IRIG_MSK_MSG_DECODED : gpsdefs.h
  • MBG_IRIG_MSK_MSG_INCONSISTENT : gpsdefs.h
  • MBG_IRIG_MSK_PPS_ACTIVE : gpsdefs.h
  • MBG_IRIG_MSK_WARMED_UP : gpsdefs.h
  • MBG_MATCH_ANY : mbgdevio.h
  • MBG_MATCH_EXACTLY : mbgdevio.h
  • MBG_MATCH_MODE : mbgdevio.h
  • MBG_MATCH_MODEL : mbgdevio.h
  • MBG_MAX_DEVICES : mbgdevio.h
  • MBG_MEM_ADDR : pcpsdev.h
  • MBG_MUTEX : mbgdevio.h
  • mbg_open_device() : mbgdevio.h
  • mbg_open_device_by_name() : mbgdevio.h
  • MBG_OPT_BIT_EMU_SYNC : gpsdefs.h
  • MBG_OPT_BIT_STR_UTC : gpsdefs.h
  • MBG_OPT_FLAG_EMU_SYNC : gpsdefs.h
  • MBG_OPT_FLAG_STR_UTC : gpsdefs.h
  • MBG_PC_CYCLES : pcpsdev.h
  • MBG_PC_CYCLES_FREQUENCY : pcpsdev.h
  • MBG_PORT_HANDLE : mbg_tgt.h
  • MBG_PORT_HAS_1200 : gpsdefs.h
  • MBG_PORT_HAS_19200 : gpsdefs.h
  • MBG_PORT_HAS_2400 : gpsdefs.h
  • MBG_PORT_HAS_300 : gpsdefs.h
  • MBG_PORT_HAS_38400 : gpsdefs.h
  • MBG_PORT_HAS_4800 : gpsdefs.h
  • MBG_PORT_HAS_600 : gpsdefs.h
  • MBG_PORT_HAS_7E1 : gpsdefs.h
  • MBG_PORT_HAS_7E2 : gpsdefs.h
  • MBG_PORT_HAS_7N2 : gpsdefs.h
  • MBG_PORT_HAS_7O1 : gpsdefs.h
  • MBG_PORT_HAS_7O2 : gpsdefs.h
  • MBG_PORT_HAS_8E1 : gpsdefs.h
  • MBG_PORT_HAS_8N1 : gpsdefs.h
  • MBG_PORT_HAS_8N2 : gpsdefs.h
  • MBG_PORT_HAS_8O1 : gpsdefs.h
  • MBG_PORT_HAS_9600 : gpsdefs.h
  • MBG_PROCESS_ID : mbgdevio.h
  • MBG_PS_BIT_BAUD_RATE : gpsdefs.h
  • MBG_PS_BIT_BAUD_RATE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_BAUD_RATE_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_FLAGS : gpsdefs.h
  • MBG_PS_BIT_FLAGS_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_FRAMING : gpsdefs.h
  • MBG_PS_BIT_FRAMING_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_FRAMING_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_HS : gpsdefs.h
  • MBG_PS_BIT_HS_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_STR_MODE : gpsdefs.h
  • MBG_PS_BIT_STR_MODE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_STR_MODE_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_BAUD_RATE : gpsdefs.h
  • MBG_PS_MSK_BAUD_RATE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_BAUD_RATE_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_FLAGS : gpsdefs.h
  • MBG_PS_MSK_FLAGS_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_FRAMING : gpsdefs.h
  • MBG_PS_MSK_FRAMING_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_FRAMING_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_HS : gpsdefs.h
  • MBG_PS_MSK_HS_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_STR_MODE : gpsdefs.h
  • MBG_PS_MSK_STR_MODE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_STR_MODE_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE_OVR_SW : gpsdefs.h
  • MBG_REF_OFFS : gpsdefs.h
  • MBG_REF_OFFS_MAX : gpsdefs.h
  • MBG_REF_OFFS_NOT_CFGD : gpsdefs.h
  • mbg_ref_time_accessible() : mbgsvcio.h
  • mbg_save_serial_settings() : mbgdevio.h
  • mbg_set_current_process_affinity_to_cpu() : mbgdevio.h
  • mbg_set_event_time() : mbgdevio.h
  • mbg_set_gps_ant_cable_len() : mbgdevio.h
  • mbg_set_gps_cmd() : mbgdevio.h
  • mbg_set_gps_enable_flags() : mbgdevio.h
  • mbg_set_gps_port_parm() : mbgdevio.h
  • mbg_set_gps_port_settings() : mbgdevio.h
  • mbg_set_gps_port_settings_idx() : mbgdevio.h
  • mbg_set_gps_pos_lla() : mbgdevio.h
  • mbg_set_gps_pos_xyz() : mbgdevio.h
  • mbg_set_gps_pout_settings() : mbgdevio.h
  • mbg_set_gps_pout_settings_idx() : mbgdevio.h
  • mbg_set_gps_time() : mbgdevio.h
  • mbg_set_gps_tzdl() : mbgdevio.h
  • mbg_set_ip4_settings() : mbgdevio.h
  • mbg_set_irig_rx_settings() : mbgdevio.h
  • mbg_set_irig_tx_settings() : mbgdevio.h
  • mbg_set_opt_settings() : mbgdevio.h
  • mbg_set_pcps_tzdl() : mbgdevio.h
  • mbg_set_process_affinity() : mbgdevio.h
  • mbg_set_ptp_cfg_settings() : mbgdevio.h
  • mbg_set_ref_offs() : mbgdevio.h
  • mbg_set_serial() : mbgdevio.h
  • mbg_set_synth() : mbgdevio.h
  • mbg_set_time() : mbgdevio.h
  • mbg_set_time_scale_settings() : mbgdevio.h
  • mbg_set_tzcode() : mbgdevio.h
  • mbg_set_utc_parm() : mbgdevio.h
  • mbg_setup_receiver_info() : mbgdevio.h
  • mbg_snprintf() : mbgutil.h
  • mbg_str_date() : mbgutil.h
  • mbg_str_date_short() : mbgutil.h
  • mbg_str_dev_name() : mbgutil.h
  • mbg_str_pcps_date() : mbgutil.h
  • mbg_str_pcps_date_short() : mbgutil.h
  • mbg_str_pcps_date_time() : mbgutil.h
  • mbg_str_pcps_hr_date() : mbgutil.h
  • mbg_str_pcps_hr_date_time_loc() : mbgutil.h
  • mbg_str_pcps_hr_date_time_utc() : mbgutil.h
  • mbg_str_pcps_hr_time() : mbgutil.h
  • mbg_str_pcps_hr_time_frac() : mbgutil.h
  • mbg_str_pcps_hr_time_offs() : mbgutil.h
  • mbg_str_pcps_hr_time_raw() : mbgutil.h
  • mbg_str_pcps_hr_tstamp_loc() : mbgutil.h
  • mbg_str_pcps_hr_tstamp_utc() : mbgutil.h
  • mbg_str_pcps_time() : mbgutil.h
  • mbg_str_pcps_time_long() : mbgutil.h
  • mbg_str_pcps_time_short() : mbgutil.h
  • mbg_str_pcps_tstamp_raw() : mbgutil.h
  • mbg_str_pos() : mbgutil.h
  • mbg_str_pos_alt() : mbgutil.h
  • mbg_str_pos_dms() : mbgutil.h
  • mbg_str_time() : mbgutil.h
  • mbg_str_time_long() : mbgutil.h
  • mbg_str_time_short() : mbgutil.h
  • mbg_str_tm_gps_date_time() : mbgutil.h
  • mbg_str_ucap() : mbgutil.h
  • mbg_strchar() : mbgutil.h
  • mbg_strncpy() : mbgutil.h
  • MBG_SUCCESS : mbgerror.h
  • mbg_swab_double() : mbg_arch.h
  • MBG_SYS_BIT_CPU_PLL_FAILED : gpsdefs.h
  • MBG_SYS_BIT_INV_RTC : gpsdefs.h
  • MBG_SYS_BIT_INV_TIME : gpsdefs.h
  • MBG_SYS_BIT_TIME_SET_VIA_API : gpsdefs.h
  • MBG_SYS_MSK_CPU_PLL_FAILED : gpsdefs.h
  • MBG_SYS_MSK_INV_RTC : gpsdefs.h
  • MBG_SYS_MSK_INV_TIME : gpsdefs.h
  • MBG_SYS_MSK_TIME_SET_VIA_API : gpsdefs.h
  • MBG_TGT_C94 : mbg_tgt.h
  • MBG_TGT_C99 : mbg_tgt.h
  • MBG_TGT_HAS_64BIT_TYPES : words.h
  • MBG_TGT_HAS_WCHAR_T : mbg_tgt.h
  • mbg_thread_create() : mbgdevio.h
  • MBG_THREAD_FNC_ATTR : mbgdevio.h
  • MBG_THREAD_FNC_RET_VAL : mbgdevio.h
  • MBG_THREAD_ID : mbgdevio.h
  • mbg_thread_set_affinity() : mbgdevio.h
  • mbg_thread_sleep_interruptible() : mbgdevio.h
  • mbg_thread_stop() : mbgdevio.h
  • mbg_time_adjustment_active() : mbgsvcio.h
  • MBG_TIME_SCALE_DEFAULT : gpsdefs.h
  • MBG_TIME_SCALE_GPS : gpsdefs.h
  • MBG_TIME_SCALE_MSK_DEFAULT : gpsdefs.h
  • MBG_TIME_SCALE_MSK_GPS : gpsdefs.h
  • MBG_TIME_SCALE_MSK_TAI : gpsdefs.h
  • MBG_TIME_SCALE_STRS : gpsdefs.h
  • MBG_TIME_SCALE_TAI : gpsdefs.h
  • MBG_USB_CLASS_CMC : usbdefs.h
  • MBG_USB_CLASS_CPC : usbdefs.h
  • MBG_USB_CLASS_DCF : usbdefs.h
  • MBG_USB_CLASS_MSF : usbdefs.h
  • MBG_USB_CLASS_NONE : usbdefs.h
  • MBG_USB_CLASS_SCU : usbdefs.h
  • MBG_USB_CLASS_TCR : usbdefs.h
  • MBG_USB_CLASS_TSU : usbdefs.h
  • MBG_USB_CLASS_WWVB : usbdefs.h
  • MBG_USE_MM_IO_FOR_PCI : mbg_tgt.h
  • mbg_xhrt_poll_thread_create() : mbgdevio.h
  • mbg_xhrt_poll_thread_stop() : mbgdevio.h
  • mbgdevio_check_version() : mbgdevio.h
  • MBGDEVIO_COMPAT_VERSION : mbgdevio.h
  • mbgdevio_get_version() : mbgdevio.h
  • MBGDEVIO_HAVE_THREAD_AFFINITY : mbgdevio.h
  • MBGDEVIO_SIMPLE : mbgdevio.h
  • MBGDEVIO_USE_THREAD_API : mbgdevio.h
  • MBGDEVIO_VERSION : mbgdevio.h
  • MBGDEVIO_XHRT_API : mbgdevio.h
  • mbgsvcio_check_version() : mbgsvcio.h
  • MBGSVCIO_COMPAT_VERSION : mbgsvcio.h
  • mbgsvcio_get_version() : mbgsvcio.h
  • MBGSVCIO_VERSION : mbgsvcio.h
  • MBGUSB_EP_IDX_HOST_IN : usbdefs.h
  • MBGUSB_EP_IDX_HOST_IN_CYCLIC : usbdefs.h
  • MBGUSB_EP_IDX_HOST_OUT : usbdefs.h
  • MBGUSB_MAX_ENDPOINTS : usbdefs.h
  • mbgutil_check_version() : mbgutil.h
  • MBGUTIL_COMPAT_VERSION : mbgutil.h
  • mbgutil_get_version() : mbgutil.h
  • MBGUTIL_VERSION : mbgutil.h
  • MEINBERG_MAGIC : gpsdefs.h
  • MIN_SVNO : gpsdefs.h
  • MIN_SYNTH_RANGE : gpsdefs.h
  • MINS_PER_DAY : mbgtime.h
  • MINS_PER_HOUR : mbgtime.h
  • MSEC_PER_DAY : mbgtime.h
  • MSEC_PER_HOUR : mbgtime.h
  • MSEC_PER_MIN : mbgtime.h
  • MSEC_PER_SEC : mbgtime.h
  • MSK_EPLD_CNTL_DIS_REM : gpsdefs.h
  • MSK_EPLD_CNTL_ENA_SNMP : gpsdefs.h
  • MSK_EPLD_CNTL_REMOTE : gpsdefs.h
  • MSK_EPLD_CNTL_SEL_REM : gpsdefs.h
  • MSK_EPLD_CNTL_SEL_SNMP : gpsdefs.h
  • MSK_EPLD_STAT_ACO : gpsdefs.h
  • MSK_EPLD_STAT_AUTO : gpsdefs.h
  • MSK_EPLD_STAT_ENA : gpsdefs.h
  • MSK_EPLD_STAT_PSU1_OK : gpsdefs.h
  • MSK_EPLD_STAT_PSU2_OK : gpsdefs.h
  • MSK_EPLD_STAT_SEL : gpsdefs.h
  • MSK_EPLD_STAT_TL_ERROR : gpsdefs.h
  • MSK_EPLD_STAT_TS1 : gpsdefs.h
  • MSK_EPLD_STAT_TS2 : gpsdefs.h
  • MSK_EPLD_STAT_WDOG_OK : gpsdefs.h
  • MSK_ICODE_RX_1000BPS : gpsdefs.h
  • MSK_ICODE_RX_100BPS : gpsdefs.h
  • MSK_ICODE_RX_10KHZ : gpsdefs.h
  • MSK_ICODE_RX_1KHZ : gpsdefs.h
  • MSK_ICODE_RX_A002_A003 : gpsdefs.h
  • MSK_ICODE_RX_A132_A133 : gpsdefs.h
  • MSK_ICODE_RX_AFNOR : gpsdefs.h
  • MSK_ICODE_RX_AFNOR_DC : gpsdefs.h
  • MSK_ICODE_RX_B002_B003 : gpsdefs.h
  • MSK_ICODE_RX_B006_B007 : gpsdefs.h
  • MSK_ICODE_RX_B122_B123 : gpsdefs.h
  • MSK_ICODE_RX_B126_B127 : gpsdefs.h
  • MSK_ICODE_RX_DC : gpsdefs.h
  • MSK_ICODE_RX_HAS_TFOM : gpsdefs.h
  • MSK_ICODE_RX_HAS_TZI : gpsdefs.h
  • MSK_ICODE_RX_IEEE1344 : gpsdefs.h
  • MSK_ICODE_RX_IEEE1344_DC : gpsdefs.h
  • MSK_ICODE_TX_1000BPS : gpsdefs.h
  • MSK_ICODE_TX_100BPS : gpsdefs.h
  • MSK_ICODE_TX_10KHZ : gpsdefs.h
  • MSK_ICODE_TX_1KHZ : gpsdefs.h
  • MSK_ICODE_TX_A002_A132 : gpsdefs.h
  • MSK_ICODE_TX_A003_A133 : gpsdefs.h
  • MSK_ICODE_TX_AFNOR : gpsdefs.h
  • MSK_ICODE_TX_B002_B122 : gpsdefs.h
  • MSK_ICODE_TX_B003_B123 : gpsdefs.h
  • MSK_ICODE_TX_B006_B126 : gpsdefs.h
  • MSK_ICODE_TX_B007_B127 : gpsdefs.h
  • MSK_ICODE_TX_B220_1344 : gpsdefs.h
  • MSK_ICODE_TX_B222 : gpsdefs.h
  • MSK_ICODE_TX_B223 : gpsdefs.h
  • MSK_ICODE_TX_DC_MANCH : gpsdefs.h
  • MSK_ICODE_TX_HAS_TFOM : gpsdefs.h
  • MSK_ICODE_TX_HAS_TZI : gpsdefs.h
  • MSK_ICODE_TX_IEEE1344 : gpsdefs.h
  • MSK_POUT_10MHZ : gpsdefs.h
  • MSK_POUT_ALL_SYNC : gpsdefs.h
  • MSK_POUT_CYCLIC_PULSE : gpsdefs.h
  • MSK_POUT_DCF77 : gpsdefs.h
  • MSK_POUT_IDLE : gpsdefs.h
  • MSK_POUT_PER_HOUR : gpsdefs.h
  • MSK_POUT_PER_MIN : gpsdefs.h
  • MSK_POUT_PER_SEC : gpsdefs.h
  • MSK_POUT_POS_OK : gpsdefs.h
  • MSK_POUT_SINGLE_SHOT : gpsdefs.h
  • MSK_POUT_TIME_SYNC : gpsdefs.h
  • MSK_POUT_TIMECODE : gpsdefs.h
  • MSK_POUT_TIMER : gpsdefs.h
  • MSK_POUT_TIMESTR : gpsdefs.h
  • MSK_STR_AUTO : gpsdefs.h
  • MSK_STR_ON_REQ : gpsdefs.h
  • MSK_STR_ON_REQ_SEC : gpsdefs.h
  • MSK_STR_PER_MIN : gpsdefs.h
  • MSK_STR_PER_SEC : gpsdefs.h
  • MSK_WRN_10MHZ_MISSING : gpsdefs.h
  • MSK_WRN_10MHZ_UNLOCK : gpsdefs.h
  • MSK_WRN_1PPS_MISSING : gpsdefs.h
  • MSK_WRN_1PPS_UNLOCK : gpsdefs.h
  • MSK_WRN_ANT_DISCONN : gpsdefs.h
  • MSK_WRN_COLD_BOOT : gpsdefs.h
  • MSK_WRN_GPS_UNLOCK : gpsdefs.h
  • MSK_WRN_MODULE_MODE : gpsdefs.h
  • MSK_WRN_WARM_BOOT : gpsdefs.h
  • mue : mbggeo.h
  • MULTI_REF_10MHZ : gpsdefs.h
  • MULTI_REF_10MHZ_PPS : gpsdefs.h
  • MULTI_REF_FREQ : gpsdefs.h
  • MULTI_REF_GPS : gpsdefs.h
  • MULTI_REF_IRIG : gpsdefs.h
  • MULTI_REF_NONE : gpsdefs.h
  • MULTI_REF_NTP : gpsdefs.h
  • MULTI_REF_PPS : gpsdefs.h
  • MULTI_REF_PTP : gpsdefs.h
  • MULTI_REF_PTP_E1 : gpsdefs.h
  • MULTI_REF_STATUS : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- n -

  • N_BVAR_BIT : gpsdefs.h
  • N_COM : gpsdefs.h
  • N_COM_HS : gpsdefs.h
  • n_days() : mbgtime.h
  • N_ELLIPSOIDS : mbggeo.h
  • N_GPS_FEATURE : gpsdefs.h
  • N_GPS_MODEL : gpsdefs.h
  • N_GPS_OSC : gpsdefs.h
  • N_GPS_PLATFORMS : gpsdefs.h
  • N_ICODE_RX : gpsdefs.h
  • N_ICODE_TX : gpsdefs.h
  • N_IP4_BIT : gpsdefs.h
  • N_LAN_IF_TYPE : gpsdefs.h
  • N_LLA : gpsdefs.h
  • N_LOOPS : xhrtime.c
  • N_MBG_BAUD_RATES : gpsdefs.h
  • N_MBG_DEBUG_BIT : gpsdefs.h
  • N_MBG_FRAMINGS : gpsdefs.h
  • N_MBG_MATCH_MODE : mbgdevio.h
  • N_MBG_OPT_BIT : gpsdefs.h
  • N_MBG_PS_BIT : gpsdefs.h
  • N_MBG_TIME_SCALE : gpsdefs.h
  • N_MBG_USB_CLASS : usbdefs.h
  • N_MULTI_REF : gpsdefs.h
  • N_MULTI_REF_PRIO : gpsdefs.h
  • N_MULTI_REF_STATUS_BITS : gpsdefs.h
  • N_PC_GPS_CMD : pcpsdefs.h
  • N_PCI_ASIC_MAJOR : pci_asic.h
  • N_PCPS_BD : pcpsdefs.h
  • N_PCPS_DEV_TYPE : pcpsdev.h
  • N_PCPS_FR_DCF : pcpsdefs.h
  • N_PCPS_MOD_DCF : pcpsdefs.h
  • N_PCPS_PORT_RSRC : pcpsdev.h
  • N_PCPS_REF : pcpsdefs.h
  • N_PCPS_TZCODE : pcpsdefs.h
  • N_POUT_MODES : gpsdefs.h
  • N_POUT_TIMES : gpsdefs.h
  • N_PTP_CFG_BIT : gpsdefs.h
  • N_PTP_CLOCK_ACCURACY : gpsdefs.h
  • N_PTP_DELAY_MECH : gpsdefs.h
  • N_PTP_FLAG_BIT : gpsdefs.h
  • N_PTP_NW_PROT : gpsdefs.h
  • N_PTP_PORT_STATE : gpsdefs.h
  • N_PZF_CORR_STATE : pcpsdefs.h
  • n_sec_change : hrtime.c , mbgdevio_demo.c
  • N_STATUS : mbgdmpst.c
  • N_STR_MODE : gpsdefs.h
  • N_STR_MODE_0 : gpsdefs.h
  • N_STR_MODE_1 : gpsdefs.h
  • N_SVNO : gpsdefs.h
  • N_SYNTH_FREQ_DIGIT : gpsdefs.h
  • N_SYNTH_PHASE_DIGIT : gpsdefs.h
  • N_SYNTH_RANGE : gpsdefs.h
  • N_SYNTH_STATE : gpsdefs.h
  • N_XMRS_BITS : gpsdefs.h
  • N_XYZ : gpsdefs.h
  • nano_time_to_double() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- o -

  • OMEGADOTe : mbggeo.h
  • OSC_DAC_BIAS : gpsdefs.h
  • OSC_DAC_RANGE : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- z -

  • ZP : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- a -

  • ALL_PORT_INFO : pcpsdev.h
  • ALL_POUT_INFO : pcpsdev.h
  • ALL_STR_TYPE_INFO : pcpsdev.h
  • ALT : gpsdefs.h
  • ANSI_C_DEGREE : gpsutils.h
  • ANSI_S_DEGREE : gpsutils.h
  • ANT_CABLE_LEN : gpsdefs.h
  • ANT_DISCONN : gpsdefs.h
  • ANT_INVALID : gpsdefs.h
  • ANT_RECONN : gpsdefs.h
  • AUTO_166 : gpsdefs.h
  • AUTO_BC : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- b -

  • BAUD_RATE : gpsdefs.h
  • BESSEL : mbggeo.h
  • bit : words.h
  • BITMASK : pcpsdefs.h
  • BOOT : gpsdefs.h
  • BVAR_ALM_NOT_COMPLETE : gpsdefs.h
  • BVAR_BIT_ALM_NOT_COMPLETE : gpsdefs.h
  • BVAR_BIT_CFGH_INVALID : gpsdefs.h
  • BVAR_BIT_IONO_INVALID : gpsdefs.h
  • BVAR_BIT_RCVR_POS_INVALID : gpsdefs.h
  • BVAR_BIT_UTC_INVALID : gpsdefs.h
  • BVAR_CFGH_INVALID : gpsdefs.h
  • BVAR_IONO_INVALID : gpsdefs.h
  • BVAR_MASK : gpsdefs.h
  • BVAR_RCVR_POS_INVALID : gpsdefs.h
  • BVAR_STAT : gpsdefs.h
  • BVAR_UTC_INVALID : gpsdefs.h
  • byte : words.h
  • BYTE_OF : words.h
  • BYTE_OF_P : words.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- c -

  • C_DEGREE : gpsutils.h
  • CFG : gpsdefs.h
  • check_timeout() : mbgtime.h
  • check_user_captures() : mbgdevio_demo.c
  • clear_time() : mbgtime.h
  • COLD_166 : gpsdefs.h
  • COLD_BC : gpsdefs.h
  • CSUM : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- d -

  • d2r : mbggeo.h
  • DAC_VAL : gpsdefs.h
  • date_fmt : mbgtime.h
  • date_of_year() : mbgtime.h
  • datum : mbgtime.h
  • day_date_fmt : mbgtime.h
  • day_name_eng : mbgtime.h
  • day_name_ger : mbgtime.h
  • day_of_week() : mbgtime.h
  • day_of_year() : mbgtime.h
  • days_of_month : mbgtime.h
  • DAYS_PER_WEEK : mbgtime.h
  • days_to_years() : mbgtime.h
  • DEFAULT_ENG_MODE_NAMES : gpsdefs.h
  • DEFAULT_ENG_POUT_HINTS : gpsdefs.h
  • DEFAULT_ENG_POUT_NAMES : gpsdefs.h
  • DEFAULT_FPGA_START_INFO : gpsdefs.h
  • DEFAULT_FPGA_START_SEG : gpsdefs.h
  • DEFAULT_FREQ_RANGES : gpsdefs.h
  • DEFAULT_GPS_BAUD_RATES_C166 : gpsdefs.h
  • DEFAULT_GPS_BAUD_RATES_GP2021 : gpsdefs.h
  • DEFAULT_GPS_FEATURE_NAMES : gpsdefs.h
  • DEFAULT_GPS_FEATURES_C166 : gpsdefs.h
  • DEFAULT_GPS_FRAMINGS_C166 : gpsdefs.h
  • DEFAULT_GPS_FRAMINGS_GP2021 : gpsdefs.h
  • DEFAULT_GPS_MODEL_NAMES : gpsdefs.h
  • DEFAULT_GPS_OSC_NAMES : gpsdefs.h
  • DEFAULT_GPS_OSC_QUALITY_IDX : gpsdefs.h
  • DEFAULT_GPS_TICKS_PER_SEC : gpsdefs.h
  • DEFAULT_ICODE_RX_DESCRIPTIONS_ENG : gpsdefs.h
  • DEFAULT_ICODE_RX_NAMES : gpsdefs.h
  • DEFAULT_ICODE_TX_DESCRIPTIONS_ENG : gpsdefs.h
  • DEFAULT_ICODE_TX_NAMES : gpsdefs.h
  • DEFAULT_MULTI_REF_NAMES : gpsdefs.h
  • DEFAULT_N_COM : gpsdefs.h
  • DEFAULT_PTP_DELAY_MECH_MASK : gpsdefs.h
  • DEFAULT_PTP_NW_PROT_MASK : gpsdefs.h
  • DEFAULT_SHORT_MODE_NAMES : gpsdefs.h
  • DEFAULT_STR_MODES : gpsdefs.h
  • DEFAULT_STR_MODES_UCAP : gpsdefs.h
  • DEFAULT_TZDL_AUTO_YEAR : gpsdefs.h
  • DEFAULT_TZDL_CET_CEST_DE : gpsdefs.h
  • DEFAULT_TZDL_CET_CEST_EN : gpsdefs.h
  • DEFAULT_TZDL_EET_EEST_DE : gpsdefs.h
  • DEFAULT_TZDL_EET_EEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_CET_CEST_DE : gpsdefs.h
  • DEFAULT_TZDL_NAMES_CET_CEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_EET_EEST_DE : gpsdefs.h
  • DEFAULT_TZDL_NAMES_EET_EEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_UTC : gpsdefs.h
  • DEFAULT_TZDL_OFFS_CET : gpsdefs.h
  • DEFAULt_TZDL_OFFS_DL : gpsdefs.h
  • DEFAULT_TZDL_OFFS_EET : gpsdefs.h
  • DEFAULT_TZDL_TM_OFF_CET_CEST : gpsdefs.h
  • DEFAULT_TZDL_TM_OFF_EET_EEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_CET_CEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_EET_EEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_OFF_NO_DST : gpsdefs.h
  • DEFAULT_TZDL_UTC : gpsdefs.h
  • dhms : mbgtime.h
  • distance() : mbggeo.h
  • DL_AUTO_FLAG : gpsdefs.h , pcpsdefs.h
  • dms_to_lla() : mbggeo.h
  • dms_to_rad() : mbggeo.h
  • dms_to_xyz() : mbggeo.h
  • double_to_nano_time() : mbgtime.h
  • dump_status() : mbgdmpst.c
  • dump_status_item() : mbgdmpst.c
  • dword : words.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- e -

  • EF_FREQ_ALL : gpsdefs.h
  • EF_OFF : gpsdefs.h
  • EF_PULSES_BOTH : gpsdefs.h
  • EF_SERIAL_BOTH : gpsdefs.h
  • EF_SYNTH : gpsdefs.h
  • ellipsoid : mbggeo.h
  • ENG_MODE_NAME_STR_AUTO : gpsdefs.h
  • ENG_MODE_NAME_STR_ON_REQ : gpsdefs.h
  • ENG_MODE_NAME_STR_ON_REQ_SEC : gpsdefs.h
  • ENG_MODE_NAME_STR_PER_MIN : gpsdefs.h
  • ENG_MODE_NAME_STR_PER_SEC : gpsdefs.h
  • ENG_POUT_HINT_10MHZ : gpsdefs.h
  • ENG_POUT_HINT_ALL_SYNC : gpsdefs.h
  • ENG_POUT_HINT_CYCLIC_PULSE : gpsdefs.h
  • ENG_POUT_HINT_DCF77 : gpsdefs.h
  • ENG_POUT_HINT_IDLE : gpsdefs.h
  • ENG_POUT_HINT_PER_HOUR : gpsdefs.h
  • ENG_POUT_HINT_PER_MIN : gpsdefs.h
  • ENG_POUT_HINT_PER_SEC : gpsdefs.h
  • ENG_POUT_HINT_POS_OK : gpsdefs.h
  • ENG_POUT_HINT_SINGLE_SHOT : gpsdefs.h
  • ENG_POUT_HINT_TIME_SYNC : gpsdefs.h
  • ENG_POUT_HINT_TIMECODE : gpsdefs.h
  • ENG_POUT_HINT_TIMER : gpsdefs.h
  • ENG_POUT_HINT_TIMESTR : gpsdefs.h
  • ENG_POUT_NAME_10MHZ : gpsdefs.h
  • ENG_POUT_NAME_ALL_SYNC : gpsdefs.h
  • ENG_POUT_NAME_CYCLIC_PULSE : gpsdefs.h
  • ENG_POUT_NAME_DCF77 : gpsdefs.h
  • ENG_POUT_NAME_IDLE : gpsdefs.h
  • ENG_POUT_NAME_PER_HOUR : gpsdefs.h
  • ENG_POUT_NAME_PER_MIN : gpsdefs.h
  • ENG_POUT_NAME_PER_SEC : gpsdefs.h
  • ENG_POUT_NAME_POS_OK : gpsdefs.h
  • ENG_POUT_NAME_SINGLE_SHOT : gpsdefs.h
  • ENG_POUT_NAME_TIME_SYNC : gpsdefs.h
  • ENG_POUT_NAME_TIMECODE : gpsdefs.h
  • ENG_POUT_NAME_TIMER : gpsdefs.h
  • ENG_POUT_NAME_TIMESTR : gpsdefs.h
  • err_msg() : hrtime.c , mbgdevio_demo.c , xhrtime.c
  • err_tm() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- f -

  • F_DBITS : gpsdefs.h
  • F_PRTY : gpsdefs.h
  • F_STBITS : gpsdefs.h
  • FILETIME : mbgdevio.h
  • FPGA_INFO_SIZE : gpsdefs.h
  • FPGA_NAME_LEN : gpsdefs.h
  • FPGA_NAME_SIZE : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- g -

  • gps_c0 : mbggeo.h
  • GPS_CMD : gpsdefs.h
  • GPS_EPLD_STR_LEN : gpsdefs.h
  • GPS_EPLD_STR_SIZE : gpsdefs.h
  • GPS_FEAT_5_MHZ : gpsdefs.h
  • GPS_FEAT_DCFMARKS : gpsdefs.h
  • GPS_FEAT_IGNORE_LOCK : gpsdefs.h
  • GPS_FEAT_IRIG_CTRL_BITS : gpsdefs.h
  • GPS_FEAT_IRIG_RX : gpsdefs.h
  • GPS_FEAT_IRIG_TX : gpsdefs.h
  • GPS_FEAT_LAN_IP4 : gpsdefs.h
  • GPS_FEAT_MULTI_REF : gpsdefs.h
  • GPS_FEAT_NAV_ENGINE_SETTINGS : gpsdefs.h
  • GPS_FEAT_OPT_SETTINGS : gpsdefs.h
  • GPS_FEAT_PPM : gpsdefs.h
  • GPS_FEAT_PPS : gpsdefs.h
  • GPS_FEAT_PTP : gpsdefs.h
  • GPS_FEAT_RCV_TIMEOUT : gpsdefs.h
  • GPS_FEAT_SYNTH : gpsdefs.h
  • GPS_FEAT_TIME_SCALE : gpsdefs.h
  • GPS_FEAT_XMULTI_REF : gpsdefs.h
  • GPS_HAS_5_MHZ : gpsdefs.h
  • GPS_HAS_DCFMARKS : gpsdefs.h
  • GPS_HAS_FPGA : gpsdefs.h
  • GPS_HAS_IGNORE_LOCK : gpsdefs.h
  • GPS_HAS_IRIG_CTRL_BITS : gpsdefs.h
  • GPS_HAS_IRIG_RX : gpsdefs.h
  • GPS_HAS_IRIG_TX : gpsdefs.h
  • GPS_HAS_LAN_IP4 : gpsdefs.h
  • GPS_HAS_MULTI_REF : gpsdefs.h
  • GPS_HAS_NAV_ENGINE_SETTINGS : gpsdefs.h
  • GPS_HAS_OPT_SETTINGS : gpsdefs.h
  • GPS_HAS_PPM : gpsdefs.h
  • GPS_HAS_PPS : gpsdefs.h
  • GPS_HAS_PTP : gpsdefs.h
  • GPS_HAS_RCV_TIMEOUT : gpsdefs.h
  • GPS_HAS_REF_OFFS : gpsdefs.h
  • GPS_HAS_SYNTH : gpsdefs.h
  • GPS_HAS_TIME_SCALE : gpsdefs.h
  • GPS_HAS_XMULTI_REF : gpsdefs.h
  • GPS_ID_STR_LEN : gpsdefs.h
  • GPS_ID_STR_SIZE : gpsdefs.h
  • GPS_IRIG_FO_IN : gpsdefs.h
  • GPS_MODEL_AM511 : gpsdefs.h
  • GPS_MODEL_FRC511PEX : gpsdefs.h
  • GPS_MODEL_GEN170 : gpsdefs.h
  • GPS_MODEL_GPS161 : gpsdefs.h
  • GPS_MODEL_GPS162 : gpsdefs.h
  • GPS_MODEL_GPS163 : gpsdefs.h
  • GPS_MODEL_GPS164 : gpsdefs.h
  • GPS_MODEL_GPS166 : gpsdefs.h
  • GPS_MODEL_GPS167 : gpsdefs.h
  • GPS_MODEL_GPS167PC : gpsdefs.h
  • GPS_MODEL_GPS167PCI : gpsdefs.h
  • GPS_MODEL_GPS167SV : gpsdefs.h
  • GPS_MODEL_GPS168PCI : gpsdefs.h
  • GPS_MODEL_GPS169PCI : gpsdefs.h
  • GPS_MODEL_GPS170 : gpsdefs.h
  • GPS_MODEL_GPS170PCI : gpsdefs.h
  • GPS_MODEL_GPS170PEX : gpsdefs.h
  • GPS_MODEL_GRC170 : gpsdefs.h
  • GPS_MODEL_MGR170 : gpsdefs.h
  • GPS_MODEL_MSF511 : gpsdefs.h
  • GPS_MODEL_NAME_AM511 : gpsdefs.h
  • GPS_MODEL_NAME_FRC511PEX : gpsdefs.h
  • GPS_MODEL_NAME_GEN170 : gpsdefs.h
  • GPS_MODEL_NAME_GPS161 : gpsdefs.h
  • GPS_MODEL_NAME_GPS162 : gpsdefs.h
  • GPS_MODEL_NAME_GPS163 : gpsdefs.h
  • GPS_MODEL_NAME_GPS164 : gpsdefs.h
  • GPS_MODEL_NAME_GPS166 : gpsdefs.h
  • GPS_MODEL_NAME_GPS167 : gpsdefs.h
  • GPS_MODEL_NAME_GPS167PC : gpsdefs.h
  • GPS_MODEL_NAME_GPS167PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS167SV : gpsdefs.h
  • GPS_MODEL_NAME_GPS168PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS169PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS170 : gpsdefs.h
  • GPS_MODEL_NAME_GPS170PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS170PEX : gpsdefs.h
  • GPS_MODEL_NAME_GRC170 : gpsdefs.h
  • GPS_MODEL_NAME_MGR170 : gpsdefs.h
  • GPS_MODEL_NAME_MSF511 : gpsdefs.h
  • GPS_MODEL_NAME_PTP270PEX : gpsdefs.h
  • GPS_MODEL_NAME_PZF511 : gpsdefs.h
  • GPS_MODEL_NAME_TCR167PCI : gpsdefs.h
  • GPS_MODEL_NAME_TCR170PEX : gpsdefs.h
  • GPS_MODEL_NAME_TCR511 : gpsdefs.h
  • GPS_MODEL_NAME_UNKNOWN : gpsdefs.h
  • GPS_MODEL_NAME_WWVB511 : gpsdefs.h
  • GPS_MODEL_PTP270PEX : gpsdefs.h
  • GPS_MODEL_PZF511 : gpsdefs.h
  • GPS_MODEL_TCR167PCI : gpsdefs.h
  • GPS_MODEL_TCR170PEX : gpsdefs.h
  • GPS_MODEL_TCR511 : gpsdefs.h
  • GPS_MODEL_UNKNOWN : gpsdefs.h
  • GPS_MODEL_WWVB511 : gpsdefs.h
  • GPS_OSC_CFG_SUPP : gpsdefs.h
  • GPS_OSC_OCXO_DHQ : gpsdefs.h
  • GPS_OSC_OCXO_HQ : gpsdefs.h
  • GPS_OSC_OCXO_LQ : gpsdefs.h
  • GPS_OSC_OCXO_MQ : gpsdefs.h
  • GPS_OSC_OCXO_XHQ : gpsdefs.h
  • GPS_OSC_RUBIDIUM : gpsdefs.h
  • GPS_OSC_TCXO_HQ : gpsdefs.h
  • GPS_OSC_TCXO_LQ : gpsdefs.h
  • GPS_OSC_TCXO_MQ : gpsdefs.h
  • GPS_OSC_UNKNOWN : gpsdefs.h
  • gps_pi : mbggeo.h
  • GPS_PLATFORM_AIRBORNE_1G : gpsdefs.h
  • GPS_PLATFORM_AIRBORNE_2G : gpsdefs.h
  • GPS_PLATFORM_AIRBORNE_4G : gpsdefs.h
  • GPS_PLATFORM_AUTOMOTIVE : gpsdefs.h
  • GPS_PLATFORM_FIXED : gpsdefs.h
  • GPS_PLATFORM_PEDESTRIAN : gpsdefs.h
  • GPS_PLATFORM_PORTABLE : gpsdefs.h
  • GPS_PLATFORM_SEA : gpsdefs.h
  • GPS_PLATFORM_STATIONARY : gpsdefs.h
  • GPS_PLATFORM_STRS : gpsdefs.h
  • GPS_SEC_BIAS : mbgtime.h
  • GPS_TAI_OFFSET : gpsdefs.h
  • GPS_TICKS_PER_SEC : gpsdefs.h
  • gps_two_pi : mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- h -

  • HAS_MULTI_REF_10MHZ : gpsdefs.h
  • HAS_MULTI_REF_10MHZ_PPS : gpsdefs.h
  • HAS_MULTI_REF_FREQ : gpsdefs.h
  • HAS_MULTI_REF_GPS : gpsdefs.h
  • HAS_MULTI_REF_IRIG : gpsdefs.h
  • HAS_MULTI_REF_NTP : gpsdefs.h
  • HAS_MULTI_REF_PPS : gpsdefs.h
  • HAS_MULTI_REF_PTP : gpsdefs.h
  • HAS_MULTI_REF_PTP_E1 : gpsdefs.h
  • HEALTH : gpsdefs.h
  • HI_BYTE : words.h
  • HI_WORD : words.h
  • HOURS_PER_DAY : mbgtime.h
  • HS_NONE : gpsdefs.h
  • HS_RTSCTS : gpsdefs.h
  • HS_XONXOFF : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- i -

  • ICODE_RX_A002_A003 : gpsdefs.h
  • ICODE_RX_A132_A133 : gpsdefs.h
  • ICODE_RX_AFNOR : gpsdefs.h
  • ICODE_RX_AFNOR_DC : gpsdefs.h
  • ICODE_RX_B002_B003 : gpsdefs.h
  • ICODE_RX_B006_B007 : gpsdefs.h
  • ICODE_RX_B122_B123 : gpsdefs.h
  • ICODE_RX_B126_B127 : gpsdefs.h
  • ICODE_RX_IEEE1344 : gpsdefs.h
  • ICODE_RX_IEEE1344_DC : gpsdefs.h
  • ICODE_TX_A002_A132 : gpsdefs.h
  • ICODE_TX_A003_A133 : gpsdefs.h
  • ICODE_TX_AFNOR : gpsdefs.h
  • ICODE_TX_B002_B122 : gpsdefs.h
  • ICODE_TX_B003_B123 : gpsdefs.h
  • ICODE_TX_B006_B126 : gpsdefs.h
  • ICODE_TX_B007_B127 : gpsdefs.h
  • ICODE_TX_B220_1344 : gpsdefs.h
  • ICODE_TX_B222 : gpsdefs.h
  • ICODE_TX_B223 : gpsdefs.h
  • ICODE_TX_IEEE1344 : gpsdefs.h
  • IFLAGS_DISABLE_TFOM : gpsdefs.h
  • IFLAGS_MASK : gpsdefs.h
  • IFLAGS_TX_GEN_LOCAL_TIME : gpsdefs.h
  • IGNORE_LOCK : gpsdefs.h
  • IGNORE_LOCK_FOR_ALL_PORTS : gpsdefs.h
  • init_mbggeo() : mbggeo.h
  • init_tm : mbgtime.h
  • int16_t : words.h
  • int32_t : words.h
  • int64_t : words.h
  • int8_t : words.h
  • IOD : gpsdefs.h
  • IP4_ADDR : gpsdefs.h
  • IP4_BIT_DHCP : gpsdefs.h
  • IP4_BIT_LINK : gpsdefs.h
  • IP4_MSK_DHCP : gpsdefs.h
  • IP4_MSK_LINK : gpsdefs.h
  • is_leap_year() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- p -

  • PC_GPS_ALL_PORT_INFO : pcpsdefs.h
  • PC_GPS_ALL_POUT_INFO : pcpsdefs.h
  • PC_GPS_ALL_STR_TYPE_INFO : pcpsdefs.h
  • PC_GPS_ALM : pcpsdefs.h
  • PC_GPS_ANT_CABLE_LEN : pcpsdefs.h
  • PC_GPS_ANT_INFO : pcpsdefs.h
  • PC_GPS_ASCII_MSG : pcpsdefs.h
  • PC_GPS_BVAR_STAT : pcpsdefs.h
  • PC_GPS_CFGH : pcpsdefs.h
  • PC_GPS_CMD : pcpsdefs.h
  • PC_GPS_CMD_BOOT : pcpsdefs.h
  • PC_GPS_CMD_INIT_DAC : pcpsdefs.h
  • PC_GPS_CMD_INIT_SYS : pcpsdefs.h
  • PC_GPS_CMD_INIT_USER : pcpsdefs.h
  • PC_GPS_ENABLE_FLAGS : pcpsdefs.h
  • PC_GPS_EPH : pcpsdefs.h
  • PC_GPS_IDENT : pcpsdefs.h
  • PC_GPS_IONO : pcpsdefs.h
  • PC_GPS_IP4_SETTINGS : pcpsdefs.h
  • PC_GPS_IP4_STATE : pcpsdefs.h
  • PC_GPS_LAN_IF_INFO : pcpsdefs.h
  • PC_GPS_PORT_PARM : pcpsdefs.h
  • PC_GPS_PORT_SETTINGS_IDX : pcpsdefs.h
  • PC_GPS_POS : pcpsdefs.h
  • PC_GPS_POS_LLA : pcpsdefs.h
  • PC_GPS_POS_XYZ : pcpsdefs.h
  • PC_GPS_POUT_SETTINGS_IDX : pcpsdefs.h
  • PC_GPS_PTP_CFG : pcpsdefs.h
  • PC_GPS_PTP_STATE : pcpsdefs.h
  • PC_GPS_RECEIVER_INFO : pcpsdefs.h
  • PC_GPS_STAT_INFO : pcpsdefs.h
  • PC_GPS_SW_REV : pcpsdefs.h
  • PC_GPS_TIME : pcpsdefs.h
  • PC_GPS_TIME_SCALE : pcpsdefs.h
  • PC_GPS_TZDL : pcpsdefs.h
  • PC_GPS_UCAP : pcpsdefs.h
  • PC_GPS_UTC : pcpsdefs.h
  • PCI_ASIC_ADD_ON_IRQF : pci_asic.h
  • PCI_ASIC_ADDR_RANGE : pci_asic.h
  • PCI_ASIC_BADR0_INIT : pci_asic.h
  • PCI_ASIC_CFG_GPS169PCI : pci_asic.h
  • PCI_ASIC_CFG_GPS170PCI : pci_asic.h
  • PCI_ASIC_CFG_PCI510 : pci_asic.h
  • PCI_ASIC_CFG_PCI511 : pci_asic.h
  • PCI_ASIC_CFG_TCR167PCI : pci_asic.h
  • PCI_ASIC_CFG_TCR510PCI : pci_asic.h
  • PCI_ASIC_CFG_TCR511PCI : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_FEATURES : pci_asic.h
  • PCI_ASIC_FIX_EE_ACCESS_TCR170PEX : pci_asic.h
  • PCI_ASIC_FIX_HRT_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_FIX_HRT_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_HAS_MM_IO : pci_asic.h
  • PCI_ASIC_HAS_PGMB_IRQ : pci_asic.h
  • PCI_ASIC_HR_TIME_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_MAJOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_MAJOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_MAJOR_PCI_0 : pci_asic.h
  • PCI_ASIC_MAJOR_PCI_1 : pci_asic.h
  • PCI_ASIC_MAJOR_PEX511 : pci_asic.h
  • PCI_ASIC_MAJOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_MAJOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_MAJOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_PCI_IRQF : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_VERSION : pci_asic.h
  • PCI_DEV_FRC511PEX : pcpsdefs.h
  • PCI_DEV_GPS167PCI : pcpsdefs.h
  • PCI_DEV_GPS168PCI : pcpsdefs.h
  • PCI_DEV_GPS169PCI : pcpsdefs.h
  • PCI_DEV_GPS170PCI : pcpsdefs.h
  • PCI_DEV_GPS170PEX : pcpsdefs.h
  • PCI_DEV_PCI32 : pcpsdefs.h
  • PCI_DEV_PCI509 : pcpsdefs.h
  • PCI_DEV_PCI510 : pcpsdefs.h
  • PCI_DEV_PCI511 : pcpsdefs.h
  • PCI_DEV_PEX511 : pcpsdefs.h
  • PCI_DEV_PTP270PEX : pcpsdefs.h
  • PCI_DEV_TCR167PCI : pcpsdefs.h
  • PCI_DEV_TCR170PEX : pcpsdefs.h
  • PCI_DEV_TCR510PCI : pcpsdefs.h
  • PCI_DEV_TCR511PCI : pcpsdefs.h
  • PCI_DEV_TCR511PEX : pcpsdefs.h
  • PCI_VENDOR_MEINBERG : pcpsdefs.h
  • PCPS_ANT_FAIL : pcpsdefs.h
  • PCPS_BD_1200 : pcpsdefs.h
  • PCPS_BD_19200 : pcpsdefs.h
  • PCPS_BD_2400 : pcpsdefs.h
  • PCPS_BD_300 : pcpsdefs.h
  • PCPS_BD_4800 : pcpsdefs.h
  • PCPS_BD_600 : pcpsdefs.h
  • PCPS_BD_9600 : pcpsdefs.h
  • PCPS_BD_BITS : pcpsdefs.h
  • PCPS_BD_SHIFT : pcpsdefs.h
  • PCPS_BUFF : pcpsdefs.h
  • PCPS_BUS_FLAGS : pcpsdev.h
  • PCPS_BUS_ISA : pcpsdev.h
  • PCPS_BUS_MCA : pcpsdev.h
  • PCPS_BUS_NUM : pcpsdev.h
  • PCPS_BUS_PCI : pcpsdev.h
  • PCPS_BUS_PCI_ASIC : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_ASIC : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_PEX8311 : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_S5920 : pcpsdev.h
  • PCPS_BUS_PCI_PEX8311 : pcpsdev.h
  • PCPS_BUS_PCI_S5920 : pcpsdev.h
  • PCPS_BUS_PCI_S5933 : pcpsdev.h
  • PCPS_BUS_USB : pcpsdev.h
  • PCPS_CAN_CLR_UCAP_BUFF : pcpsdev.h
  • PCPS_CAN_SET_TIME : pcpsdev.h
  • PCPS_CFG2_GROUP : pcpsdefs.h
  • PCPS_CFG_GROUP : pcpsdefs.h
  • PCPS_CLOCK_NAME_SZ : pcpsdev.h
  • PCPS_CLR_UCAP_BUFF : pcpsdefs.h
  • PCPS_CMD_INFO : pcpsdefs.h
  • PCPS_CTRL_GROUP : pcpsdefs.h
  • PCPS_DEV_CLASS_CODE : pci_asic.h
  • PCPS_DEV_ID : pcpsdev.h
  • PCPS_DL_ANN : pcpsdefs.h
  • PCPS_DL_ENB : pcpsdefs.h
  • PCPS_EF_INV_EPROM_ID : pcpsdev.h
  • PCPS_EF_IO_CFG : pcpsdev.h
  • PCPS_EF_IO_ENB : pcpsdev.h
  • PCPS_EF_IO_INIT : pcpsdev.h
  • PCPS_EF_IO_RSRC : pcpsdev.h
  • PCPS_EF_TIMEOUT : pcpsdev.h
  • PCPS_ERR_CFG : pcpsdefs.h
  • PCPS_ERR_FLAGS : pcpsdev.h
  • PCPS_ERR_STIME : pcpsdefs.h
  • PCPS_FEAT_FRC511PEX : pcpsdev.h
  • PCPS_FEAT_GPS167PC : pcpsdev.h
  • PCPS_FEAT_GPS167PCI : pcpsdev.h
  • PCPS_FEAT_GPS168PCI : pcpsdev.h
  • PCPS_FEAT_GPS169PCI : pcpsdev.h
  • PCPS_FEAT_GPS170PCI : pcpsdev.h
  • PCPS_FEAT_GPS170PEX : pcpsdev.h
  • PCPS_FEAT_LVL2 : pcpsdev.h
  • PCPS_FEAT_MSF51USB : pcpsdev.h
  • PCPS_FEAT_PC31PS31 : pcpsdev.h
  • PCPS_FEAT_PC32 : pcpsdev.h
  • PCPS_FEAT_PCI32 : pcpsdev.h
  • PCPS_FEAT_PCI509 : pcpsdev.h
  • PCPS_FEAT_PCI510 : pcpsdev.h
  • PCPS_FEAT_PCI511 : pcpsdev.h
  • PCPS_FEAT_PEX511 : pcpsdev.h
  • PCPS_FEAT_PTP270PEX : pcpsdev.h
  • PCPS_FEAT_TCR167PCI : pcpsdev.h
  • PCPS_FEAT_TCR170PEX : pcpsdev.h
  • PCPS_FEAT_TCR510PCI : pcpsdev.h
  • PCPS_FEAT_TCR511PCI : pcpsdev.h
  • PCPS_FEAT_TCR511PEX : pcpsdev.h
  • PCPS_FEAT_TCR51USB : pcpsdev.h
  • PCPS_FEAT_USB5131 : pcpsdev.h
  • PCPS_FEAT_WWVB51USB : pcpsdev.h
  • PCPS_FEATURES : pcpsdev.h
  • PCPS_FIFO_SIZE : pcpsdefs.h
  • PCPS_FORCE_RESET : pcpsdefs.h
  • PCPS_FR_7E2 : pcpsdefs.h
  • PCPS_FR_8E1 : pcpsdefs.h
  • PCPS_FR_8N1 : pcpsdefs.h
  • PCPS_FR_8N2 : pcpsdefs.h
  • PCPS_FR_BITS : pcpsdefs.h
  • PCPS_FR_SHIFT : pcpsdefs.h
  • PCPS_FREER : pcpsdefs.h
  • PCPS_GENERIC_IO : pcpsdefs.h
  • PCPS_GET_DEBUG_STATUS : pcpsdefs.h
  • PCPS_GET_IRIG_CTRL_BITS : pcpsdefs.h
  • PCPS_GET_IRIG_RX_INFO : pcpsdefs.h
  • PCPS_GET_IRIG_TX_INFO : pcpsdefs.h
  • PCPS_GET_OPT_INFO : pcpsdefs.h
  • PCPS_GET_PCPS_TZDL : pcpsdefs.h
  • PCPS_GET_REF_OFFS : pcpsdefs.h
  • PCPS_GET_SERIAL : pcpsdefs.h
  • PCPS_GET_STATUS_PORT : pcpsdefs.h
  • PCPS_GET_SYNTH : pcpsdefs.h
  • PCPS_GET_SYNTH_STATE : pcpsdefs.h
  • PCPS_GET_TZCODE : pcpsdefs.h
  • PCPS_GIVE_DATA_GROUP : pcpsdefs.h
  • PCPS_GIVE_FW_ID_1 : pcpsdefs.h
  • PCPS_GIVE_FW_ID_2 : pcpsdefs.h
  • PCPS_GIVE_HR_TIME : pcpsdefs.h
  • PCPS_GIVE_IRIG_TIME : pcpsdefs.h
  • PCPS_GIVE_SERNUM : pcpsdefs.h
  • PCPS_GIVE_SYNC_TIME : pcpsdefs.h
  • PCPS_GIVE_TIME : pcpsdefs.h
  • PCPS_GIVE_TIME_GROUP : pcpsdefs.h
  • PCPS_GIVE_TIME_NOCLEAR : pcpsdefs.h
  • PCPS_GIVE_UCAP_ENTRIES : pcpsdefs.h
  • PCPS_GIVE_UCAP_EVENT : pcpsdefs.h
  • PCPS_GPS_DATA_GROUP : pcpsdefs.h
  • PCPS_HAS_CABLE_LEN : pcpsdev.h
  • PCPS_HAS_EVENT_TIME : pcpsdev.h
  • PCPS_HAS_GENERIC_IO : pcpsdev.h
  • PCPS_HAS_GPS_DATA_16 : pcpsdev.h
  • PCPS_HAS_HR_TIME : pcpsdev.h
  • PCPS_HAS_IDENT : pcpsdev.h
  • PCPS_HAS_IRIG_CTRL_BITS : pcpsdev.h
  • PCPS_HAS_IRIG_TIME : pcpsdev.h
  • PCPS_HAS_IRIG_TX : pcpsdev.h
  • PCPS_HAS_LAN_INTF : pcpsdev.h
  • PCPS_HAS_PCPS_TZDL : pcpsdev.h
  • PCPS_HAS_PTP : pcpsdev.h
  • PCPS_HAS_RECEIVER_INFO : pcpsdev.h
  • PCPS_HAS_SERIAL : pcpsdev.h
  • PCPS_HAS_SERNUM : pcpsdev.h
  • PCPS_HAS_SYNC_TIME : pcpsdev.h
  • PCPS_HAS_SYNTH : pcpsdev.h
  • PCPS_HAS_TIME_SCALE : pcpsdev.h
  • PCPS_HAS_TZCODE : pcpsdev.h
  • PCPS_HAS_TZDL : pcpsdev.h
  • PCPS_HAS_UCAP : pcpsdev.h
  • PCPS_HAS_UTC_OFFS : pcpsdev.h
  • PCPS_HAS_UTC_PARM : pcpsdev.h
  • PCPS_HRT_BIN_FRAC_SCALE : pcpsdefs.h
  • PCPS_HRT_FRAC_CONVERSION_TYPE : pcpsdefs.h
  • PCPS_HRT_FRAC_SCALE : pcpsdefs.h
  • PCPS_HRT_FRAC_SCALE_FMT : pcpsdefs.h
  • PCPS_ID_SIZE : pcpsdefs.h
  • PCPS_ID_STR : pcpsdefs.h
  • PCPS_IFTM : pcpsdefs.h
  • PCPS_INVT : pcpsdefs.h
  • PCPS_IO_BLOCKED : pcpsdefs.h
  • PCPS_IRIG_TIME : pcpsdefs.h
  • PCPS_IRQ_10_MIN : pcpsdefs.h
  • PCPS_IRQ_1_MIN : pcpsdefs.h
  • PCPS_IRQ_1_SEC : pcpsdefs.h
  • PCPS_IRQ_30_MIN : pcpsdefs.h
  • PCPS_IRQ_GROUP : pcpsdefs.h
  • PCPS_IRQ_NONE : pcpsdefs.h
  • PCPS_IRQ_STAT_ENABLE_CALLED : pcpsdev.h
  • PCPS_IRQ_STAT_ENABLED : pcpsdev.h
  • PCPS_IRQ_STAT_INFO : pcpsdev.h
  • PCPS_IRQ_STAT_UNSAFE : pcpsdev.h
  • PCPS_IRQ_STATE_DANGER : pcpsdev.h
  • PCPS_LS_ANN : pcpsdefs.h
  • PCPS_LS_ANN_NEG : pcpsdefs.h
  • PCPS_LS_ENB : pcpsdefs.h
  • PCPS_MOD_BITS : pcpsdefs.h
  • PCPS_MOD_MIN : pcpsdefs.h
  • PCPS_MOD_REQ : pcpsdefs.h
  • PCPS_MOD_RSVD : pcpsdefs.h
  • PCPS_MOD_SEC : pcpsdefs.h
  • PCPS_MOD_SHIFT : pcpsdefs.h
  • PCPS_PORT_ADDR : pcpsdev.h
  • PCPS_READ_GPS_DATA : pcpsdefs.h
  • PCPS_REF_DCF : pcpsdefs.h
  • PCPS_REF_FRC : pcpsdefs.h
  • PCPS_REF_GPS : pcpsdefs.h
  • PCPS_REF_IRIG : pcpsdefs.h
  • PCPS_REF_MSF : pcpsdefs.h
  • PCPS_REF_NAME_DCF : pcpsdefs.h
  • PCPS_REF_NAME_FRC : pcpsdefs.h
  • PCPS_REF_NAME_GPS : pcpsdefs.h
  • PCPS_REF_NAME_IRIG : pcpsdefs.h
  • PCPS_REF_NAME_MSF : pcpsdefs.h
  • PCPS_REF_NAME_NONE_ENG : pcpsdefs.h
  • PCPS_REF_NAME_NONE_GER : pcpsdefs.h
  • PCPS_REF_NAME_PTP : pcpsdefs.h
  • PCPS_REF_NAME_WWVB : pcpsdefs.h
  • PCPS_REF_NAMES_ENG : pcpsdefs.h
  • PCPS_REF_NAMES_LSTR : pcpsdefs.h
  • PCPS_REF_NONE : pcpsdefs.h
  • PCPS_REF_PTP : pcpsdefs.h
  • PCPS_REF_TYPE : pcpsdev.h
  • PCPS_REF_WWVB : pcpsdefs.h
  • PCPS_SCALE_GPS : pcpsdefs.h
  • PCPS_SCALE_MASK : pcpsdefs.h
  • PCPS_SCALE_TAI : pcpsdefs.h
  • PCPS_SERIAL : pcpsdefs.h
  • PCPS_SET_EVENT_TIME : pcpsdefs.h
  • PCPS_SET_IRIG_RX_SETTINGS : pcpsdefs.h
  • PCPS_SET_IRIG_TX_SETTINGS : pcpsdefs.h
  • PCPS_SET_OPT_SETTINGS : pcpsdefs.h
  • PCPS_SET_PCPS_TZDL : pcpsdefs.h
  • PCPS_SET_REF_OFFS : pcpsdefs.h
  • PCPS_SET_SERIAL : pcpsdefs.h
  • PCPS_SET_SYNTH : pcpsdefs.h
  • PCPS_SET_TIME : pcpsdefs.h
  • PCPS_SET_TIME_GROUP : pcpsdefs.h
  • PCPS_SET_TZCODE : pcpsdefs.h
  • PCPS_SLOT_NUM : pcpsdev.h
  • PCPS_SN_SIZE : pcpsdefs.h
  • PCPS_SN_STR : pcpsdefs.h
  • PCPS_ST_BUSY : pcpsdev.h
  • PCPS_ST_IRQF : pcpsdev.h
  • PCPS_ST_MIN : pcpsdev.h
  • PCPS_ST_MOD : pcpsdev.h
  • PCPS_ST_SEC : pcpsdev.h
  • PCPS_STATUS_PORT : pcpsdev.h
  • PCPS_STIME : pcpsdefs.h
  • PCPS_SUCCESS : pcpsdefs.h
  • PCPS_SYNCD : pcpsdefs.h
  • PCPS_TIME : pcpsdefs.h
  • PCPS_TIME_STATUS : pcpsdefs.h
  • PCPS_TIME_STATUS_X : pcpsdefs.h
  • PCPS_TYPE_FRC511PEX : pcpsdev.h
  • PCPS_TYPE_GPS167PC : pcpsdev.h
  • PCPS_TYPE_GPS167PCI : pcpsdev.h
  • PCPS_TYPE_GPS168PCI : pcpsdev.h
  • PCPS_TYPE_GPS169PCI : pcpsdev.h
  • PCPS_TYPE_GPS170PCI : pcpsdev.h
  • PCPS_TYPE_GPS170PEX : pcpsdev.h
  • PCPS_TYPE_MSF51USB : pcpsdev.h
  • PCPS_TYPE_PC31 : pcpsdev.h
  • PCPS_TYPE_PC32 : pcpsdev.h
  • PCPS_TYPE_PCI32 : pcpsdev.h
  • PCPS_TYPE_PCI509 : pcpsdev.h
  • PCPS_TYPE_PCI510 : pcpsdev.h
  • PCPS_TYPE_PCI511 : pcpsdev.h
  • PCPS_TYPE_PEX511 : pcpsdev.h
  • PCPS_TYPE_PS31 : pcpsdev.h
  • PCPS_TYPE_PS31_OLD : pcpsdev.h
  • PCPS_TYPE_PTP270PEX : pcpsdev.h
  • PCPS_TYPE_TCR167PCI : pcpsdev.h
  • PCPS_TYPE_TCR170PEX : pcpsdev.h
  • PCPS_TYPE_TCR510PCI : pcpsdev.h
  • PCPS_TYPE_TCR511PCI : pcpsdev.h
  • PCPS_TYPE_TCR511PEX : pcpsdev.h
  • PCPS_TYPE_TCR51USB : pcpsdev.h
  • PCPS_TYPE_USB5131 : pcpsdev.h
  • PCPS_TYPE_WWVB51USB : pcpsdev.h
  • PCPS_TYPES : pcpsdev.h
  • PCPS_TZCODE : pcpsdefs.h
  • PCPS_TZCODE_CET : pcpsdefs.h
  • PCPS_TZCODE_CET_CEST : pcpsdefs.h
  • PCPS_TZCODE_EET_EEST : pcpsdefs.h
  • PCPS_TZCODE_MEZ : pcpsdefs.h
  • PCPS_TZCODE_MEZMESZ : pcpsdefs.h
  • PCPS_TZCODE_OEZ : pcpsdefs.h
  • PCPS_TZCODE_UTC : pcpsdefs.h
  • PCPS_UCAP_BUFFER_FULL : pcpsdefs.h
  • PCPS_UCAP_OVERRUN : pcpsdefs.h
  • PCPS_UTC : pcpsdefs.h
  • PCPS_WRITE_GPS_DATA : pcpsdefs.h
  • pi : mbggeo.h
  • PI : mbggeo.h
  • POUT_10MHZ : gpsdefs.h
  • POUT_ALL_SYNC : gpsdefs.h
  • POUT_CYCLIC_PULSE : gpsdefs.h
  • POUT_DCF77 : gpsdefs.h
  • POUT_IDLE : gpsdefs.h
  • POUT_INVERTED : gpsdefs.h
  • POUT_PER_HOUR : gpsdefs.h
  • POUT_PER_MIN : gpsdefs.h
  • POUT_PER_SEC : gpsdefs.h
  • POUT_POS_OK : gpsdefs.h
  • POUT_SINGLE_SHOT : gpsdefs.h
  • POUT_TIME_SYNC : gpsdefs.h
  • POUT_TIMECODE : gpsdefs.h
  • POUT_TIMER : gpsdefs.h
  • POUT_TIMESTR : gpsdefs.h
  • print_date_time() : mbgdevio_demo.c
  • print_date_time_status() : mbgdevio_demo.c
  • print_dev_info() : xhrtime.c , mbgdevio_demo.c , hrtime.c
  • print_drvr_info() : hrtime.c , xhrtime.c , mbgdevio_demo.c
  • print_hr_time() : mbgdevio_demo.c
  • print_ptp_status() : mbgdevio_demo.c
  • print_receiver_position() : mbgdevio_demo.c
  • print_sec_changes() : mbgdevio_demo.c
  • print_sv_info() : mbgdevio_demo.c
  • print_utc_parameters() : mbgdevio_demo.c
  • prog_info : mbgdmpst.c
  • prog_version : mbgdmpst.c
  • PTP_CFG_BIT_TIME_SCALE_IS_PTP : gpsdefs.h
  • PTP_CFG_BIT_V1_HW_COMPAT : gpsdefs.h
  • PTP_CFG_MSK_TIME_SCALE_IS_PTP : gpsdefs.h
  • PTP_CFG_MSK_V1_HW_COMPAT : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_2_5ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_2_5us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_MORE_10s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_1 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_2 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_3 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_4 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_OFFSET : gpsdefs.h
  • PTP_CLOCK_ACCURACY_STRS : gpsdefs.h
  • PTP_DELAY_MECH_BIT_E2E : gpsdefs.h
  • PTP_DELAY_MECH_BIT_P2P : gpsdefs.h
  • PTP_DELAY_MECH_MSK_E2E : gpsdefs.h
  • PTP_DELAY_MECH_MSK_P2P : gpsdefs.h
  • PTP_DELAY_MECH_NAMES : gpsdefs.h
  • PTP_DELAY_REQ_INTERVAL_MAX : gpsdefs.h
  • PTP_DELAY_REQ_INTERVAL_MIN : gpsdefs.h
  • PTP_FLAG_BIT_IS_SLAVE : gpsdefs.h
  • PTP_FLAG_BIT_LS_ANN : gpsdefs.h
  • PTP_FLAG_BIT_LS_ANN_NEG : gpsdefs.h
  • PTP_FLAG_BIT_SLAVE_ONLY : gpsdefs.h
  • PTP_FLAG_BIT_TIMESCALE_IS_PTP : gpsdefs.h
  • PTP_FLAG_MSK_IS_SLAVE : gpsdefs.h
  • PTP_FLAG_MSK_LS_ANN : gpsdefs.h
  • PTP_FLAG_MSK_LS_ANN_NEG : gpsdefs.h
  • PTP_FLAG_MSK_SLAVE_ONLY : gpsdefs.h
  • PTP_FLAG_MSK_TIMESCALE_IS_PTP : gpsdefs.h
  • PTP_NW_PROT_BIT_CONTROL_NET : gpsdefs.h
  • PTP_NW_PROT_BIT_DEVICE_NET : gpsdefs.h
  • PTP_NW_PROT_BIT_IEEE_802_3 : gpsdefs.h
  • PTP_NW_PROT_BIT_PROFINET : gpsdefs.h
  • PTP_NW_PROT_BIT_RESERVED : gpsdefs.h
  • PTP_NW_PROT_BIT_UDP_IPV4 : gpsdefs.h
  • PTP_NW_PROT_BIT_UDP_IPV6 : gpsdefs.h
  • PTP_NW_PROT_MSK_CONTROL_NET : gpsdefs.h
  • PTP_NW_PROT_MSK_DEVICE_NET : gpsdefs.h
  • PTP_NW_PROT_MSK_IEEE_802_3 : gpsdefs.h
  • PTP_NW_PROT_MSK_PROFINET : gpsdefs.h
  • PTP_NW_PROT_MSK_RESERVED : gpsdefs.h
  • PTP_NW_PROT_MSK_UDP_IPV4 : gpsdefs.h
  • PTP_NW_PROT_MSK_UDP_IPV6 : gpsdefs.h
  • PTP_NW_PROT_STRS : gpsdefs.h
  • PTP_PORT_STATE_DISABLED : gpsdefs.h
  • PTP_PORT_STATE_FAULTY : gpsdefs.h
  • PTP_PORT_STATE_INITIALIZING : gpsdefs.h
  • PTP_PORT_STATE_LISTENING : gpsdefs.h
  • PTP_PORT_STATE_MASTER : gpsdefs.h
  • PTP_PORT_STATE_PASSIVE : gpsdefs.h
  • PTP_PORT_STATE_PRE_MASTER : gpsdefs.h
  • PTP_PORT_STATE_SLAVE : gpsdefs.h
  • PTP_PORT_STATE_STRS : gpsdefs.h
  • PTP_PORT_STATE_UNCALIBRATED : gpsdefs.h
  • PTP_PORT_STATE_UNINITIALIZED : gpsdefs.h
  • PTP_SYNC_INTERVAL_MAX : gpsdefs.h
  • PTP_SYNC_INTERVAL_MIN : gpsdefs.h
  • PTP_TIME_SOURCE_ATOMIC_CLOCK : gpsdefs.h
  • PTP_TIME_SOURCE_GPS : gpsdefs.h
  • PTP_TIME_SOURCE_HAND_SET : gpsdefs.h
  • PTP_TIME_SOURCE_INTERNAL_OSCILLATOR : gpsdefs.h
  • PTP_TIME_SOURCE_NTP : gpsdefs.h
  • PTP_TIME_SOURCE_OTHER : gpsdefs.h
  • PTP_TIME_SOURCE_PTP : gpsdefs.h
  • PTP_TIME_SOURCE_TABLE : gpsdefs.h
  • PTP_TIME_SOURCE_TERRESTRIAL_RADIO : gpsdefs.h
  • PZF_CORR_CHECK : pcpsdefs.h
  • PZF_CORR_FINE : pcpsdefs.h
  • PZF_CORR_RAW : pcpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- r -

  • r2d : mbggeo.h
  • rad_to_dms() : mbggeo.h
  • RCV_TIMEOUT : gpsdefs.h
  • REMOTE : gpsdefs.h
  • REV_CAN_CLR_UCAP_BUFF_GPS167PCI : pcpsdev.h
  • REV_CAN_CLR_UCAP_BUFF_GPS168PCI : pcpsdev.h
  • REV_CAN_SET_TIME_PC31PS31 : pcpsdev.h
  • REV_GIVE_TIME_NOCLEAR_PC31PS31 : pcpsdev.h
  • REV_HAS_CABLE_LEN_GPS167PC : pcpsdev.h
  • REV_HAS_CABLE_LEN_GPS167PCI : pcpsdev.h
  • REV_HAS_GPS_DATA_16_GPS169PCI : pcpsdev.h
  • REV_HAS_HR_TIME_GPS167PC : pcpsdev.h
  • REV_HAS_HR_TIME_PCI511 : pcpsdev.h
  • REV_HAS_HR_TIME_PEX511 : pcpsdev.h
  • REV_HAS_HR_TIME_TCR510PCI : pcpsdev.h
  • REV_HAS_IRIG_CTRL_BITS_TCR511PCI : pcpsdev.h
  • REV_HAS_IRIG_CTRL_BITS_TCR511PEX : pcpsdev.h
  • REV_HAS_IRIG_TIME_TCR511PCI : pcpsdev.h
  • REV_HAS_IRIG_TIME_TCR511PEX : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_GPS170PEX : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_PEX511 : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_TCR511PEX : pcpsdev.h
  • REV_HAS_SERIAL_HS_PCI509 : pcpsdev.h
  • REV_HAS_SERIAL_PC31PS31 : pcpsdev.h
  • REV_HAS_SYNC_TIME_PC31PS31 : pcpsdev.h
  • REV_HAS_UCAP_GPS167PCI : pcpsdev.h
  • REV_HAS_UCAP_GPS168PCI : pcpsdev.h
  • REV_HAS_UTC_OFFS_PC31PS31 : pcpsdev.h
  • REV_PCPS_IFTM_PC31PS31 : pcpsdev.h
  • REV_PCPS_LS_ANN_PC31PS31 : pcpsdev.h
  • ROM_CSUM : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- s -

  • S_DEGREE : gpsutils.h
  • SCU_CLK_INFO_DCF_AM : gpsdefs.h
  • SCU_CLK_INFO_DCF_PZF : gpsdefs.h
  • SCU_CLK_INFO_GPS : gpsdefs.h
  • SCU_CLK_INFO_TCR : gpsdefs.h
  • SEC100S_PER_DAY : mbgtime.h
  • SEC100S_PER_HOUR : mbgtime.h
  • SEC100S_PER_MIN : mbgtime.h
  • SEC100S_PER_SEC : mbgtime.h
  • SECS_PER_DAY : mbgtime.h
  • SECS_PER_HOUR : mbgtime.h
  • SECS_PER_MIN : mbgtime.h
  • SECS_PER_WEEK : mbgtime.h
  • SECTION_INFO : mbgdmpst.c
  • SECTION_OUTPUT : mbgdmpst.c
  • set_timeout() : mbgtime.h
  • setup_user_pos_from_dms() : mbggeo.h
  • setup_user_pos_from_lla() : mbggeo.h
  • setup_user_pos_from_xyz() : mbggeo.h
  • short_time_fmt : mbgtime.h
  • show_irig_ctrl_bits() : mbgdevio_demo.c
  • show_irig_debug_status() : mbgdevio_demo.c
  • show_lan_intf_state() : mbgdevio_demo.c
  • sizeof_PCPS_STIME : pcpsdefs.h
  • sizeof_PCPS_TIME : pcpsdefs.h
  • snprint_ip4_addr() : mbgdevio_demo.c
  • sprint_alt() : gpsutils.h
  • sprint_date() : mbgtime.h
  • sprint_day_date() : mbgtime.h
  • sprint_dms() : gpsutils.h
  • sprint_fixed_freq() : gpsutils.h
  • sprint_hr_time() : mbgdevio_demo.c
  • sprint_pos_geo() : gpsutils.h
  • sprint_short_time() : mbgtime.h
  • sprint_time() : mbgtime.h
  • sprint_tm() : mbgtime.h
  • sqrt_mue : mbggeo.h
  • sscan_date() : mbgtime.h
  • sscan_time() : mbgtime.h
  • STR_AUTO : gpsdefs.h
  • STR_ON_REQ : gpsdefs.h
  • STR_ON_REQ_SEC : gpsdefs.h
  • STR_PER_MIN : gpsdefs.h
  • STR_PER_SEC : gpsdefs.h
  • STR_UCAP : gpsdefs.h
  • STR_UCAP_REQ : gpsdefs.h
  • stretch_timeout() : mbgtime.h
  • SUPP_MSK_ICODE_RX : gpsdefs.h
  • SUPP_MSK_ICODE_TX : gpsdefs.h
  • SVNO : gpsdefs.h
  • swap_alm_doubles() : gpsutils.h
  • swap_double() : gpsutils.h
  • swap_eph_doubles() : gpsutils.h
  • swap_iono_doubles() : gpsutils.h
  • swap_pos_doubles() : gpsutils.h
  • swap_utc_doubles() : gpsutils.h
  • SYNTH_DISABLED : gpsdefs.h
  • SYNTH_DRIFTING : gpsdefs.h
  • SYNTH_FLAG_PHASE_IGNORED : gpsdefs.h
  • SYNTH_FREE : gpsdefs.h
  • SYNTH_OFF : gpsdefs.h
  • SYNTH_PHASE_SYNC_LIMIT : gpsdefs.h
  • SYNTH_SYNC : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- t -

  • time_fmt : mbgtime.h
  • TIME_MODE_DISABLED : gpsdefs.h
  • TIME_MODE_FIXED : gpsdefs.h
  • TIME_MODE_SURVEY_IN : gpsdefs.h
  • time_scale_str : mbgdevio_demo.c
  • TM_ANT_DISCONN : gpsdefs.h
  • TM_ANT_SHORT : gpsdefs.h
  • TM_BIT_ANT_DISCONN : gpsdefs.h
  • TM_BIT_ANT_SHORT : gpsdefs.h
  • TM_BIT_DL_ANN : gpsdefs.h
  • TM_BIT_DL_ENB : gpsdefs.h
  • TM_BIT_EXT_SYNC : gpsdefs.h
  • TM_BIT_HOLDOVER : gpsdefs.h
  • TM_BIT_LOCAL : gpsdefs.h
  • TM_BIT_LS_ANN : gpsdefs.h
  • TM_BIT_LS_ANN_NEG : gpsdefs.h
  • TM_BIT_LS_ENB : gpsdefs.h
  • TM_BIT_NO_POS : gpsdefs.h
  • TM_BIT_NO_SYNC : gpsdefs.h
  • TM_BIT_NO_WARM : gpsdefs.h
  • TM_BIT_SCALE_GPS : gpsdefs.h
  • TM_BIT_SCALE_TAI : gpsdefs.h
  • TM_BIT_SYN_FLAG : gpsdefs.h
  • TM_BIT_UTC : gpsdefs.h
  • TM_DL_ANN : gpsdefs.h
  • TM_DL_ENB : gpsdefs.h
  • TM_EXT_SYNC : gpsdefs.h
  • TM_HOLDOVER : gpsdefs.h
  • TM_LOCAL : gpsdefs.h
  • TM_LS_ANN : gpsdefs.h
  • TM_LS_ANN_NEG : gpsdefs.h
  • TM_LS_ENB : gpsdefs.h
  • TM_MSK_TIME_VALID : gpsdefs.h
  • TM_NO_POS : gpsdefs.h
  • TM_NO_SYNC : gpsdefs.h
  • TM_NO_WARM : gpsdefs.h
  • TM_SCALE_GPS : gpsdefs.h
  • TM_SCALE_TAI : gpsdefs.h
  • TM_STATUS_EXT : gpsdefs.h
  • TM_SYN_FLAG : gpsdefs.h
  • tm_to_wsec() : mbgtime.h
  • TM_UTC : gpsdefs.h
  • TR_DISTANCE : pcpsdefs.h
  • TRACK : gpsdefs.h
  • TZ_INFO_CET_CEST_DE : gpsdefs.h
  • TZ_INFO_CET_CEST_EN : gpsdefs.h
  • TZ_INFO_EET_EEST_DE : gpsdefs.h
  • TZ_INFO_EET_EEST_EN : gpsdefs.h
  • TZ_INFO_UTC : gpsdefs.h
  • TZ_NAME : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- u -

  • uchar : words.h
  • udouble : words.h
  • uint : words.h
  • uint16_t : words.h
  • uint32_t : words.h
  • uint64_t : words.h
  • uint8_t : words.h
  • ulong : words.h
  • UPDA_166 : gpsdefs.h
  • UPDA_BC : gpsdefs.h
  • USB_DEV_CMC : usbdefs.h
  • USB_DEV_CPC_01 : usbdefs.h
  • USB_DEV_MSF51USB : usbdefs.h
  • USB_DEV_SCU_USB : usbdefs.h
  • USB_DEV_TCR51USB : usbdefs.h
  • USB_DEV_TSU_01 : usbdefs.h
  • USB_DEV_USB5131 : usbdefs.h
  • USB_DEV_WWVB51USB : usbdefs.h
  • USB_VENDOR_MEINBERG : usbdefs.h
  • USE_PCPS_HR_TIME : xhrtime.c
  • ushort : words.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- v -

  • vr_to_doppler : mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- w -

  • WARM_166 : gpsdefs.h
  • WARM_BC : gpsdefs.h
  • wchar_t : mbg_tgt.h
  • WGS84 : mbggeo.h
  • word : words.h
  • WORD_OF : words.h
  • WORD_OF_P : words.h
  • WRN_10MHZ_MISSING : gpsdefs.h
  • WRN_10MHZ_UNLOCK : gpsdefs.h
  • WRN_1PPS_MISSING : gpsdefs.h
  • WRN_1PPS_UNLOCK : gpsdefs.h
  • WRN_ANT_DISCONN : gpsdefs.h
  • WRN_COLD_BOOT : gpsdefs.h
  • WRN_GPS_UNLOCK : gpsdefs.h
  • WRN_MODULE_MODE : gpsdefs.h
  • WRN_WARM_BOOT : gpsdefs.h
  • wsec_to_tm() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- x -

  • XMRS_BIT_IS_ACCURATE : gpsdefs.h
  • XMRS_BIT_IS_LOCKED : gpsdefs.h
  • XMRS_BIT_IS_MASTER : gpsdefs.h
  • XMRS_BIT_NO_CONN : gpsdefs.h
  • XMRS_BIT_NO_SIGNAL : gpsdefs.h
  • XMRS_BIT_NOT_SETTLED : gpsdefs.h
  • XMRS_BIT_NOT_SUPP : gpsdefs.h
  • XMRS_MSK_IS_ACCURATE : gpsdefs.h
  • XMRS_MSK_IS_LOCKED : gpsdefs.h
  • XMRS_MSK_IS_MASTER : gpsdefs.h
  • XMRS_MSK_NO_CONN : gpsdefs.h
  • XMRS_MSK_NO_SIGNAL : gpsdefs.h
  • XMRS_MSK_NOT_SETTLED : gpsdefs.h
  • XMRS_MSK_NOT_SUPP : gpsdefs.h
  • XMULTI_REF_STATUS_INVALID : gpsdefs.h
  • XP : gpsdefs.h
  • XYZ : gpsdefs.h
  • xyz_to_lla() : mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- y -

  • YP : gpsdefs.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- _ -

  • __cpu_to_le16 : mbg_arch.h
  • __cpu_to_le32 : mbg_arch.h
  • __cpu_to_le64 : mbg_arch.h
  • __le16_to_cpu : mbg_arch.h
  • __le32_to_cpu : mbg_arch.h
  • __le64_to_cpu : mbg_arch.h
  • __mbg_inline : mbg_tgt.h
  • _bswap16 : words.h
  • _bswap32 : words.h
  • _const : mbgtime.h
  • _convert_asic_version_number : pci_asic.h
  • _cpu_to_mbg16 : mbg_arch.h
  • _cpu_to_mbg32 : mbg_arch.h
  • _cpu_to_mbg64 : mbg_arch.h
  • _cpu_to_mbg8 : mbg_arch.h
  • _ext : mbgtime.h , mbgutil.h , pci_asic.h , words.h , gpsutils.h , mbg_tgt.h , mbgdevio.h , mbgerror.h , mbggeo.h , mbgsvcio.h
  • _hilo_16 : words.h
  • _hilo_32 : words.h
  • _ignore_lock_for_all_ports : gpsdefs.h
  • _ignore_lock_for_port : gpsdefs.h
  • _is_ignore_lock_all_ports : gpsdefs.h
  • _is_ignore_lock_for_port : gpsdefs.h
  • _IS_MBG_FIRMWARE : words.h
  • _mbg16_to_cpu : mbg_arch.h
  • _mbg32_to_cpu : mbg_arch.h
  • _mbg64_to_cpu : mbg_arch.h
  • _mbg8_to_cpu : mbg_arch.h
  • _MBG_API : mbg_tgt.h
  • _MBG_API_ATTR : mbg_tgt.h
  • _mbg_cpu_clear : mbgdevio.h
  • _mbg_cpu_isset : mbgdevio.h
  • _mbg_cpu_set : mbgdevio.h
  • _mbg_err_to_os : mbgerror.h
  • _mbg_generic_read_gps_var : mbgdevio.h
  • _mbg_generic_read_var : mbgdevio.h
  • _mbg_generic_write_gps_var : mbgdevio.h
  • _mbg_generic_write_var : mbgdevio.h
  • _mbg_get_current_process : mbgdevio.h
  • _mbg_get_current_thread : mbgdevio.h
  • _mbg_mutex_deinit : mbgdevio.h
  • _mbg_mutex_init : mbgdevio.h
  • _mbg_mutex_lock : mbgdevio.h
  • _mbg_mutex_unlock : mbgdevio.h
  • _mbg_rcvr_is_any_dcf77 : gpsdefs.h
  • _mbg_rcvr_is_any_dcf77_plug_in : gpsdefs.h
  • _mbg_rcvr_is_dcf77_am : gpsdefs.h
  • _mbg_rcvr_is_dcf77_am_plug_in : gpsdefs.h
  • _mbg_rcvr_is_dcf77_pzf : gpsdefs.h
  • _mbg_rcvr_is_dcf77_pzf_plug_in : gpsdefs.h
  • _mbg_rcvr_is_glonass : gpsdefs.h
  • _mbg_rcvr_is_glonass_plug_in : gpsdefs.h
  • _mbg_rcvr_is_gps : gpsdefs.h
  • _mbg_rcvr_is_gps_plug_in : gpsdefs.h
  • _mbg_rcvr_is_irig : gpsdefs.h
  • _mbg_rcvr_is_irig_plug_in : gpsdefs.h
  • _mbg_rcvr_is_mobile_gps : gpsdefs.h
  • _mbg_rcvr_is_msf : gpsdefs.h
  • _mbg_rcvr_is_msf_plug_in : gpsdefs.h
  • _mbg_rcvr_is_plug_in : gpsdefs.h
  • _mbg_rcvr_is_wwvb : gpsdefs.h
  • _mbg_rcvr_is_wwvb_plug_in : gpsdefs.h
  • _mbg_strncpy : mbgutil.h
  • _mbg_swab16 : mbg_arch.h
  • _mbg_swab32 : mbg_arch.h
  • _mbg_swab_ant_cable_len : gpsdefs.h
  • _mbg_swab_ant_info : gpsdefs.h
  • _mbg_swab_asic_features : pci_asic.h
  • _mbg_swab_asic_version : pci_asic.h
  • _mbg_swab_baud_rate : gpsdefs.h
  • _mbg_swab_bvar_stat : gpsdefs.h
  • _mbg_swab_com_parm : gpsdefs.h
  • _mbg_swab_csum : gpsdefs.h
  • _mbg_swab_dac_val : gpsdefs.h
  • _mbg_swab_dms : mbggeo.h
  • _mbg_swab_double : mbg_arch.h
  • _mbg_swab_doubles : mbg_arch.h
  • _mbg_swab_enable_flags : gpsdefs.h
  • _mbg_swab_fixed_freq_info : gpsdefs.h
  • _mbg_swab_gps_cmd : gpsdefs.h
  • _mbg_swab_ident : gpsdefs.h
  • _mbg_swab_ip4_addr : gpsdefs.h
  • _mbg_swab_ip4_settings : gpsdefs.h
  • _mbg_swab_irig_ctrl_bits : pcpsdefs.h
  • _mbg_swab_irig_info : gpsdefs.h
  • _mbg_swab_irig_settings : gpsdefs.h
  • _mbg_swab_lan_if_info : gpsdefs.h
  • _mbg_swab_lla : gpsdefs.h
  • _mbg_swab_mbg_date : gpsdefs.h
  • _mbg_swab_mbg_date_time : gpsdefs.h
  • _mbg_swab_mbg_opt_info : gpsdefs.h
  • _mbg_swab_mbg_opt_settings : gpsdefs.h
  • _mbg_swab_mbg_pc_cycles : pcpsdev.h
  • _mbg_swab_mbg_pc_cycles_frequency : pcpsdev.h
  • _mbg_swab_mbg_ref_offs : gpsdefs.h
  • _mbg_swab_mbg_time : gpsdefs.h
  • _mbg_swab_mbg_time_scale_info : gpsdefs.h
  • _mbg_swab_mbg_time_scale_settings : gpsdefs.h
  • _mbg_swab_nano_time : gpsdefs.h
  • _mbg_swab_pcps_dl_onoff : pcpsdefs.h
  • _mbg_swab_pcps_hr_time : pcpsdefs.h
  • _mbg_swab_pcps_hr_time_cycles : pcpsdev.h
  • _mbg_swab_pcps_irig_time : pcpsdefs.h
  • _mbg_swab_pcps_time_stamp : pcpsdefs.h
  • _mbg_swab_pcps_time_stamp_cycles : pcpsdev.h
  • _mbg_swab_pcps_time_status_x : pcpsdefs.h
  • _mbg_swab_pcps_tzdl : pcpsdefs.h
  • _mbg_swab_pcps_ucap_entries : pcpsdefs.h
  • _mbg_swab_port_info : gpsdefs.h
  • _mbg_swab_port_info_idx : gpsdefs.h
  • _mbg_swab_port_parm : gpsdefs.h
  • _mbg_swab_port_settings : gpsdefs.h
  • _mbg_swab_port_settings_idx : gpsdefs.h
  • _mbg_swab_pos : mbggeo.h
  • _mbg_swab_pout_info : gpsdefs.h
  • _mbg_swab_pout_info_idx : gpsdefs.h
  • _mbg_swab_pout_settings : gpsdefs.h
  • _mbg_swab_pout_settings_idx : gpsdefs.h
  • _mbg_swab_pout_time : gpsdefs.h
  • _mbg_swab_ptp_cfg_info : gpsdefs.h
  • _mbg_swab_ptp_cfg_settings : gpsdefs.h
  • _mbg_swab_ptp_state : gpsdefs.h
  • _mbg_swab_receiver_info : gpsdefs.h
  • _mbg_swab_stat_info : gpsdefs.h
  • _mbg_swab_str_type_info : gpsdefs.h
  • _mbg_swab_str_type_info_idx : gpsdefs.h
  • _mbg_swab_sw_rev : gpsdefs.h
  • _mbg_swab_synth : gpsdefs.h
  • _mbg_swab_synth_state : gpsdefs.h
  • _mbg_swab_t_gps : gpsdefs.h
  • _mbg_swab_tm_gps : gpsdefs.h
  • _mbg_swab_ttm : gpsdefs.h
  • _mbg_swab_tzdl : gpsdefs.h
  • _mbg_swab_utc_parm : gpsdefs.h
  • _mbg_swab_xyz : gpsdefs.h
  • _mbg_thread_exit : mbgdevio.h
  • _n_days : mbgtime.h
  • _nano_time_negative : gpsdefs.h
  • _nop_macro_fnc : mbg_tgt.h
  • _pcps_asic_version_greater_equal : pci_asic.h
  • _pcps_asic_version_major : pci_asic.h
  • _pcps_asic_version_minor : pci_asic.h
  • _pcps_bus_flags : pcpsdev.h
  • _pcps_bus_num : pcpsdev.h
  • _pcps_can_clr_ucap_buff : pcpsdev.h
  • _pcps_can_set_time : pcpsdev.h
  • _pcps_cfg_irq_num : pcpsdev.h
  • _pcps_cfg_port_base : pcpsdev.h
  • _pcps_cfg_port_rsrc : pcpsdev.h
  • _pcps_cfg_timeout_clk : pcpsdev.h
  • _pcps_chk_err_flags : pcpsdev.h
  • _pcps_clr_err_flags : pcpsdev.h
  • _pcps_dev_id : pcpsdev.h
  • _pcps_err_flags : pcpsdev.h
  • _pcps_fw_id : pcpsdev.h
  • _pcps_fw_rev_num : pcpsdev.h
  • _pcps_fw_rev_num_major : pcpsdev.h
  • _pcps_fw_rev_num_minor : pcpsdev.h
  • _pcps_get_unaligned : mbg_arch.h
  • _pcps_has_asic_features : pcpsdev.h
  • _pcps_has_asic_version : pcpsdev.h
  • _pcps_has_cab_len : pcpsdev.h
  • _pcps_has_event_time : pcpsdev.h
  • _pcps_has_feature : pcpsdev.h
  • _pcps_has_generic_io : pcpsdev.h
  • _pcps_has_gps_data : pcpsdev.h
  • _pcps_has_gps_data_16 : pcpsdev.h
  • _pcps_has_hr_time : pcpsdev.h
  • _pcps_has_ident : pcpsdev.h
  • _pcps_has_irig : pcpsdev.h
  • _pcps_has_irig_ctrl_bits : pcpsdev.h
  • _pcps_has_irig_time : pcpsdev.h
  • _pcps_has_irig_tx : pcpsdev.h
  • _pcps_has_lan_intf : pcpsdev.h
  • _pcps_has_mod : pcpsdev.h
  • _pcps_has_opt_flags : pcpsdev.h
  • _pcps_has_pcps_tzdl : pcpsdev.h
  • _pcps_has_ptp : pcpsdev.h
  • _pcps_has_receiver_info : pcpsdev.h
  • _pcps_has_ref_offs : pcpsdev.h
  • _pcps_has_serial : pcpsdev.h
  • _pcps_has_serial_hs : pcpsdev.h
  • _pcps_has_sernum : pcpsdev.h
  • _pcps_has_signal : pcpsdev.h
  • _pcps_has_sync_time : pcpsdev.h
  • _pcps_has_synth : pcpsdev.h
  • _pcps_has_time_scale : pcpsdev.h
  • _pcps_has_tz : pcpsdev.h
  • _pcps_has_tzcode : pcpsdev.h
  • _pcps_has_tzdl : pcpsdev.h
  • _pcps_has_ucap : pcpsdev.h
  • _pcps_has_utc_offs : pcpsdev.h
  • _pcps_has_utc_parm : pcpsdev.h
  • _pcps_irq_num : pcpsdev.h
  • _pcps_is_dcf : pcpsdev.h
  • _pcps_is_frc : pcpsdev.h
  • _pcps_is_gps : pcpsdev.h
  • _pcps_is_irig_rx : pcpsdev.h
  • _pcps_is_isa : pcpsdev.h
  • _pcps_is_lwr : pcpsdev.h
  • _pcps_is_mca : pcpsdev.h
  • _pcps_is_msf : pcpsdev.h
  • _pcps_is_pci : pcpsdev.h
  • _pcps_is_pci_amcc : pcpsdev.h
  • _pcps_is_pci_asic : pcpsdev.h
  • _pcps_is_pci_pex8311 : pcpsdev.h
  • _pcps_is_pci_s5920 : pcpsdev.h
  • _pcps_is_pci_s5933 : pcpsdev.h
  • _pcps_is_ptp : pcpsdev.h
  • _pcps_is_usb : pcpsdev.h
  • _pcps_is_wwvb : pcpsdev.h
  • _pcps_pex_irq_is_safe : pcpsdev.h
  • _pcps_port_base : pcpsdev.h
  • _pcps_port_rsrc : pcpsdev.h
  • _pcps_port_rsrc_unused : pcpsdev.h
  • _pcps_put_unaligned : mbg_arch.h
  • _pcps_ref_offs_out_of_range : pcpsdev.h
  • _pcps_ref_type : pcpsdev.h
  • _pcps_sernum : pcpsdev.h
  • _pcps_set_err_flags : pcpsdev.h
  • _pcps_slot_num : pcpsdev.h
  • _pcps_time_is_read : pcpsdev.h
  • _pcps_time_set_unread : pcpsdev.h
  • _pcps_timeout_clk : pcpsdev.h
  • _pcps_type_name : pcpsdev.h
  • _pcps_type_num : pcpsdev.h
  • _synth_dp_pos_from_range : gpsdefs.h
  • _USE_PACK : use_pack.h
  • _var_bswap16 : words.h
  • _var_bswap32 : words.h
  • _wswap32 : words.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- k -

  • KEY_DL_ANN : mbgdmpst.c
  • KEY_DL_ENB : mbgdmpst.c
  • KEY_FREER : mbgdmpst.c
  • KEY_INV_TIME : mbgdmpst.c
  • KEY_LS_ANN : mbgdmpst.c
  • KEY_SET_MANUALLY : mbgdmpst.c
  • KEY_SVC_ACTIVE : mbgdmpst.c
  • KEY_SVC_REF_ACCESSIBLE : mbgdmpst.c
  • KEY_SYNC_AFTER_RESET : mbgdmpst.c
  • KEY_UTC : mbgdmpst.c
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- l -

  • LO_BYTE : words.h
  • LO_WORD : words.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- m -

  • MAX_MEM_MAPPED_CNT : mbgdevio_demo.c
  • MAX_PARM_PORT : pcpsdev.h
  • MAX_PARM_POUT : pcpsdev.h
  • MAX_PARM_STR_TYPE : pcpsdev.h
  • MAX_POUT_DCF_TIMOUT : gpsdefs.h
  • MAX_POUT_PULSE_LEN : gpsdefs.h
  • MAX_POUT_TIMESTR_PORTS : gpsdefs.h
  • MAX_SVNO : gpsdefs.h
  • MAX_SYNTH_FREQ : gpsdefs.h
  • MAX_SYNTH_FREQ_EDIT : gpsdefs.h
  • MAX_SYNTH_FREQ_VAL : gpsdefs.h
  • MAX_SYNTH_PHASE : gpsdefs.h
  • MAX_SYNTH_RANGE : gpsdefs.h
  • MBG_ARCH_I386 : mbg_tgt.h
  • MBG_ARCH_LITTLE_ENDIAN : mbg_arch.h
  • MBG_BAUD_RATES : gpsdefs.h
  • MBG_BAUD_STRS : gpsdefs.h
  • MBG_CPU_SET : mbgdevio.h
  • MBG_CPU_SET_SIZE : mbgdevio.h
  • MBG_DEBUG_STATUS_STRS : gpsdefs.h
  • MBG_ERR_CFG : mbgerror.h
  • MBG_ERR_CLAIM_RSRC : mbgerror.h
  • MBG_ERR_CYCLIC_TIMEOUT : mbgerror.h
  • MBG_ERR_DEV_NOT_SUPP : mbgerror.h
  • MBG_ERR_DRV_VERSION : mbgerror.h
  • MBG_ERR_FIFO : mbgerror.h
  • MBG_ERR_FW_ID : mbgerror.h
  • MBG_ERR_GENERIC : mbgerror.h
  • MBG_ERR_INV_DEV_REQUEST : mbgerror.h
  • MBG_ERR_INV_INTNO : mbgerror.h
  • MBG_ERR_INV_TIME : mbgerror.h
  • MBG_ERR_INV_TYPE : mbgerror.h
  • MBG_ERR_IRQ_UNSAFE : mbgerror.h
  • MBG_ERR_LIB_NOT_COMPATIBLE : mbgerror.h
  • MBG_ERR_N_COM_EXCEEDS_SUPP : mbgerror.h
  • MBG_ERR_N_STR_EXCEEDS_SUPP : mbgerror.h
  • MBG_ERR_NBYTES : mbgerror.h
  • MBG_ERR_NO_DRIVER : mbgerror.h
  • MBG_ERR_NO_MEM : mbgerror.h
  • MBG_ERR_NOT_READY : mbgerror.h
  • MBG_ERR_NOT_SUPP_BY_DEV : mbgerror.h
  • MBG_ERR_NOT_SUPP_ON_OS : mbgerror.h
  • MBG_ERR_STIME : mbgerror.h
  • MBG_ERR_TIMEOUT : mbgerror.h
  • MBG_ERR_USB_ACCESS : mbgerror.h
  • MBG_FRAMING_STRS : gpsdefs.h
  • MBG_INVALID_DEV_HANDLE : mbgdevio.h
  • MBG_INVALID_HANDLE : mbg_tgt.h
  • MBG_IRIG_MSK_INV_CONFIG : gpsdefs.h
  • MBG_IRIG_MSK_INV_REF_OFFS : gpsdefs.h
  • MBG_IRIG_MSK_JITTER_TOO_LARGE : gpsdefs.h
  • MBG_IRIG_MSK_LOOP_LOCKED : gpsdefs.h
  • MBG_IRIG_MSK_MSG_DECODED : gpsdefs.h
  • MBG_IRIG_MSK_MSG_INCONSISTENT : gpsdefs.h
  • MBG_IRIG_MSK_PPS_ACTIVE : gpsdefs.h
  • MBG_IRIG_MSK_WARMED_UP : gpsdefs.h
  • MBG_MAX_DEVICES : mbgdevio.h
  • MBG_MEM_ADDR : pcpsdev.h
  • MBG_MUTEX : mbgdevio.h
  • MBG_OPT_FLAG_EMU_SYNC : gpsdefs.h
  • MBG_OPT_FLAG_STR_UTC : gpsdefs.h
  • MBG_PORT_HAS_1200 : gpsdefs.h
  • MBG_PORT_HAS_19200 : gpsdefs.h
  • MBG_PORT_HAS_2400 : gpsdefs.h
  • MBG_PORT_HAS_300 : gpsdefs.h
  • MBG_PORT_HAS_38400 : gpsdefs.h
  • MBG_PORT_HAS_4800 : gpsdefs.h
  • MBG_PORT_HAS_600 : gpsdefs.h
  • MBG_PORT_HAS_7E1 : gpsdefs.h
  • MBG_PORT_HAS_7E2 : gpsdefs.h
  • MBG_PORT_HAS_7N2 : gpsdefs.h
  • MBG_PORT_HAS_7O1 : gpsdefs.h
  • MBG_PORT_HAS_7O2 : gpsdefs.h
  • MBG_PORT_HAS_8E1 : gpsdefs.h
  • MBG_PORT_HAS_8N1 : gpsdefs.h
  • MBG_PORT_HAS_8N2 : gpsdefs.h
  • MBG_PORT_HAS_8O1 : gpsdefs.h
  • MBG_PORT_HAS_9600 : gpsdefs.h
  • MBG_PROCESS_ID : mbgdevio.h
  • MBG_PS_MSK_BAUD_RATE : gpsdefs.h
  • MBG_PS_MSK_BAUD_RATE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_BAUD_RATE_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_FLAGS : gpsdefs.h
  • MBG_PS_MSK_FLAGS_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_FRAMING : gpsdefs.h
  • MBG_PS_MSK_FRAMING_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_FRAMING_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_HS : gpsdefs.h
  • MBG_PS_MSK_HS_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_STR_MODE : gpsdefs.h
  • MBG_PS_MSK_STR_MODE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_STR_MODE_OVR_SW : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE_OVR_DEV : gpsdefs.h
  • MBG_PS_MSK_STR_TYPE_OVR_SW : gpsdefs.h
  • MBG_REF_OFFS_MAX : gpsdefs.h
  • MBG_REF_OFFS_NOT_CFGD : gpsdefs.h
  • MBG_SUCCESS : mbgerror.h
  • MBG_SYS_MSK_CPU_PLL_FAILED : gpsdefs.h
  • MBG_SYS_MSK_INV_RTC : gpsdefs.h
  • MBG_SYS_MSK_INV_TIME : gpsdefs.h
  • MBG_SYS_MSK_TIME_SET_VIA_API : gpsdefs.h
  • MBG_TGT_C94 : mbg_tgt.h
  • MBG_TGT_C99 : mbg_tgt.h
  • MBG_TGT_HAS_64BIT_TYPES : words.h
  • MBG_TGT_HAS_WCHAR_T : mbg_tgt.h
  • MBG_THREAD_FNC_ATTR : mbgdevio.h
  • MBG_THREAD_FNC_RET_VAL : mbgdevio.h
  • MBG_THREAD_ID : mbgdevio.h
  • MBG_TIME_SCALE_MSK_DEFAULT : gpsdefs.h
  • MBG_TIME_SCALE_MSK_GPS : gpsdefs.h
  • MBG_TIME_SCALE_MSK_TAI : gpsdefs.h
  • MBG_TIME_SCALE_STRS : gpsdefs.h
  • MBG_USE_MM_IO_FOR_PCI : mbg_tgt.h
  • MBGDEVIO_COMPAT_VERSION : mbgdevio.h
  • MBGDEVIO_HAVE_THREAD_AFFINITY : mbgdevio.h
  • MBGDEVIO_SIMPLE : mbgdevio.h
  • MBGDEVIO_USE_THREAD_API : mbgdevio.h
  • MBGDEVIO_VERSION : mbgdevio.h
  • MBGDEVIO_XHRT_API : mbgdevio.h
  • MBGSVCIO_COMPAT_VERSION : mbgsvcio.h
  • MBGSVCIO_VERSION : mbgsvcio.h
  • MBGUTIL_COMPAT_VERSION : mbgutil.h
  • MBGUTIL_VERSION : mbgutil.h
  • MEINBERG_MAGIC : gpsdefs.h
  • MIN_SVNO : gpsdefs.h
  • MIN_SYNTH_RANGE : gpsdefs.h
  • MINS_PER_DAY : mbgtime.h
  • MINS_PER_HOUR : mbgtime.h
  • MSEC_PER_DAY : mbgtime.h
  • MSEC_PER_HOUR : mbgtime.h
  • MSEC_PER_MIN : mbgtime.h
  • MSEC_PER_SEC : mbgtime.h
  • MSK_EPLD_CNTL_DIS_REM : gpsdefs.h
  • MSK_EPLD_CNTL_ENA_SNMP : gpsdefs.h
  • MSK_EPLD_CNTL_REMOTE : gpsdefs.h
  • MSK_EPLD_CNTL_SEL_REM : gpsdefs.h
  • MSK_EPLD_CNTL_SEL_SNMP : gpsdefs.h
  • MSK_EPLD_STAT_ACO : gpsdefs.h
  • MSK_EPLD_STAT_AUTO : gpsdefs.h
  • MSK_EPLD_STAT_ENA : gpsdefs.h
  • MSK_EPLD_STAT_PSU1_OK : gpsdefs.h
  • MSK_EPLD_STAT_PSU2_OK : gpsdefs.h
  • MSK_EPLD_STAT_SEL : gpsdefs.h
  • MSK_EPLD_STAT_TL_ERROR : gpsdefs.h
  • MSK_EPLD_STAT_TS1 : gpsdefs.h
  • MSK_EPLD_STAT_TS2 : gpsdefs.h
  • MSK_EPLD_STAT_WDOG_OK : gpsdefs.h
  • MSK_ICODE_RX_1000BPS : gpsdefs.h
  • MSK_ICODE_RX_100BPS : gpsdefs.h
  • MSK_ICODE_RX_10KHZ : gpsdefs.h
  • MSK_ICODE_RX_1KHZ : gpsdefs.h
  • MSK_ICODE_RX_A002_A003 : gpsdefs.h
  • MSK_ICODE_RX_A132_A133 : gpsdefs.h
  • MSK_ICODE_RX_AFNOR : gpsdefs.h
  • MSK_ICODE_RX_AFNOR_DC : gpsdefs.h
  • MSK_ICODE_RX_B002_B003 : gpsdefs.h
  • MSK_ICODE_RX_B006_B007 : gpsdefs.h
  • MSK_ICODE_RX_B122_B123 : gpsdefs.h
  • MSK_ICODE_RX_B126_B127 : gpsdefs.h
  • MSK_ICODE_RX_DC : gpsdefs.h
  • MSK_ICODE_RX_HAS_TFOM : gpsdefs.h
  • MSK_ICODE_RX_HAS_TZI : gpsdefs.h
  • MSK_ICODE_RX_IEEE1344 : gpsdefs.h
  • MSK_ICODE_RX_IEEE1344_DC : gpsdefs.h
  • MSK_ICODE_TX_1000BPS : gpsdefs.h
  • MSK_ICODE_TX_100BPS : gpsdefs.h
  • MSK_ICODE_TX_10KHZ : gpsdefs.h
  • MSK_ICODE_TX_1KHZ : gpsdefs.h
  • MSK_ICODE_TX_A002_A132 : gpsdefs.h
  • MSK_ICODE_TX_A003_A133 : gpsdefs.h
  • MSK_ICODE_TX_AFNOR : gpsdefs.h
  • MSK_ICODE_TX_B002_B122 : gpsdefs.h
  • MSK_ICODE_TX_B003_B123 : gpsdefs.h
  • MSK_ICODE_TX_B006_B126 : gpsdefs.h
  • MSK_ICODE_TX_B007_B127 : gpsdefs.h
  • MSK_ICODE_TX_B220_1344 : gpsdefs.h
  • MSK_ICODE_TX_B222 : gpsdefs.h
  • MSK_ICODE_TX_B223 : gpsdefs.h
  • MSK_ICODE_TX_DC_MANCH : gpsdefs.h
  • MSK_ICODE_TX_HAS_TFOM : gpsdefs.h
  • MSK_ICODE_TX_HAS_TZI : gpsdefs.h
  • MSK_ICODE_TX_IEEE1344 : gpsdefs.h
  • MSK_POUT_10MHZ : gpsdefs.h
  • MSK_POUT_ALL_SYNC : gpsdefs.h
  • MSK_POUT_CYCLIC_PULSE : gpsdefs.h
  • MSK_POUT_DCF77 : gpsdefs.h
  • MSK_POUT_IDLE : gpsdefs.h
  • MSK_POUT_PER_HOUR : gpsdefs.h
  • MSK_POUT_PER_MIN : gpsdefs.h
  • MSK_POUT_PER_SEC : gpsdefs.h
  • MSK_POUT_POS_OK : gpsdefs.h
  • MSK_POUT_SINGLE_SHOT : gpsdefs.h
  • MSK_POUT_TIME_SYNC : gpsdefs.h
  • MSK_POUT_TIMECODE : gpsdefs.h
  • MSK_POUT_TIMER : gpsdefs.h
  • MSK_POUT_TIMESTR : gpsdefs.h
  • MSK_STR_AUTO : gpsdefs.h
  • MSK_STR_ON_REQ : gpsdefs.h
  • MSK_STR_ON_REQ_SEC : gpsdefs.h
  • MSK_STR_PER_MIN : gpsdefs.h
  • MSK_STR_PER_SEC : gpsdefs.h
  • MSK_WRN_10MHZ_MISSING : gpsdefs.h
  • MSK_WRN_10MHZ_UNLOCK : gpsdefs.h
  • MSK_WRN_1PPS_MISSING : gpsdefs.h
  • MSK_WRN_1PPS_UNLOCK : gpsdefs.h
  • MSK_WRN_ANT_DISCONN : gpsdefs.h
  • MSK_WRN_COLD_BOOT : gpsdefs.h
  • MSK_WRN_GPS_UNLOCK : gpsdefs.h
  • MSK_WRN_MODULE_MODE : gpsdefs.h
  • MSK_WRN_WARM_BOOT : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- n -

  • N_COM : gpsdefs.h
  • N_LOOPS : xhrtime.c
  • N_MULTI_REF_PRIO : gpsdefs.h
  • N_PCPS_PORT_RSRC : pcpsdev.h
  • N_POUT_TIMES : gpsdefs.h
  • N_STATUS : mbgdmpst.c
  • N_SVNO : gpsdefs.h
  • N_SYNTH_FREQ_DIGIT : gpsdefs.h
  • N_SYNTH_PHASE_DIGIT : gpsdefs.h
  • N_SYNTH_RANGE : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- o -

  • OSC_DAC_BIAS : gpsdefs.h
  • OSC_DAC_RANGE : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- a -

  • ANSI_C_DEGREE : gpsutils.h
  • ANSI_S_DEGREE : gpsutils.h
  • AUTO_166 : gpsdefs.h
  • AUTO_BC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- b -

  • BITMASK : pcpsdefs.h
  • BOOT : gpsdefs.h
  • BVAR_ALM_NOT_COMPLETE : gpsdefs.h
  • BVAR_CFGH_INVALID : gpsdefs.h
  • BVAR_IONO_INVALID : gpsdefs.h
  • BVAR_MASK : gpsdefs.h
  • BVAR_RCVR_POS_INVALID : gpsdefs.h
  • BVAR_UTC_INVALID : gpsdefs.h
  • BYTE_OF : words.h
  • BYTE_OF_P : words.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- c -

  • C_DEGREE : gpsutils.h
  • COLD_166 : gpsdefs.h
  • COLD_BC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- d -

  • DAYS_PER_WEEK : mbgtime.h
  • DEFAULT_ENG_MODE_NAMES : gpsdefs.h
  • DEFAULT_ENG_POUT_HINTS : gpsdefs.h
  • DEFAULT_ENG_POUT_NAMES : gpsdefs.h
  • DEFAULT_FPGA_START_INFO : gpsdefs.h
  • DEFAULT_FPGA_START_SEG : gpsdefs.h
  • DEFAULT_FREQ_RANGES : gpsdefs.h
  • DEFAULT_GPS_BAUD_RATES_C166 : gpsdefs.h
  • DEFAULT_GPS_BAUD_RATES_GP2021 : gpsdefs.h
  • DEFAULT_GPS_FEATURE_NAMES : gpsdefs.h
  • DEFAULT_GPS_FEATURES_C166 : gpsdefs.h
  • DEFAULT_GPS_FRAMINGS_C166 : gpsdefs.h
  • DEFAULT_GPS_FRAMINGS_GP2021 : gpsdefs.h
  • DEFAULT_GPS_MODEL_NAMES : gpsdefs.h
  • DEFAULT_GPS_OSC_NAMES : gpsdefs.h
  • DEFAULT_GPS_OSC_QUALITY_IDX : gpsdefs.h
  • DEFAULT_GPS_TICKS_PER_SEC : gpsdefs.h
  • DEFAULT_ICODE_RX_DESCRIPTIONS_ENG : gpsdefs.h
  • DEFAULT_ICODE_RX_NAMES : gpsdefs.h
  • DEFAULT_ICODE_TX_DESCRIPTIONS_ENG : gpsdefs.h
  • DEFAULT_ICODE_TX_NAMES : gpsdefs.h
  • DEFAULT_MULTI_REF_NAMES : gpsdefs.h
  • DEFAULT_N_COM : gpsdefs.h
  • DEFAULT_PTP_DELAY_MECH_MASK : gpsdefs.h
  • DEFAULT_PTP_NW_PROT_MASK : gpsdefs.h
  • DEFAULT_SHORT_MODE_NAMES : gpsdefs.h
  • DEFAULT_STR_MODES : gpsdefs.h
  • DEFAULT_STR_MODES_UCAP : gpsdefs.h
  • DEFAULT_TZDL_AUTO_YEAR : gpsdefs.h
  • DEFAULT_TZDL_CET_CEST_DE : gpsdefs.h
  • DEFAULT_TZDL_CET_CEST_EN : gpsdefs.h
  • DEFAULT_TZDL_EET_EEST_DE : gpsdefs.h
  • DEFAULT_TZDL_EET_EEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_CET_CEST_DE : gpsdefs.h
  • DEFAULT_TZDL_NAMES_CET_CEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_EET_EEST_DE : gpsdefs.h
  • DEFAULT_TZDL_NAMES_EET_EEST_EN : gpsdefs.h
  • DEFAULT_TZDL_NAMES_UTC : gpsdefs.h
  • DEFAULT_TZDL_OFFS_CET : gpsdefs.h
  • DEFAULt_TZDL_OFFS_DL : gpsdefs.h
  • DEFAULT_TZDL_OFFS_EET : gpsdefs.h
  • DEFAULT_TZDL_TM_OFF_CET_CEST : gpsdefs.h
  • DEFAULT_TZDL_TM_OFF_EET_EEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_CET_CEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_EET_EEST : gpsdefs.h
  • DEFAULT_TZDL_TM_ON_OFF_NO_DST : gpsdefs.h
  • DEFAULT_TZDL_UTC : gpsdefs.h
  • DL_AUTO_FLAG : gpsdefs.h , pcpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- e -

  • EF_FREQ_ALL : gpsdefs.h
  • EF_OFF : gpsdefs.h
  • EF_PULSES_BOTH : gpsdefs.h
  • EF_SERIAL_BOTH : gpsdefs.h
  • EF_SYNTH : gpsdefs.h
  • ENG_MODE_NAME_STR_AUTO : gpsdefs.h
  • ENG_MODE_NAME_STR_ON_REQ : gpsdefs.h
  • ENG_MODE_NAME_STR_ON_REQ_SEC : gpsdefs.h
  • ENG_MODE_NAME_STR_PER_MIN : gpsdefs.h
  • ENG_MODE_NAME_STR_PER_SEC : gpsdefs.h
  • ENG_POUT_HINT_10MHZ : gpsdefs.h
  • ENG_POUT_HINT_ALL_SYNC : gpsdefs.h
  • ENG_POUT_HINT_CYCLIC_PULSE : gpsdefs.h
  • ENG_POUT_HINT_DCF77 : gpsdefs.h
  • ENG_POUT_HINT_IDLE : gpsdefs.h
  • ENG_POUT_HINT_PER_HOUR : gpsdefs.h
  • ENG_POUT_HINT_PER_MIN : gpsdefs.h
  • ENG_POUT_HINT_PER_SEC : gpsdefs.h
  • ENG_POUT_HINT_POS_OK : gpsdefs.h
  • ENG_POUT_HINT_SINGLE_SHOT : gpsdefs.h
  • ENG_POUT_HINT_TIME_SYNC : gpsdefs.h
  • ENG_POUT_HINT_TIMECODE : gpsdefs.h
  • ENG_POUT_HINT_TIMER : gpsdefs.h
  • ENG_POUT_HINT_TIMESTR : gpsdefs.h
  • ENG_POUT_NAME_10MHZ : gpsdefs.h
  • ENG_POUT_NAME_ALL_SYNC : gpsdefs.h
  • ENG_POUT_NAME_CYCLIC_PULSE : gpsdefs.h
  • ENG_POUT_NAME_DCF77 : gpsdefs.h
  • ENG_POUT_NAME_IDLE : gpsdefs.h
  • ENG_POUT_NAME_PER_HOUR : gpsdefs.h
  • ENG_POUT_NAME_PER_MIN : gpsdefs.h
  • ENG_POUT_NAME_PER_SEC : gpsdefs.h
  • ENG_POUT_NAME_POS_OK : gpsdefs.h
  • ENG_POUT_NAME_SINGLE_SHOT : gpsdefs.h
  • ENG_POUT_NAME_TIME_SYNC : gpsdefs.h
  • ENG_POUT_NAME_TIMECODE : gpsdefs.h
  • ENG_POUT_NAME_TIMER : gpsdefs.h
  • ENG_POUT_NAME_TIMESTR : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- f -

  • FILETIME : mbgdevio.h
  • FPGA_INFO_SIZE : gpsdefs.h
  • FPGA_NAME_LEN : gpsdefs.h
  • FPGA_NAME_SIZE : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- g -

  • GPS_EPLD_STR_LEN : gpsdefs.h
  • GPS_EPLD_STR_SIZE : gpsdefs.h
  • GPS_HAS_5_MHZ : gpsdefs.h
  • GPS_HAS_DCFMARKS : gpsdefs.h
  • GPS_HAS_FPGA : gpsdefs.h
  • GPS_HAS_IGNORE_LOCK : gpsdefs.h
  • GPS_HAS_IRIG_CTRL_BITS : gpsdefs.h
  • GPS_HAS_IRIG_RX : gpsdefs.h
  • GPS_HAS_IRIG_TX : gpsdefs.h
  • GPS_HAS_LAN_IP4 : gpsdefs.h
  • GPS_HAS_MULTI_REF : gpsdefs.h
  • GPS_HAS_NAV_ENGINE_SETTINGS : gpsdefs.h
  • GPS_HAS_OPT_SETTINGS : gpsdefs.h
  • GPS_HAS_PPM : gpsdefs.h
  • GPS_HAS_PPS : gpsdefs.h
  • GPS_HAS_PTP : gpsdefs.h
  • GPS_HAS_RCV_TIMEOUT : gpsdefs.h
  • GPS_HAS_REF_OFFS : gpsdefs.h
  • GPS_HAS_SYNTH : gpsdefs.h
  • GPS_HAS_TIME_SCALE : gpsdefs.h
  • GPS_HAS_XMULTI_REF : gpsdefs.h
  • GPS_ID_STR_LEN : gpsdefs.h
  • GPS_ID_STR_SIZE : gpsdefs.h
  • GPS_IRIG_FO_IN : gpsdefs.h
  • GPS_MODEL_NAME_AM511 : gpsdefs.h
  • GPS_MODEL_NAME_FRC511PEX : gpsdefs.h
  • GPS_MODEL_NAME_GEN170 : gpsdefs.h
  • GPS_MODEL_NAME_GPS161 : gpsdefs.h
  • GPS_MODEL_NAME_GPS162 : gpsdefs.h
  • GPS_MODEL_NAME_GPS163 : gpsdefs.h
  • GPS_MODEL_NAME_GPS164 : gpsdefs.h
  • GPS_MODEL_NAME_GPS166 : gpsdefs.h
  • GPS_MODEL_NAME_GPS167 : gpsdefs.h
  • GPS_MODEL_NAME_GPS167PC : gpsdefs.h
  • GPS_MODEL_NAME_GPS167PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS167SV : gpsdefs.h
  • GPS_MODEL_NAME_GPS168PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS169PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS170 : gpsdefs.h
  • GPS_MODEL_NAME_GPS170PCI : gpsdefs.h
  • GPS_MODEL_NAME_GPS170PEX : gpsdefs.h
  • GPS_MODEL_NAME_GRC170 : gpsdefs.h
  • GPS_MODEL_NAME_MGR170 : gpsdefs.h
  • GPS_MODEL_NAME_MSF511 : gpsdefs.h
  • GPS_MODEL_NAME_PTP270PEX : gpsdefs.h
  • GPS_MODEL_NAME_PZF511 : gpsdefs.h
  • GPS_MODEL_NAME_TCR167PCI : gpsdefs.h
  • GPS_MODEL_NAME_TCR170PEX : gpsdefs.h
  • GPS_MODEL_NAME_TCR511 : gpsdefs.h
  • GPS_MODEL_NAME_UNKNOWN : gpsdefs.h
  • GPS_MODEL_NAME_WWVB511 : gpsdefs.h
  • GPS_OSC_CFG_SUPP : gpsdefs.h
  • GPS_PLATFORM_STRS : gpsdefs.h
  • GPS_SEC_BIAS : mbgtime.h
  • GPS_TAI_OFFSET : gpsdefs.h
  • GPS_TICKS_PER_SEC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- h -

  • HAS_MULTI_REF_10MHZ : gpsdefs.h
  • HAS_MULTI_REF_10MHZ_PPS : gpsdefs.h
  • HAS_MULTI_REF_FREQ : gpsdefs.h
  • HAS_MULTI_REF_GPS : gpsdefs.h
  • HAS_MULTI_REF_IRIG : gpsdefs.h
  • HAS_MULTI_REF_NTP : gpsdefs.h
  • HAS_MULTI_REF_PPS : gpsdefs.h
  • HAS_MULTI_REF_PTP : gpsdefs.h
  • HAS_MULTI_REF_PTP_E1 : gpsdefs.h
  • HI_BYTE : words.h
  • HI_WORD : words.h
  • HOURS_PER_DAY : mbgtime.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- i -

  • IFLAGS_DISABLE_TFOM : gpsdefs.h
  • IFLAGS_MASK : gpsdefs.h
  • IFLAGS_TX_GEN_LOCAL_TIME : gpsdefs.h
  • IGNORE_LOCK_FOR_ALL_PORTS : gpsdefs.h
  • IP4_MSK_DHCP : gpsdefs.h
  • IP4_MSK_LINK : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- p -

  • PCI_ASIC_ADD_ON_IRQF : pci_asic.h
  • PCI_ASIC_ADDR_RANGE : pci_asic.h
  • PCI_ASIC_BADR0_INIT : pci_asic.h
  • PCI_ASIC_CFG_GPS169PCI : pci_asic.h
  • PCI_ASIC_CFG_GPS170PCI : pci_asic.h
  • PCI_ASIC_CFG_PCI510 : pci_asic.h
  • PCI_ASIC_CFG_PCI511 : pci_asic.h
  • PCI_ASIC_CFG_TCR167PCI : pci_asic.h
  • PCI_ASIC_CFG_TCR510PCI : pci_asic.h
  • PCI_ASIC_CFG_TCR511PCI : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_CURRENT_MINOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_FIX_EE_ACCESS_TCR170PEX : pci_asic.h
  • PCI_ASIC_FIX_HRT_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_FIX_HRT_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX : pci_asic.h
  • PCI_ASIC_HAS_MM_IO : pci_asic.h
  • PCI_ASIC_HAS_PGMB_IRQ : pci_asic.h
  • PCI_ASIC_HR_TIME_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_PCI_IRQF : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_PEX511 : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_REQUIRED_MINOR_TCR511PEX : pci_asic.h
  • PCI_DEV_FRC511PEX : pcpsdefs.h
  • PCI_DEV_GPS167PCI : pcpsdefs.h
  • PCI_DEV_GPS168PCI : pcpsdefs.h
  • PCI_DEV_GPS169PCI : pcpsdefs.h
  • PCI_DEV_GPS170PCI : pcpsdefs.h
  • PCI_DEV_GPS170PEX : pcpsdefs.h
  • PCI_DEV_PCI32 : pcpsdefs.h
  • PCI_DEV_PCI509 : pcpsdefs.h
  • PCI_DEV_PCI510 : pcpsdefs.h
  • PCI_DEV_PCI511 : pcpsdefs.h
  • PCI_DEV_PEX511 : pcpsdefs.h
  • PCI_DEV_PTP270PEX : pcpsdefs.h
  • PCI_DEV_TCR167PCI : pcpsdefs.h
  • PCI_DEV_TCR170PEX : pcpsdefs.h
  • PCI_DEV_TCR510PCI : pcpsdefs.h
  • PCI_DEV_TCR511PCI : pcpsdefs.h
  • PCI_DEV_TCR511PEX : pcpsdefs.h
  • PCI_VENDOR_MEINBERG : pcpsdefs.h
  • PCPS_ANT_FAIL : pcpsdefs.h
  • PCPS_BD_BITS : pcpsdefs.h
  • PCPS_BD_SHIFT : pcpsdefs.h
  • PCPS_BUS_ISA : pcpsdev.h
  • PCPS_BUS_MCA : pcpsdev.h
  • PCPS_BUS_PCI : pcpsdev.h
  • PCPS_BUS_PCI_ASIC : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_ASIC : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_PEX8311 : pcpsdev.h
  • PCPS_BUS_PCI_CHIP_S5920 : pcpsdev.h
  • PCPS_BUS_PCI_PEX8311 : pcpsdev.h
  • PCPS_BUS_PCI_S5920 : pcpsdev.h
  • PCPS_BUS_PCI_S5933 : pcpsdev.h
  • PCPS_BUS_USB : pcpsdev.h
  • PCPS_CAN_CLR_UCAP_BUFF : pcpsdev.h
  • PCPS_CAN_SET_TIME : pcpsdev.h
  • PCPS_CFG2_GROUP : pcpsdefs.h
  • PCPS_CFG_GROUP : pcpsdefs.h
  • PCPS_CLOCK_NAME_SZ : pcpsdev.h
  • PCPS_CLR_UCAP_BUFF : pcpsdefs.h
  • PCPS_CTRL_GROUP : pcpsdefs.h
  • PCPS_DEV_CLASS_CODE : pci_asic.h
  • PCPS_DL_ANN : pcpsdefs.h
  • PCPS_DL_ENB : pcpsdefs.h
  • PCPS_EF_INV_EPROM_ID : pcpsdev.h
  • PCPS_EF_IO_CFG : pcpsdev.h
  • PCPS_EF_IO_ENB : pcpsdev.h
  • PCPS_EF_IO_INIT : pcpsdev.h
  • PCPS_EF_IO_RSRC : pcpsdev.h
  • PCPS_EF_TIMEOUT : pcpsdev.h
  • PCPS_ERR_CFG : pcpsdefs.h
  • PCPS_ERR_STIME : pcpsdefs.h
  • PCPS_FEAT_FRC511PEX : pcpsdev.h
  • PCPS_FEAT_GPS167PC : pcpsdev.h
  • PCPS_FEAT_GPS167PCI : pcpsdev.h
  • PCPS_FEAT_GPS168PCI : pcpsdev.h
  • PCPS_FEAT_GPS169PCI : pcpsdev.h
  • PCPS_FEAT_GPS170PCI : pcpsdev.h
  • PCPS_FEAT_GPS170PEX : pcpsdev.h
  • PCPS_FEAT_LVL2 : pcpsdev.h
  • PCPS_FEAT_MSF51USB : pcpsdev.h
  • PCPS_FEAT_PC31PS31 : pcpsdev.h
  • PCPS_FEAT_PC32 : pcpsdev.h
  • PCPS_FEAT_PCI32 : pcpsdev.h
  • PCPS_FEAT_PCI509 : pcpsdev.h
  • PCPS_FEAT_PCI510 : pcpsdev.h
  • PCPS_FEAT_PCI511 : pcpsdev.h
  • PCPS_FEAT_PEX511 : pcpsdev.h
  • PCPS_FEAT_PTP270PEX : pcpsdev.h
  • PCPS_FEAT_TCR167PCI : pcpsdev.h
  • PCPS_FEAT_TCR170PEX : pcpsdev.h
  • PCPS_FEAT_TCR510PCI : pcpsdev.h
  • PCPS_FEAT_TCR511PCI : pcpsdev.h
  • PCPS_FEAT_TCR511PEX : pcpsdev.h
  • PCPS_FEAT_TCR51USB : pcpsdev.h
  • PCPS_FEAT_USB5131 : pcpsdev.h
  • PCPS_FEAT_WWVB51USB : pcpsdev.h
  • PCPS_FIFO_SIZE : pcpsdefs.h
  • PCPS_FORCE_RESET : pcpsdefs.h
  • PCPS_FR_BITS : pcpsdefs.h
  • PCPS_FR_SHIFT : pcpsdefs.h
  • PCPS_FREER : pcpsdefs.h
  • PCPS_GENERIC_IO : pcpsdefs.h
  • PCPS_GET_DEBUG_STATUS : pcpsdefs.h
  • PCPS_GET_IRIG_CTRL_BITS : pcpsdefs.h
  • PCPS_GET_IRIG_RX_INFO : pcpsdefs.h
  • PCPS_GET_IRIG_TX_INFO : pcpsdefs.h
  • PCPS_GET_OPT_INFO : pcpsdefs.h
  • PCPS_GET_PCPS_TZDL : pcpsdefs.h
  • PCPS_GET_REF_OFFS : pcpsdefs.h
  • PCPS_GET_SERIAL : pcpsdefs.h
  • PCPS_GET_STATUS_PORT : pcpsdefs.h
  • PCPS_GET_SYNTH : pcpsdefs.h
  • PCPS_GET_SYNTH_STATE : pcpsdefs.h
  • PCPS_GET_TZCODE : pcpsdefs.h
  • PCPS_GIVE_DATA_GROUP : pcpsdefs.h
  • PCPS_GIVE_FW_ID_1 : pcpsdefs.h
  • PCPS_GIVE_FW_ID_2 : pcpsdefs.h
  • PCPS_GIVE_HR_TIME : pcpsdefs.h
  • PCPS_GIVE_IRIG_TIME : pcpsdefs.h
  • PCPS_GIVE_SERNUM : pcpsdefs.h
  • PCPS_GIVE_SYNC_TIME : pcpsdefs.h
  • PCPS_GIVE_TIME : pcpsdefs.h
  • PCPS_GIVE_TIME_GROUP : pcpsdefs.h
  • PCPS_GIVE_TIME_NOCLEAR : pcpsdefs.h
  • PCPS_GIVE_UCAP_ENTRIES : pcpsdefs.h
  • PCPS_GIVE_UCAP_EVENT : pcpsdefs.h
  • PCPS_GPS_DATA_GROUP : pcpsdefs.h
  • PCPS_HAS_CABLE_LEN : pcpsdev.h
  • PCPS_HAS_EVENT_TIME : pcpsdev.h
  • PCPS_HAS_GENERIC_IO : pcpsdev.h
  • PCPS_HAS_GPS_DATA_16 : pcpsdev.h
  • PCPS_HAS_HR_TIME : pcpsdev.h
  • PCPS_HAS_IDENT : pcpsdev.h
  • PCPS_HAS_IRIG_CTRL_BITS : pcpsdev.h
  • PCPS_HAS_IRIG_TIME : pcpsdev.h
  • PCPS_HAS_IRIG_TX : pcpsdev.h
  • PCPS_HAS_LAN_INTF : pcpsdev.h
  • PCPS_HAS_PCPS_TZDL : pcpsdev.h
  • PCPS_HAS_PTP : pcpsdev.h
  • PCPS_HAS_RECEIVER_INFO : pcpsdev.h
  • PCPS_HAS_SERIAL : pcpsdev.h
  • PCPS_HAS_SERNUM : pcpsdev.h
  • PCPS_HAS_SYNC_TIME : pcpsdev.h
  • PCPS_HAS_SYNTH : pcpsdev.h
  • PCPS_HAS_TIME_SCALE : pcpsdev.h
  • PCPS_HAS_TZCODE : pcpsdev.h
  • PCPS_HAS_TZDL : pcpsdev.h
  • PCPS_HAS_UCAP : pcpsdev.h
  • PCPS_HAS_UTC_OFFS : pcpsdev.h
  • PCPS_HAS_UTC_PARM : pcpsdev.h
  • PCPS_HRT_BIN_FRAC_SCALE : pcpsdefs.h
  • PCPS_HRT_FRAC_CONVERSION_TYPE : pcpsdefs.h
  • PCPS_HRT_FRAC_SCALE : pcpsdefs.h
  • PCPS_HRT_FRAC_SCALE_FMT : pcpsdefs.h
  • PCPS_ID_SIZE : pcpsdefs.h
  • PCPS_IFTM : pcpsdefs.h
  • PCPS_INVT : pcpsdefs.h
  • PCPS_IO_BLOCKED : pcpsdefs.h
  • PCPS_IRQ_10_MIN : pcpsdefs.h
  • PCPS_IRQ_1_MIN : pcpsdefs.h
  • PCPS_IRQ_1_SEC : pcpsdefs.h
  • PCPS_IRQ_30_MIN : pcpsdefs.h
  • PCPS_IRQ_GROUP : pcpsdefs.h
  • PCPS_IRQ_NONE : pcpsdefs.h
  • PCPS_IRQ_STAT_ENABLE_CALLED : pcpsdev.h
  • PCPS_IRQ_STAT_ENABLED : pcpsdev.h
  • PCPS_IRQ_STAT_UNSAFE : pcpsdev.h
  • PCPS_IRQ_STATE_DANGER : pcpsdev.h
  • PCPS_LS_ANN : pcpsdefs.h
  • PCPS_LS_ANN_NEG : pcpsdefs.h
  • PCPS_LS_ENB : pcpsdefs.h
  • PCPS_MOD_BITS : pcpsdefs.h
  • PCPS_MOD_SHIFT : pcpsdefs.h
  • PCPS_READ_GPS_DATA : pcpsdefs.h
  • PCPS_REF_NAME_DCF : pcpsdefs.h
  • PCPS_REF_NAME_FRC : pcpsdefs.h
  • PCPS_REF_NAME_GPS : pcpsdefs.h
  • PCPS_REF_NAME_IRIG : pcpsdefs.h
  • PCPS_REF_NAME_MSF : pcpsdefs.h
  • PCPS_REF_NAME_NONE_ENG : pcpsdefs.h
  • PCPS_REF_NAME_NONE_GER : pcpsdefs.h
  • PCPS_REF_NAME_PTP : pcpsdefs.h
  • PCPS_REF_NAME_WWVB : pcpsdefs.h
  • PCPS_REF_NAMES_ENG : pcpsdefs.h
  • PCPS_REF_NAMES_LSTR : pcpsdefs.h
  • PCPS_SCALE_GPS : pcpsdefs.h
  • PCPS_SCALE_MASK : pcpsdefs.h
  • PCPS_SCALE_TAI : pcpsdefs.h
  • PCPS_SET_EVENT_TIME : pcpsdefs.h
  • PCPS_SET_IRIG_RX_SETTINGS : pcpsdefs.h
  • PCPS_SET_IRIG_TX_SETTINGS : pcpsdefs.h
  • PCPS_SET_OPT_SETTINGS : pcpsdefs.h
  • PCPS_SET_PCPS_TZDL : pcpsdefs.h
  • PCPS_SET_REF_OFFS : pcpsdefs.h
  • PCPS_SET_SERIAL : pcpsdefs.h
  • PCPS_SET_SYNTH : pcpsdefs.h
  • PCPS_SET_TIME : pcpsdefs.h
  • PCPS_SET_TIME_GROUP : pcpsdefs.h
  • PCPS_SET_TZCODE : pcpsdefs.h
  • PCPS_SN_SIZE : pcpsdefs.h
  • PCPS_ST_BUSY : pcpsdev.h
  • PCPS_ST_IRQF : pcpsdev.h
  • PCPS_ST_MIN : pcpsdev.h
  • PCPS_ST_MOD : pcpsdev.h
  • PCPS_ST_SEC : pcpsdev.h
  • PCPS_SUCCESS : pcpsdefs.h
  • PCPS_SYNCD : pcpsdefs.h
  • PCPS_TZCODE_MEZ : pcpsdefs.h
  • PCPS_TZCODE_MEZMESZ : pcpsdefs.h
  • PCPS_TZCODE_OEZ : pcpsdefs.h
  • PCPS_UCAP_BUFFER_FULL : pcpsdefs.h
  • PCPS_UCAP_OVERRUN : pcpsdefs.h
  • PCPS_UTC : pcpsdefs.h
  • PCPS_WRITE_GPS_DATA : pcpsdefs.h
  • PI : mbggeo.h
  • POUT_INVERTED : gpsdefs.h
  • PTP_CFG_MSK_TIME_SCALE_IS_PTP : gpsdefs.h
  • PTP_CFG_MSK_V1_HW_COMPAT : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_OFFSET : gpsdefs.h
  • PTP_CLOCK_ACCURACY_STRS : gpsdefs.h
  • PTP_DELAY_MECH_MSK_E2E : gpsdefs.h
  • PTP_DELAY_MECH_MSK_P2P : gpsdefs.h
  • PTP_DELAY_MECH_NAMES : gpsdefs.h
  • PTP_DELAY_REQ_INTERVAL_MAX : gpsdefs.h
  • PTP_DELAY_REQ_INTERVAL_MIN : gpsdefs.h
  • PTP_FLAG_MSK_IS_SLAVE : gpsdefs.h
  • PTP_FLAG_MSK_LS_ANN : gpsdefs.h
  • PTP_FLAG_MSK_LS_ANN_NEG : gpsdefs.h
  • PTP_FLAG_MSK_SLAVE_ONLY : gpsdefs.h
  • PTP_FLAG_MSK_TIMESCALE_IS_PTP : gpsdefs.h
  • PTP_NW_PROT_MSK_CONTROL_NET : gpsdefs.h
  • PTP_NW_PROT_MSK_DEVICE_NET : gpsdefs.h
  • PTP_NW_PROT_MSK_IEEE_802_3 : gpsdefs.h
  • PTP_NW_PROT_MSK_PROFINET : gpsdefs.h
  • PTP_NW_PROT_MSK_RESERVED : gpsdefs.h
  • PTP_NW_PROT_MSK_UDP_IPV4 : gpsdefs.h
  • PTP_NW_PROT_MSK_UDP_IPV6 : gpsdefs.h
  • PTP_NW_PROT_STRS : gpsdefs.h
  • PTP_PORT_STATE_STRS : gpsdefs.h
  • PTP_SYNC_INTERVAL_MAX : gpsdefs.h
  • PTP_SYNC_INTERVAL_MIN : gpsdefs.h
  • PTP_TIME_SOURCE_ATOMIC_CLOCK : gpsdefs.h
  • PTP_TIME_SOURCE_GPS : gpsdefs.h
  • PTP_TIME_SOURCE_HAND_SET : gpsdefs.h
  • PTP_TIME_SOURCE_INTERNAL_OSCILLATOR : gpsdefs.h
  • PTP_TIME_SOURCE_NTP : gpsdefs.h
  • PTP_TIME_SOURCE_OTHER : gpsdefs.h
  • PTP_TIME_SOURCE_PTP : gpsdefs.h
  • PTP_TIME_SOURCE_TABLE : gpsdefs.h
  • PTP_TIME_SOURCE_TERRESTRIAL_RADIO : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- r -

  • REMOTE : gpsdefs.h
  • REV_CAN_CLR_UCAP_BUFF_GPS167PCI : pcpsdev.h
  • REV_CAN_CLR_UCAP_BUFF_GPS168PCI : pcpsdev.h
  • REV_CAN_SET_TIME_PC31PS31 : pcpsdev.h
  • REV_GIVE_TIME_NOCLEAR_PC31PS31 : pcpsdev.h
  • REV_HAS_CABLE_LEN_GPS167PC : pcpsdev.h
  • REV_HAS_CABLE_LEN_GPS167PCI : pcpsdev.h
  • REV_HAS_GPS_DATA_16_GPS169PCI : pcpsdev.h
  • REV_HAS_HR_TIME_GPS167PC : pcpsdev.h
  • REV_HAS_HR_TIME_PCI511 : pcpsdev.h
  • REV_HAS_HR_TIME_PEX511 : pcpsdev.h
  • REV_HAS_HR_TIME_TCR510PCI : pcpsdev.h
  • REV_HAS_IRIG_CTRL_BITS_TCR511PCI : pcpsdev.h
  • REV_HAS_IRIG_CTRL_BITS_TCR511PEX : pcpsdev.h
  • REV_HAS_IRIG_TIME_TCR511PCI : pcpsdev.h
  • REV_HAS_IRIG_TIME_TCR511PEX : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_GPS170PEX : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_PEX511 : pcpsdev.h
  • REV_HAS_IRQ_FIX_MINOR_TCR511PEX : pcpsdev.h
  • REV_HAS_SERIAL_HS_PCI509 : pcpsdev.h
  • REV_HAS_SERIAL_PC31PS31 : pcpsdev.h
  • REV_HAS_SYNC_TIME_PC31PS31 : pcpsdev.h
  • REV_HAS_UCAP_GPS167PCI : pcpsdev.h
  • REV_HAS_UCAP_GPS168PCI : pcpsdev.h
  • REV_HAS_UTC_OFFS_PC31PS31 : pcpsdev.h
  • REV_PCPS_IFTM_PC31PS31 : pcpsdev.h
  • REV_PCPS_LS_ANN_PC31PS31 : pcpsdev.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- s -

  • S_DEGREE : gpsutils.h
  • SEC100S_PER_DAY : mbgtime.h
  • SEC100S_PER_HOUR : mbgtime.h
  • SEC100S_PER_MIN : mbgtime.h
  • SEC100S_PER_SEC : mbgtime.h
  • SECS_PER_DAY : mbgtime.h
  • SECS_PER_HOUR : mbgtime.h
  • SECS_PER_MIN : mbgtime.h
  • SECS_PER_WEEK : mbgtime.h
  • SECTION_INFO : mbgdmpst.c
  • SECTION_OUTPUT : mbgdmpst.c
  • sizeof_PCPS_STIME : pcpsdefs.h
  • sizeof_PCPS_TIME : pcpsdefs.h
  • SUPP_MSK_ICODE_RX : gpsdefs.h
  • SUPP_MSK_ICODE_TX : gpsdefs.h
  • SYNTH_FLAG_PHASE_IGNORED : gpsdefs.h
  • SYNTH_PHASE_SYNC_LIMIT : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- t -

  • TM_ANT_DISCONN : gpsdefs.h
  • TM_ANT_SHORT : gpsdefs.h
  • TM_DL_ANN : gpsdefs.h
  • TM_DL_ENB : gpsdefs.h
  • TM_EXT_SYNC : gpsdefs.h
  • TM_HOLDOVER : gpsdefs.h
  • TM_LOCAL : gpsdefs.h
  • TM_LS_ANN : gpsdefs.h
  • TM_LS_ANN_NEG : gpsdefs.h
  • TM_LS_ENB : gpsdefs.h
  • TM_MSK_TIME_VALID : gpsdefs.h
  • TM_NO_POS : gpsdefs.h
  • TM_NO_SYNC : gpsdefs.h
  • TM_NO_WARM : gpsdefs.h
  • TM_SCALE_GPS : gpsdefs.h
  • TM_SCALE_TAI : gpsdefs.h
  • TM_SYN_FLAG : gpsdefs.h
  • TM_UTC : gpsdefs.h
  • TRACK : gpsdefs.h
  • TZ_INFO_CET_CEST_DE : gpsdefs.h
  • TZ_INFO_CET_CEST_EN : gpsdefs.h
  • TZ_INFO_EET_EEST_DE : gpsdefs.h
  • TZ_INFO_EET_EEST_EN : gpsdefs.h
  • TZ_INFO_UTC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- u -

  • UPDA_166 : gpsdefs.h
  • UPDA_BC : gpsdefs.h
  • USB_DEV_CMC : usbdefs.h
  • USB_DEV_CPC_01 : usbdefs.h
  • USB_DEV_MSF51USB : usbdefs.h
  • USB_DEV_SCU_USB : usbdefs.h
  • USB_DEV_TCR51USB : usbdefs.h
  • USB_DEV_TSU_01 : usbdefs.h
  • USB_DEV_USB5131 : usbdefs.h
  • USB_DEV_WWVB51USB : usbdefs.h
  • USB_VENDOR_MEINBERG : usbdefs.h
  • USE_PCPS_HR_TIME : xhrtime.c
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- w -

  • WARM_166 : gpsdefs.h
  • WARM_BC : gpsdefs.h
  • wchar_t : mbg_tgt.h
  • WORD_OF : words.h
  • WORD_OF_P : words.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- x -

  • XMRS_MSK_IS_ACCURATE : gpsdefs.h
  • XMRS_MSK_IS_LOCKED : gpsdefs.h
  • XMRS_MSK_IS_MASTER : gpsdefs.h
  • XMRS_MSK_NO_CONN : gpsdefs.h
  • XMRS_MSK_NO_SIGNAL : gpsdefs.h
  • XMRS_MSK_NOT_SETTLED : gpsdefs.h
  • XMRS_MSK_NOT_SUPP : gpsdefs.h
  • XMULTI_REF_STATUS_INVALID : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • MBG_MATCH_MODE : mbgdevio.h
  • PCPS_TYPES : pcpsdev.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- a -

  • ALT : gpsdefs.h
  • ANT_DISCONN : gpsdefs.h
  • ANT_INVALID : gpsdefs.h
  • ANT_RECONN : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- l -

  • LAN_IF_TYPE_PTP : gpsdefs.h
  • LAN_IF_TYPE_XPORT : gpsdefs.h
  • LAT : gpsdefs.h
  • LON : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- m -

  • MBG_BAUD_RATE_1200 : gpsdefs.h
  • MBG_BAUD_RATE_19200 : gpsdefs.h
  • MBG_BAUD_RATE_2400 : gpsdefs.h
  • MBG_BAUD_RATE_300 : gpsdefs.h
  • MBG_BAUD_RATE_38400 : gpsdefs.h
  • MBG_BAUD_RATE_4800 : gpsdefs.h
  • MBG_BAUD_RATE_600 : gpsdefs.h
  • MBG_BAUD_RATE_9600 : gpsdefs.h
  • MBG_FRAMING_7E1 : gpsdefs.h
  • MBG_FRAMING_7E2 : gpsdefs.h
  • MBG_FRAMING_7N2 : gpsdefs.h
  • MBG_FRAMING_7O1 : gpsdefs.h
  • MBG_FRAMING_7O2 : gpsdefs.h
  • MBG_FRAMING_8E1 : gpsdefs.h
  • MBG_FRAMING_8N1 : gpsdefs.h
  • MBG_FRAMING_8N2 : gpsdefs.h
  • MBG_FRAMING_8O1 : gpsdefs.h
  • MBG_IRIG_BIT_INV_CONFIG : gpsdefs.h
  • MBG_IRIG_BIT_INV_REF_OFFS : gpsdefs.h
  • MBG_IRIG_BIT_JITTER_TOO_LARGE : gpsdefs.h
  • MBG_IRIG_BIT_LOOP_LOCKED : gpsdefs.h
  • MBG_IRIG_BIT_MSG_DECODED : gpsdefs.h
  • MBG_IRIG_BIT_MSG_INCONSISTENT : gpsdefs.h
  • MBG_IRIG_BIT_PPS_ACTIVE : gpsdefs.h
  • MBG_IRIG_BIT_WARMED_UP : gpsdefs.h
  • MBG_MATCH_ANY : mbgdevio.h
  • MBG_MATCH_EXACTLY : mbgdevio.h
  • MBG_MATCH_MODEL : mbgdevio.h
  • MBG_OPT_BIT_EMU_SYNC : gpsdefs.h
  • MBG_OPT_BIT_STR_UTC : gpsdefs.h
  • MBG_PS_BIT_BAUD_RATE : gpsdefs.h
  • MBG_PS_BIT_BAUD_RATE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_BAUD_RATE_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_FLAGS : gpsdefs.h
  • MBG_PS_BIT_FLAGS_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_FRAMING : gpsdefs.h
  • MBG_PS_BIT_FRAMING_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_FRAMING_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_HS : gpsdefs.h
  • MBG_PS_BIT_HS_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_STR_MODE : gpsdefs.h
  • MBG_PS_BIT_STR_MODE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_STR_MODE_OVR_SW : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE_OVR_DEV : gpsdefs.h
  • MBG_PS_BIT_STR_TYPE_OVR_SW : gpsdefs.h
  • MBG_SYS_BIT_CPU_PLL_FAILED : gpsdefs.h
  • MBG_SYS_BIT_INV_RTC : gpsdefs.h
  • MBG_SYS_BIT_INV_TIME : gpsdefs.h
  • MBG_SYS_BIT_TIME_SET_VIA_API : gpsdefs.h
  • MBG_TIME_SCALE_DEFAULT : gpsdefs.h
  • MBG_TIME_SCALE_GPS : gpsdefs.h
  • MBG_TIME_SCALE_TAI : gpsdefs.h
  • MBG_USB_CLASS_CMC : usbdefs.h
  • MBG_USB_CLASS_CPC : usbdefs.h
  • MBG_USB_CLASS_DCF : usbdefs.h
  • MBG_USB_CLASS_MSF : usbdefs.h
  • MBG_USB_CLASS_NONE : usbdefs.h
  • MBG_USB_CLASS_SCU : usbdefs.h
  • MBG_USB_CLASS_TCR : usbdefs.h
  • MBG_USB_CLASS_TSU : usbdefs.h
  • MBG_USB_CLASS_WWVB : usbdefs.h
  • MBGUSB_EP_IDX_HOST_IN : usbdefs.h
  • MBGUSB_EP_IDX_HOST_IN_CYCLIC : usbdefs.h
  • MBGUSB_EP_IDX_HOST_OUT : usbdefs.h
  • MBGUSB_MAX_ENDPOINTS : usbdefs.h
  • MULTI_REF_10MHZ : gpsdefs.h
  • MULTI_REF_10MHZ_PPS : gpsdefs.h
  • MULTI_REF_FREQ : gpsdefs.h
  • MULTI_REF_GPS : gpsdefs.h
  • MULTI_REF_IRIG : gpsdefs.h
  • MULTI_REF_NONE : gpsdefs.h
  • MULTI_REF_NTP : gpsdefs.h
  • MULTI_REF_PPS : gpsdefs.h
  • MULTI_REF_PTP : gpsdefs.h
  • MULTI_REF_PTP_E1 : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- n -

  • N_BVAR_BIT : gpsdefs.h
  • N_COM_HS : gpsdefs.h
  • N_ELLIPSOIDS : mbggeo.h
  • N_GPS_FEATURE : gpsdefs.h
  • N_GPS_MODEL : gpsdefs.h
  • N_GPS_OSC : gpsdefs.h
  • N_GPS_PLATFORMS : gpsdefs.h
  • N_ICODE_RX : gpsdefs.h
  • N_ICODE_TX : gpsdefs.h
  • N_IP4_BIT : gpsdefs.h
  • N_LAN_IF_TYPE : gpsdefs.h
  • N_LLA : gpsdefs.h
  • N_MBG_BAUD_RATES : gpsdefs.h
  • N_MBG_DEBUG_BIT : gpsdefs.h
  • N_MBG_FRAMINGS : gpsdefs.h
  • N_MBG_MATCH_MODE : mbgdevio.h
  • N_MBG_OPT_BIT : gpsdefs.h
  • N_MBG_PS_BIT : gpsdefs.h
  • N_MBG_TIME_SCALE : gpsdefs.h
  • N_MBG_USB_CLASS : usbdefs.h
  • N_MULTI_REF : gpsdefs.h
  • N_MULTI_REF_STATUS_BITS : gpsdefs.h
  • N_PC_GPS_CMD : pcpsdefs.h
  • N_PCI_ASIC_MAJOR : pci_asic.h
  • N_PCPS_BD : pcpsdefs.h
  • N_PCPS_DEV_TYPE : pcpsdev.h
  • N_PCPS_FR_DCF : pcpsdefs.h
  • N_PCPS_MOD_DCF : pcpsdefs.h
  • N_PCPS_REF : pcpsdefs.h
  • N_PCPS_TZCODE : pcpsdefs.h
  • N_POUT_MODES : gpsdefs.h
  • N_PTP_CFG_BIT : gpsdefs.h
  • N_PTP_CLOCK_ACCURACY : gpsdefs.h
  • N_PTP_DELAY_MECH : gpsdefs.h
  • N_PTP_FLAG_BIT : gpsdefs.h
  • N_PTP_NW_PROT : gpsdefs.h
  • N_PTP_PORT_STATE : gpsdefs.h
  • N_PZF_CORR_STATE : pcpsdefs.h
  • N_STR_MODE : gpsdefs.h
  • N_STR_MODE_0 : gpsdefs.h
  • N_STR_MODE_1 : gpsdefs.h
  • N_SYNTH_STATE : gpsdefs.h
  • N_XMRS_BITS : gpsdefs.h
  • N_XYZ : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- z -

  • ZP : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- b -

  • BESSEL : mbggeo.h
  • BVAR_BIT_ALM_NOT_COMPLETE : gpsdefs.h
  • BVAR_BIT_CFGH_INVALID : gpsdefs.h
  • BVAR_BIT_IONO_INVALID : gpsdefs.h
  • BVAR_BIT_RCVR_POS_INVALID : gpsdefs.h
  • BVAR_BIT_UTC_INVALID : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- f -

  • F_DBITS : gpsdefs.h
  • F_PRTY : gpsdefs.h
  • F_STBITS : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- g -

  • GPS_FEAT_5_MHZ : gpsdefs.h
  • GPS_FEAT_DCFMARKS : gpsdefs.h
  • GPS_FEAT_IGNORE_LOCK : gpsdefs.h
  • GPS_FEAT_IRIG_CTRL_BITS : gpsdefs.h
  • GPS_FEAT_IRIG_RX : gpsdefs.h
  • GPS_FEAT_IRIG_TX : gpsdefs.h
  • GPS_FEAT_LAN_IP4 : gpsdefs.h
  • GPS_FEAT_MULTI_REF : gpsdefs.h
  • GPS_FEAT_NAV_ENGINE_SETTINGS : gpsdefs.h
  • GPS_FEAT_OPT_SETTINGS : gpsdefs.h
  • GPS_FEAT_PPM : gpsdefs.h
  • GPS_FEAT_PPS : gpsdefs.h
  • GPS_FEAT_PTP : gpsdefs.h
  • GPS_FEAT_RCV_TIMEOUT : gpsdefs.h
  • GPS_FEAT_SYNTH : gpsdefs.h
  • GPS_FEAT_TIME_SCALE : gpsdefs.h
  • GPS_FEAT_XMULTI_REF : gpsdefs.h
  • GPS_MODEL_AM511 : gpsdefs.h
  • GPS_MODEL_FRC511PEX : gpsdefs.h
  • GPS_MODEL_GEN170 : gpsdefs.h
  • GPS_MODEL_GPS161 : gpsdefs.h
  • GPS_MODEL_GPS162 : gpsdefs.h
  • GPS_MODEL_GPS163 : gpsdefs.h
  • GPS_MODEL_GPS164 : gpsdefs.h
  • GPS_MODEL_GPS166 : gpsdefs.h
  • GPS_MODEL_GPS167 : gpsdefs.h
  • GPS_MODEL_GPS167PC : gpsdefs.h
  • GPS_MODEL_GPS167PCI : gpsdefs.h
  • GPS_MODEL_GPS167SV : gpsdefs.h
  • GPS_MODEL_GPS168PCI : gpsdefs.h
  • GPS_MODEL_GPS169PCI : gpsdefs.h
  • GPS_MODEL_GPS170 : gpsdefs.h
  • GPS_MODEL_GPS170PCI : gpsdefs.h
  • GPS_MODEL_GPS170PEX : gpsdefs.h
  • GPS_MODEL_GRC170 : gpsdefs.h
  • GPS_MODEL_MGR170 : gpsdefs.h
  • GPS_MODEL_MSF511 : gpsdefs.h
  • GPS_MODEL_PTP270PEX : gpsdefs.h
  • GPS_MODEL_PZF511 : gpsdefs.h
  • GPS_MODEL_TCR167PCI : gpsdefs.h
  • GPS_MODEL_TCR170PEX : gpsdefs.h
  • GPS_MODEL_TCR511 : gpsdefs.h
  • GPS_MODEL_UNKNOWN : gpsdefs.h
  • GPS_MODEL_WWVB511 : gpsdefs.h
  • GPS_OSC_OCXO_DHQ : gpsdefs.h
  • GPS_OSC_OCXO_HQ : gpsdefs.h
  • GPS_OSC_OCXO_LQ : gpsdefs.h
  • GPS_OSC_OCXO_MQ : gpsdefs.h
  • GPS_OSC_OCXO_XHQ : gpsdefs.h
  • GPS_OSC_RUBIDIUM : gpsdefs.h
  • GPS_OSC_TCXO_HQ : gpsdefs.h
  • GPS_OSC_TCXO_LQ : gpsdefs.h
  • GPS_OSC_TCXO_MQ : gpsdefs.h
  • GPS_OSC_UNKNOWN : gpsdefs.h
  • GPS_PLATFORM_AIRBORNE_1G : gpsdefs.h
  • GPS_PLATFORM_AIRBORNE_2G : gpsdefs.h
  • GPS_PLATFORM_AIRBORNE_4G : gpsdefs.h
  • GPS_PLATFORM_AUTOMOTIVE : gpsdefs.h
  • GPS_PLATFORM_FIXED : gpsdefs.h
  • GPS_PLATFORM_PEDESTRIAN : gpsdefs.h
  • GPS_PLATFORM_PORTABLE : gpsdefs.h
  • GPS_PLATFORM_SEA : gpsdefs.h
  • GPS_PLATFORM_STATIONARY : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- h -

  • HS_NONE : gpsdefs.h
  • HS_RTSCTS : gpsdefs.h
  • HS_XONXOFF : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- i -

  • ICODE_RX_A002_A003 : gpsdefs.h
  • ICODE_RX_A132_A133 : gpsdefs.h
  • ICODE_RX_AFNOR : gpsdefs.h
  • ICODE_RX_AFNOR_DC : gpsdefs.h
  • ICODE_RX_B002_B003 : gpsdefs.h
  • ICODE_RX_B006_B007 : gpsdefs.h
  • ICODE_RX_B122_B123 : gpsdefs.h
  • ICODE_RX_B126_B127 : gpsdefs.h
  • ICODE_RX_IEEE1344 : gpsdefs.h
  • ICODE_RX_IEEE1344_DC : gpsdefs.h
  • ICODE_TX_A002_A132 : gpsdefs.h
  • ICODE_TX_A003_A133 : gpsdefs.h
  • ICODE_TX_AFNOR : gpsdefs.h
  • ICODE_TX_B002_B122 : gpsdefs.h
  • ICODE_TX_B003_B123 : gpsdefs.h
  • ICODE_TX_B006_B126 : gpsdefs.h
  • ICODE_TX_B007_B127 : gpsdefs.h
  • ICODE_TX_B220_1344 : gpsdefs.h
  • ICODE_TX_B222 : gpsdefs.h
  • ICODE_TX_B223 : gpsdefs.h
  • ICODE_TX_IEEE1344 : gpsdefs.h
  • IP4_BIT_DHCP : gpsdefs.h
  • IP4_BIT_LINK : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- p -

  • PC_GPS_ALL_PORT_INFO : pcpsdefs.h
  • PC_GPS_ALL_POUT_INFO : pcpsdefs.h
  • PC_GPS_ALL_STR_TYPE_INFO : pcpsdefs.h
  • PC_GPS_ALM : pcpsdefs.h
  • PC_GPS_ANT_CABLE_LEN : pcpsdefs.h
  • PC_GPS_ANT_INFO : pcpsdefs.h
  • PC_GPS_ASCII_MSG : pcpsdefs.h
  • PC_GPS_BVAR_STAT : pcpsdefs.h
  • PC_GPS_CFGH : pcpsdefs.h
  • PC_GPS_CMD : pcpsdefs.h
  • PC_GPS_CMD_BOOT : pcpsdefs.h
  • PC_GPS_CMD_INIT_DAC : pcpsdefs.h
  • PC_GPS_CMD_INIT_SYS : pcpsdefs.h
  • PC_GPS_CMD_INIT_USER : pcpsdefs.h
  • PC_GPS_ENABLE_FLAGS : pcpsdefs.h
  • PC_GPS_EPH : pcpsdefs.h
  • PC_GPS_IDENT : pcpsdefs.h
  • PC_GPS_IONO : pcpsdefs.h
  • PC_GPS_IP4_SETTINGS : pcpsdefs.h
  • PC_GPS_IP4_STATE : pcpsdefs.h
  • PC_GPS_LAN_IF_INFO : pcpsdefs.h
  • PC_GPS_PORT_PARM : pcpsdefs.h
  • PC_GPS_PORT_SETTINGS_IDX : pcpsdefs.h
  • PC_GPS_POS : pcpsdefs.h
  • PC_GPS_POS_LLA : pcpsdefs.h
  • PC_GPS_POS_XYZ : pcpsdefs.h
  • PC_GPS_POUT_SETTINGS_IDX : pcpsdefs.h
  • PC_GPS_PTP_CFG : pcpsdefs.h
  • PC_GPS_PTP_STATE : pcpsdefs.h
  • PC_GPS_RECEIVER_INFO : pcpsdefs.h
  • PC_GPS_STAT_INFO : pcpsdefs.h
  • PC_GPS_SW_REV : pcpsdefs.h
  • PC_GPS_TIME : pcpsdefs.h
  • PC_GPS_TIME_SCALE : pcpsdefs.h
  • PC_GPS_TZDL : pcpsdefs.h
  • PC_GPS_UCAP : pcpsdefs.h
  • PC_GPS_UTC : pcpsdefs.h
  • PCI_ASIC_MAJOR_FRC511PEX : pci_asic.h
  • PCI_ASIC_MAJOR_GPS170PEX : pci_asic.h
  • PCI_ASIC_MAJOR_PCI_0 : pci_asic.h
  • PCI_ASIC_MAJOR_PCI_1 : pci_asic.h
  • PCI_ASIC_MAJOR_PEX511 : pci_asic.h
  • PCI_ASIC_MAJOR_PTP270PEX : pci_asic.h
  • PCI_ASIC_MAJOR_TCR170PEX : pci_asic.h
  • PCI_ASIC_MAJOR_TCR511PEX : pci_asic.h
  • PCPS_BD_1200 : pcpsdefs.h
  • PCPS_BD_19200 : pcpsdefs.h
  • PCPS_BD_2400 : pcpsdefs.h
  • PCPS_BD_300 : pcpsdefs.h
  • PCPS_BD_4800 : pcpsdefs.h
  • PCPS_BD_600 : pcpsdefs.h
  • PCPS_BD_9600 : pcpsdefs.h
  • PCPS_FR_7E2 : pcpsdefs.h
  • PCPS_FR_8E1 : pcpsdefs.h
  • PCPS_FR_8N1 : pcpsdefs.h
  • PCPS_FR_8N2 : pcpsdefs.h
  • PCPS_MOD_MIN : pcpsdefs.h
  • PCPS_MOD_REQ : pcpsdefs.h
  • PCPS_MOD_RSVD : pcpsdefs.h
  • PCPS_MOD_SEC : pcpsdefs.h
  • PCPS_REF_DCF : pcpsdefs.h
  • PCPS_REF_FRC : pcpsdefs.h
  • PCPS_REF_GPS : pcpsdefs.h
  • PCPS_REF_IRIG : pcpsdefs.h
  • PCPS_REF_MSF : pcpsdefs.h
  • PCPS_REF_NONE : pcpsdefs.h
  • PCPS_REF_PTP : pcpsdefs.h
  • PCPS_REF_WWVB : pcpsdefs.h
  • PCPS_TYPE_FRC511PEX : pcpsdev.h
  • PCPS_TYPE_GPS167PC : pcpsdev.h
  • PCPS_TYPE_GPS167PCI : pcpsdev.h
  • PCPS_TYPE_GPS168PCI : pcpsdev.h
  • PCPS_TYPE_GPS169PCI : pcpsdev.h
  • PCPS_TYPE_GPS170PCI : pcpsdev.h
  • PCPS_TYPE_GPS170PEX : pcpsdev.h
  • PCPS_TYPE_MSF51USB : pcpsdev.h
  • PCPS_TYPE_PC31 : pcpsdev.h
  • PCPS_TYPE_PC32 : pcpsdev.h
  • PCPS_TYPE_PCI32 : pcpsdev.h
  • PCPS_TYPE_PCI509 : pcpsdev.h
  • PCPS_TYPE_PCI510 : pcpsdev.h
  • PCPS_TYPE_PCI511 : pcpsdev.h
  • PCPS_TYPE_PEX511 : pcpsdev.h
  • PCPS_TYPE_PS31 : pcpsdev.h
  • PCPS_TYPE_PS31_OLD : pcpsdev.h
  • PCPS_TYPE_PTP270PEX : pcpsdev.h
  • PCPS_TYPE_TCR167PCI : pcpsdev.h
  • PCPS_TYPE_TCR170PEX : pcpsdev.h
  • PCPS_TYPE_TCR510PCI : pcpsdev.h
  • PCPS_TYPE_TCR511PCI : pcpsdev.h
  • PCPS_TYPE_TCR511PEX : pcpsdev.h
  • PCPS_TYPE_TCR51USB : pcpsdev.h
  • PCPS_TYPE_USB5131 : pcpsdev.h
  • PCPS_TYPE_WWVB51USB : pcpsdev.h
  • PCPS_TZCODE_CET : pcpsdefs.h
  • PCPS_TZCODE_CET_CEST : pcpsdefs.h
  • PCPS_TZCODE_EET_EEST : pcpsdefs.h
  • PCPS_TZCODE_UTC : pcpsdefs.h
  • POUT_10MHZ : gpsdefs.h
  • POUT_ALL_SYNC : gpsdefs.h
  • POUT_CYCLIC_PULSE : gpsdefs.h
  • POUT_DCF77 : gpsdefs.h
  • POUT_IDLE : gpsdefs.h
  • POUT_PER_HOUR : gpsdefs.h
  • POUT_PER_MIN : gpsdefs.h
  • POUT_PER_SEC : gpsdefs.h
  • POUT_POS_OK : gpsdefs.h
  • POUT_SINGLE_SHOT : gpsdefs.h
  • POUT_TIME_SYNC : gpsdefs.h
  • POUT_TIMECODE : gpsdefs.h
  • POUT_TIMER : gpsdefs.h
  • POUT_TIMESTR : gpsdefs.h
  • PTP_CFG_BIT_TIME_SCALE_IS_PTP : gpsdefs.h
  • PTP_CFG_BIT_V1_HW_COMPAT : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_100us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_10us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_1us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_250us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25ns : gpsdefs.h
  • PTP_CLOCK_ACCURACY_25us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_2_5ms : gpsdefs.h
  • PTP_CLOCK_ACCURACY_2_5us : gpsdefs.h
  • PTP_CLOCK_ACCURACY_MORE_10s : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_1 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_2 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_3 : gpsdefs.h
  • PTP_CLOCK_ACCURACY_RESERVED_4 : gpsdefs.h
  • PTP_DELAY_MECH_BIT_E2E : gpsdefs.h
  • PTP_DELAY_MECH_BIT_P2P : gpsdefs.h
  • PTP_FLAG_BIT_IS_SLAVE : gpsdefs.h
  • PTP_FLAG_BIT_LS_ANN : gpsdefs.h
  • PTP_FLAG_BIT_LS_ANN_NEG : gpsdefs.h
  • PTP_FLAG_BIT_SLAVE_ONLY : gpsdefs.h
  • PTP_FLAG_BIT_TIMESCALE_IS_PTP : gpsdefs.h
  • PTP_NW_PROT_BIT_CONTROL_NET : gpsdefs.h
  • PTP_NW_PROT_BIT_DEVICE_NET : gpsdefs.h
  • PTP_NW_PROT_BIT_IEEE_802_3 : gpsdefs.h
  • PTP_NW_PROT_BIT_PROFINET : gpsdefs.h
  • PTP_NW_PROT_BIT_RESERVED : gpsdefs.h
  • PTP_NW_PROT_BIT_UDP_IPV4 : gpsdefs.h
  • PTP_NW_PROT_BIT_UDP_IPV6 : gpsdefs.h
  • PTP_PORT_STATE_DISABLED : gpsdefs.h
  • PTP_PORT_STATE_FAULTY : gpsdefs.h
  • PTP_PORT_STATE_INITIALIZING : gpsdefs.h
  • PTP_PORT_STATE_LISTENING : gpsdefs.h
  • PTP_PORT_STATE_MASTER : gpsdefs.h
  • PTP_PORT_STATE_PASSIVE : gpsdefs.h
  • PTP_PORT_STATE_PRE_MASTER : gpsdefs.h
  • PTP_PORT_STATE_SLAVE : gpsdefs.h
  • PTP_PORT_STATE_UNCALIBRATED : gpsdefs.h
  • PTP_PORT_STATE_UNINITIALIZED : gpsdefs.h
  • PZF_CORR_CHECK : pcpsdefs.h
  • PZF_CORR_FINE : pcpsdefs.h
  • PZF_CORR_RAW : pcpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- s -

  • SCU_CLK_INFO_DCF_AM : gpsdefs.h
  • SCU_CLK_INFO_DCF_PZF : gpsdefs.h
  • SCU_CLK_INFO_GPS : gpsdefs.h
  • SCU_CLK_INFO_TCR : gpsdefs.h
  • STR_AUTO : gpsdefs.h
  • STR_ON_REQ : gpsdefs.h
  • STR_ON_REQ_SEC : gpsdefs.h
  • STR_PER_MIN : gpsdefs.h
  • STR_PER_SEC : gpsdefs.h
  • STR_UCAP : gpsdefs.h
  • STR_UCAP_REQ : gpsdefs.h
  • SYNTH_DISABLED : gpsdefs.h
  • SYNTH_DRIFTING : gpsdefs.h
  • SYNTH_FREE : gpsdefs.h
  • SYNTH_OFF : gpsdefs.h
  • SYNTH_SYNC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- t -

  • TIME_MODE_DISABLED : gpsdefs.h
  • TIME_MODE_FIXED : gpsdefs.h
  • TIME_MODE_SURVEY_IN : gpsdefs.h
  • TM_BIT_ANT_DISCONN : gpsdefs.h
  • TM_BIT_ANT_SHORT : gpsdefs.h
  • TM_BIT_DL_ANN : gpsdefs.h
  • TM_BIT_DL_ENB : gpsdefs.h
  • TM_BIT_EXT_SYNC : gpsdefs.h
  • TM_BIT_HOLDOVER : gpsdefs.h
  • TM_BIT_LOCAL : gpsdefs.h
  • TM_BIT_LS_ANN : gpsdefs.h
  • TM_BIT_LS_ANN_NEG : gpsdefs.h
  • TM_BIT_LS_ENB : gpsdefs.h
  • TM_BIT_NO_POS : gpsdefs.h
  • TM_BIT_NO_SYNC : gpsdefs.h
  • TM_BIT_NO_WARM : gpsdefs.h
  • TM_BIT_SCALE_GPS : gpsdefs.h
  • TM_BIT_SCALE_TAI : gpsdefs.h
  • TM_BIT_SYN_FLAG : gpsdefs.h
  • TM_BIT_UTC : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- w -

  • WGS84 : mbggeo.h
  • WRN_10MHZ_MISSING : gpsdefs.h
  • WRN_10MHZ_UNLOCK : gpsdefs.h
  • WRN_1PPS_MISSING : gpsdefs.h
  • WRN_1PPS_UNLOCK : gpsdefs.h
  • WRN_ANT_DISCONN : gpsdefs.h
  • WRN_COLD_BOOT : gpsdefs.h
  • WRN_GPS_UNLOCK : gpsdefs.h
  • WRN_MODULE_MODE : gpsdefs.h
  • WRN_WARM_BOOT : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- x -

  • XMRS_BIT_IS_ACCURATE : gpsdefs.h
  • XMRS_BIT_IS_LOCKED : gpsdefs.h
  • XMRS_BIT_IS_MASTER : gpsdefs.h
  • XMRS_BIT_NO_CONN : gpsdefs.h
  • XMRS_BIT_NO_SIGNAL : gpsdefs.h
  • XMRS_BIT_NOT_SETTLED : gpsdefs.h
  • XMRS_BIT_NOT_SUPP : gpsdefs.h
  • XP : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • p
  • s
  • t
  • w
  • x
  • y
  • z

- y -

  • YP : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- c -

  • check_timeout() : mbgtime.h
  • check_user_captures() : mbgdevio_demo.c
  • clear_time() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- l -

  • lla_to_dms() : mbggeo.h
  • lla_to_xyz() : mbggeo.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- m -

  • main() : hrtime.c , mbgdevio_demo.c , mbgdmpst.c , xhrtime.c
  • mbg_close_device() : mbgdevio.h
  • mbg_clr_ucap_buff() : mbgdevio.h
  • mbg_delta_pc_cycles() : pcpsdev.h
  • mbg_dev_can_clr_ucap_buff() : mbgdevio.h
  • mbg_dev_has_asic_features() : mbgdevio.h
  • mbg_dev_has_asic_version() : mbgdevio.h
  • mbg_dev_has_cab_len() : mbgdevio.h
  • mbg_dev_has_event_time() : mbgdevio.h
  • mbg_dev_has_fast_hr_timestamp() : mbgdevio.h
  • mbg_dev_has_generic_io() : mbgdevio.h
  • mbg_dev_has_gps_data() : mbgdevio.h
  • mbg_dev_has_hr_time() : mbgdevio.h
  • mbg_dev_has_irig() : mbgdevio.h
  • mbg_dev_has_irig_ctrl_bits() : mbgdevio.h
  • mbg_dev_has_irig_time() : mbgdevio.h
  • mbg_dev_has_irig_tx() : mbgdevio.h
  • mbg_dev_has_lan_intf() : mbgdevio.h
  • mbg_dev_has_mod() : mbgdevio.h
  • mbg_dev_has_opt_flags() : mbgdevio.h
  • mbg_dev_has_pcps_tzdl() : mbgdevio.h
  • mbg_dev_has_ptp() : mbgdevio.h
  • mbg_dev_has_receiver_info() : mbgdevio.h
  • mbg_dev_has_ref_offs() : mbgdevio.h
  • mbg_dev_has_serial_hs() : mbgdevio.h
  • mbg_dev_has_signal() : mbgdevio.h
  • mbg_dev_has_synth() : mbgdevio.h
  • mbg_dev_has_time_scale() : mbgdevio.h
  • mbg_dev_has_tz() : mbgdevio.h
  • mbg_dev_has_tzcode() : mbgdevio.h
  • mbg_dev_has_tzdl() : mbgdevio.h
  • mbg_dev_has_ucap() : mbgdevio.h
  • mbg_dev_has_utc_parm() : mbgdevio.h
  • mbg_dev_is_dcf() : mbgdevio.h
  • mbg_dev_is_gps() : mbgdevio.h
  • mbg_dev_is_irig_rx() : mbgdevio.h
  • mbg_dev_is_lwr() : mbgdevio.h
  • mbg_dev_is_msf() : mbgdevio.h
  • mbg_dev_is_wwvb() : mbgdevio.h
  • mbg_dump_time_adjustment_status() : mbgdmpst.c
  • mbg_find_devices() : mbgdevio.h
  • mbg_find_devices_with_names() : mbgdevio.h
  • mbg_free_device_name_list() : mbgdevio.h
  • mbg_generic_io() : mbgdevio.h
  • mbg_generic_read() : mbgdevio.h
  • mbg_generic_read_gps() : mbgdevio.h
  • mbg_generic_write() : mbgdevio.h
  • mbg_generic_write_gps() : mbgdevio.h
  • mbg_get_asic_features() : mbgdevio.h
  • mbg_get_asic_version() : mbgdevio.h
  • mbg_get_default_cycles_frequency() : mbgdevio.h
  • mbg_get_default_cycles_frequency_from_dev() : mbgdevio.h
  • mbg_get_device_info() : mbgdevio.h
  • mbg_get_drvr_info() : mbgdevio.h
  • mbg_get_fast_hr_timestamp() : mbgdevio.h
  • mbg_get_fast_hr_timestamp_comp() : mbgdevio.h
  • mbg_get_fast_hr_timestamp_cycles() : mbgdevio.h
  • mbg_get_gps_all_pout_info() : mbgdevio.h
  • mbg_get_gps_ant_cable_len() : mbgdevio.h
  • mbg_get_gps_ant_info() : mbgdevio.h
  • mbg_get_gps_bvar_stat() : mbgdevio.h
  • mbg_get_gps_enable_flags() : mbgdevio.h
  • mbg_get_gps_port_parm() : mbgdevio.h
  • mbg_get_gps_pos() : mbgdevio.h
  • mbg_get_gps_receiver_info() : mbgdevio.h
  • mbg_get_gps_stat_info() : mbgdevio.h
  • mbg_get_gps_sw_rev() : mbgdevio.h
  • mbg_get_gps_time() : mbgdevio.h
  • mbg_get_gps_tzdl() : mbgdevio.h
  • mbg_get_gps_ucap() : mbgdevio.h
  • mbg_get_hr_time() : mbgdevio.h
  • mbg_get_hr_time_comp() : mbgdevio.h
  • mbg_get_hr_time_cycles() : mbgdevio.h
  • mbg_get_ip4_settings() : mbgdevio.h
  • mbg_get_ip4_state() : mbgdevio.h
  • mbg_get_irig_ctrl_bits() : mbgdevio.h
  • mbg_get_irig_rx_info() : mbgdevio.h
  • mbg_get_irig_time() : mbgdevio.h
  • mbg_get_irig_tx_info() : mbgdevio.h
  • mbg_get_irq_stat_info() : mbgdevio.h
  • mbg_get_lan_if_info() : mbgdevio.h
  • mbg_get_opt_info() : mbgdevio.h
  • mbg_get_pc_cycles() : pcpsdev.h
  • mbg_get_pc_cycles_frequency() : pcpsdev.h
  • mbg_get_pcps_tzdl() : mbgdevio.h
  • mbg_get_process_affinity() : mbgdevio.h
  • mbg_get_ptp_cfg_info() : mbgdevio.h
  • mbg_get_ptp_state() : mbgdevio.h
  • mbg_get_ref_offs() : mbgdevio.h
  • mbg_get_ref_time_status() : mbgsvcio.h
  • mbg_get_serial() : mbgdevio.h
  • mbg_get_serial_settings() : mbgdevio.h
  • mbg_get_status_port() : mbgdevio.h
  • mbg_get_sync_time() : mbgdevio.h
  • mbg_get_synth() : mbgdevio.h
  • mbg_get_synth_state() : mbgdevio.h
  • mbg_get_time() : mbgdevio.h
  • mbg_get_time_cycles() : mbgdevio.h
  • mbg_get_time_scale_info() : mbgdevio.h
  • mbg_get_time_sec_change() : mbgdevio.h
  • mbg_get_tzcode() : mbgdevio.h
  • mbg_get_ucap_entries() : mbgdevio.h
  • mbg_get_ucap_event() : mbgdevio.h
  • mbg_get_utc_parm() : mbgdevio.h
  • mbg_get_xhrt_cycles_frequency() : mbgdevio.h
  • mbg_get_xhrt_time_as_filetime() : mbgdevio.h
  • mbg_get_xhrt_time_as_pcps_hr_time() : mbgdevio.h
  • mbg_init_pc_cycles_frequency() : mbgdevio.h
  • mbg_open_device() : mbgdevio.h
  • mbg_open_device_by_name() : mbgdevio.h
  • mbg_ref_time_accessible() : mbgsvcio.h
  • mbg_save_serial_settings() : mbgdevio.h
  • mbg_set_current_process_affinity_to_cpu() : mbgdevio.h
  • mbg_set_event_time() : mbgdevio.h
  • mbg_set_gps_ant_cable_len() : mbgdevio.h
  • mbg_set_gps_cmd() : mbgdevio.h
  • mbg_set_gps_enable_flags() : mbgdevio.h
  • mbg_set_gps_port_parm() : mbgdevio.h
  • mbg_set_gps_port_settings() : mbgdevio.h
  • mbg_set_gps_port_settings_idx() : mbgdevio.h
  • mbg_set_gps_pos_lla() : mbgdevio.h
  • mbg_set_gps_pos_xyz() : mbgdevio.h
  • mbg_set_gps_pout_settings() : mbgdevio.h
  • mbg_set_gps_pout_settings_idx() : mbgdevio.h
  • mbg_set_gps_time() : mbgdevio.h
  • mbg_set_gps_tzdl() : mbgdevio.h
  • mbg_set_ip4_settings() : mbgdevio.h
  • mbg_set_irig_rx_settings() : mbgdevio.h
  • mbg_set_irig_tx_settings() : mbgdevio.h
  • mbg_set_opt_settings() : mbgdevio.h
  • mbg_set_pcps_tzdl() : mbgdevio.h
  • mbg_set_process_affinity() : mbgdevio.h
  • mbg_set_ptp_cfg_settings() : mbgdevio.h
  • mbg_set_ref_offs() : mbgdevio.h
  • mbg_set_serial() : mbgdevio.h
  • mbg_set_synth() : mbgdevio.h
  • mbg_set_time() : mbgdevio.h
  • mbg_set_time_scale_settings() : mbgdevio.h
  • mbg_set_tzcode() : mbgdevio.h
  • mbg_set_utc_parm() : mbgdevio.h
  • mbg_setup_receiver_info() : mbgdevio.h
  • mbg_snprintf() : mbgutil.h
  • mbg_str_date() : mbgutil.h
  • mbg_str_date_short() : mbgutil.h
  • mbg_str_dev_name() : mbgutil.h
  • mbg_str_pcps_date() : mbgutil.h
  • mbg_str_pcps_date_short() : mbgutil.h
  • mbg_str_pcps_date_time() : mbgutil.h
  • mbg_str_pcps_hr_date() : mbgutil.h
  • mbg_str_pcps_hr_date_time_loc() : mbgutil.h
  • mbg_str_pcps_hr_date_time_utc() : mbgutil.h
  • mbg_str_pcps_hr_time() : mbgutil.h
  • mbg_str_pcps_hr_time_frac() : mbgutil.h
  • mbg_str_pcps_hr_time_offs() : mbgutil.h
  • mbg_str_pcps_hr_time_raw() : mbgutil.h
  • mbg_str_pcps_hr_tstamp_loc() : mbgutil.h
  • mbg_str_pcps_hr_tstamp_utc() : mbgutil.h
  • mbg_str_pcps_time() : mbgutil.h
  • mbg_str_pcps_time_long() : mbgutil.h
  • mbg_str_pcps_time_short() : mbgutil.h
  • mbg_str_pcps_tstamp_raw() : mbgutil.h
  • mbg_str_pos() : mbgutil.h
  • mbg_str_pos_alt() : mbgutil.h
  • mbg_str_pos_dms() : mbgutil.h
  • mbg_str_time() : mbgutil.h
  • mbg_str_time_long() : mbgutil.h
  • mbg_str_time_short() : mbgutil.h
  • mbg_str_tm_gps_date_time() : mbgutil.h
  • mbg_str_ucap() : mbgutil.h
  • mbg_strchar() : mbgutil.h
  • mbg_strncpy() : mbgutil.h
  • mbg_swab_double() : mbg_arch.h
  • mbg_thread_create() : mbgdevio.h
  • mbg_thread_set_affinity() : mbgdevio.h
  • mbg_thread_sleep_interruptible() : mbgdevio.h
  • mbg_thread_stop() : mbgdevio.h
  • mbg_time_adjustment_active() : mbgsvcio.h
  • mbg_xhrt_poll_thread_create() : mbgdevio.h
  • mbg_xhrt_poll_thread_stop() : mbgdevio.h
  • mbgdevio_check_version() : mbgdevio.h
  • mbgdevio_get_version() : mbgdevio.h
  • mbgsvcio_check_version() : mbgsvcio.h
  • mbgsvcio_get_version() : mbgsvcio.h
  • mbgutil_check_version() : mbgutil.h
  • mbgutil_get_version() : mbgutil.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- n -

  • n_days() : mbgtime.h
  • nano_time_to_double() : mbgtime.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- d -

  • date_of_year() : mbgtime.h
  • day_of_week() : mbgtime.h
  • day_of_year() : mbgtime.h
  • days_to_years() : mbgtime.h
  • distance() : mbggeo.h
  • dms_to_lla() : mbggeo.h
  • dms_to_rad() : mbggeo.h
  • dms_to_xyz() : mbggeo.h
  • double_to_nano_time() : mbgtime.h
  • dump_status() : mbgdmpst.c
  • dump_status_item() : mbgdmpst.c
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- e -

  • err_msg() : hrtime.c , mbgdevio_demo.c , xhrtime.c
  • err_tm() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- i -

  • init_mbggeo() : mbggeo.h
  • is_leap_year() : mbgtime.h
Generated on Tue Aug 18 16:18:12 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- p -

  • print_date_time() : mbgdevio_demo.c
  • print_date_time_status() : mbgdevio_demo.c
  • print_dev_info() : mbgdevio_demo.c , xhrtime.c , hrtime.c
  • print_drvr_info() : xhrtime.c , hrtime.c , mbgdevio_demo.c
  • print_hr_time() : mbgdevio_demo.c
  • print_ptp_status() : mbgdevio_demo.c
  • print_receiver_position() : mbgdevio_demo.c
  • print_sec_changes() : mbgdevio_demo.c
  • print_sv_info() : mbgdevio_demo.c
  • print_utc_parameters() : mbgdevio_demo.c
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- r -

  • rad_to_dms() : mbggeo.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- s -

  • set_timeout() : mbgtime.h
  • setup_user_pos_from_dms() : mbggeo.h
  • setup_user_pos_from_lla() : mbggeo.h
  • setup_user_pos_from_xyz() : mbggeo.h
  • show_irig_ctrl_bits() : mbgdevio_demo.c
  • show_irig_debug_status() : mbgdevio_demo.c
  • show_lan_intf_state() : mbgdevio_demo.c
  • snprint_ip4_addr() : mbgdevio_demo.c
  • sprint_alt() : gpsutils.h
  • sprint_date() : mbgtime.h
  • sprint_day_date() : mbgtime.h
  • sprint_dms() : gpsutils.h
  • sprint_fixed_freq() : gpsutils.h
  • sprint_hr_time() : mbgdevio_demo.c
  • sprint_pos_geo() : gpsutils.h
  • sprint_short_time() : mbgtime.h
  • sprint_time() : mbgtime.h
  • sprint_tm() : mbgtime.h
  • sscan_date() : mbgtime.h
  • sscan_time() : mbgtime.h
  • stretch_timeout() : mbgtime.h
  • swap_alm_doubles() : gpsutils.h
  • swap_double() : gpsutils.h
  • swap_eph_doubles() : gpsutils.h
  • swap_iono_doubles() : gpsutils.h
  • swap_pos_doubles() : gpsutils.h
  • swap_utc_doubles() : gpsutils.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- t -

  • tm_to_wsec() : mbgtime.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- w -

  • wsec_to_tm() : mbgtime.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • i
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • w
  • x

- x -

  • xyz_to_lla() : mbggeo.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • b
  • c
  • d
  • g
  • h
  • i
  • l
  • m
  • p
  • r
  • s
  • t
  • u
  • w
  • x

- a -

  • ALL_PORT_INFO : pcpsdev.h
  • ALL_POUT_INFO : pcpsdev.h
  • ALL_STR_TYPE_INFO : pcpsdev.h
  • ANT_CABLE_LEN : gpsdefs.h

- b -

  • BAUD_RATE : gpsdefs.h
  • bit : words.h
  • BVAR_STAT : gpsdefs.h
  • byte : words.h

- c -

  • CFG : gpsdefs.h
  • CSUM : gpsdefs.h

- d -

  • DAC_VAL : gpsdefs.h
  • dword : words.h

- g -

  • GPS_CMD : gpsdefs.h

- h -

  • HEALTH : gpsdefs.h

- i -

  • IGNORE_LOCK : gpsdefs.h
  • int16_t : words.h
  • int32_t : words.h
  • int64_t : words.h
  • int8_t : words.h
  • IOD : gpsdefs.h
  • IP4_ADDR : gpsdefs.h

- l -

  • LLA : gpsdefs.h
  • longword : words.h

- m -

  • MBG_DBG_DATA : pcpsdev.h
  • MBG_DBG_PORT : pcpsdev.h
  • MBG_DEBUG_STATUS : gpsdefs.h
  • MBG_DEV_HANDLE : mbgdevio.h
  • MBG_DEVICE_LIST : mbgdevio.h
  • MBG_DEVICENAME_LIST : mbgdevio.h
  • MBG_HANDLE : mbg_tgt.h
  • MBG_IRIG_CTRL_BITS : pcpsdefs.h
  • MBG_PC_CYCLES : pcpsdev.h
  • MBG_PC_CYCLES_FREQUENCY : pcpsdev.h
  • MBG_PORT_HANDLE : mbg_tgt.h
  • MBG_REF_OFFS : gpsdefs.h
  • MULTI_REF_STATUS : gpsdefs.h

- p -

  • PCI_ASIC_FEATURES : pci_asic.h
  • PCI_ASIC_VERSION : pci_asic.h
  • PCPS_BUFF : pcpsdefs.h
  • PCPS_BUS_FLAGS : pcpsdev.h
  • PCPS_BUS_NUM : pcpsdev.h
  • PCPS_CMD_INFO : pcpsdefs.h
  • PCPS_DEV_ID : pcpsdev.h
  • PCPS_ERR_FLAGS : pcpsdev.h
  • PCPS_FEATURES : pcpsdev.h
  • PCPS_ID_STR : pcpsdefs.h
  • PCPS_IRIG_TIME : pcpsdefs.h
  • PCPS_IRQ_STAT_INFO : pcpsdev.h
  • PCPS_PORT_ADDR : pcpsdev.h
  • PCPS_REF_TYPE : pcpsdev.h
  • PCPS_SERIAL : pcpsdefs.h
  • PCPS_SLOT_NUM : pcpsdev.h
  • PCPS_SN_STR : pcpsdefs.h
  • PCPS_STATUS_PORT : pcpsdev.h
  • PCPS_STIME : pcpsdefs.h
  • PCPS_TIME : pcpsdefs.h
  • PCPS_TIME_STATUS : pcpsdefs.h
  • PCPS_TIME_STATUS_X : pcpsdefs.h
  • PCPS_TZCODE : pcpsdefs.h

- r -

  • RCV_TIMEOUT : gpsdefs.h
  • ROM_CSUM : gpsdefs.h

- s -

  • SVNO : gpsdefs.h

- t -

  • TM_STATUS_EXT : gpsdefs.h
  • TR_DISTANCE : pcpsdefs.h
  • TZ_NAME : gpsdefs.h

- u -

  • uchar : words.h
  • udouble : words.h
  • uint : words.h
  • uint16_t : words.h
  • uint32_t : words.h
  • uint64_t : words.h
  • uint8_t : words.h
  • ulong : words.h
  • ushort : words.h

- w -

  • word : words.h

- x -

  • XYZ : gpsdefs.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • d2r : mbggeo.h
  • date_fmt : mbgtime.h
  • datum : mbgtime.h
  • day_date_fmt : mbgtime.h
  • day_name_eng : mbgtime.h
  • day_name_ger : mbgtime.h
  • days_of_month : mbgtime.h
  • dhms : mbgtime.h
  • ellipsoid : mbggeo.h
  • gps_c0 : mbggeo.h
  • gps_pi : mbggeo.h
  • gps_two_pi : mbggeo.h
  • init_tm : mbgtime.h
  • long_time_fmt : mbgtime.h
  • mue : mbggeo.h
  • n_sec_change : hrtime.c , mbgdevio_demo.c
  • OMEGADOTe : mbggeo.h
  • pi : mbggeo.h
  • prog_info : mbgdmpst.c
  • prog_version : mbgdmpst.c
  • r2d : mbggeo.h
  • short_time_fmt : mbgtime.h
  • sqrt_mue : mbggeo.h
  • time_fmt : mbgtime.h
  • time_scale_str : mbgdevio_demo.c
  • vr_to_doppler : mbggeo.h
Generated on Tue Aug 18 16:18:13 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/gpsdefs.h Source File

  • Files

c/mbglib/include/gpsdefs.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: gpsdefs.h 1.79 2009/08/12 14:12:38Z daniel REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    General definitions to be used with Meinberg clocks.
00010  *    These definitions have initially be used with GPS devices only.
00011  *    However, more and more Meinberg non-GPS devices also use some of
00012  *    these definitions.
00013  *
00014  * -----------------------------------------------------------------------
00015  *  $Log: gpsdefs.h $
00016  *  Revision 1.79  2009/08/12 14:12:38Z  daniel
00017  *  Added definitions to support new model MGR170.
00018  *  Added definitions and commands to support configuration
00019  *  of navigation engine (currently supported by u-blox
00020  *  receivers only).
00021  *  Renamed simulation values in PTP_SETTINGS to reserved.
00022  *  Added "UNINITIALIZED" to PTP port state.
00023  *  Removed obsolete braces in initializer.
00024  *  Revision 1.78  2009/06/25 15:49:05Z  martin
00025  *  Added macro _nano_time_negative().
00026  *  Revision 1.77  2009/06/08 19:22:32Z  daniel
00027  *  Added feature GPS_HAS_PTP.
00028  *  Added preliminary structures and definitions for PTP
00029  *  configuration and state.
00030  *  Added IP4_ADDR type.
00031  *  Added Bitmask IP4_MSK_DHCP.
00032  *  Added byte swapper macros for LAN and PTP structures.
00033  *  Moved LAN interface configuration definitions here.
00034  *  Moved DAC_VAL definition here.
00035  *  Changed type iof FPGA_INFO::start_addr for non-firmware applications.
00036  *  Revision 1.76  2009/04/08 08:26:56  daniel
00037  *  Added feature GPS_FEAT_IRIG_CTRL_BITS.
00038  *  Revision 1.75  2009/03/19 14:06:39Z  martin
00039  *  Modified string initializer for unknown oscillator type.
00040  *  Revision 1.74  2009/03/18 13:45:53  daniel
00041  *  Added missing commas in
00042  *  MBG_DEBUG_STATUS_STRS initializer.
00043  *  Adjusted some comments for doxygen parser.
00044  *  Revision 1.73  2009/03/10 16:55:33Z  martin
00045  *  Support configurable time scales GPS and TAI.
00046  *  Defined extended TM status type and associated flags.
00047  *  Added definition TM_MSK_TIME_VALID.
00048  *  Added some macros to swap endianess of structures.
00049  *  Revision 1.72  2008/11/28 09:26:21Z  daniel
00050  *  Added definitions to support WWVB511
00051  *  Revision 1.71  2008/10/31 14:31:44Z  martin
00052  *  Added definitions for TCR170PEX.
00053  *  Revision 1.70  2008/09/18 11:14:39  martin
00054  *  Added definitions to support GEN170.
00055  *  Revision 1.69  2008/09/15 14:16:17  martin
00056  *  Added more macros to convert the endianess of structures.
00057  *  Added N_COM_HS to the enumeration of handshake modes.
00058  *  Added MBG_PS_... codes.
00059  *  Revision 1.68  2008/08/25 10:51:13  martin
00060  *  Added definitions for PTP270PEX and FRC511PEX.
00061  *  Revision 1.67  2008/07/17 08:54:52Z  martin
00062  *  Added macros to convert the endianess of structures.
00063  *  Added multiref fixed frequency source.
00064  *  Revision 1.66  2008/05/19 14:49:07  daniel
00065  *  Renamed s_addr to start_addr in FPGA_INFO.
00066  *  Revision 1.65  2008/05/19 09:00:01Z  martin
00067  *  Added definitions for GPS162.
00068  *  Added FPGA_INFO and GPS_HAS_FPGA.
00069  *  Added FPGA_START_INFO and associated definitions.
00070  *  Added new XMRS status XMRS_..._NOT_SETTLED.
00071  *  Added initializer XMULTI_REF_STATUS_INVALID.
00072  *  Revision 1.64  2008/01/17 11:50:33Z  daniel
00073  *  Made IGNORE_LOCK bit maskable.
00074  *  Revision 1.63  2008/01/17 11:42:09Z  daniel
00075  *  Made comments compatible for Doxygen parser.
00076  *  No sourcecode changes.
00077  *  Revision 1.62  2007/11/15 13:23:33Z  martin
00078  *  Decide whether other Meinberg headers are to be included depending on whether
00079  *  CLOCK_MEINBERG is defined (as with NTP) or not. Previous  versions checked
00080  *  for "PACKAGE" which is also defined by the Borland C++ build environment, though.
00081  *  Revision 1.61  2007/11/13 13:28:54  daniel
00082  *  Added definitions to support GPS170PEX.
00083  *  Revision 1.60  2007/09/13 12:37:35Z  martin
00084  *  Modified and added initializers for TZDL.
00085  *  Added multiref source PTP over E1.
00086  *  Added codes for MSF511 and GRC170 devices.
00087  *  Modified XMULTI_REF_SETTINGS and XMULTI_REF_STATUS structures.
00088  *  Avoid inclusion of other Meinberg headers in non-Meinberg projects.
00089  *  Added device classification macros _mbg_rcvr_is_...().
00090  *  Modified feature name string initializer for non-GPS devices.
00091  *  Updated some comments.
00092  *  Removed some obsolete comments.
00093  *  Revision 1.59  2007/07/19 07:41:56Z  martin
00094  *  Added symbol MBG_REF_OFFS_NOT_CFGD.
00095  *  Revision 1.58  2007/05/21 15:46:44Z  martin
00096  *  Fixed a typo.
00097  *  Revision 1.57  2007/03/29 12:20:43  martin
00098  *  Fixed some TZDL initializers.
00099  *  Revision 1.56  2007/02/14 14:17:10Z  andre
00100  *  bug fixed in mask XMRS_MSK_NO_CONN
00101  *  Revision 1.55  2007/02/06 16:23:18Z  martin
00102  *  Added definitions for AM511.
00103  *  Made SVNO unsigned.
00104  *  Added support for OPT_SETTINGS.
00105  *  Added XMULTI_REF_... definitions.
00106  *  Added string initializer DEFAULT_FREQ_RANGES.
00107  *  Revision 1.54  2007/01/04 11:39:39Z  martin
00108  *  Added definitions for TCR511.
00109  *  Added definition GPS_FEAT_5_MHZ.
00110  *  Updated some comments related to duplicate features/options
00111  *  IGNORE_LOCK and EMU_SYNC.
00112  *  Revision 1.53  2006/12/13 09:31:49  martin
00113  *  Added feature flag for ignore_lock.
00114  *  Revision 1.52  2006/12/12 15:47:18  martin
00115  *  Added MBG_DEBUG_STATUS type and associated definitions.
00116  *  Added definition GPS_HAS_REF_OFFS.
00117  *  Moved PCPS_REF_OFFS and associated definitions from pcpsdefs.h here
00118  *  and renamed them to MBG_REF_OFFS, etc.
00119  *  Revision 1.51  2006/10/23 15:31:27  martin
00120  *  Added definitions for GPS170.
00121  *  Added definitions for new multi_ref sources IRIG, NTP, and PTP.
00122  *  Added some definitions useful when editing synth frequency.
00123  *  Revision 1.50  2006/08/25 09:29:28Z  martin
00124  *  Added structure NANO_TIME.
00125  *  Revision 1.49  2006/08/09 07:06:42Z  martin
00126  *  New TM_GPS status flag TM_EXT_SYNC.
00127  *  Revision 1.48  2006/08/08 12:51:20Z  martin
00128  *  Added definitions for IRIG codes B006/B126 and B007/B127.
00129  *  Revision 1.47  2006/07/06 08:41:45Z  martin
00130  *  Added definition of MEINBERG_MAGIC.
00131  *  Revision 1.46  2006/06/21 14:08:53Z  martin
00132  *  Added masks of IRIG codes which contain time zone information.
00133  *  Revision 1.45  2006/06/15 12:13:32Z  martin
00134  *  Added MULTI_REF_STATUS and associated flags.
00135  *  Added ROM_CSUM, RCV_TIMEOUT, and IGNORE_LOCK types.
00136  *  Revision 1.44  2006/05/18 09:34:41Z  martin
00137  *  Added definitions for POUT max. pulse_len and max timeout.
00138  *  Changed comment for POUT_SETTINGS::timeout:
00139  *  Units are minutes, not seconds.
00140  *  Added definition for MAX_POUT_TIME_STR_PORTS.
00141  *  Added definitions for POUT mode 10MHz.
00142  *  Added hint strings for POUT modes.
00143  *  Added definitions for PZF511.
00144  *  Revision 1.43  2006/01/24 07:53:29Z  martin
00145  *  New TM_GPS status flag TM_HOLDOVER.
00146  *  Revision 1.42  2005/11/24 14:53:22Z  martin
00147  *  Added definitions for manchester encoded DC IRIG frames.
00148  *  Added POUT_TIMESTR and related definitions.
00149  *  Revision 1.41  2005/11/03 15:06:59Z  martin
00150  *  Added definitions to support GPS170PCI.
00151  *  Revision 1.40  2005/10/28 08:58:29Z  martin
00152  *  Added definitions for OCXO_DHQ.
00153  *  Revision 1.39  2005/09/08 14:06:00Z  martin
00154  *  Added definition SYNTH_PHASE_SYNC_LIMIT.
00155  *  Revision 1.38  2005/08/18 10:27:35  andre
00156  *  added definitions for GPS164,
00157  *  added POUT_TIMECODE,
00158  *  struct SCU_STAT changed,
00159  *  ulong flags changed into two byte clk_info and ushort flags
00160  *  Revision 1.37  2005/05/02 14:44:55Z  martin
00161  *  Added structure SYNTH_STATE and associated definitions.
00162  *  Revision 1.36  2005/03/29 12:44:07Z  martin
00163  *  New RECEIVER_INFO::flags code: GPS_IRIG_FO_IN
00164  *  Revision 1.35  2004/12/09 14:04:38Z  martin
00165  *  Changed max synth freq from 12 MHz to 10 MHz.
00166  *  Revision 1.34  2004/11/23 16:20:09Z  martin
00167  *  Added bit definitions for the existing TTM status bit masks.
00168  *  Revision 1.33  2004/11/09 12:39:59Z  martin
00169  *  Redefined interface data types using C99 fixed-size definitions.
00170  *  Added model code and name for TCR167PCI.
00171  *  New type GPS_CMD.
00172  *  Defined type BVAR_STAT and associated flags.
00173  *  Revision 1.32  2004/09/20 12:46:25  andre
00174  *  Added structures and definitions for SCU board.
00175  *  Revision 1.31  2004/07/08 08:30:36Z  martin
00176  *  Added feature GPS_FEAT_RCV_TIMEOUT.
00177  *  Revision 1.30  2004/06/21 13:38:42  martin
00178  *  New flag MBG_OPT_BIT_EMU_SYNC/MBG_OPT_FLAG_EMU_SYNC
00179  *  lets the receicer emulate/pretend to be always synchronized.
00180  *  Revision 1.30  2004/06/21 13:35:46Z  martin
00181  *  Revision 1.29  2004/06/16 12:47:53Z  martin
00182  *  Moved OPT_SETTINGS related definitions from pcpsdefs.h
00183  *  here and renamed symbols from PCPS_.. to to MBG_...
00184  *  Revision 1.28  2004/03/26 10:37:00Z  martin
00185  *  Added definitions to support multiple ref sources.
00186  *  Added definitions OSC_DAC_RANGE, OSC_DAC_BIAS.
00187  *  Revision 1.27  2004/03/08 14:06:45Z  martin
00188  *  New model code and name for GPS169PCI.
00189  *  Existing feature GPS_FEAT_IRIG has been
00190  *  renamed to GPS_FEAT_IRIG_TX.
00191  *  Added feature GPS_FEAT_IRIG_RX.
00192  *  Added IPv4 LAN interface feature flags.
00193  *  Renamed IFLAGS_IGNORE_TFOM to IFLAGS_DISABLE_TFOM.
00194  *  Revision 1.26  2003/12/05 12:28:20Z  martin
00195  *  Added some codes used with IRIG cfg.
00196  *  Revision 1.25  2003/10/29 16:18:14Z  martin
00197  *  Added 7N2 to DEFAULT_GPS_FRAMINGS_GP2021.
00198  *  Revision 1.24  2003/09/30 08:49:48Z  martin
00199  *  New flag TM_LS_ANN_NEG which is set in addition to
00200  *  TM_LS_ANN if next leap second is negative.
00201  *  Revision 1.23  2003/08/26 14:32:33Z  martin
00202  *  Added some initializers for commonly used
00203  *  TZDL configurations.
00204  *  Revision 1.22  2003/04/25 10:18:11  martin
00205  *  Fixed typo inside an IRIG name string initializer.
00206  *  Revision 1.21  2003/04/15 09:18:48  martin
00207  *  New typedef ANT_CABLE_LEN.
00208  *  Revision 1.20  2003/04/03 11:03:44Z  martin
00209  *  Extended definitions for IRIG support.
00210  *  Revision 1.19  2003/01/31 13:38:20  MARTIN
00211  *  Modified type of RECEIVER_INFO.fixed_freq field.
00212  *  Revision 1.18  2002/10/28 09:24:07  MARTIN
00213  *  Added/renamed some POUT related symbols.
00214  *  Revision 1.17  2002/09/05 10:58:39  MARTIN
00215  *  Renamed some symbols related to programmable outputs.
00216  *  Revision 1.16  2002/08/29 08:04:47  martin
00217  *  Renamed structure POUT_PROG to POUT_SETTINGS.
00218  *  New structures POUT_SETTINGS_IDX, POUT_INFO,
00219  *  POUT_INFO_IDX and associated definitions.
00220  *  Updated some comments.
00221  *  Revision 1.15  2002/07/17 07:39:39Z  Andre
00222  *  comma added in definition DEFAULT_GPS_OSC_NAMES
00223  *  Revision 1.14  2002/06/27 12:17:29Z  MARTIN
00224  *  Added new oscillator code TCXO_MQ.
00225  *  Added initializer for oscillator names.
00226  *  Added initializer for oscillator list ordered by quality.
00227  *  Revision 1.13  2002/05/08 08:16:03  MARTIN
00228  *  Added GPS_OSC_CFG_SUPP for RECEIVER_INFO.flags.
00229  *  Fixed some comments.
00230  *  Revision 1.12  2002/03/14 13:45:56  MARTIN
00231  *  Changed type CSUM from short to ushort.
00232  *  Revision 1.11  2002/03/01 12:29:30  Andre
00233  *  Added GPS_MODEL_GPS161 and GPS_MODEL_NAME_GPS161.
00234  *  Revision 1.10  2002/02/25 08:02:33Z  MARTIN
00235  *  Added array of chars to union IDENT.
00236  *  Revision 1.9  2002/01/29 15:21:46  MARTIN
00237  *  Added new field "reserved" to struct SW_REV to fix C166 data
00238  *  alignment/structure size. Converted structure IDENT to a union.
00239  *  The changes above should not affect existing monitoring programs.
00240  *  New status flag TM_ANT_SHORT.
00241  *  New structure RECEIVER_INFO and associated definitions to
00242  *  enhance control from monitoring programs.
00243  *  New structures PORT_INFO, STR_TYPE_INFO, and associated
00244  *  definitions to simplify and unify configuration from external programs.
00245  *  New structures IRIG_INFO and POUT_PROG_IDX to configure an
00246  *  optional IRIG interface and programmable pulse outputs.
00247  *  Modified some comments.
00248  *  Revision 1.8  2001/03/30 11:44:11  MARTIN
00249  *  Control alignment of structures from new file use_pack.h.
00250  *  Defined initializers with valid baud rate and framing parameters.
00251  *  Modified some comments.
00252  *  Revision 1.7  2001/03/01 08:09:22  MARTIN
00253  *  Modified preprocessor syntax.
00254  *  Revision 1.6  2000/07/21 14:04:33  MARTIN
00255  *  Added som #if directives to protect structures against being multiply
00256  *  defined.
00257  *  Modified some comments.
00258  *  Comments using characters for +/- and degree now include ASCII
00259  *  characters only.
00260  *
00261  **************************************************************************/
00262
00263 #ifndef _GPSDEFS_H
00264 #define _GPSDEFS_H
00265
00266
00267 /* Other headers to be included */
00268
00269 #if defined( HAVE_CONFIG_H )
00270   // this is mainly to simplify usage in non-Meinberg projects
00271   #include <config.h>
00272 #endif
00273
00274 // CLOCK_MEINBERG is defined in NTP's config.h if configured
00275 // to support Meinberg clocks.
00276 #if !defined( CLOCK_MEINBERG )
00277   // avoid having to use these headers in non-Meinberg projects
00278   #include <words.h>
00279   #include <use_pack.h>
00280 #endif
00281
00282
00283 #if defined( _USE_PACK )      // set byte alignment
00284   #pragma pack( 1 )
00285 #endif
00286
00287
00288 /* Start of header body */
00289
00290 /* "magic" number */
00291 #define MEINBERG_MAGIC 0x6AAC
00292
00293 #define MIN_SVNO         1                  /* min. SV number */
00294 #define MAX_SVNO        32                  /* max. SV number */
00295 #define N_SVNO ( MAX_SVNO - MIN_SVNO + 1)   /* number of possibly active SVs */
00296
00297
00298 #define GPS_ID_STR_LEN      16
00299 #define GPS_ID_STR_SIZE     ( GPS_ID_STR_LEN + 1 )
00300
00301 #define GPS_EPLD_STR_LEN    8
00302 #define GPS_EPLD_STR_SIZE   ( GPS_EPLD_STR_LEN + 1 )
00303
00304
00305 #define DEFAULT_GPS_TICKS_PER_SEC   10000000L  /* system time base */
00306
00307 #if !defined( GPS_TICKS_PER_SEC )
00308   /*
00309    * The actual ticks per seconds may vary for different
00310    * GPS receiver models. If this is the case, the receiver
00311    * model support the RECEIVER_INFO structure which contains
00312    * the actual value.
00313    */
00314   #define GPS_TICKS_PER_SEC   DEFAULT_GPS_TICKS_PER_SEC
00315 #endif
00316
00317
00318 typedef uint16_t SVNO;    /* the number of a SV */
00319 typedef uint16_t HEALTH;  /* a SV's health code */
00320 typedef uint16_t CFG;     /* a SV's configuration code */
00321 typedef uint16_t IOD;     /* Issue-Of-Data code */
00322
00323
00324 /* the type of various checksums */
00325
00326 #ifndef _CSUM_DEFINED
00327   typedef uint16_t CSUM;
00328   #define _CSUM_DEFINED
00329
00330   #define _mbg_swab_csum( _p )    _mbg_swab16( _p )
00331 #endif
00332
00333
00338 typedef uint16_t GPS_CMD;
00339
00340 #define _mbg_swab_gps_cmd( _p )    _mbg_swab16( _p )
00341
00342
00346 typedef struct
00347 {
00348   uint16_t code;
00349   char name[GPS_ID_STR_SIZE];
00350   uint8_t reserved;
00351 } SW_REV;
00352
00353 #define _mbg_swab_sw_rev( _p )  \
00354 {                               \
00355   _mbg_swab16( &(_p)->code );   \
00356 }
00357
00358
00359
00360 typedef uint16_t BVAR_STAT;
00362 #define _mbg_swab_bvar_stat( _p )  _mbg_swab16( (_p) )
00363
00368 enum
00369 {
00370   BVAR_BIT_CFGH_INVALID,
00371   BVAR_BIT_ALM_NOT_COMPLETE,
00372   BVAR_BIT_UTC_INVALID,
00373   BVAR_BIT_IONO_INVALID,
00374   BVAR_BIT_RCVR_POS_INVALID,
00375   N_BVAR_BIT   // number of defined bits
00376 };
00377
00378 #define BVAR_CFGH_INVALID      ( 1UL << BVAR_BIT_CFGH_INVALID )
00379 #define BVAR_ALM_NOT_COMPLETE  ( 1UL << BVAR_BIT_ALM_NOT_COMPLETE )
00380 #define BVAR_UTC_INVALID       ( 1UL << BVAR_BIT_UTC_INVALID )
00381 #define BVAR_IONO_INVALID      ( 1UL << BVAR_BIT_IONO_INVALID )
00382 #define BVAR_RCVR_POS_INVALID  ( 1UL << BVAR_BIT_RCVR_POS_INVALID )
00383
00385 #define BVAR_MASK  ( ( 1UL << N_BVAR_BIT ) - 1 )
00386
00387
00388
00389 /* a struct used to hold a fixed frequency value */
00390 /* frequ[kHz] = khz_val * 10^range */
00391
00392 typedef struct
00393 {
00394   uint16_t khz_val;     /* the base frequency in [kHz] */
00395   int16_t range;        /* an optional base 10 exponent */
00396 } FIXED_FREQ_INFO;
00397
00398 #define _mbg_swab_fixed_freq_info( _p )  \
00399 {                                        \
00400   _mbg_swab16( &(_p)->khz_val );         \
00401   _mbg_swab16( &(_p)->range );           \
00402 }
00403
00404
00405
00406 /*
00407  * The following code defines features and properties
00408  * of the various GPS receivers. Older GPS receivers
00409  * may require a recent firmvare version to support
00410  * this, or may not support this at all.
00411  */
00412
00417 typedef struct
00418 {
00419   uint16_t model_code;
00420   SW_REV sw_rev;
00421   char model_name[GPS_ID_STR_SIZE];
00422   char sernum[GPS_ID_STR_SIZE];
00423   char epld_name[GPS_EPLD_STR_SIZE];
00424   uint8_t n_channels;
00425   uint32_t ticks_per_sec;
00426   uint32_t features;
00427   FIXED_FREQ_INFO fixed_freq;
00428   uint8_t osc_type;
00429   uint8_t osc_flags;
00430   uint8_t n_ucaps;
00431   uint8_t n_com_ports;
00432   uint8_t n_str_type;
00433   uint8_t n_prg_out;
00434   uint16_t flags;
00435 } RECEIVER_INFO;
00436
00437 #define _mbg_swab_receiver_info( _p )              \
00438 {                                                  \
00439   _mbg_swab16( &(_p)->model_code );                \
00440   _mbg_swab_sw_rev( &(_p)->sw_rev );               \
00441   _mbg_swab16( &(_p)->ticks_per_sec );             \
00442   _mbg_swab32( &(_p)->features );                  \
00443   _mbg_swab_fixed_freq_info( &(_p)->fixed_freq );  \
00444   _mbg_swab16( &(_p)->flags );                     \
00445 }
00446
00447
00451 enum
00452 {
00453   GPS_MODEL_UNKNOWN,
00454   GPS_MODEL_GPS166,
00455   GPS_MODEL_GPS167,
00456   GPS_MODEL_GPS167SV,
00457   GPS_MODEL_GPS167PC,
00458   GPS_MODEL_GPS167PCI,
00459   GPS_MODEL_GPS163,
00460   GPS_MODEL_GPS168PCI,
00461   GPS_MODEL_GPS161,
00462   GPS_MODEL_GPS169PCI,
00463   GPS_MODEL_TCR167PCI,
00464   GPS_MODEL_GPS164,
00465   GPS_MODEL_GPS170PCI,
00466   GPS_MODEL_PZF511,
00467   GPS_MODEL_GPS170,
00468   GPS_MODEL_TCR511,
00469   GPS_MODEL_AM511,
00470   GPS_MODEL_MSF511,
00471   GPS_MODEL_GRC170,
00472   GPS_MODEL_GPS170PEX,
00473   GPS_MODEL_GPS162,
00474   GPS_MODEL_PTP270PEX,
00475   GPS_MODEL_FRC511PEX,
00476   GPS_MODEL_GEN170,
00477   GPS_MODEL_TCR170PEX,
00478   GPS_MODEL_WWVB511,
00479   GPS_MODEL_MGR170,
00480   N_GPS_MODEL
00481   /* If new model codes are added then care must be taken
00482    * to update the associated string initializers below
00483    * accordingly, and to check whether the classification macros
00484    * also cover the new model names. */
00485 };
00486
00487
00488
00489
00490 /*
00491  * String initializers for each of the GPS
00492  * receiver models enum'ed above:
00493  */
00494 #define GPS_MODEL_NAME_UNKNOWN   "(unknown)"
00495 #define GPS_MODEL_NAME_GPS166    "GPS166"
00496 #define GPS_MODEL_NAME_GPS167    "GPS167"
00497 #define GPS_MODEL_NAME_GPS167SV  "GPS167SV"
00498 #define GPS_MODEL_NAME_GPS167PC  "GPS167PC"
00499 #define GPS_MODEL_NAME_GPS167PCI "GPS167PCI"
00500 #define GPS_MODEL_NAME_GPS163    "GPS163"
00501 #define GPS_MODEL_NAME_GPS168PCI "GPS168PCI"
00502 #define GPS_MODEL_NAME_GPS161    "GPS161"
00503 #define GPS_MODEL_NAME_GPS169PCI "GPS169PCI"
00504 #define GPS_MODEL_NAME_TCR167PCI "TCR167PCI"
00505 #define GPS_MODEL_NAME_GPS164    "GPS164"
00506 #define GPS_MODEL_NAME_GPS170PCI "GPS170PCI"
00507 #define GPS_MODEL_NAME_PZF511    "PZF511"
00508 #define GPS_MODEL_NAME_GPS170    "GPS170"
00509 #define GPS_MODEL_NAME_TCR511    "TCR511"
00510 #define GPS_MODEL_NAME_AM511     "AM511"
00511 #define GPS_MODEL_NAME_MSF511    "MSF511"
00512 #define GPS_MODEL_NAME_GRC170    "GRC170"
00513 #define GPS_MODEL_NAME_GPS170PEX "GPS170PEX"
00514 #define GPS_MODEL_NAME_GPS162    "GPS162"
00515 #define GPS_MODEL_NAME_PTP270PEX "PTP270PEX"
00516 #define GPS_MODEL_NAME_FRC511PEX "FRC511PEX"
00517 #define GPS_MODEL_NAME_GEN170    "GEN170"
00518 #define GPS_MODEL_NAME_TCR170PEX "TCR170PEX"
00519 #define GPS_MODEL_NAME_WWVB511   "WWVB511"
00520 #define GPS_MODEL_NAME_MGR170    "MGR170"
00521
00522
00523 /*
00524  * The definition below can be used to initialize
00525  * an array of N_GPS_MODEL type name strings.
00526  * Including the trailing 0, each name must not
00527  * exceed GPS_ID_STR_SIZE chars.
00528  */
00529 #define DEFAULT_GPS_MODEL_NAMES \
00530 {                               \
00531   GPS_MODEL_NAME_UNKNOWN,       \
00532   GPS_MODEL_NAME_GPS166,        \
00533   GPS_MODEL_NAME_GPS167,        \
00534   GPS_MODEL_NAME_GPS167SV,      \
00535   GPS_MODEL_NAME_GPS167PC,      \
00536   GPS_MODEL_NAME_GPS167PCI,     \
00537   GPS_MODEL_NAME_GPS163,        \
00538   GPS_MODEL_NAME_GPS168PCI,     \
00539   GPS_MODEL_NAME_GPS161,        \
00540   GPS_MODEL_NAME_GPS169PCI,     \
00541   GPS_MODEL_NAME_TCR167PCI,     \
00542   GPS_MODEL_NAME_GPS164,        \
00543   GPS_MODEL_NAME_GPS170PCI,     \
00544   GPS_MODEL_NAME_PZF511,        \
00545   GPS_MODEL_NAME_GPS170,        \
00546   GPS_MODEL_NAME_TCR511,        \
00547   GPS_MODEL_NAME_AM511,         \
00548   GPS_MODEL_NAME_MSF511,        \
00549   GPS_MODEL_NAME_GRC170,        \
00550   GPS_MODEL_NAME_GPS170PEX,     \
00551   GPS_MODEL_NAME_GPS162,        \
00552   GPS_MODEL_NAME_PTP270PEX,     \
00553   GPS_MODEL_NAME_FRC511PEX,     \
00554   GPS_MODEL_NAME_GEN170,        \
00555   GPS_MODEL_NAME_TCR170PEX,     \
00556   GPS_MODEL_NAME_WWVB511,       \
00557   GPS_MODEL_NAME_MGR170         \
00558 }
00559
00560
00561 /*
00562  * The macros below can be used to classify a receiver,
00563  * e.g. depending on the time source and/or depending on
00564  * whether it's a plug-in card or an external device.
00565  */
00566
00567 #define _mbg_rcvr_is_plug_in( _p_ri )      \
00568   ( strstr( (_p_ri)->model_name, "PC" ) || \
00569   ( strstr( (_p_ri)->model_name, "PEX" ) )
00570
00571 #define _mbg_rcvr_is_gps( _p_ri ) \
00572   ( strstr( (_p_ri)->model_name, "GPS" ) || \
00573   ( strstr( (_p_ri)->model_name, "MGR" ) )
00574
00575 #define _mbg_rcvr_is_mobile_gps( _p_ri ) \
00576   ( strstr( (_p_ri)->model_name, "MGR" ) )
00577
00578 #define _mbg_rcvr_is_gps_plug_in( _p_ri ) \
00579   ( _mbg_rcvr_is_gps( _p_ri ) &&          \
00580     _mbg_rcvr_is_plug_in( _p_ri ) )
00581
00582 #define _mbg_rcvr_is_irig( _p_ri ) \
00583   ( strstr( (_p_ri)->model_name, "TCR" ) )
00584
00585 #define _mbg_rcvr_is_irig_plug_in( _p_ri ) \
00586   ( _mbg_rcvr_is_irig( _p_ri ) &&          \
00587     _mbg_rcvr_is_plug_in( _p_ri ) )
00588
00589 #define _mbg_rcvr_is_dcf77_am( _p_ri ) \
00590   ( strstr( (_p_ri)->model_name, "AM" ) )
00591
00592 #define _mbg_rcvr_is_dcf77_am_plug_in( _p_ri ) \
00593   ( _mbg_rcvr_is_dcf77_am( _p_ri ) &&          \
00594     _mbg_rcvr_is_plug_in( _p_ri ) )
00595
00596 #define _mbg_rcvr_is_dcf77_pzf( _p_ri )  \
00597   ( strstr( (_p_ri)->model_name, "PZF" ) )
00598
00599 #define _mbg_rcvr_is_dcf77_pzf_plug_in( _p_ri ) \
00600   ( _mbg_rcvr_is_dcf77_pzf( _p_ri ) &&          \
00601     _mbg_rcvr_is_plug_in( _p_ri ) )
00602
00603 #define _mbg_rcvr_is_any_dcf77( _p_ri )   \
00604   ( _mbg_rcvr_is_dcf77_am( _p_ri ) ||     \
00605     _mbg_rcvr_is_dcf77_pzf( _p_ri ) )
00606
00607 #define _mbg_rcvr_is_any_dcf77_plug_in( _p_ri ) \
00608   ( _mbg_rcvr_is_any_dcf77( _p_ri ) &&          \
00609     _mbg_rcvr_is_plug_in( _p_ri ) )
00610
00611 #define _mbg_rcvr_is_msf( _p_ri ) \
00612   ( strstr( (_p_ri)->model_name, "MSF" ) )
00613
00614 #define _mbg_rcvr_is_msf_plug_in( _p_ri ) \
00615   ( _mbg_rcvr_is_msf( _p_ri ) &&          \
00616     _mbg_rcvr_is_plug_in( _p_ri ) )
00617
00618 #define _mbg_rcvr_is_glonass( _p_ri ) \
00619   ( strstr( (_p_ri)->model_name, "GRC" ) )
00620
00621 #define _mbg_rcvr_is_glonass_plug_in( _p_ri ) \
00622   ( _mbg_rcvr_is_glonass( _p_ri ) &&          \
00623     _mbg_rcvr_is_plug_in( _p_ri ) )
00624
00625 #define _mbg_rcvr_is_wwvb( _p_ri ) \
00626   ( strstr( (_p_ri)->model_name, "WWVB" ) )
00627
00628 #define _mbg_rcvr_is_wwvb_plug_in( _p_ri ) \
00629   ( _mbg_rcvr_is_wwvb( _p_ri ) &&          \
00630     _mbg_rcvr_is_plug_in( _p_ri ) )
00631
00632
00639 enum
00640 {
00641   GPS_OSC_UNKNOWN,
00642   GPS_OSC_TCXO_LQ,
00643   GPS_OSC_TCXO_HQ,
00644   GPS_OSC_OCXO_LQ,
00645   GPS_OSC_OCXO_MQ,
00646   GPS_OSC_OCXO_HQ,
00647   GPS_OSC_OCXO_XHQ,
00648   GPS_OSC_RUBIDIUM,
00649   GPS_OSC_TCXO_MQ,
00650   GPS_OSC_OCXO_DHQ,
00651   N_GPS_OSC
00652 };
00653
00654
00655 /*
00656  * The sequence and number of oscillator names
00657  * listed below must correspond to the enumeration
00658  * above:
00659  */
00660 #define DEFAULT_GPS_OSC_NAMES \
00661 {                             \
00662   "[unknown]",                \
00663   "TCXO LQ",                  \
00664   "TCXO HQ",                  \
00665   "OCXO LQ",                  \
00666   "OCXO MQ",                  \
00667   "OCXO HQ",                  \
00668   "OCXO XHQ",                 \
00669   "RUBIDIUM",                 \
00670   "TCXO MQ",                  \
00671   "OCXO DHQ"                  \
00672 }
00673
00674
00675 /*
00676  * The initializer below can be used to initialize
00677  * an array (e.g. "int osc_quality_idx[N_GPS_OSC]")
00678  * which allows to display the oscillator types
00679  * ordered by quality:
00680  */
00681 #define DEFAULT_GPS_OSC_QUALITY_IDX \
00682 {                                   \
00683   GPS_OSC_UNKNOWN,                  \
00684   GPS_OSC_TCXO_LQ,                  \
00685   GPS_OSC_TCXO_MQ,                  \
00686   GPS_OSC_TCXO_HQ,                  \
00687   GPS_OSC_OCXO_LQ,                  \
00688   GPS_OSC_OCXO_MQ,                  \
00689   GPS_OSC_OCXO_HQ,                  \
00690   GPS_OSC_OCXO_DHQ,                 \
00691   GPS_OSC_OCXO_XHQ,                 \
00692   GPS_OSC_RUBIDIUM                  \
00693 }
00694
00695
00696
00697 /*
00698  * Codes to be used with RECEIVER_INFO.osc_flags
00699  * are not yet used/required, so they are reserved
00700  * for future use.
00701  */
00702
00703
00708 enum
00709 {
00710   GPS_FEAT_PPS,
00711   GPS_FEAT_PPM,
00712   GPS_FEAT_SYNTH,
00713   GPS_FEAT_DCFMARKS,
00714   GPS_FEAT_IRIG_TX,
00715   GPS_FEAT_IRIG_RX,
00716   GPS_FEAT_LAN_IP4,
00717   GPS_FEAT_MULTI_REF,
00718   GPS_FEAT_RCV_TIMEOUT,
00719   GPS_FEAT_IGNORE_LOCK,
00721   GPS_FEAT_5_MHZ,
00722   GPS_FEAT_XMULTI_REF,
00723   GPS_FEAT_OPT_SETTINGS,
00724   GPS_FEAT_TIME_SCALE,
00725   GPS_FEAT_IRIG_CTRL_BITS,
00726   GPS_FEAT_PTP,
00727   GPS_FEAT_NAV_ENGINE_SETTINGS,
00728   N_GPS_FEATURE
00729 };
00730
00731
00732 #define DEFAULT_GPS_FEATURE_NAMES \
00733 {                                 \
00734   "Pulse Per Second",             \
00735   "Pulse Per Minute",             \
00736   "Programmable Synth.",          \
00737   "DCF77 Time Marks",             \
00738   "IRIG Out",                     \
00739   "IRIG In",                      \
00740   "IPv4 LAN Interface",           \
00741   "Multiple Ref. Sources",        \
00742   "Receive Timeout",              \
00743   "Ignore Lock",                  \
00744   "5 MHz Output",                 \
00745   "Ext. Multiple Ref. Src. Cfg.", \
00746   "Supp. Optional Settings",      \
00747   "Configurable Time Scale",      \
00748   "Irig Control Bits",            \
00749   "PTP/IEEE1588",                 \
00750   "Supp. Nav. Engine Settings"    \
00751 }
00752
00753
00754 /*
00755  * Bit masks used with RECEIVER_INFO.features
00756  * (others are reserved):
00757  */
00758 #define GPS_HAS_PPS          ( 1UL << GPS_FEAT_PPS )
00759 #define GPS_HAS_PPM          ( 1UL << GPS_FEAT_PPM )
00760 #define GPS_HAS_SYNTH        ( 1UL << GPS_FEAT_SYNTH )
00761 #define GPS_HAS_DCFMARKS     ( 1UL << GPS_FEAT_DCFMARKS )
00762 #define GPS_HAS_IRIG_TX      ( 1UL << GPS_FEAT_IRIG_TX )
00763 #define GPS_HAS_IRIG_RX      ( 1UL << GPS_FEAT_IRIG_RX )
00764 #define GPS_HAS_LAN_IP4      ( 1UL << GPS_FEAT_LAN_IP4 )
00765 #define GPS_HAS_MULTI_REF    ( 1UL << GPS_FEAT_MULTI_REF )
00766 #define GPS_HAS_RCV_TIMEOUT  ( 1UL << GPS_FEAT_RCV_TIMEOUT )
00767 #define GPS_HAS_IGNORE_LOCK  ( 1UL << GPS_FEAT_IGNORE_LOCK )
00768 #define GPS_HAS_5_MHZ        ( 1UL << GPS_FEAT_5_MHZ )
00769 #define GPS_HAS_XMULTI_REF   ( 1UL << GPS_FEAT_XMULTI_REF )
00770 #define GPS_HAS_OPT_SETTINGS ( 1UL << GPS_FEAT_OPT_SETTINGS )
00771 #define GPS_HAS_TIME_SCALE   ( 1UL << GPS_FEAT_TIME_SCALE )
00772 #define GPS_HAS_IRIG_CTRL_BITS  ( 1UL << GPS_FEAT_IRIG_CTRL_BITS )
00773 #define GPS_HAS_PTP          ( 1UL << GPS_FEAT_PTP )
00774 #define GPS_HAS_NAV_ENGINE_SETTINGS  ( 1UL << GPS_FEAT_NAV_ENGINE_SETTINGS )
00775
00776 #define GPS_HAS_REF_OFFS     GPS_HAS_IRIG_RX
00777
00778
00779 /*
00780  * The features below are supported by default by older
00781  * C166 based GPS receivers:
00782  */
00783 #define DEFAULT_GPS_FEATURES_C166 \
00784 {                                 \
00785   GPS_HAS_PPS |                   \
00786   GPS_HAS_PPM |                   \
00787   GPS_HAS_SYNTH |                 \
00788   GPS_HAS_DCFMARKS                \
00789 }
00790
00791
00792 /*
00793  * Codes to be used with RECEIVER_INFO.flags:
00794  */
00795 #define GPS_OSC_CFG_SUPP    0x0001  // GPS_OSC_CFG supported
00796 #define GPS_IRIG_FO_IN      0x0002  // IRIG input via fiber optics
00797 #define GPS_HAS_FPGA        0x0004  // device provides on-board FPGA
00798
00799
00800 /*
00801  * If the GPS_HAS_FPGA flag is set in RECEIVER_INFO::flags then the card
00802  * provides an FPGA and the following information about the FPGA is available:
00803  */
00804 #define FPGA_NAME_LEN    31                     // max name length
00805 #define FPGA_NAME_SIZE   ( FPGA_NAME_LEN + 1 )  // size including trailing 0
00806
00807 #define FPGA_INFO_SIZE   128
00808
00809 typedef union
00810 {
00811   struct
00812   {
00813     CSUM csum;
00814     uint32_t fsize;
00815     #if _IS_MBG_FIRMWARE
00816       uint32_t start_addr;
00817     #else
00818       uint8_t *start_addr;
00819     #endif
00820     char name[FPGA_NAME_SIZE];
00821   } hdr;
00822
00823   char b[FPGA_INFO_SIZE];
00824
00825 } FPGA_INFO;
00826
00827
00828
00829 /*
00830  * The definitions below are used to specify where a FPGA image is located
00831  * in the flash memory:
00832  */
00833 typedef struct
00834 {
00835   CSUM csum;
00836   uint16_t fpga_start_seg;   // Number of the 4k block where an FPGA image is located
00837 } FPGA_START_INFO;
00838
00839 #define DEFAULT_FPGA_START_SEG     0x60
00840
00841 #define DEFAULT_FPGA_START_INFO    \
00842 {                                  \
00843   0x1234 + DEFAULT_FPGA_START_SEG, \
00844   DEFAULT_FPGA_START_SEG           \
00845 }
00846
00847
00848
00857 typedef struct
00858 {
00859   uint16_t wn;
00860   uint32_t sec;
00861   uint32_t tick;
00862 } T_GPS;
00863
00864 #define _mbg_swab_t_gps( _p )  \
00865 {                              \
00866   _mbg_swab16( &(_p)->wn );    \
00867   _mbg_swab32( &(_p)->sec );   \
00868   _mbg_swab32( &(_p)->tick );  \
00869 }
00870
00871
00872 /* Local date and time computed from GPS time. The current number */
00873 /* of leap seconds have to be added to get UTC from GPS time. */
00874 /* Additional corrections could have been made according to the */
00875 /* time zone/daylight saving parameters (TZDL, see below) defined */
00876 /* by the user. The status field can be checked to see which corrections */
00877 /* have been applied. */
00878
00879 typedef struct
00880 {
00881   int16_t year;           /* 0..9999 */
00882   int8_t month;           /* 1..12 */
00883   int8_t mday;            /* 1..31 */
00884   int16_t yday;           /* 1..366 */
00885   int8_t wday;            /* 0..6 == Sun..Sat */
00886   int8_t hour;            /* 0..23 */
00887   int8_t min;             /* 0..59 */
00888   int8_t sec;             /* 0..59 */
00889   int32_t frac;           /* fractions of a second; scale: 1/GPS_TICKS_PER_SEC*/
00890   int32_t offs_from_utc;  /* local time's offset from UTC */
00891   uint16_t status;        /* flags */
00892 } TM_GPS;
00893
00894 #define _mbg_swab_tm_gps( _p )          \
00895 {                                       \
00896   _mbg_swab16( &(_p)->year );           \
00897   _mbg_swab16( &(_p)->yday );           \
00898   _mbg_swab32( &(_p)->frac );           \
00899   _mbg_swab32( &(_p)->offs_from_utc );  \
00900   _mbg_swab16( &(_p)->status );         \
00901 }
00902
00903
00904 /* status flag bits used with conversion from GPS time to local time */
00905
00906 enum
00907 {
00908   TM_BIT_UTC,        /* UTC correction has been made */
00909   TM_BIT_LOCAL,      /* UTC has been converted to local time */
00910   TM_BIT_DL_ANN,     /* state of daylight saving is going to change */
00911   TM_BIT_DL_ENB,     /* daylight saving is enabled */
00912   TM_BIT_LS_ANN,     /* leap second will be inserted */
00913   TM_BIT_LS_ENB,     /* current second is leap second */
00914   TM_BIT_LS_ANN_NEG, /* set in addition to TM_LS_ANN if leap sec negative */
00915   /* Bit 7 is reserved and not used, yet. */
00916
00917   TM_BIT_EXT_SYNC = 8,   /* sync'd externally */
00918   TM_BIT_HOLDOVER,       /* holdover mode after previous sync. */
00919   TM_BIT_ANT_SHORT,      /* antenna cable short circuited */
00920   TM_BIT_NO_WARM,        /* OCXO has not warmed up */
00921   TM_BIT_ANT_DISCONN,    /* antenna currently disconnected */
00922   TM_BIT_SYN_FLAG,       /* TIME_SYN output is low */
00923   TM_BIT_NO_SYNC,        /* time sync actually not verified */
00924   TM_BIT_NO_POS          /* position actually not verified, LOCK LED off */
00925 };
00926
00927 // Type of an extended TM status which is mainly used by the firmware.
00928 typedef uint32_t TM_STATUS_EXT;    // extended status, mainly used by the firmware
00929
00930 // The lower 16 bits of the TM_STATUS_X type correspond to those defined above,
00931 // and the upper bits are defined below:
00932 enum
00933 {
00934   TM_BIT_SCALE_GPS = 16,
00935   TM_BIT_SCALE_TAI
00936   // the remaining bits are reserved
00937 };
00938
00939
00940 /* bit masks corresponding to the flag bits above */
00941
00942 #define TM_UTC          ( 1UL << TM_BIT_UTC )
00943 #define TM_LOCAL        ( 1UL << TM_BIT_LOCAL )
00944 #define TM_DL_ANN       ( 1UL << TM_BIT_DL_ANN )
00945 #define TM_DL_ENB       ( 1UL << TM_BIT_DL_ENB )
00946 #define TM_LS_ANN       ( 1UL << TM_BIT_LS_ANN )
00947 #define TM_LS_ENB       ( 1UL << TM_BIT_LS_ENB )
00948 #define TM_LS_ANN_NEG   ( 1UL << TM_BIT_LS_ANN_NEG )
00949
00950 #define TM_EXT_SYNC     ( 1UL << TM_BIT_EXT_SYNC )
00951 #define TM_HOLDOVER     ( 1UL << TM_BIT_HOLDOVER )
00952 #define TM_ANT_SHORT    ( 1UL << TM_BIT_ANT_SHORT )
00953 #define TM_NO_WARM      ( 1UL << TM_BIT_NO_WARM )
00954 #define TM_ANT_DISCONN  ( 1UL << TM_BIT_ANT_DISCONN )
00955 #define TM_SYN_FLAG     ( 1UL << TM_BIT_SYN_FLAG )
00956 #define TM_NO_SYNC      ( 1UL << TM_BIT_NO_SYNC )
00957 #define TM_NO_POS       ( 1UL << TM_BIT_NO_POS )
00958
00959 // The following bits are only used with the TM_STATUS_X type:
00960 #define TM_SCALE_GPS    ( 1UL << TM_BIT_SCALE_GPS )
00961 #define TM_SCALE_TAI    ( 1UL << TM_BIT_SCALE_TAI )
00962
00963 #define TM_MSK_TIME_VALID  ( TM_UTC | TM_SCALE_GPS | TM_SCALE_TAI )
00964
00968 typedef struct
00969 {
00970   int16_t channel;
00971   T_GPS t;
00972   TM_GPS tm;
00973 } TTM;
00974
00975 #define _mbg_swab_ttm( _p )       \
00976 {                                 \
00977   _mbg_swab16( &(_p)->channel );  \
00978   _mbg_swab_t_gps( &(_p)->t );    \
00979   _mbg_swab_tm_gps( &(_p)->tm );  \
00980 }
00981
00982
00983
00984 typedef struct
00985 {
00986   int32_t nano_secs;    // [nanoseconds]
00987   int32_t secs;         // [seconds]
00988 } NANO_TIME;
00989
00990 #define _mbg_swab_nano_time( _p )   \
00991 {                                   \
00992   _mbg_swab32( &(_p)->nano_secs );  \
00993   _mbg_swab32( &(_p)->secs );       \
00994 }
00995
00996 // The macro below checks if a NANO_TIME value is negative.
00997 #define _nano_time_negative( _nt ) \
00998   ( ( (_nt)->secs < 0 ) || ( (_nt)->nano_secs < 0 ) )
00999
01000
01001
01002 /* Two types of variables used to store a position. Type XYZ is */
01003 /* used with a position in earth centered, earth fixed (ECEF) */
01004 /* coordinates whereas type LLA holds such a position converted */
01005 /* to geographic coordinates as defined by WGS84 (World Geodetic */
01006 /* System from 1984). */
01007
01008 #ifndef _XYZ_DEFINED
01009   /* sequence and number of components of a cartesian position */
01010   enum { XP, YP, ZP, N_XYZ };
01011
01013   typedef double XYZ[N_XYZ];
01015   #define _XYZ_DEFINED
01016 #endif
01017
01018 #define _mbg_swab_xyz( _p )  _mbg_swab_doubles( _p, N_XYZ )
01019
01020
01021 #ifndef _LLA_DEFINED
01022   /* sequence and number of components of a geographic position */
01023   enum { LAT, LON, ALT, N_LLA };  /* latitude, longitude, altitude */
01024
01026   typedef double LLA[N_LLA];
01028   #define _LLA_DEFINED
01029 #endif
01030
01031 #define _mbg_swab_lla( _p )  _mbg_swab_doubles( _p, N_LLA )
01032
01033
01065 #define N_SYNTH_FREQ_DIGIT  4
01066 #define MAX_SYNTH_FREQ   1000
01068 #define MIN_SYNTH_RANGE     0
01069 #define MAX_SYNTH_RANGE     5
01070 #define N_SYNTH_RANGE       ( MAX_SYNTH_RANGE - MIN_SYNTH_RANGE + 1 )
01071
01072 #define N_SYNTH_PHASE_DIGIT     4
01073 #define MAX_SYNTH_PHASE  3600
01074
01075
01076 #define MAX_SYNTH_FREQ_EDIT  9999
01079 #define MAX_SYNTH_FREQ_VAL   10000000UL
01080 /*   == MAX_SYNTH_FREQ * 10^(MAX_SYNTH_RANGE-1) */
01081
01085 #define SYNTH_PHASE_SYNC_LIMIT   10000UL
01090 #define _synth_dp_pos_from_range( _r ) \
01091   ( ( ( N_SYNTH_RANGE - (_r) ) % ( N_SYNTH_FREQ_DIGIT - 1 ) ) + 1 )
01092
01096 #define DEFAULT_FREQ_RANGES \
01097 {                           \
01098   "Hz",                     \
01099   "kHz",                    \
01100   "kHz",                    \
01101   "kHz",                    \
01102   "MHz",                    \
01103   "MHz",                    \
01104 }
01105
01106
01107
01108 typedef struct
01109 {
01110   int16_t freq;
01111   int16_t range;
01112   int16_t phase;
01113 } SYNTH;
01114
01115 #define _mbg_swab_synth( _p )   \
01116 {                               \
01117   _mbg_swab16( &(_p)->freq );   \
01118   _mbg_swab16( &(_p)->range );  \
01119   _mbg_swab16( &(_p)->phase );  \
01120 }
01121
01122
01127 enum
01128 {
01129   SYNTH_DISABLED,
01130   SYNTH_OFF,
01131   SYNTH_FREE,
01132   SYNTH_DRIFTING,
01133   SYNTH_SYNC,
01134   N_SYNTH_STATE
01135 };
01136
01137 typedef struct
01138 {
01139   uint8_t state;
01140   uint8_t flags;
01141 } SYNTH_STATE;
01142
01143 #define _mbg_swab_synth_state( _p )  _nop_macro_fnc()
01144
01145 #define SYNTH_FLAG_PHASE_IGNORED  0x01
01146  // endgroup
01148
01165 typedef char TZ_NAME[6];
01166
01167 typedef struct
01168 {
01169   int32_t offs;
01170   int32_t offs_dl;
01171   TM_GPS tm_on;
01172   TM_GPS tm_off;
01173   TZ_NAME name[2];
01174 } TZDL;
01175
01176 #define _mbg_swab_tzdl( _p )          \
01177 {                                     \
01178   _mbg_swab32( &(_p)->offs );         \
01179   _mbg_swab32( &(_p)->offs_dl );      \
01180   _mbg_swab_tm_gps( &(_p)->tm_on );   \
01181   _mbg_swab_tm_gps( &(_p)->tm_off );  \
01182 }
01183
01184
01189 #define DL_AUTO_FLAG  0x8000
01190
01191
01192
01193 // Below there are some initializers for commonly used TZDL configurations:
01194
01195 #define DEFAULT_TZDL_AUTO_YEAR   ( 2007 | DL_AUTO_FLAG )
01196
01197 #define DEFAULt_TZDL_OFFS_DL     3600L
01204 #define DEFAULT_TZDL_TM_ON_OFF_NO_DST \
01205   { DEFAULT_TZDL_AUTO_YEAR, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
01206
01207
01208 // Settings used with UTC:
01209
01210 #define TZ_INFO_UTC  "UTC (Universal Time, Coordinated)"
01211
01212 #define DEFAULT_TZDL_NAMES_UTC    { "UTC  ", "UTC  " }
01213
01214 #define DEFAULT_TZDL_UTC                        \
01215 {                                               \
01216   0L,                                 \
01217   0L,                              \
01218   DEFAULT_TZDL_TM_ON_OFF_NO_DST,     \
01219   DEFAULT_TZDL_TM_ON_OFF_NO_DST,    \
01220   DEFAULT_TZDL_NAMES_UTC            \
01221 }
01222
01223
01229 #define DEFAULT_TZDL_TM_ON_CET_CEST \
01230   { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 2, 0, 0, 0L, 0L, 0 }
01231
01232 #define DEFAULT_TZDL_TM_OFF_CET_CEST \
01233   { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
01234
01235
01236 // Settings used with Central European Time:
01237
01238 #define TZ_INFO_CET_CEST_EN  "CET/CEST (Central Europe)"
01239 #define TZ_INFO_CET_CEST_DE  "MEZ/MESZ (Mitteleuropa)"
01240
01241 #define DEFAULT_TZDL_NAMES_CET_CEST_EN  { "CET  ", "CEST " }
01242 #define DEFAULT_TZDL_NAMES_CET_CEST_DE  { "MEZ  ", "MESZ " }
01243
01244 #define DEFAULT_TZDL_OFFS_CET  3600L
01245
01246 #define DEFAULT_TZDL_CET_CEST_EN                \
01247 {                                               \
01248   DEFAULT_TZDL_OFFS_CET,              \
01249   DEFAULt_TZDL_OFFS_DL,            \
01250   DEFAULT_TZDL_TM_ON_CET_CEST,       \
01251   DEFAULT_TZDL_TM_OFF_CET_CEST,     \
01252   DEFAULT_TZDL_NAMES_CET_CEST_EN    \
01253 }
01254
01255 #define DEFAULT_TZDL_CET_CEST_DE                \
01256 {                                               \
01257   DEFAULT_TZDL_OFFS_CET,              \
01258   DEFAULt_TZDL_OFFS_DL,            \
01259   DEFAULT_TZDL_TM_ON_CET_CEST,       \
01260   DEFAULT_TZDL_TM_OFF_CET_CEST,     \
01261   DEFAULT_TZDL_NAMES_CET_CEST_DE    \
01262 }
01263
01264
01265 // The symbols below specify beginning and end of DST for
01266 // Easter Europe, as constituted by the European Parliament:
01267
01268 #define DEFAULT_TZDL_TM_ON_EET_EEST \
01269   { DEFAULT_TZDL_AUTO_YEAR, 3, 25, 0, 0, 3, 0, 0, 0L, 0L, 0 }
01270
01271 #define DEFAULT_TZDL_TM_OFF_EET_EEST \
01272   { DEFAULT_TZDL_AUTO_YEAR, 10, 25, 0, 0, 4, 0, 0, 0L, 0L, 0 }
01273
01274
01275 // Settings used with Eastern European Time:
01276
01277 #define TZ_INFO_EET_EEST_EN  "EET/EEST (East Europe)"
01278 #define TZ_INFO_EET_EEST_DE  "OEZ/OEST (Osteuropa)"
01279
01280 #define DEFAULT_TZDL_NAMES_EET_EEST_EN  { "EET  ", "EEST " }
01281 #define DEFAULT_TZDL_NAMES_EET_EEST_DE  { "OEZ  ", "OESZ " }
01282
01283 #define DEFAULT_TZDL_OFFS_EET  7200L
01284
01285 #define DEFAULT_TZDL_EET_EEST_EN                \
01286 {                                               \
01287   DEFAULT_TZDL_OFFS_EET,          /* offs */    \
01288   DEFAULt_TZDL_OFFS_DL,           /* offs_dl */ \
01289   DEFAULT_TZDL_TM_ON_EET_EEST,    /* tm_on */   \
01290   DEFAULT_TZDL_TM_OFF_EET_EEST,   /* tm_off */  \
01291   DEFAULT_TZDL_NAMES_EET_EEST_EN  /* name[] */  \
01292 }
01293
01294 #define DEFAULT_TZDL_EET_EEST_DE                \
01295 {                                               \
01296   DEFAULT_TZDL_OFFS_EET,          /* offs */    \
01297   DEFAULt_TZDL_OFFS_DL,           /* offs_dl */ \
01298   DEFAULT_TZDL_TM_ON_EET_EEST,    /* tm_on */   \
01299   DEFAULT_TZDL_TM_OFF_EET_EEST,   /* tm_off */  \
01300   DEFAULT_TZDL_NAMES_EET_EEST_DE  /* name[] */  \
01301 }
01302  // endgroup
01304
01310 typedef struct
01311 {
01312   int16_t status;
01313   TM_GPS tm_disconn;
01314   TM_GPS tm_reconn;
01315   int32_t delta_t;
01316 } ANT_INFO;
01317
01318 #define _mbg_swab_ant_info( _p )          \
01319 {                                         \
01320   _mbg_swab16( &(_p)->status );           \
01321   _mbg_swab_tm_gps( &(_p)->tm_disconn );  \
01322   _mbg_swab_tm_gps( &(_p)->tm_reconn );   \
01323   _mbg_swab32( &(_p)->delta_t );          \
01324 }
01325
01326
01330 enum
01331 {
01332   ANT_INVALID,
01333   ANT_DISCONN,
01334   ANT_RECONN
01335 };
01336
01337 /* Defines used with ENABLE_FLAGS */
01338
01339 #define EF_OFF            0x00
01341 #define EF_SERIAL_BOTH    0x03
01342 #define EF_PULSES_BOTH    0x03
01343 #define EF_FREQ_ALL       0x07
01344 #define EF_SYNTH          0x01
01354 typedef struct
01355 {
01356   uint16_t serial;
01357   uint16_t pulses;
01358   uint16_t freq;
01359   uint16_t synth;
01360 } ENABLE_FLAGS;
01361
01362 #define _mbg_swab_enable_flags( _p )  \
01363 {                                     \
01364   _mbg_swab16( &(_p)->serial );       \
01365   _mbg_swab16( &(_p)->pulses );       \
01366   _mbg_swab16( &(_p)->freq );         \
01367   _mbg_swab16( &(_p)->synth );        \
01368 }
01369
01370
01371 /* A struct used to hold the settings of a serial port: */
01372
01373 #ifndef _COM_HS_DEFINED
01374   /* types of handshake */
01375   enum { HS_NONE, HS_XONXOFF, HS_RTSCTS, N_COM_HS };
01376   #define _COM_HS_DEFINED
01377 #endif
01378
01379 #ifndef _COM_PARM_DEFINED
01380   typedef int32_t BAUD_RATE;
01381
01382   /* indices used to identify a parameter in the framing string */
01383   enum { F_DBITS, F_PRTY, F_STBITS };
01384
01385   typedef struct
01386   {
01387     BAUD_RATE baud_rate;  /* e.g. 19200L */
01388     char framing[4];      /* e.g. "8N1" */
01389     int16_t handshake;    /* a numeric value, only HS_NONE supported yet */
01390   } COM_PARM;
01391
01392   #define _COM_PARM_DEFINED
01393 #endif
01394
01395 #define _mbg_swab_baud_rate( _p )   _mbg_swab32( _p )
01396
01397 #define _mbg_swab_com_parm( _p )            \
01398 {                                           \
01399   _mbg_swab_baud_rate( &(_p)->baud_rate );  \
01400   _mbg_swab16( &(_p)->handshake );          \
01401 }
01402
01403
01404 /*
01405  * Indices of any supported baud rates.
01406  * Note that not each baud rate must be supported by
01407  * any clock model and/or port:
01408  */
01409 enum
01410 {
01411   MBG_BAUD_RATE_300,
01412   MBG_BAUD_RATE_600,
01413   MBG_BAUD_RATE_1200,
01414   MBG_BAUD_RATE_2400,
01415   MBG_BAUD_RATE_4800,
01416   MBG_BAUD_RATE_9600,
01417   MBG_BAUD_RATE_19200,
01418   MBG_BAUD_RATE_38400,
01419   N_MBG_BAUD_RATES       /* the number of supported baud rates */
01420 };
01421
01422 /*
01423  * An initializer for a table of baud rate values.
01424  * The values must correspond to the enumeration above.
01425  */
01426 #define MBG_BAUD_RATES \
01427 {                      \
01428   300L,                \
01429   600L,                \
01430   1200L,               \
01431   2400L,               \
01432   4800L,               \
01433   9600L,               \
01434   19200L,              \
01435   38400L               \
01436 }
01437
01438 /*
01439  * An initializer for a table of baud rate strings.
01440  * The values must correspond to the enumeration above.
01441  */
01442 #define MBG_BAUD_STRS \
01443 {                     \
01444   "300",              \
01445   "600",              \
01446   "1200",             \
01447   "2400",             \
01448   "4800",             \
01449   "9600",             \
01450   "19200",            \
01451   "38400"             \
01452 }
01453
01454 /*
01455  * The bit masks below can be used to determine which baud rates
01456  * are supported by a serial port. This may vary between
01457  * different ports of the same radio clock since different
01458  * types of UART are used which must not necessarily support
01459  * each baud rate:
01460  */
01461 #define MBG_PORT_HAS_300     ( 1UL << MBG_BAUD_RATE_300 )
01462 #define MBG_PORT_HAS_600     ( 1UL << MBG_BAUD_RATE_600 )
01463 #define MBG_PORT_HAS_1200    ( 1UL << MBG_BAUD_RATE_1200 )
01464 #define MBG_PORT_HAS_2400    ( 1UL << MBG_BAUD_RATE_2400 )
01465 #define MBG_PORT_HAS_4800    ( 1UL << MBG_BAUD_RATE_4800 )
01466 #define MBG_PORT_HAS_9600    ( 1UL << MBG_BAUD_RATE_9600 )
01467 #define MBG_PORT_HAS_19200   ( 1UL << MBG_BAUD_RATE_19200 )
01468 #define MBG_PORT_HAS_38400   ( 1UL << MBG_BAUD_RATE_38400 )
01469
01470
01471 /*
01472  * Indices of any supported framings.
01473  * Note that not each framing must be supported by
01474  * any clock model and/or port:
01475  */
01476 enum
01477 {
01478   MBG_FRAMING_7N2,
01479   MBG_FRAMING_7E1,
01480   MBG_FRAMING_7E2,
01481   MBG_FRAMING_8N1,
01482   MBG_FRAMING_8N2,
01483   MBG_FRAMING_8E1,
01484   MBG_FRAMING_7O1,
01485   MBG_FRAMING_7O2,
01486   MBG_FRAMING_8O1,
01487   N_MBG_FRAMINGS       /* the number of supported framings */
01488 };
01489
01490 /*
01491  * An initializer for a table of framing strings.
01492  * The values must correspond to the enumeration above.
01493  */
01494 #define MBG_FRAMING_STRS \
01495 {                        \
01496   "7N2",                 \
01497   "7E1",                 \
01498   "7E2",                 \
01499   "8N1",                 \
01500   "8N2",                 \
01501   "8E1",                 \
01502   "7O1",                 \
01503   "7O2",                 \
01504   "8O1"                  \
01505 }
01506
01507 /*
01508  * The bit masks below can be used to determine which framings
01509  * are supported by a serial port. This may vary between
01510  * different ports of the same radio clock since different
01511  * types of UART are used which must not necessarily support
01512  * each framing type:
01513  */
01514 #define MBG_PORT_HAS_7N2   ( 1UL << MBG_FRAMING_7N2 )
01515 #define MBG_PORT_HAS_7E1   ( 1UL << MBG_FRAMING_7E1 )
01516 #define MBG_PORT_HAS_7E2   ( 1UL << MBG_FRAMING_7E2 )
01517 #define MBG_PORT_HAS_8N1   ( 1UL << MBG_FRAMING_8N1 )
01518 #define MBG_PORT_HAS_8N2   ( 1UL << MBG_FRAMING_8N2 )
01519 #define MBG_PORT_HAS_8E1   ( 1UL << MBG_FRAMING_8E1 )
01520 #define MBG_PORT_HAS_7O1   ( 1UL << MBG_FRAMING_7O1 )
01521 #define MBG_PORT_HAS_7O2   ( 1UL << MBG_FRAMING_7O2 )
01522 #define MBG_PORT_HAS_8O1   ( 1UL << MBG_FRAMING_8O1 )
01523
01524
01525
01526 /*
01527  * By default, the baud rates and framings below
01528  * are supported by the UARTs integrated into
01529  * the C166 microcontroller:
01530  */
01531 #define DEFAULT_GPS_BAUD_RATES_C166 \
01532 (                                   \
01533   MBG_PORT_HAS_300   |              \
01534   MBG_PORT_HAS_600   |              \
01535   MBG_PORT_HAS_1200  |              \
01536   MBG_PORT_HAS_2400  |              \
01537   MBG_PORT_HAS_4800  |              \
01538   MBG_PORT_HAS_9600  |              \
01539   MBG_PORT_HAS_19200                \
01540 )
01541
01542 #define DEFAULT_GPS_FRAMINGS_C166   \
01543 (                                   \
01544   MBG_PORT_HAS_7N2 |                \
01545   MBG_PORT_HAS_7E1 |                \
01546   MBG_PORT_HAS_7E2 |                \
01547   MBG_PORT_HAS_8N1 |                \
01548   MBG_PORT_HAS_8N2 |                \
01549   MBG_PORT_HAS_8E1                  \
01550 )
01551
01552
01553 /*
01554  * By default, the baud rates and framings below
01555  * are supported by the UARTs integrated into
01556  * the GP2021 chipset:
01557  */
01558 #define DEFAULT_GPS_BAUD_RATES_GP2021 \
01559 (                                     \
01560   MBG_PORT_HAS_300   |                \
01561   MBG_PORT_HAS_600   |                \
01562   MBG_PORT_HAS_1200  |                \
01563   MBG_PORT_HAS_2400  |                \
01564   MBG_PORT_HAS_4800  |                \
01565   MBG_PORT_HAS_9600  |                \
01566   MBG_PORT_HAS_19200                  \
01567 )
01568
01569 #define DEFAULT_GPS_FRAMINGS_GP2021   \
01570 (                                     \
01571   MBG_PORT_HAS_7N2 |                  \
01572   MBG_PORT_HAS_7E2 |                  \
01573   MBG_PORT_HAS_8N1 |                  \
01574   MBG_PORT_HAS_8E1 |                  \
01575   MBG_PORT_HAS_8O1                    \
01576 )
01577
01578
01579 /*
01580  * The structure below is more flexible if different receiver
01581  * models have different numbers of serial ports, so the old
01582  * structure PORT_PARM will become obsolete.
01583  */
01584 typedef struct
01585 {
01586   COM_PARM parm;        /* speed, framing, etc. */
01587   uint8_t mode;         /* per second, per minute, etc. */
01588   uint8_t str_type;     /* type of the output string */
01589   uint32_t flags;       /* reserved for future use, currently 0 */
01590 } PORT_SETTINGS;
01591
01592 #define _mbg_swab_port_settings( _p )  \
01593 {                                      \
01594   _mbg_swab_com_parm( &(_p)->parm );   \
01595   _mbg_swab32( &(_p)->flags );         \
01596 }
01597
01598
01599 /*
01600  * The definitions below can be used to mark specific fields of a
01601  * PORT_SETTINGS structure, e.g. when editing build a mask indicating
01602  * which of the fields have changed or which are not valid.
01603  */
01604 enum
01605 {
01606   MBG_PS_BIT_BAUD_RATE_OVR_SW,   /* Baud rate index exceeds num supp by driver SW */
01607   MBG_PS_BIT_BAUD_RATE_OVR_DEV,  /* Baud rate index exceeds num supp by device */
01608   MBG_PS_BIT_BAUD_RATE,          /* Baud rate not supp by given port */
01609   MBG_PS_BIT_FRAMING_OVR_SW,     /* Framing index exceeds num supp by driver SW */
01610   MBG_PS_BIT_FRAMING_OVR_DEV,    /* Framing index exceeds num supp by device */
01611   MBG_PS_BIT_FRAMING,            /* Framing not supp by given port */
01612   MBG_PS_BIT_HS_OVR_SW,          /* Handshake index exceeds num supp by driver SW */
01613   MBG_PS_BIT_HS,                 /* Handshake mode not supp by given port */
01614   MBG_PS_BIT_STR_TYPE_OVR_SW,    /* String type index exceeds num supp by driver SW */
01615   MBG_PS_BIT_STR_TYPE_OVR_DEV,   /* String type index exceeds num supp by device */
01616   MBG_PS_BIT_STR_TYPE,           /* String type not supp by given port */
01617   MBG_PS_BIT_STR_MODE_OVR_SW,    /* String mode index exceeds num supp by driver SW */
01618   MBG_PS_BIT_STR_MODE_OVR_DEV,   /* String mode index exceeds num supp by device */
01619   MBG_PS_BIT_STR_MODE,           /* String mode not supp by given port and string type */
01620   MBG_PS_BIT_FLAGS_OVR_SW,       /* Flags not supp by driver SW */
01621   MBG_PS_BIT_FLAGS,              /* Flags not supp by device */
01622   N_MBG_PS_BIT
01623 };
01624
01625 #define MBG_PS_MSK_BAUD_RATE_OVR_SW   ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_SW )
01626 #define MBG_PS_MSK_BAUD_RATE_OVR_DEV  ( 1UL << MBG_PS_BIT_BAUD_RATE_OVR_DEV )
01627 #define MBG_PS_MSK_BAUD_RATE          ( 1UL << MBG_PS_BIT_BAUD_RATE )
01628 #define MBG_PS_MSK_FRAMING_OVR_SW     ( 1UL << MBG_PS_BIT_FRAMING_OVR_SW )
01629 #define MBG_PS_MSK_FRAMING_OVR_DEV    ( 1UL << MBG_PS_BIT_FRAMING_OVR_DEV )
01630 #define MBG_PS_MSK_FRAMING            ( 1UL << MBG_PS_BIT_FRAMING )
01631 #define MBG_PS_MSK_HS_OVR_SW          ( 1UL << MBG_PS_BIT_HS_OVR_SW )
01632 #define MBG_PS_MSK_HS                 ( 1UL << MBG_PS_BIT_HS )
01633 #define MBG_PS_MSK_STR_TYPE_OVR_SW    ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_SW )
01634 #define MBG_PS_MSK_STR_TYPE_OVR_DEV   ( 1UL << MBG_PS_BIT_STR_TYPE_OVR_DEV )
01635 #define MBG_PS_MSK_STR_TYPE           ( 1UL << MBG_PS_BIT_STR_TYPE )
01636 #define MBG_PS_MSK_STR_MODE_OVR_SW    ( 1UL << MBG_PS_BIT_STR_MODE_OVR_SW )
01637 #define MBG_PS_MSK_STR_MODE_OVR_DEV   ( 1UL << MBG_PS_BIT_STR_MODE_OVR_DEV )
01638 #define MBG_PS_MSK_STR_MODE           ( 1UL << MBG_PS_BIT_STR_MODE )
01639 #define MBG_PS_MSK_FLAGS_OVR_SW       ( 1UL << MBG_PS_BIT_FLAGS_OVR_SW )
01640 #define MBG_PS_MSK_FLAGS              ( 1UL << MBG_PS_BIT_FLAGS )
01641
01642
01643
01644 /*
01645  * The structure below adds an index number to the structure
01646  * above to allow addressing of several instances:
01647  */
01648 typedef struct
01649 {
01650   uint16_t idx;         /* 0..RECEIVER_INFO.n_com_port-1 */
01651   PORT_SETTINGS port_settings;
01652 } PORT_SETTINGS_IDX;
01653
01654 #define _mbg_swab_port_settings_idx( _p )           \
01655 {                                                   \
01656   _mbg_swab16( &(_p)->idx );                        \
01657   _mbg_swab_port_settings( &(_p)->port_settings );  \
01658 }
01659
01660
01661 /*
01662  * The structure below holds the current settings
01663  * for a port, plus additional informaton on the
01664  * port's capabilities. This can be read by setup
01665  * programs to allow setup of supported features
01666  * only.
01667  */
01668 typedef struct
01669 {
01670   PORT_SETTINGS port_settings;  /* COM port settings as defined above */
01671   uint32_t supp_baud_rates;  /* bit mask of baud rates supp. by this port */
01672   uint32_t supp_framings;    /* bit mask of framings supp. by this port */
01673   uint32_t supp_str_types;   /* bit mask, bit 0 set if str_type[0] supp. */
01674   uint32_t reserved;         /* reserved for future use, currently 0 */
01675   uint32_t flags;            /* reserved for future use, currently 0 */
01676 } PORT_INFO;
01677
01678 #define _mbg_swab_port_info( _p )                   \
01679 {                                                   \
01680   _mbg_swab_port_settings( &(_p)->port_settings );  \
01681   _mbg_swab32( &(_p)->supp_baud_rates );            \
01682   _mbg_swab32( &(_p)->supp_framings );              \
01683   _mbg_swab32( &(_p)->supp_str_types );             \
01684   _mbg_swab32( &(_p)->reserved );                   \
01685   _mbg_swab32( &(_p)->flags );                      \
01686 }
01687
01688
01689 /*
01690  * The structure below adds an index number to the structure
01691  * above to allow addressing of several instances:
01692  */
01693 typedef struct
01694 {
01695   uint16_t idx;         /* 0..RECEIVER_INFO.n_com_port-1 */
01696   PORT_INFO port_info;
01697 } PORT_INFO_IDX;
01698
01699 #define _mbg_swab_port_info_idx( _p )       \
01700 {                                           \
01701   _mbg_swab16( &(_p)->idx );                \
01702   _mbg_swab_port_info( &(_p)->port_info );  \
01703 }
01704
01705
01706 /*
01707  * The structure below keeps information for a given
01708  * string type, e.g. which modes can be used with that
01709  * string type:
01710  */
01711 typedef struct
01712 {
01713   uint32_t supp_modes;  /* bit mask of modes supp. with this string type */
01714   char long_name[23];   /* long name of the string format */
01715   char short_name[11];  /* short name of the string format */
01716   uint16_t flags;       /* reserved, currently always 0 */
01717 } STR_TYPE_INFO;
01718
01719 #define _mbg_swab_str_type_info( _p )  \
01720 {                                      \
01721   _mbg_swab32( &(_p)->supp_modes );    \
01722   _mbg_swab16( &(_p)->flags );         \
01723 }
01724
01725
01726
01727 /*
01728  * The structure below adds an index number to the structure
01729  * above to allow addressing of several instances:
01730  */
01731 typedef struct
01732 {
01733   uint16_t idx;          /* 0..RECEIVER_INFO.n_str_type-1 */
01734   STR_TYPE_INFO str_type_info;
01735 } STR_TYPE_INFO_IDX;
01736
01737 #define _mbg_swab_str_type_info_idx( _p )           \
01738 {                                                   \
01739   _mbg_swab16( &(_p)->idx );                        \
01740   _mbg_swab_str_type_info( &(_p)->str_type_info );  \
01741 }
01742
01743
01744 /*
01745  * The codes below define valid modes for time strings,
01746  * i.e. the condition when a string is being sent
01747  * via the serial port:
01748  */
01749 enum
01750 {
01751   STR_ON_REQ,     /* on request only */
01752   STR_PER_SEC,    /* automatically if second changes */
01753   STR_PER_MIN,    /* automatically if minute changes */
01754   STR_AUTO,       /* automatically if required, e.g. on capture event */
01755   STR_ON_REQ_SEC, /* if second changes and a request has been received */
01756   N_STR_MODE      /* the number of valid modes */
01757 };
01758
01759
01760 #define DEFAULT_SHORT_MODE_NAMES \
01761 {                                \
01762   "'?'",                         \
01763   "1 sec",                       \
01764   "1 min",                       \
01765   "auto",                        \
01766   "'?' sec"                      \
01767 }
01768
01769
01770 /*
01771  * Default initializers for English mode string names. Initializers
01772  * for multi-language strings can be found in pcpslstr.h.
01773  */
01774 #define ENG_MODE_NAME_STR_ON_REQ       "on request '?' only"
01775 #define ENG_MODE_NAME_STR_PER_SEC      "per second"
01776 #define ENG_MODE_NAME_STR_PER_MIN      "per minute"
01777 #define ENG_MODE_NAME_STR_AUTO         "automatically"
01778 #define ENG_MODE_NAME_STR_ON_REQ_SEC   "sec after request"
01779
01780 #define DEFAULT_ENG_MODE_NAMES   \
01781 {                                \
01782   ENG_MODE_NAME_STR_ON_REQ,      \
01783   ENG_MODE_NAME_STR_PER_SEC,     \
01784   ENG_MODE_NAME_STR_PER_MIN,     \
01785   ENG_MODE_NAME_STR_AUTO,        \
01786   ENG_MODE_NAME_STR_ON_REQ_SEC   \
01787 }
01788
01789 /*
01790  * The definitions below are used to set up bit masks
01791  * which restrict the modes which can be used with
01792  * a given string type:
01793  */
01794 #define MSK_STR_ON_REQ      ( 1UL << STR_ON_REQ )
01795 #define MSK_STR_PER_SEC     ( 1UL << STR_PER_SEC )
01796 #define MSK_STR_PER_MIN     ( 1UL << STR_PER_MIN )
01797 #define MSK_STR_AUTO        ( 1UL << STR_AUTO )
01798 #define MSK_STR_ON_REQ_SEC  ( 1UL << STR_ON_REQ_SEC )
01799
01800
01801 /*
01802  *  The modes below are supported by most string types:
01803  */
01804 #define DEFAULT_STR_MODES \
01805 (                         \
01806   MSK_STR_ON_REQ |        \
01807   MSK_STR_PER_SEC |       \
01808   MSK_STR_PER_MIN         \
01809 )
01810
01811
01812 /*
01813  *  The modes below can be used with the capture string:
01814  */
01815 #define DEFAULT_STR_MODES_UCAP \
01816 (                              \
01817   MSK_STR_ON_REQ |             \
01818   MSK_STR_AUTO                 \
01819 )
01820
01821
01822
01827 #define DEFAULT_N_COM   2
01828
01829 /*
01830  * By default that's also the number of ports
01831  * currently available:
01832  */
01833 #ifndef N_COM
01834   #define N_COM     DEFAULT_N_COM
01835 #endif
01836
01841 typedef struct
01842 {
01843   COM_PARM com[DEFAULT_N_COM];
01844   uint8_t mode[DEFAULT_N_COM];
01845 } PORT_PARM;
01846
01847 #define _mbg_swab_port_parm( _p )         \
01848 {                                         \
01849   int i;                                  \
01850   for ( i = 0; i < DEFAULT_N_COM; i++ )   \
01851   {                                       \
01852     _mbg_swab_com_parm( &(_p)->com[i] );  \
01853     /* no need to swap mode byte */       \
01854   }                                       \
01855 }
01856
01857
01858 /*
01859  * The codes below were used with the obsolete
01860  * PORT_PARM.mode above. They are defined for
01861  * compatibility with older devices only:
01862  */
01863 enum
01864 {
01865   /* STR_ON_REQ,   defined above */
01866   /* STR_PER_SEC,  defined above */
01867   /* STR_PER_MIN,  defined above */
01868   N_STR_MODE_0 = STR_AUTO,   /* COM0 and COM1 */
01869   STR_UCAP = N_STR_MODE_0,
01870   STR_UCAP_REQ,
01871   N_STR_MODE_1               /* COM1 only */
01872 };
01873
01874
01875
01917 enum
01918 {
01919   ICODE_TX_B002_B122,
01920   ICODE_TX_B003_B123,
01921   ICODE_TX_A002_A132,
01922   ICODE_TX_A003_A133,
01923   ICODE_TX_AFNOR,
01924   ICODE_TX_IEEE1344,
01925   ICODE_TX_B220_1344,
01926   ICODE_TX_B222,
01927   ICODE_TX_B223,
01928   ICODE_TX_B006_B126,
01929   ICODE_TX_B007_B127,
01930   N_ICODE_TX
01931 };
01932
01933
01937 #define DEFAULT_ICODE_TX_NAMES \
01938 {                              \
01939   "B002+B122",                 \
01940   "B003+B123",                 \
01941   "A002+A132",                 \
01942   "A003+A133",                 \
01943   "AFNOR NFS-87500",           \
01944   "IEEE1344",                  \
01945   "B220/1344+IEEE1344",        \
01946   "B222+B122",                 \
01947   "B223+B123",                 \
01948   "B006+B126",                 \
01949   "B007+B127"                  \
01950 }
01951
01955 #define DEFAULT_ICODE_TX_DESCRIPTIONS_ENG                             \
01956 {                                                                     \
01957   "100 bps, DC or 1 kHz carrier",                                     \
01958   "100 bps, DC or 1 kHz carrier, SBS",                                \
01959   "1000 bps, DC or 10 kHz carrier",                                   \
01960   "1000 bps, DC or 10 kHz carrier, SBS",                              \
01961   "100 bps, DC or 1 kHz carrier, SBS, complete date",                 \
01962   "100 bps, DC or 1 kHz carrier, SBS, time zone info",                \
01963   "100 bps, DC manchester enc. or 1kHz carrier, SBS, time zone info", \
01964   "100 bps, DC manchester enc. or 1kHz carrier, time-of-year",        \
01965   "100 bps, DC manchester enc. or 1kHz carrier, time-of-year, SBS",   \
01966   "100 bps, DC or 1 kHz carrier, complete date",                      \
01967   "100 bps, DC or 1 kHz carrier, complete date, SBS"                  \
01968 }
01969
01970 /*
01971  * The definitions below are used to set up bit masks
01972  * which restrict the IRIG formats which are supported
01973  * by a given IRIG transmitter device:
01974  */
01975 #define MSK_ICODE_TX_B002_B122    ( 1UL << ICODE_TX_B002_B122 )
01976 #define MSK_ICODE_TX_B003_B123    ( 1UL << ICODE_TX_B003_B123 )
01977 #define MSK_ICODE_TX_A002_A132    ( 1UL << ICODE_TX_A002_A132 )
01978 #define MSK_ICODE_TX_A003_A133    ( 1UL << ICODE_TX_A003_A133 )
01979 #define MSK_ICODE_TX_AFNOR        ( 1UL << ICODE_TX_AFNOR )
01980 #define MSK_ICODE_TX_IEEE1344     ( 1UL << ICODE_TX_IEEE1344 )
01981 #define MSK_ICODE_TX_B220_1344    ( 1UL << ICODE_TX_B220_1344 )
01982 #define MSK_ICODE_TX_B222         ( 1UL << ICODE_TX_B222 )
01983 #define MSK_ICODE_TX_B223         ( 1UL << ICODE_TX_B223 )
01984 #define MSK_ICODE_TX_B006_B126    ( 1UL << ICODE_TX_B006_B126 )
01985 #define MSK_ICODE_TX_B007_B127    ( 1UL << ICODE_TX_B007_B127 )
01986
01990 #define MSK_ICODE_TX_DC_MANCH \
01991 (                             \
01992   MSK_ICODE_TX_B220_1344 |    \
01993   MSK_ICODE_TX_B222      |    \
01994   MSK_ICODE_TX_B223           \
01995 )
01996
02000 #define MSK_ICODE_TX_1KHZ  \
02001 (                          \
02002   MSK_ICODE_TX_B002_B122 | \
02003   MSK_ICODE_TX_B003_B123 | \
02004   MSK_ICODE_TX_AFNOR     | \
02005   MSK_ICODE_TX_IEEE1344  | \
02006   MSK_ICODE_TX_B220_1344 | \
02007   MSK_ICODE_TX_B222      | \
02008   MSK_ICODE_TX_B223      | \
02009   MSK_ICODE_TX_B006_B126 | \
02010   MSK_ICODE_TX_B007_B127   \
02011 )
02012
02016 #define MSK_ICODE_TX_10KHZ \
02017 (                          \
02018   MSK_ICODE_TX_A002_A132 | \
02019   MSK_ICODE_TX_A003_A133   \
02020 )
02021
02025 #define MSK_ICODE_TX_100BPS \
02026 (                           \
02027   MSK_ICODE_TX_B002_B122 |  \
02028   MSK_ICODE_TX_B003_B123 |  \
02029   MSK_ICODE_TX_AFNOR     |  \
02030   MSK_ICODE_TX_IEEE1344  |  \
02031   MSK_ICODE_TX_B006_B126 |  \
02032   MSK_ICODE_TX_B007_B127    \
02033 )
02034
02038 #define MSK_ICODE_TX_1000BPS \
02039 (                            \
02040   MSK_ICODE_TX_A002_A132 |   \
02041   MSK_ICODE_TX_A003_A133     \
02042 )
02043
02047 #define MSK_ICODE_TX_HAS_TFOM \
02048 (                             \
02049   MSK_ICODE_TX_IEEE1344       \
02050 )
02051
02055 #define MSK_ICODE_TX_HAS_TZI \
02056 (                            \
02057   MSK_ICODE_TX_IEEE1344      \
02058 )
02059
02064 #if !defined( SUPP_MSK_ICODE_TX )
02065   #define SUPP_MSK_ICODE_TX  \
02066   (                          \
02067     MSK_ICODE_TX_B002_B122 | \
02068     MSK_ICODE_TX_B003_B123 | \
02069     MSK_ICODE_TX_A002_A132 | \
02070     MSK_ICODE_TX_A003_A133 | \
02071     MSK_ICODE_TX_AFNOR       \
02072   )
02073 #endif
02074
02075
02076
02082 enum
02083 {
02084   ICODE_RX_B122_B123,
02085   ICODE_RX_A132_A133,
02086   ICODE_RX_B002_B003,
02087   ICODE_RX_A002_A003,
02088   ICODE_RX_AFNOR,
02089   ICODE_RX_AFNOR_DC,
02090   ICODE_RX_IEEE1344,
02091   ICODE_RX_IEEE1344_DC,
02092   ICODE_RX_B126_B127,
02093   ICODE_RX_B006_B007,
02094   N_ICODE_RX          /* the number of valid signal code types */
02095 };
02096
02100 #define DEFAULT_ICODE_RX_NAMES \
02101 {                              \
02102   "B122/B123",                 \
02103   "A132/A133",                 \
02104   "B002/B003 (DC)",            \
02105   "A002/A003 (DC)",            \
02106   "AFNOR NFS-87500",           \
02107   "AFNOR NFS-87500 (DC)",      \
02108   "IEEE1344",                  \
02109   "IEEE1344 (DC)",             \
02110   "B126/B127",                 \
02111   "B006/B007 (DC)"             \
02112 }
02113
02117 #define DEFAULT_ICODE_RX_DESCRIPTIONS_ENG                   \
02118 {                                                           \
02119   "100 bps, 1 kHz carrier, SBS optionally",                 \
02120   "1000 bps, 10 kHz carrier, SBS optionally",               \
02121   "100 bps, DC shift, SBS optionally",                      \
02122   "1000 bps, DC shift, SBS optionally",                     \
02123   "100 bps, 1 kHz carrier, SBS, complete date",             \
02124   "100 bps, DC shift, SBS, complete date",                  \
02125   "100 bps, 1 kHz carrier, SBS, time zone info",            \
02126   "100 bps, DC shift, SBS, time zone info",                 \
02127   "100 bps, 1 kHz carrier, complete date, SBS optionally",  \
02128   "100 bps, DC shift, complete date, SBS optionally"        \
02129 }
02130
02131 /*
02132  * Bit masks corresponding to the enumeration above:
02133  */
02134 #define MSK_ICODE_RX_B122_B123       ( 1UL << ICODE_RX_B122_B123 )
02135 #define MSK_ICODE_RX_A132_A133       ( 1UL << ICODE_RX_A132_A133 )
02136 #define MSK_ICODE_RX_B002_B003       ( 1UL << ICODE_RX_B002_B003 )
02137 #define MSK_ICODE_RX_A002_A003       ( 1UL << ICODE_RX_A002_A003 )
02138 #define MSK_ICODE_RX_AFNOR           ( 1UL << ICODE_RX_AFNOR )
02139 #define MSK_ICODE_RX_AFNOR_DC        ( 1UL << ICODE_RX_AFNOR_DC )
02140 #define MSK_ICODE_RX_IEEE1344        ( 1UL << ICODE_RX_IEEE1344 )
02141 #define MSK_ICODE_RX_IEEE1344_DC     ( 1UL << ICODE_RX_IEEE1344_DC )
02142 #define MSK_ICODE_RX_B126_B127       ( 1UL << ICODE_RX_B126_B127 )
02143 #define MSK_ICODE_RX_B006_B007       ( 1UL << ICODE_RX_B006_B007 )
02144
02148 #define MSK_ICODE_RX_DC      \
02149 (                            \
02150   MSK_ICODE_RX_B002_B003   | \
02151   MSK_ICODE_RX_A002_A003   | \
02152   MSK_ICODE_RX_AFNOR_DC    | \
02153   MSK_ICODE_RX_IEEE1344_DC | \
02154   MSK_ICODE_RX_B006_B007     \
02155 )
02156
02160 #define MSK_ICODE_RX_1KHZ  \
02161 (                          \
02162   MSK_ICODE_RX_B122_B123 | \
02163   MSK_ICODE_RX_AFNOR     | \
02164   MSK_ICODE_RX_IEEE1344  | \
02165   MSK_ICODE_RX_B126_B127   \
02166 )
02167
02171 #define MSK_ICODE_RX_10KHZ \
02172 (                          \
02173   MSK_ICODE_RX_A132_A133   \
02174 )
02175
02179 #define MSK_ICODE_RX_100BPS   \
02180 (                             \
02181   MSK_ICODE_RX_B122_B123   |  \
02182   MSK_ICODE_RX_B002_B003   |  \
02183   MSK_ICODE_RX_AFNOR       |  \
02184   MSK_ICODE_RX_AFNOR_DC    |  \
02185   MSK_ICODE_RX_IEEE1344    |  \
02186   MSK_ICODE_RX_IEEE1344_DC |  \
02187   MSK_ICODE_RX_B126_B127   |  \
02188   MSK_ICODE_RX_B006_B007      \
02189 )
02190
02194 #define MSK_ICODE_RX_1000BPS \
02195 (                            \
02196   MSK_ICODE_RX_A132_A133 |   \
02197   MSK_ICODE_RX_A002_A003     \
02198 )
02199
02203 #define MSK_ICODE_RX_HAS_TFOM \
02204 (                             \
02205   MSK_ICODE_RX_IEEE1344 |     \
02206   MSK_ICODE_RX_IEEE1344_DC    \
02207 )
02208
02212 #define MSK_ICODE_RX_HAS_TZI \
02213 (                            \
02214   MSK_ICODE_RX_IEEE1344 |    \
02215   MSK_ICODE_RX_IEEE1344_DC   \
02216 )
02217
02222 #if !defined( SUPP_MSK_ICODE_RX )
02223   #define SUPP_MSK_ICODE_RX  \
02224   (                          \
02225     MSK_ICODE_RX_B122_B123 | \
02226     MSK_ICODE_RX_A132_A133 | \
02227     MSK_ICODE_RX_B002_B003 | \
02228     MSK_ICODE_RX_A002_A003 | \
02229     MSK_ICODE_RX_AFNOR     | \
02230     MSK_ICODE_RX_AFNOR_DC    \
02231   )
02232 #endif
02233
02239 typedef struct
02240 {
02241   uint16_t icode;
02242   uint16_t flags;
02243 } IRIG_SETTINGS;
02244
02245 #define _mbg_swab_irig_settings( _p )  \
02246 {                                      \
02247   _mbg_swab16( &(_p)->icode );         \
02248   _mbg_swab16( &(_p)->flags );         \
02249 }
02250
02251
02258 #define IFLAGS_DISABLE_TFOM        0x0001
02259 #define IFLAGS_TX_GEN_LOCAL_TIME   0x0002
02261 #define IFLAGS_MASK                0x0003
02269 typedef struct
02270 {
02271   IRIG_SETTINGS settings;
02272   uint32_t supp_codes;
02273 } IRIG_INFO;
02274
02275 #define _mbg_swab_irig_info( _p )              \
02276 {                                              \
02277   _mbg_swab_irig_settings( &(_p)->settings );  \
02278   _mbg_swab32( &(_p)->supp_codes );            \
02279 }
02280
02281
02282 // The type below is used to read the board's debug status
02283 // which also include IRIG decoder status:
02284 typedef uint32_t MBG_DEBUG_STATUS;
02285
02286 // The debug status is bit coded as defined below:
02287 enum
02288 {
02289   MBG_IRIG_BIT_WARMED_UP,
02290   MBG_IRIG_BIT_PPS_ACTIVE,
02291   MBG_IRIG_BIT_INV_CONFIG,
02292   MBG_IRIG_BIT_MSG_DECODED,
02293   MBG_IRIG_BIT_MSG_INCONSISTENT,
02294   MBG_IRIG_BIT_LOOP_LOCKED,
02295   MBG_IRIG_BIT_JITTER_TOO_LARGE,
02296   MBG_IRIG_BIT_INV_REF_OFFS,
02298   MBG_SYS_BIT_INV_TIME,
02299   MBG_SYS_BIT_TIME_SET_VIA_API,
02300   MBG_SYS_BIT_INV_RTC,
02301   MBG_SYS_BIT_CPU_PLL_FAILED,
02303   N_MBG_DEBUG_BIT
02304 };
02305
02306 /*
02307  * Initializers for IRIG status bit strings.
02308  */
02309 #define MBG_DEBUG_STATUS_STRS      \
02310 {                                  \
02311   "Osc has warmed up",             \
02312   "PPS output is active",          \
02313   "Config set to default",         \
02314   "IRIG msg decoded",              \
02315   "IRIG msg not consistent",       \
02316   "Decoder control loop locked",   \
02317   "Phase jitter too large",        \
02318   "Invalid ref offset",            \
02319                                    \
02320   "Internal time not valid",       \
02321   "On board time set via API",     \
02322   "On board RTC invalid",          \
02323   "CPU PLL failure, needs restart" \
02324 }
02325
02326
02327
02328 #define MBG_IRIG_MSK_WARMED_UP        ( 1UL << MBG_IRIG_BIT_WARMED_UP )
02329 #define MBG_IRIG_MSK_PPS_ACTIVE       ( 1UL << MBG_IRIG_BIT_PPS_ACTIVE )
02330 #define MBG_IRIG_MSK_INV_CONFIG       ( 1UL << MBG_IRIG_BIT_INV_CONFIG )
02331 #define MBG_IRIG_MSK_MSG_DECODED      ( 1UL << MBG_IRIG_BIT_MSG_DECODED )
02332 #define MBG_IRIG_MSK_MSG_INCONSISTENT ( 1UL << MBG_IRIG_BIT_MSG_INCONSISTENT )
02333 #define MBG_IRIG_MSK_LOOP_LOCKED      ( 1UL << MBG_IRIG_BIT_LOOP_LOCKED )
02334 #define MBG_IRIG_MSK_JITTER_TOO_LARGE ( 1UL << MBG_IRIG_BIT_JITTER_TOO_LARGE )
02335 #define MBG_IRIG_MSK_INV_REF_OFFS     ( 1UL << MBG_IRIG_BIT_INV_REF_OFFS )
02336
02337 #define MBG_SYS_MSK_INV_TIME          ( 1UL << MBG_SYS_BIT_INV_TIME )
02338 #define MBG_SYS_MSK_TIME_SET_VIA_API  ( 1UL << MBG_SYS_BIT_TIME_SET_VIA_API )
02339 #define MBG_SYS_MSK_INV_RTC           ( 1UL << MBG_SYS_BIT_INV_RTC )
02340 #define MBG_SYS_MSK_CPU_PLL_FAILED    ( 1UL << MBG_SYS_BIT_CPU_PLL_FAILED )
02341
02342
02343
02344 typedef int16_t MBG_REF_OFFS;
02346 #define _mbg_swab_mbg_ref_offs( _p )  _mbg_swab16( (_p) )
02347
02348
02350 #define MBG_REF_OFFS_MAX   ( ( 12L * 60 ) + 30 )  // [minutes]
02351
02356 #define MBG_REF_OFFS_NOT_CFGD  0x8000
02357
02358
02359 typedef struct
02360 {
02361   uint32_t flags;
02362 } MBG_OPT_SETTINGS;
02363
02364 #define _mbg_swab_mbg_opt_settings( _p )  \
02365 {                                         \
02366   _mbg_swab32( &(_p)->flags );            \
02367 }
02368
02369
02370 typedef struct
02371 {
02372   MBG_OPT_SETTINGS settings;
02373   uint32_t supp_flags;
02374 } MBG_OPT_INFO;
02375
02376 #define _mbg_swab_mbg_opt_info( _p )              \
02377 {                                                 \
02378   _mbg_swab_mbg_opt_settings( &(_p)->settings );  \
02379   _mbg_swab32( &(_p)->supp_flags );               \
02380 }
02381
02382
02383 enum
02384 {
02385   MBG_OPT_BIT_STR_UTC,
02386   MBG_OPT_BIT_EMU_SYNC,
02388   N_MBG_OPT_BIT
02389 };
02390
02391 /*
02392  * Bit masks corresponding to the enumeration above:
02393  */
02394 #define MBG_OPT_FLAG_STR_UTC   ( 1UL << MBG_OPT_BIT_STR_UTC )
02395 #define MBG_OPT_FLAG_EMU_SYNC  ( 1UL << MBG_OPT_BIT_EMU_SYNC )
02396
02397
02410 enum
02411 {
02412   MBG_TIME_SCALE_DEFAULT,
02413   MBG_TIME_SCALE_GPS,
02414   MBG_TIME_SCALE_TAI,
02415   N_MBG_TIME_SCALE
02416 };
02417
02418 #define MBG_TIME_SCALE_MSK_DEFAULT  ( 1UL << MBG_TIME_SCALE_DEFAULT )
02419 #define MBG_TIME_SCALE_MSK_GPS      ( 1UL << MBG_TIME_SCALE_GPS )
02420 #define MBG_TIME_SCALE_MSK_TAI      ( 1UL << MBG_TIME_SCALE_TAI )
02421
02422 // See also the extended status bits TM_SCALE_GPS and TM_SCALE_TAI
02423 // indicating the active time scale setting.
02424
02425
02426 #define MBG_TIME_SCALE_STRS \
02427 {                           \
02428   "UTC/local",              \
02429   "GPS",                    \
02430   "TAI"                     \
02431 }
02432
02433
02434
02438 #define GPS_TAI_OFFSET   19
02441 typedef struct
02442 {
02443   uint8_t scale;
02444   uint8_t flags;
02445 } MBG_TIME_SCALE_SETTINGS;
02446
02447 #define _mbg_swab_mbg_time_scale_settings( _p )  \
02448   _nop_macro_fnc()
02449
02450
02451 typedef struct
02452 {
02453   MBG_TIME_SCALE_SETTINGS settings;
02454   MBG_TIME_SCALE_SETTINGS max_settings;
02455   uint32_t supp_scales;
02456 } MBG_TIME_SCALE_INFO;
02457
02458 #define _mbg_swab_mbg_time_scale_info( _p )                 \
02459 {                                                           \
02460   _mbg_swab_mbg_time_scale_settings( &(_p)->settings );     \
02461   _mbg_swab_mbg_time_scale_settings( &(_p)->max_settings ); \
02462   _mbg_swab32( &(_p)->supp_scales );                        \
02463 }
02464  // endgroup
02466
02467
02468 /*
02469  * The structures below are required to setup the programmable
02470  * pulse outputs which are provided by some GPS receivers.
02471  * The number of programmable pulse outputs supported by a GPS
02472  * receiver is reported in the RECEIVER_INFO.n_str_type field.
02473  */
02474
02478 typedef struct
02479 {
02480   uint8_t mday;    /* 1..28,29,30,31 */
02481   uint8_t month;   /* 1..12 */
02482   uint16_t year;   /* including century */
02483 } MBG_DATE;
02484
02485 #define _mbg_swab_mbg_date( _p ) \
02486 {                                \
02487   _mbg_swab16( &(_p)->year );    \
02488 }
02489
02490
02494 typedef struct
02495 {
02496   uint8_t hour;    /* 0..23 */
02497   uint8_t min;     /* 0..59 */
02498   uint8_t sec;     /* 0..59,60 */
02499   uint8_t sec100;  /* reserved, currently always 0 */
02500 } MBG_TIME;
02501
02502 #define _mbg_swab_mbg_time( _p ) \
02503   _nop_macro_fnc()    // nothing to swap
02504
02505
02510 typedef struct
02511 {
02512   MBG_DATE d;    /* date to switch */
02513   MBG_TIME t;    /* time to switch */
02514   uint8_t wday;  /* reserved, currently always 0 */
02515   uint8_t flags; /* reserved, currently 0 */
02516 } MBG_DATE_TIME;
02517
02518 #define _mbg_swab_mbg_date_time( _p ) \
02519 {                                     \
02520   _mbg_swab_mbg_date( &(_p)->d );     \
02521   _mbg_swab_mbg_time( &(_p)->t );     \
02522 }
02523
02524
02529 typedef struct
02530 {
02531   MBG_DATE_TIME on;   /* time and date to switch on */
02532   MBG_DATE_TIME off;  /* time and date to switch off */
02533 } POUT_TIME;
02534
02535 #define _mbg_swab_pout_time( _p )        \
02536 {                                        \
02537   _mbg_swab_mbg_date_time( &(_p)->on );  \
02538   _mbg_swab_mbg_date_time( &(_p)->off ); \
02539 }
02540
02541
02545 #define N_POUT_TIMES 3
02546
02551 typedef struct
02552 {
02553   uint16_t mode;
02554   uint16_t pulse_len;
02555   uint16_t timeout;
02556   uint16_t flags;
02557   POUT_TIME tm[N_POUT_TIMES];
02558 } POUT_SETTINGS;
02559
02560 #define _mbg_swab_pout_settings( _p )     \
02561 {                                         \
02562   int i;                                  \
02563   _mbg_swab16( &(_p)->mode );             \
02564   _mbg_swab16( &(_p)->pulse_len );        \
02565   _mbg_swab32( &(_p)->timeout );          \
02566   _mbg_swab16( &(_p)->flags );            \
02567                                           \
02568   for ( i = 0; i < N_POUT_TIMES; i++ )    \
02569     _mbg_swab_pout_time( &(_p)->tm[i] );  \
02570 }
02571
02572
02573 #define MAX_POUT_PULSE_LEN    1000
02574 #define MAX_POUT_DCF_TIMOUT   ( 48 * 60 )
02582 enum
02583 {
02584   POUT_IDLE,
02585   POUT_TIMER,
02586   POUT_SINGLE_SHOT,
02587   POUT_CYCLIC_PULSE,
02588   POUT_PER_SEC,
02589   POUT_PER_MIN,
02590   POUT_PER_HOUR,
02591   POUT_DCF77,
02592   POUT_POS_OK,
02593   POUT_TIME_SYNC,
02594   POUT_ALL_SYNC,
02595   POUT_TIMECODE,
02596   POUT_TIMESTR,
02597   POUT_10MHZ,
02598   N_POUT_MODES
02599 };
02600
02601
02602 /*
02603  * Default initializers for English pulse mode names. Initializers
02604  * for multi-language strings can be found in pcpslstr.h.
02605  */
02606 #define ENG_POUT_NAME_IDLE            "Idle"
02607 #define ENG_POUT_NAME_TIMER           "Timer"
02608 #define ENG_POUT_NAME_SINGLE_SHOT     "Single Shot"
02609 #define ENG_POUT_NAME_CYCLIC_PULSE    "Cyclic Pulse"
02610 #define ENG_POUT_NAME_PER_SEC         "Pulse Per Second"
02611 #define ENG_POUT_NAME_PER_MIN         "Pulse Per Min"
02612 #define ENG_POUT_NAME_PER_HOUR        "Pulse Per Hour"
02613 #define ENG_POUT_NAME_DCF77           "DCF77 Marks"
02614 #define ENG_POUT_NAME_POS_OK          "Position OK"
02615 #define ENG_POUT_NAME_TIME_SYNC       "Time Sync"
02616 #define ENG_POUT_NAME_ALL_SYNC        "All Sync"
02617 #define ENG_POUT_NAME_TIMECODE        "DCLS Time Code"
02618 #define ENG_POUT_NAME_TIMESTR         "COM Time String"
02619 #define ENG_POUT_NAME_10MHZ           "10 MHz Frequency"
02620
02621 #define DEFAULT_ENG_POUT_NAMES \
02622 {                              \
02623   ENG_POUT_NAME_IDLE,          \
02624   ENG_POUT_NAME_TIMER,         \
02625   ENG_POUT_NAME_SINGLE_SHOT,   \
02626   ENG_POUT_NAME_CYCLIC_PULSE,  \
02627   ENG_POUT_NAME_PER_SEC,       \
02628   ENG_POUT_NAME_PER_MIN,       \
02629   ENG_POUT_NAME_PER_HOUR,      \
02630   ENG_POUT_NAME_DCF77,         \
02631   ENG_POUT_NAME_POS_OK,        \
02632   ENG_POUT_NAME_TIME_SYNC,     \
02633   ENG_POUT_NAME_ALL_SYNC,      \
02634   ENG_POUT_NAME_TIMECODE,      \
02635   ENG_POUT_NAME_TIMESTR,       \
02636   ENG_POUT_NAME_10MHZ          \
02637 }
02638
02639
02640 #define ENG_POUT_HINT_IDLE            "Constant output level"
02641 #define ENG_POUT_HINT_TIMER           "Switch based on configured on/off times"
02642 #define ENG_POUT_HINT_SINGLE_SHOT     "Generate a single pulse of determined length"
02643 #define ENG_POUT_HINT_CYCLIC_PULSE    "Generate cyclic pulses of determined length"
02644 #define ENG_POUT_HINT_PER_SEC         "Generate pulse at beginning of new second"
02645 #define ENG_POUT_HINT_PER_MIN         "Generate pulse at beginning of new minute"
02646 #define ENG_POUT_HINT_PER_HOUR        "Generate pulse at beginning of new hour"
02647 #define ENG_POUT_HINT_DCF77           "DCF77 compatible time marks"
02648 #define ENG_POUT_HINT_POS_OK          "Switch if receiver position has been verified"
02649 #define ENG_POUT_HINT_TIME_SYNC       "Switch if time is synchronized"
02650 #define ENG_POUT_HINT_ALL_SYNC        "Switch if full sync"
02651 #define ENG_POUT_HINT_TIMECODE        "Duplicate IRIG time code signal"
02652 #define ENG_POUT_HINT_TIMESTR         "Duplicate serial time string of specified port"
02653 #define ENG_POUT_HINT_10MHZ           "10 MHz fixed output frequency"
02654
02655 #define DEFAULT_ENG_POUT_HINTS \
02656 {                              \
02657   ENG_POUT_HINT_IDLE,          \
02658   ENG_POUT_HINT_TIMER,         \
02659   ENG_POUT_HINT_SINGLE_SHOT,   \
02660   ENG_POUT_HINT_CYCLIC_PULSE,  \
02661   ENG_POUT_HINT_PER_SEC,       \
02662   ENG_POUT_HINT_PER_MIN,       \
02663   ENG_POUT_HINT_PER_HOUR,      \
02664   ENG_POUT_HINT_DCF77,         \
02665   ENG_POUT_HINT_POS_OK,        \
02666   ENG_POUT_HINT_TIME_SYNC,     \
02667   ENG_POUT_HINT_ALL_SYNC,      \
02668   ENG_POUT_HINT_TIMECODE,      \
02669   ENG_POUT_HINT_TIMESTR,       \
02670   ENG_POUT_HINT_10MHZ          \
02671 }
02672
02673
02674 /*
02675  * The definitions below are used to set up bit masks
02676  * which restrict the modes which can be used with
02677  * a given programmable output:
02678  */
02679 #define MSK_POUT_IDLE          ( 1UL << POUT_IDLE )
02680 #define MSK_POUT_TIMER         ( 1UL << POUT_TIMER )
02681 #define MSK_POUT_SINGLE_SHOT   ( 1UL << POUT_SINGLE_SHOT )
02682 #define MSK_POUT_CYCLIC_PULSE  ( 1UL << POUT_CYCLIC_PULSE )
02683 #define MSK_POUT_PER_SEC       ( 1UL << POUT_PER_SEC )
02684 #define MSK_POUT_PER_MIN       ( 1UL << POUT_PER_MIN )
02685 #define MSK_POUT_PER_HOUR      ( 1UL << POUT_PER_HOUR )
02686 #define MSK_POUT_DCF77         ( 1UL << POUT_DCF77 )
02687 #define MSK_POUT_POS_OK        ( 1UL << POUT_POS_OK )
02688 #define MSK_POUT_TIME_SYNC     ( 1UL << POUT_TIME_SYNC )
02689 #define MSK_POUT_ALL_SYNC      ( 1UL << POUT_ALL_SYNC )
02690 #define MSK_POUT_TIMECODE      ( 1UL << POUT_TIMECODE )
02691 #define MSK_POUT_TIMESTR       ( 1UL << POUT_TIMESTR )
02692 #define MSK_POUT_10MHZ         ( 1UL << POUT_10MHZ )
02693
02694
02695 /*
02696  * The codes below are used with POUT_SETTINGS.flags:
02697  */
02698 #define POUT_INVERTED   0x0001
02699
02700
02708 typedef struct
02709 {
02710   uint16_t idx;
02711   POUT_SETTINGS pout_settings;
02712 } POUT_SETTINGS_IDX;
02713
02714 #define _mbg_swab_pout_settings_idx( _p )           \
02715 {                                                   \
02716   _mbg_swab16( &(_p)->idx );                        \
02717   _mbg_swab_pout_settings( &(_p)->pout_settings );  \
02718 }
02719
02720
02728 typedef struct
02729 {
02730   POUT_SETTINGS pout_settings;
02731   uint32_t supp_modes;
02732   uint8_t timestr_ports;
02733   uint8_t reserved_0;
02734   uint16_t reserved_1;
02735   uint32_t flags;
02736 } POUT_INFO;
02737
02738 #define _mbg_swab_pout_info( _p )                   \
02739 {                                                   \
02740   _mbg_swab_pout_settings( &(_p)->pout_settings );  \
02741   _mbg_swab32( &(_p)->supp_modes );                 \
02742   _mbg_swab16( &(_p)->reserved_1 );                 \
02743   _mbg_swab32( &(_p)->flags );                      \
02744 }
02745
02746
02748 #define MAX_POUT_TIMESTR_PORTS  8
02749
02754 typedef struct
02755 {
02756   uint16_t idx;
02757   POUT_INFO pout_info;
02758 } POUT_INFO_IDX;
02759
02760 #define _mbg_swab_pout_info_idx( _p )       \
02761 {                                           \
02762   _mbg_swab16( &(_p)->idx );                \
02763   _mbg_swab_pout_info( &(_p)->pout_info );  \
02764 }
02765
02766
02767 /*
02768  * The codes below are used with devices which support multiple
02769  * ref time sources at the same time. The priorities of the
02770  * supported ref time sources is configurable.
02771  */
02772
02773
02774 /*
02775  * All possibly supported ref time sources
02776  */
02777 enum
02778 {
02779   MULTI_REF_NONE = -1,      // nothing, undefined
02780   MULTI_REF_GPS = 0,        // standard GPS
02781   MULTI_REF_10MHZ,          // 10 MHz input frequency
02782   MULTI_REF_PPS,            // 1 PPS input signal
02783   MULTI_REF_10MHZ_PPS,      // combined 10 MHz plus PPS
02784   MULTI_REF_IRIG,           // IRIG input
02785   MULTI_REF_NTP,            // Network Time Protocol (NTP)
02786   MULTI_REF_PTP,            // Precision Time Protocol (PTP, IEEE1588)
02787   MULTI_REF_PTP_E1,         // PTP over E1
02788   MULTI_REF_FREQ,           // fixed frequency
02789   N_MULTI_REF               // the number of defined sources
02790 };
02791
02792
02793 /*
02794  * Names of supported ref time sources
02795  */
02796 #define DEFAULT_MULTI_REF_NAMES \
02797 {                               \
02798   "GPS",                        \
02799   "10 MHz freq in",             \
02800   "PPS in",                     \
02801   "10 MHz + PPS in",            \
02802   "IRIG",                       \
02803   "NTP",                        \
02804   "PTP (IEEE1588)",             \
02805   "PTP over E1",                \
02806   "Fixed Freq. in"              \
02807 }
02808
02809
02810 /*
02811  * Bit masks used to indicate supported reference sources
02812  */
02813 #define HAS_MULTI_REF_GPS        ( 1UL << MULTI_REF_GPS )
02814 #define HAS_MULTI_REF_10MHZ      ( 1UL << MULTI_REF_10MHZ )
02815 #define HAS_MULTI_REF_PPS        ( 1UL << MULTI_REF_PPS )
02816 #define HAS_MULTI_REF_10MHZ_PPS  ( 1UL << MULTI_REF_10MHZ_PPS )
02817 #define HAS_MULTI_REF_IRIG       ( 1UL << MULTI_REF_IRIG )
02818 #define HAS_MULTI_REF_NTP        ( 1UL << MULTI_REF_NTP )
02819 #define HAS_MULTI_REF_PTP        ( 1UL << MULTI_REF_PTP )
02820 #define HAS_MULTI_REF_PTP_E1     ( 1UL << MULTI_REF_PTP_E1 )
02821 #define HAS_MULTI_REF_FREQ       ( 1UL << MULTI_REF_FREQ )
02822
02823
02824 /*
02825  * There are 2 different ways to configure multi ref support
02826  * provided by some devices.
02827  *
02828  * Newer devices which have the GPS_FEAT_XMULTI_REF flag set
02829  * in RECEIVER_INFO::features support the newer XMULTI_REF_...
02830  * structures which provide a more flexible interface.
02831  *
02832  * Older devices which have the GPS_FEAT_MULTI_REF flag set
02833  * support these MULTI_REF_... structures below where
02834  * the number of supported input sources and priorities
02835  * is limited to N_MULTI_REF_PRIO.
02836  */
02837
02838 #define N_MULTI_REF_PRIO   4
02839
02840
02851 typedef struct
02852 {
02853   uint8_t prio[N_MULTI_REF_PRIO];
02854 } MULTI_REF_SETTINGS;
02855
02856
02861 typedef struct
02862 {
02863   MULTI_REF_SETTINGS settings;    /* current settings */
02864   uint32_t supp_ref;              /* supp. HAS_MULTI_REF_... codes or'ed */
02865   uint16_t n_levels;              /* supp. levels, 0..N_MULTI_REF_PRIO */
02866   uint16_t flags;                 /* reserved, currently 0 */
02867 } MULTI_REF_INFO;
02868
02869
02870 /*
02871  * The type below is used to query the MULTI_REF status information,
02872  */
02873 typedef uint16_t MULTI_REF_STATUS;  /* flag bits as defined below */
02874
02875
02876 /*
02877  * The bits and associated bit masks below are used with the
02878  * MULTI_REF_STATUS type. Each bit is set if the associated
02879  * condition is true and is reset if the condition is not true:
02880  */
02881 enum
02882 {
02883   WRN_MODULE_MODE,     /* selected input mode was invalid, set to default */
02884   WRN_COLD_BOOT,       /* GPS is in cold boot mode */
02885   WRN_WARM_BOOT,       /* GPS is in warm boot mode */
02886   WRN_ANT_DISCONN,     /* antenna is disconnected */
02887   WRN_10MHZ_UNLOCK,    /* impossible to lock to external 10MHz reference */
02888   WRN_1PPS_UNLOCK,     /* impossible to lock to external 1PPS reference */
02889   WRN_GPS_UNLOCK,      /* impossible to lock to GPS */
02890   WRN_10MHZ_MISSING,   /* external 10MHz signal not available */
02891   WRN_1PPS_MISSING,    /* external 1PPS signal not available */
02892   N_MULTI_REF_STATUS_BITS
02893 };
02894
02895 #define MSK_WRN_COLD_BOOT            ( 1UL << WRN_COLD_BOOT )
02896 #define MSK_WRN_WARM_BOOT            ( 1UL << WRN_WARM_BOOT )
02897 #define MSK_WRN_ANT_DISCONN          ( 1UL << WRN_ANT_DISCONN )
02898 #define MSK_WRN_10MHZ_UNLOCK         ( 1UL << WRN_10MHZ_UNLOCK )
02899 #define MSK_WRN_1PPS_UNLOCK          ( 1UL << WRN_1PPS_UNLOCK )
02900 #define MSK_WRN_GPS_UNLOCK           ( 1UL << WRN_GPS_UNLOCK )
02901 #define MSK_WRN_10MHZ_MISSING        ( 1UL << WRN_10MHZ_MISSING )
02902 #define MSK_WRN_1PPS_MISSING         ( 1UL << WRN_1PPS_MISSING )
02903 #define MSK_WRN_MODULE_MODE          ( 1UL << WRN_MODULE_MODE )
02904
02905
02906
02907 /*
02908  * If the RECEIVER_INFO::features flag GPS_FEAT_XMULTI_REF is set
02909  * then the following XMULTI_REF_... data structures must be used
02910  * instead of the older MULTI_REF_... structures above.
02911  *
02912  * Those devices support a number of priority levels addressed by
02913  * the priority index, starting at 0 for highest priority. A single
02914  * reference time source from the set of supported sources can be
02915  * assigned to each priority level.
02916  *
02917  * The structures below are used to configure the individual
02918  * time source for each priority level, and retrieve the status
02919  * of the time source at each priority level.
02920  */
02921
02922 typedef struct
02923 {
02924   uint8_t type;          /* 0..N_MULTI_REF-1 from the enum above */
02925   uint8_t instance;      /* reserved, currently always 0 */
02926 } XMULTI_REF_ID;
02927
02928 typedef struct
02929 {
02930   XMULTI_REF_ID id;      /* time source identifier */
02931   uint16_t flags;        /* reserved, currently always 0 */
02932   NANO_TIME bias;        /* time bias, e.g. path delay */
02933   NANO_TIME precision;   /* precision of the time source */
02934   uint32_t fine_limit;   /* smooth control if below this limit */
02935 } XMULTI_REF_SETTINGS;
02936
02937
02938 /*
02939  * The structure below is used to retrieve or configure the time source
02940  * for a specific priority level.
02941  * After configuring, a structure with idx == 0xFFFF (-1) must be sent
02942  * to let the changes become effective.
02943  */
02944 typedef struct
02945 {
02946   uint16_t idx;                   /* the priority level index, highest == 0 */
02947   XMULTI_REF_SETTINGS settings;   /* the settings configured for this level */
02948
02949 } XMULTI_REF_SETTINGS_IDX;
02950
02951
02952 /*
02953  * The structure below contains the XMULTI_REF configuration
02954  * for a single priority level, plus information on supported
02955  * ref time sources, and the number of supported priority levels.
02956  */
02957 typedef struct
02958 {
02959   XMULTI_REF_SETTINGS settings;   /* current settings */
02960   uint32_t supp_ref;              /* supp. HAS_MULTI_REF_... codes or'ed */
02961   uint8_t n_supp_ref;             /* number of supported ref time sources */
02962   uint8_t n_prio;                 /* number of supported priority levels */
02963   uint16_t flags;                 /* reserved, currently 0, e.g. multiple instance support */
02964
02965 } XMULTI_REF_INFO;
02966
02967
02968 /*
02969  * The structure below is used to retrieve the XMULTI_REF configuration
02970  * information for a specific priority level.
02971  */
02972 typedef struct
02973 {
02974   uint16_t idx;          /* the priority level index, highest == 0 */
02975   XMULTI_REF_INFO info;
02976
02977 } XMULTI_REF_INFO_IDX;
02978
02979
02980 /*
02981  * The structure below contains status information on a single
02982  * ref time source.
02983  */
02984 typedef struct
02985 {
02986   XMULTI_REF_ID id;      /* time source identifier */
02987   uint16_t status;       /* flag bits as defined below */
02988   NANO_TIME offset;      /* time offset from main time base */
02989   uint32_t reserved;     /* reserved, currently always 0 */
02990
02991 } XMULTI_REF_STATUS;
02992
02993
02994 /*
02995  * The structure below is used to retrieve the the status information
02996  * of the time source at a specific priority level.
02997  */
02998 typedef struct
02999 {
03000   uint16_t idx;          /* the priority level index, highest == 0 */
03001   XMULTI_REF_STATUS status;
03002
03003 } XMULTI_REF_STATUS_IDX;
03004
03005
03006 /*
03007  * Bits used with XMULTI_REF_STATUS.
03008  */
03009 enum
03010 {
03011   XMRS_BIT_NOT_SUPP,     /* ref type cfg'd for this level is not supported */
03012   XMRS_BIT_NO_CONN,      /* input signal is disconnected */
03013   XMRS_BIT_NO_SIGNAL,    /* no input signal */
03014   XMRS_BIT_IS_MASTER,    /* reference is master source */
03015   XMRS_BIT_IS_LOCKED,    /* locked to input signal */
03016   XMRS_BIT_IS_ACCURATE,  /* oscillator control has reached full accuracy */
03017   XMRS_BIT_NOT_SETTLED,  /* reference time signal not settled */
03018   N_XMRS_BITS
03019 };
03020
03021
03022 /* bit masks corresponding to the flag bits above */
03023
03024 #define XMRS_MSK_NOT_SUPP     ( 1UL << XMRS_BIT_NOT_SUPP )
03025 #define XMRS_MSK_NO_CONN      ( 1UL << XMRS_BIT_NO_CONN )
03026 #define XMRS_MSK_NO_SIGNAL    ( 1UL << XMRS_BIT_NO_SIGNAL )
03027 #define XMRS_MSK_IS_MASTER    ( 1UL << XMRS_BIT_IS_MASTER )
03028 #define XMRS_MSK_IS_LOCKED    ( 1UL << XMRS_BIT_IS_LOCKED )
03029 #define XMRS_MSK_IS_ACCURATE  ( 1UL << XMRS_BIT_IS_ACCURATE )
03030 #define XMRS_MSK_NOT_SETTLED  ( 1UL << XMRS_BIT_NOT_SETTLED )
03031
03032
03033
03034 /*
03035  * An initializer for a XMULTI_REF_STATUS variable
03036  * with status invalid / not used
03037  */
03038 #define XMULTI_REF_STATUS_INVALID                          \
03039 {                                                          \
03040   { (uint8_t) MULTI_REF_NONE, 0 },  /* id; instance 0 ? */ \
03041   XMRS_MSK_NO_CONN | XMRS_MSK_NO_SIGNAL,  /* status */     \
03042   { 0 },                                  /* offset */     \
03043   0                                      /* reserved */    \
03044 }
03045
03046
03047
03048 /*------------------------------------------------------------------------*/
03049
03050 /*
03051  * The types below are not used with all devices:
03052  */
03053
03054 typedef uint16_t ROM_CSUM;      /* The ROM checksum */
03055 typedef uint16_t RCV_TIMEOUT;   /* [min] (only if HAS_RCV_TIMEOUT) */
03056 typedef uint16_t IGNORE_LOCK;   /* (only if GPS_HAS_IGNORE_LOCK) */
03057
03058 /*
03059  * Originally IGNORE_LOG above has been a boolean value (equal or
03060  * not equal 0) which was evaluated the same way for all ports.
03061  *
03062  * Due to special firmware requirements it has been changed to a
03063  * bit maskable property in order to be able to specify the behaviour
03064  * for individual ports.
03065  *
03066  * In order to keep compatibility with older versions the LSB is used
03067  * to specify ignore_lock for all ports. The next higher bits are used
03068  * to specify ignore_lock for an individual port, where the bit position
03069  * depends on the port number, e.g. 0x02 for COM0, 0x04 for COM1, etc.
03070  * The macros below can be used to simplify the code:
03071  */
03072
03073 /* return a bit mask depending on the port number */
03074 #define IGNORE_LOCK_FOR_ALL_PORTS            0x01
03075
03076 #define _ignore_lock_for_all_ports()         ( IGNORE_LOCK_FOR_ALL_PORTS )
03077
03078 #define _ignore_lock_for_port( _n )          ( 0x02 << (_n) )
03079
03080 /* check if all ports are ignore_lock'ed */
03081 #define _is_ignore_lock_all_ports( _il )     ( (_il) & IGNORE_LOCK_FOR_ALL_PORTS )
03082
03083 /* check if a specific port is ignore_lock'ed */
03084 #define _is_ignore_lock_for_port( _il, _n ) \
03085         ( (_il) & ( _ignore_lock_for_port(_n) | IGNORE_LOCK_FOR_ALL_PORTS ) )
03086
03087
03088 /*------------------------------------------------------------------------*/
03089
03090 /*
03091  * The structures below are used with the SCU multiplexer board
03092  * in a redundant system:
03093  */
03094
03095 typedef struct
03096 {
03097   uint32_t hw_id;                // hardware identification
03098   uint32_t fw_id;                // firmware identification
03099   uint16_t flags;                // reserved currently 0
03100   uint8_t  clk0_info;            // reference clock 0 type
03101   uint8_t  clk1_info;            // reference clock 1 type
03102   uint16_t epld_status;          // epld status word, see defintions below
03103   uint16_t epld_control;         // epld control word, see defintions below
03104 } SCU_STAT_INFO;
03105
03106 typedef struct
03107 {
03108   uint16_t epld_control_mask;    // control mask, determines which bit is to be changed
03109   uint16_t epld_control_value;   // control value, determines value of bits to be changed
03110   uint32_t flags;                // reserved, currently 0
03111 } SCU_STAT_SETTINGS;
03112
03113 // definitions for status word bit masks
03114 #define MSK_EPLD_STAT_TS1          0x0001   // state of time sync signal clk_1
03115 #define MSK_EPLD_STAT_TS2          0x0002   // state of time sync signal clk_2
03116 #define MSK_EPLD_STAT_TL_ERROR     0x0004   // state of time limit error input
03117 #define MSK_EPLD_STAT_PSU1_OK      0x0008   // state of power supply 1 monitoring input
03118 #define MSK_EPLD_STAT_PSU2_OK      0x0010   // state of power supply 2 monitoring input
03119 #define MSK_EPLD_STAT_AUTO         0x0020   // AUTOMATIC/REMOTE or MANUAL Mode
03120 #define MSK_EPLD_STAT_SEL          0x0040   // select bit for output MUX, ( clk_1 = 0 )
03121 #define MSK_EPLD_STAT_ENA          0x0080   // enable Bit for output MUX, set if enabled
03122 #define MSK_EPLD_STAT_ACO          0x4000   // Access control override bit
03123 #define MSK_EPLD_STAT_WDOG_OK      0x8000   // WDT_OK set to zero if watchdog expired
03124
03125
03126 #define MSK_EPLD_CNTL_SEL_REM      0x0800   // remote select for output MUX ( clk_1 = 0 )
03127 #define MSK_EPLD_CNTL_DIS_REM      0x1000   // remote disable for output MUX
03128 #define MSK_EPLD_CNTL_REMOTE       0x2000   // must be set to enable remote operation
03129 #define MSK_EPLD_CNTL_SEL_SNMP     0x4000   // connect COM0 channels to XPORT
03130 #define MSK_EPLD_CNTL_ENA_SNMP     0x8000   // select clk for comm. ( clk1 = 0 )
03131
03132
03133 /*
03134  * Definitions for clk0_info and clk1_info, can be used to determine
03135  * the reference clock type connected to SCU input channel 0 and 1:
03136  */
03137 enum
03138 {
03139  SCU_CLK_INFO_GPS,                // ref. clock is GPS receiver
03140  SCU_CLK_INFO_DCF_PZF,            // ref. clock is DCF77 PZF receiver
03141  SCU_CLK_INFO_DCF_AM,             // ref. clock is DCF77 AM receiver
03142  SCU_CLK_INFO_TCR                 // ref. clock is IRIG time code receiver
03143 };
03144
03145
03146
03147 /*------------------------------------------------------------------------*/
03148
03149 /*
03150  * GPS receiver modes of operation. Some of the codes combinations
03151  * are obsolete with recent GPS receivers. However, that doesn't
03152  * matter since the mode is just read from the receiver:
03153  */
03154 #define REMOTE    0x10
03155 #define BOOT      0x20
03156
03157 #define TRACK     ( 0x01 )
03158 #define AUTO_166  ( 0x02 )
03159 #define WARM_166  ( 0x03          | BOOT )
03160 #define COLD_166  ( 0x04          | BOOT )
03161 #define AUTO_BC   ( 0x05 | REMOTE )
03162 #define WARM_BC   ( 0x06 | REMOTE | BOOT )
03163 #define COLD_BC   ( 0x07 | REMOTE | BOOT )
03164 #define UPDA_166  ( 0x08          | BOOT )
03165 #define UPDA_BC   ( 0x09 | REMOTE | BOOT )
03166
03167
03168
03169 typedef int16_t DAC_VAL;
03170
03171 #define _mbg_swab_dac_val( _p ) \
03172   _mbg_swab16( _p );
03173
03174
03175
03176 typedef struct
03177 {
03178   uint16_t mode;
03179   uint16_t good_svs;
03180   uint16_t svs_in_view;
03181   DAC_VAL dac_val;
03182   DAC_VAL dac_cal;
03183 } STAT_INFO;
03184
03185 #define _mbg_swab_stat_info( _p )      \
03186 {                                      \
03187   _mbg_swab16( &(_p)->mode );          \
03188   _mbg_swab16( &(_p)->good_svs );      \
03189   _mbg_swab16( &(_p)->svs_in_view );   \
03190   _mbg_swab_dac_val( &(_p)->dac_val ); \
03191   _mbg_swab_dac_val( &(_p)->dac_cal ); \
03192 }
03193
03194
03195 #define OSC_DAC_RANGE     4096UL
03196 #define OSC_DAC_BIAS      ( OSC_DAC_RANGE / 2 )
03197
03198
03199 #ifndef _IDENT_DEFINED
03200
03201   typedef union
03202   {
03203     char c[16];       // as string which may NOT be terminated
03204     int16_t wrd[8];
03205     uint32_t lw[4];
03206   } IDENT;
03207
03208   #define _IDENT_DEFINED
03209 #endif
03210
03211 #define _mbg_swab_ident( _p )     \
03212 {                                 \
03213   int i;                          \
03214   for ( i = 0; i < 4; i++ )       \
03215     _mbg_swab32( &(_p)->lw[i] );  \
03216 }
03217
03222 typedef uint16_t ANT_CABLE_LEN;
03223
03224 #define _mbg_swab_ant_cable_len( _p )    _mbg_swab16( _p )
03225
03226
03227
03228 /* Configuration data for an optional LAN interface.
03229  *
03230  * This is only supported if the flag GPS_HAS_LAN_IP4
03231  * is set in RECEIVER_INFO::features.
03232  */
03233
03234
03235 /* Basic network settings */
03236
03237 typedef uint32_t IP4_ADDR;
03238
03239 #define _mbg_swab_ip4_addr( _p ) \
03240   _mbg_swab32( _p );
03241
03242
03243 typedef struct
03244 {
03245   IP4_ADDR ip_addr;
03246   IP4_ADDR netmask;
03247   IP4_ADDR broad_addr;
03248   IP4_ADDR gateway;
03249   uint32_t flags;     /* see below */
03250
03251 } IP4_SETTINGS;
03252
03253 #define _mbg_swab_ip4_settings( _p )       \
03254 {                                          \
03255   _mbg_swab_ip4_addr( &(_p)->ip_addr );    \
03256   _mbg_swab_ip4_addr( &(_p)->netmask );    \
03257   _mbg_swab_ip4_addr( &(_p)->broad_addr ); \
03258   _mbg_swab_ip4_addr( &(_p)->gateway );    \
03259   _mbg_swab32( &(_p)->flags );             \
03260 }
03261
03262
03263 #if 0  //##++ currently not used
03264
03265 /* Misc configuration */
03266
03267 typedef struct
03268 {
03269   uint16_t id;     /* service ID, see below */
03270   uint16_t index;  /* used if several same svcs must be cfg'd, e.g. DNS */
03271   char host[50];   /* see below */
03272
03273 } IP_CFG;
03274
03275
03276
03277 /* Description of a service running on a device */
03278
03279 typedef struct
03280 {
03281   uint16_t id;     /* service ID, see below */
03282   uint16_t socket; /* the socket on which the service is listening */
03283   uint32_t flags;  /* see below */
03284
03285 } IP_SERVICE;
03286
03287 #endif  // 0
03288
03289
03290
03291 /* LAN interface information */
03292
03293 typedef struct
03294 {
03295   uint16_t type;        /* codes see below */
03296   uint8_t mac_addr[6];  /* MAC address */
03297   uint16_t ver_code;    /* high byte.low byte, in hex */
03298   char ver_str[GPS_ID_STR_SIZE];
03299   char sernum[GPS_ID_STR_SIZE];
03300   uint32_t rsvd;        /* reserved, currently always 0 */
03301   uint32_t flags;       /* reserved, currently always 0 */
03302 } LAN_IF_INFO;
03303
03304 #define _mbg_swab_lan_if_info( _p )  \
03305 {                                    \
03306   _mbg_swab16( &(_p)->type );        \
03307   _mbg_swab16( &(_p)->ver_code );    \
03308   _mbg_swab32( &(_p)->rsvd );        \
03309   _mbg_swab32( &(_p)->flags );       \
03310 }
03311
03312
03313
03314 /* codes used with LAN_IF_INFO::type: */
03315
03316 enum
03317 {
03318   LAN_IF_TYPE_XPORT,
03319   LAN_IF_TYPE_PTP,
03320   N_LAN_IF_TYPE
03321 };
03322
03323
03324 /* Flags used with IP4_SETTINGS::flags and LAN_IF_INFO::flags: */
03325
03326 enum
03327 {
03328   IP4_BIT_DHCP,
03329   IP4_BIT_LINK,  // used only to report state
03330   N_IP4_BIT
03331 };
03332
03333 #define IP4_MSK_DHCP   ( 1UL << IP4_BIT_DHCP )
03334 #define IP4_MSK_LINK   ( 1UL << IP4_BIT_LINK )
03335
03336
03337 enum
03338 {
03339   PTP_NW_PROT_BIT_RESERVED,
03340   PTP_NW_PROT_BIT_UDP_IPV4,
03341   PTP_NW_PROT_BIT_UDP_IPV6,
03342   PTP_NW_PROT_BIT_IEEE_802_3,
03343   PTP_NW_PROT_BIT_DEVICE_NET,
03344   PTP_NW_PROT_BIT_CONTROL_NET,
03345   PTP_NW_PROT_BIT_PROFINET,
03346   N_PTP_NW_PROT
03347 };
03348
03349 #define PTP_NW_PROT_MSK_RESERVED      ( 1UL << PTP_NW_PROT_BIT_RESERVED )
03350 #define PTP_NW_PROT_MSK_UDP_IPV4      ( 1UL << PTP_NW_PROT_BIT_UDP_IPV4 )
03351 #define PTP_NW_PROT_MSK_UDP_IPV6      ( 1UL << PTP_NW_PROT_BIT_UDP_IPV6 )
03352 #define PTP_NW_PROT_MSK_IEEE_802_3    ( 1UL << PTP_NW_PROT_BIT_IEEE_802_3 )
03353 #define PTP_NW_PROT_MSK_DEVICE_NET    ( 1UL << PTP_NW_PROT_BIT_DEVICE_NET )
03354 #define PTP_NW_PROT_MSK_CONTROL_NET   ( 1UL << PTP_NW_PROT_BIT_CONTROL_NET )
03355 #define PTP_NW_PROT_MSK_PROFINET      ( 1UL << PTP_NW_PROT_BIT_PROFINET )
03356
03357 #if !defined( DEFAULT_PTP_NW_PROT_MASK )
03358   #define DEFAULT_PTP_NW_PROT_MASK  ( PTP_NW_PROT_MSK_UDP_IPV4 | PTP_NW_PROT_MSK_IEEE_802_3 )
03359 #endif
03360
03361 #define PTP_NW_PROT_STRS   \
03362 {                          \
03363   "Reserved",              \
03364   "UDP/IPv4",              \
03365   "UDP/IPv6",              \
03366   "IEEE 802.3",            \
03367   "DeviceNet",             \
03368   "ControlNet",            \
03369   "PROFINET"               \
03370 }
03371
03372
03373
03374 enum
03375 {
03376   PTP_PORT_STATE_UNINITIALIZED,
03377   PTP_PORT_STATE_INITIALIZING,
03378   PTP_PORT_STATE_FAULTY,
03379   PTP_PORT_STATE_DISABLED,
03380   PTP_PORT_STATE_LISTENING,
03381   PTP_PORT_STATE_PRE_MASTER,
03382   PTP_PORT_STATE_MASTER,
03383   PTP_PORT_STATE_PASSIVE,
03384   PTP_PORT_STATE_UNCALIBRATED,
03385   PTP_PORT_STATE_SLAVE,
03386   N_PTP_PORT_STATE
03387 };
03388
03389 #define PTP_PORT_STATE_STRS   \
03390 {                             \
03391   "UNINITIALIZED",            \
03392   "INITIALIZING",             \
03393   "FAULTY",                   \
03394   "DISABLED",                 \
03395   "LISTENING",                \
03396   "PRE_MASTER",               \
03397   "MASTER",                   \
03398   "PASSIVE",                  \
03399   "UNCALIBRATED",             \
03400   "SLAVE"                     \
03401 }
03402
03403
03404 typedef struct
03405 {
03406   uint8_t value;
03407   char *name;
03408 } PTP_TABLE;
03409
03410
03411 enum
03412 {
03413   PTP_DELAY_MECH_BIT_E2E,  // in PTP2 specs: 0x01
03414   PTP_DELAY_MECH_BIT_P2P,  // in PTP2 specs: 0x02
03415   N_PTP_DELAY_MECH         // additionally the specs define 0xFE for disabled
03416 };
03417
03418 #define PTP_DELAY_MECH_MSK_E2E   ( 1UL << PTP_DELAY_MECH_BIT_E2E )
03419 #define PTP_DELAY_MECH_MSK_P2P   ( 1UL << PTP_DELAY_MECH_BIT_P2P )
03420
03421 #if !defined( DEFAULT_PTP_DELAY_MECH_MASK )
03422   #define DEFAULT_PTP_DELAY_MECH_MASK  ( PTP_DELAY_MECH_MSK_E2E )
03423 #endif
03424
03425 #define PTP_DELAY_MECH_NAMES \
03426 {                            \
03427   "E2E",                     \
03428   "P2P"                      \
03429 }
03430
03431
03432
03433 #define PTP_CLOCK_ACCURACY_RESERVED_OFFSET 0x20
03434
03435 enum
03436 {
03437   PTP_CLOCK_ACCURACY_25ns = PTP_CLOCK_ACCURACY_RESERVED_OFFSET,
03438   PTP_CLOCK_ACCURACY_100ns,
03439   PTP_CLOCK_ACCURACY_250ns,
03440   PTP_CLOCK_ACCURACY_1us,
03441   PTP_CLOCK_ACCURACY_2_5us,
03442   PTP_CLOCK_ACCURACY_10us,
03443   PTP_CLOCK_ACCURACY_25us,
03444   PTP_CLOCK_ACCURACY_100us,
03445   PTP_CLOCK_ACCURACY_250us,
03446   PTP_CLOCK_ACCURACY_1ms,
03447   PTP_CLOCK_ACCURACY_2_5ms,
03448   PTP_CLOCK_ACCURACY_10ms,
03449   PTP_CLOCK_ACCURACY_25ms,
03450   PTP_CLOCK_ACCURACY_100ms,
03451   PTP_CLOCK_ACCURACY_250ms,
03452   PTP_CLOCK_ACCURACY_1s,
03453   PTP_CLOCK_ACCURACY_10s,
03454   PTP_CLOCK_ACCURACY_MORE_10s,
03455   PTP_CLOCK_ACCURACY_RESERVED_1,
03456   PTP_CLOCK_ACCURACY_RESERVED_2,
03457   PTP_CLOCK_ACCURACY_RESERVED_3,
03458   PTP_CLOCK_ACCURACY_RESERVED_4,
03459   N_PTP_CLOCK_ACCURACY
03460 };
03461
03462
03463 // Attention: Substract offset of PTP_CLOCK_ACCURACY_RESERVED_OFFSET when
03464 // using the enum above as index for the initializer below!
03465 #define PTP_CLOCK_ACCURACY_STRS \
03466 {                               \
03467   "< 25 ns",                    \
03468   "< 100 ns",                   \
03469   "< 250 ns",                   \
03470   "< 1 us",                     \
03471   "< 2.5 us",                   \
03472   "< 10 us",                    \
03473   "< 25 us",                    \
03474   "< 100 us",                   \
03475   "< 250 us",                   \
03476   "< 1 ms",                     \
03477   "< 2.5 ms",                   \
03478   "< 10 ms",                    \
03479   "< 25 ms",                    \
03480   "< 100 ms",                   \
03481   "< 250 ms",                   \
03482   "< 1 s",                      \
03483   "< 10 s",                     \
03484   "more than 10 s",             \
03485   "reserved_1",                 \
03486   "reserved_2",                 \
03487   "reserved_3",                 \
03488   "reserved_4"                  \
03489 }
03490
03491
03492
03493 #define PTP_TIME_SOURCE_ATOMIC_CLOCK        0x10
03494 #define PTP_TIME_SOURCE_GPS                 0x20
03495 #define PTP_TIME_SOURCE_TERRESTRIAL_RADIO   0x30
03496 #define PTP_TIME_SOURCE_PTP                 0x40
03497 #define PTP_TIME_SOURCE_NTP                 0x50
03498 #define PTP_TIME_SOURCE_HAND_SET            0x60
03499 #define PTP_TIME_SOURCE_OTHER               0x90
03500 #define PTP_TIME_SOURCE_INTERNAL_OSCILLATOR 0xA0
03501
03502
03503
03504 #define PTP_TIME_SOURCE_TABLE                                     \
03505 {                                                                 \
03506   { PTP_TIME_SOURCE_ATOMIC_CLOCK, "Atomic Clock" },               \
03507   { PTP_TIME_SOURCE_GPS, "GPS" },                                 \
03508   { PTP_TIME_SOURCE_TERRESTRIAL_RADIO, "Terrestrial Radio" },     \
03509   { PTP_TIME_SOURCE_PTP, "PTP" },                                 \
03510   { PTP_TIME_SOURCE_NTP, "NTP" },                                 \
03511   { PTP_TIME_SOURCE_HAND_SET, "HAND SET" },                       \
03512   { PTP_TIME_SOURCE_OTHER, "OTHER" },                             \
03513   { PTP_TIME_SOURCE_INTERNAL_OSCILLATOR, "Internal Oscillator" }, \
03514   { 0, NULL }                                                     \
03515 }
03516
03517
03518
03519
03520 /* PTP configuration stuff */
03521
03522 typedef struct
03523 {
03524   uint8_t b[8];
03525 } PTP_CLOCK_IDENTITY;
03526
03527
03528
03529 typedef struct
03530 {
03531   uint16_t network_protocol;      // enum
03532   uint8_t ptp_proto_version;      // PTP v1 or v2
03533   uint8_t port_state;             // enum
03534   uint32_t flags;
03535   NANO_TIME offset;
03536   NANO_TIME path_delay;
03537   NANO_TIME mean_path_delay;
03538   NANO_TIME delay_asymmetry;
03539
03540   PTP_CLOCK_IDENTITY gm_identity;
03541
03542   uint16_t clock_offset_scaled_log_variance;
03543   uint8_t clock_class;
03544   uint8_t clock_accuracy;         // enum
03545
03546   uint32_t num_clients;
03547   uint32_t num_masters;
03548
03549   uint8_t domain_number;
03550   uint8_t time_source;            // enum
03551   uint8_t delay_mech;
03552   int8_t  log_delay_req_intv;
03553
03554   int16_t utc_offset;
03555   DAC_VAL osc_dac_cal;
03556
03557   uint32_t reserved;
03558 } PTP_STATE;
03559
03560 #define _mbg_swab_ptp_state( _p )                         \
03561 {                                                         \
03562   _mbg_swab16( &(_p)->network_protocol );                 \
03563   _mbg_swab32( &(_p)->flags );                            \
03564   _mbg_swab_nano_time( &(_p)->offset );                   \
03565   _mbg_swab_nano_time( &(_p)->path_delay );               \
03566   _mbg_swab_nano_time( &(_p)->mean_path_delay );          \
03567   _mbg_swab_nano_time( &(_p)->delay_asymmetry );          \
03568   _mbg_swab16( &(_p)->clock_offset_scaled_log_variance ); \
03569   _mbg_swab32( &(_p)->num_clients );                      \
03570   _mbg_swab32( &(_p)->num_masters );                      \
03571   _mbg_swab32( &(_p)->utc_offset );                       \
03572   _mbg_swab_dac_val( &(_p)->osc_dac_cal );                \
03573 }
03574
03575
03576 enum
03577 {
03578   PTP_FLAG_BIT_SLAVE_ONLY,
03579   PTP_FLAG_BIT_IS_SLAVE,
03580   PTP_FLAG_BIT_TIMESCALE_IS_PTP,
03581   PTP_FLAG_BIT_LS_ANN,
03582   PTP_FLAG_BIT_LS_ANN_NEG,
03583   N_PTP_FLAG_BIT
03584 };
03585
03586 #define PTP_FLAG_MSK_SLAVE_ONLY         ( 1UL << PTP_FLAG_BIT_SLAVE_ONLY )
03587 #define PTP_FLAG_MSK_IS_SLAVE           ( 1UL << PTP_FLAG_BIT_IS_SLAVE )
03588 #define PTP_FLAG_MSK_TIMESCALE_IS_PTP   ( 1UL << PTP_FLAG_BIT_TIMESCALE_IS_PTP )
03589 #define PTP_FLAG_MSK_LS_ANN             ( 1UL << PTP_FLAG_BIT_LS_ANN )
03590 #define PTP_FLAG_MSK_LS_ANN_NEG         ( 1UL << PTP_FLAG_BIT_LS_ANN_NEG )
03591
03592
03593 #define PTP_SYNC_INTERVAL_MIN -6
03594 #define PTP_SYNC_INTERVAL_MAX  6
03595
03596 #define PTP_DELAY_REQ_INTERVAL_MIN -6
03597 #define PTP_DELAY_REQ_INTERVAL_MAX  6
03598
03599
03600 typedef struct
03601 {
03602   uint16_t network_protocol;      // enum, only 1 or 3
03603   uint8_t profile;                // currently only 0 = default
03604   uint8_t domain_number;          // 0:3
03605
03606   uint8_t delay_mechanism;        // 0 (E2E) or 1 (P2P), unless disabled
03607   uint8_t reserved_0;
03608   uint8_t priority_1;
03609   uint8_t priority_2;
03610
03611   uint8_t dflt_clk_class_unsync_cold;   // 6:255
03612   uint8_t dflt_clk_class_unsync_warm;   // 6:255
03613   uint8_t dflt_clk_class_sync_cold;     // 6:255
03614   uint8_t dflt_clk_class_sync_warm;     // 6:255
03615
03616   uint8_t reserved_1;                   // currently always 0
03617   uint8_t reserved_2;                   // currently always 0
03618   int16_t sync_interval;                // log 2
03619
03620   int16_t announce_interval;            // log 2
03621   int16_t delay_request_interval;       // log 2
03622
03623   uint32_t upper_bound;      // [ns] sync state set to false if above this limit
03624   uint32_t lower_bound;      // [ns] sync state set to true if below this limit
03625
03626   uint32_t reserved_3;                  // currently always 0
03627   uint32_t flags;                   // (see below)
03628
03629 } PTP_CFG_SETTINGS;
03630
03631 #define _mbg_swab_ptp_cfg_settings( _p )        \
03632 {                                               \
03633   _mbg_swab16( &(_p)->network_protocol );       \
03634   _mbg_swab16( &(_p)->sync_interval );          \
03635   _mbg_swab16( &(_p)->announce_interval );      \
03636   _mbg_swab16( &(_p)->delay_request_interval ); \
03637   _mbg_swab32( &(_p)->upper_bound );            \
03638   _mbg_swab32( &(_p)->lower_bound );            \
03639   _mbg_swab32( &(_p)->reserved_1 );             \
03640   _mbg_swab32( &(_p)->flags );                  \
03641 }
03642
03643
03644
03645 typedef struct
03646 {
03647   PTP_CFG_SETTINGS settings;
03648
03649   uint8_t  ptp_proto_version;      // PTP v1 or v2
03650   uint8_t  reserved_1;             // currently always 0
03651   uint16_t reserved_2;             // currently always 0
03652
03653   int16_t sync_interval_min;           // log 2
03654   int16_t sync_interval_max;           // log 2
03655   int16_t announce_interval_min;       // log 2
03656   int16_t announce_interval_max;       // log 2
03657   int16_t delay_request_interval_min;  // log 2
03658   int16_t delay_request_interval_max;  // log 2
03659
03660   uint32_t supported_flags;            // (see below)
03661   uint32_t supported_network_protocols;
03662   uint32_t supported_profiles;
03663   uint32_t supported_delay_mechanisms;
03664
03665 } PTP_CFG_INFO;
03666
03667 #define _mbg_swab_ptp_cfg_info( _p )                \
03668 {                                                   \
03669   _mbg_swab_ptp_cfg_settings( &(_p)->settings );    \
03670   _mbg_swab16( &(_p)->sync_interval_min );          \
03671   _mbg_swab16( &(_p)->sync_interval_max );          \
03672   _mbg_swab16( &(_p)->announce_interval_min );      \
03673   _mbg_swab16( &(_p)->announce_interval_max );      \
03674   _mbg_swab16( &(_p)->delay_request_interval_min ); \
03675   _mbg_swab16( &(_p)->delay_request_interval_max ); \
03676   _mbg_swab32( &(_p)->supported_flags );            \
03677   _mbg_swab32( &(_p)->supported_profiles );         \
03678   _mbg_swab32( &(_p)->supported_delay_mechanisms ); \
03679 }
03680
03681
03682
03683 // flags used with PTP_CFG_SETTINGS::flags and PTP_CFG_INFO::supported_flags:
03684 // possibly also: can be master (i.e not slave only), v1 hw compat, ...
03685 enum
03686 {
03687   PTP_CFG_BIT_TIME_SCALE_IS_PTP,    // time scale is PTP/TAI, else arbitrary
03688   PTP_CFG_BIT_V1_HW_COMPAT,
03689   N_PTP_CFG_BIT
03690 };
03691
03692 #define PTP_CFG_MSK_TIME_SCALE_IS_PTP    ( 1UL << PTP_CFG_BIT_TIME_SCALE_IS_PTP )
03693 #define PTP_CFG_MSK_V1_HW_COMPAT         ( 1UL << PTP_CFG_BIT_V1_HW_COMPAT )
03694
03695
03696
03697 /*------------------------------------------------------------------------*/
03698
03699 /* Ephemeris parameters of one specific SV. Needed to compute the position */
03700 /* of a satellite at a given time with high precision. Valid for an */
03701 /* interval of 4 to 6 hours from start of transmission. */
03702
03703 typedef struct
03704 {
03705   CSUM csum;       /*    checksum of the remaining bytes                  */
03706   int16_t valid;   /*    flag data are valid                              */
03707
03708   HEALTH health;   /*    health indication of transmitting SV      [---]  */
03709   IOD IODC;        /*    Issue Of Data, Clock                             */
03710   IOD IODE2;       /*    Issue of Data, Ephemeris (Subframe 2)            */
03711   IOD IODE3;       /*    Issue of Data, Ephemeris (Subframe 3)            */
03712   T_GPS tt;        /*    time of transmission                             */
03713   T_GPS t0c;       /*    Reference Time Clock                      [---]  */
03714   T_GPS t0e;       /*    Reference Time Ephemeris                  [---]  */
03715
03716   double sqrt_A;   /*    Square Root of semi-major Axis        [sqrt(m)]  */
03717   double e;        /*    Eccentricity                              [---]  */
03718   double M0;       /* +- Mean Anomaly at Ref. Time                 [rad]  */
03719   double omega;    /* +- Argument of Perigee                       [rad]  */
03720   double OMEGA0;   /* +- Longit. of Asc. Node of orbit plane       [rad]  */
03721   double OMEGADOT; /* +- Rate of Right Ascension               [rad/sec]  */
03722   double deltan;   /* +- Mean Motion Diff. from computed value [rad/sec]  */
03723   double i0;       /* +- Inclination Angle                         [rad]  */
03724   double idot;     /* +- Rate of Inclination Angle             [rad/sec]  */
03725   double crc;      /* +- Cosine Corr. Term to Orbit Radius           [m]  */
03726   double crs;      /* +- Sine Corr. Term to Orbit Radius             [m]  */
03727   double cuc;      /* +- Cosine Corr. Term to Arg. of Latitude     [rad]  */
03728   double cus;      /* +- Sine Corr. Term to Arg. of Latitude       [rad]  */
03729   double cic;      /* +- Cosine Corr. Term to Inclination Angle    [rad]  */
03730   double cis;      /* +- Sine Corr. Term to Inclination Angle      [rad]  */
03731
03732   double af0;      /* +- Clock Correction Coefficient 0            [sec]  */
03733   double af1;      /* +- Clock Correction Coefficient 1        [sec/sec]  */
03734   double af2;      /* +- Clock Correction Coefficient 2      [sec/sec^2]  */
03735   double tgd;      /* +- estimated group delay differential        [sec]  */
03736
03737   uint16_t URA;    /*    predicted User Range Accuracy                    */
03738
03739   uint8_t L2code;  /*    code on L2 channel                         [---] */
03740   uint8_t L2flag;  /*    L2 P data flag                             [---] */
03741 } EPH;
03742
03743
03744
03745 /* Almanac parameters of one specific SV. A reduced precision set of */
03746 /* parameters used to check if a satellite is in view at a given time. */
03747 /* Valid for an interval of more than 7 days from start of transmission. */
03748
03749 typedef struct
03750 {
03751   CSUM csum;       /*    checksum of the remaining bytes                  */
03752   int16_t valid;   /*    flag data are valid                              */
03753
03754   HEALTH health;   /*                                               [---] */
03755   T_GPS t0a;       /*    Reference Time Almanac                     [sec] */
03756
03757   double sqrt_A;   /*    Square Root of semi-major Axis         [sqrt(m)] */
03758   double e;        /*    Eccentricity                               [---] */
03759
03760   double M0;       /* +- Mean Anomaly at Ref. Time                  [rad] */
03761   double omega;    /* +- Argument of Perigee                        [rad] */
03762   double OMEGA0;   /* +- Longit. of Asc. Node of orbit plane        [rad] */
03763   double OMEGADOT; /* +- Rate of Right Ascension                [rad/sec] */
03764   double deltai;   /* +-                                            [rad] */
03765   double af0;      /* +- Clock Correction Coefficient 0             [sec] */
03766   double af1;      /* +- Clock Correction Coefficient 1         [sec/sec] */
03767 } ALM;
03768
03769
03770
03771 /* Summary of configuration and health data of all SVs. */
03772
03773 typedef struct
03774 {
03775   CSUM csum;               /* checksum of the remaining bytes */
03776   int16_t valid;           /* flag data are valid */
03777
03778   T_GPS tot_51;            /* time of transmission, page 51 */
03779   T_GPS tot_63;            /* time of transmission, page 63 */
03780   T_GPS t0a;               /* complete reference time almanac */
03781
03782   CFG cfg[N_SVNO];         /* SV configuration from page 63 */
03783   HEALTH health[N_SVNO];   /* SV health from pages 51, 63 */
03784 } CFGH;
03785
03786
03787
03791 typedef struct
03792 {
03793   CSUM csum;
03794   int16_t valid;
03796   T_GPS t0t;
03797   double A0;
03798   double A1;
03800   uint16_t WNlsf;
03801   int16_t DNt;
03802   int8_t delta_tls;
03803   int8_t delta_tlsf;
03804 } UTC;
03805
03806 #define _mbg_swab_utc_parm( _p )  \
03807 {                                 \
03808   _mbg_swab_csum( &(_p)->csum );  \
03809   _mbg_swab16( &(_p)->valid );    \
03810   _mbg_swab_t_gps( &(_p)->t0t );  \
03811   _mbg_swab_double( &(_p)->A0 );  \
03812   _mbg_swab_double( &(_p)->A1 );  \
03813   _mbg_swab16( &(_p)->WNlsf );    \
03814   _mbg_swab16( &(_p)->DNt );      \
03815 }
03816
03817
03818
03819 /* Ionospheric correction parameters */
03820
03821 typedef struct
03822 {
03823   CSUM csum;       /*    checksum of the remaining bytes                  */
03824   int16_t valid;   /*    flag data are valid                              */
03825
03826   double alpha_0;  /*    Ionosph. Corr. Coeff. Alpha 0              [sec] */
03827   double alpha_1;  /*    Ionosph. Corr. Coeff. Alpha 1          [sec/deg] */
03828   double alpha_2;  /*    Ionosph. Corr. Coeff. Alpha 2        [sec/deg^2] */
03829   double alpha_3;  /*    Ionosph. Corr. Coeff. Alpha 3        [sec/deg^3] */
03830
03831   double beta_0;   /*    Ionosph. Corr. Coeff. Beta 0               [sec] */
03832   double beta_1;   /*    Ionosph. Corr. Coeff. Beta 1           [sec/deg] */
03833   double beta_2;   /*    Ionosph. Corr. Coeff. Beta 2         [sec/deg^2] */
03834   double beta_3;   /*    Ionosph. Corr. Coeff. Beta 3         [sec/deg^3] */
03835 } IONO;
03836
03837
03838
03839 /* GPS ASCII message */
03840
03841 typedef struct
03842 {
03843   CSUM csum;       /* checksum of the remaining bytes */
03844   int16_t valid;   /* flag data are valid */
03845   char s[23];      /* 22 chars GPS ASCII message plus trailing zero */
03846 } ASCII_MSG;
03847
03848
03849
03850 enum
03851 {
03852   GPS_PLATFORM_PORTABLE,
03853   GPS_PLATFORM_FIXED,
03854   GPS_PLATFORM_STATIONARY,
03855   GPS_PLATFORM_PEDESTRIAN,
03856   GPS_PLATFORM_AUTOMOTIVE,
03857   GPS_PLATFORM_SEA,
03858   GPS_PLATFORM_AIRBORNE_1G,
03859   GPS_PLATFORM_AIRBORNE_2G,
03860   GPS_PLATFORM_AIRBORNE_4G,
03861   N_GPS_PLATFORMS
03862 };
03863
03864
03865 #define GPS_PLATFORM_STRS \
03866 {                         \
03867   "Portable    ",         \
03868   "Fixed       ",         \
03869   "Stationary  ",         \
03870   "Pedestrian  ",         \
03871   "Automotive  ",         \
03872   "Sea         ",         \
03873   "Airborne <1G",         \
03874   "Airborne <2G",         \
03875   "Airborne <4G"          \
03876 }
03877
03878
03879
03880 enum
03881 {
03882   TIME_MODE_DISABLED,
03883   TIME_MODE_SURVEY_IN,
03884   TIME_MODE_FIXED
03885 };
03886
03887
03888
03889 typedef struct
03890 {
03891   uint32_t time_mode;
03892   uint32_t survey_in_duration;
03893   uint32_t survey_in_pos_var;
03894   int32_t  fixedPosX;         // cm
03895   int32_t  fixedPosY;         // cm
03896   int32_t  fixedPosZ;         // cm
03897   uint32_t fixedPosVar;       // cm
03898   uint32_t  flags;            // currently 0
03899   uint32_t  reserved;         // currently 0
03900 } NAV_TIME_MODE_SETTINGS;
03901
03902
03907 typedef struct
03908 {
03909   uint8_t   dynamic_platform;
03910   uint8_t   fix_mode;
03911   int8_t    min_elevation;
03912   uint8_t   static_hold_threshold;
03913   int32_t   fixed_altitude;
03914   uint32_t  fixed_altitude_variance;
03915   uint32_t  flags;          // currently 0
03916   uint32_t  reserved;       // currently 0
03917   NAV_TIME_MODE_SETTINGS nav_time_mode_settings;
03918 } NAV_ENGINE_SETTINGS;
03919
03920
03921 /* End of header body */
03922
03923
03924 #if defined( _USE_PACK )      // set default alignment
03925   #pragma pack()
03926 #endif
03927
03928
03929 #endif  /* _GPSDEFS_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/gpsutils.h Source File

  • Files

c/mbglib/include/gpsutils.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: gpsutils.h 1.6 2005/02/18 10:32:33Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions and prototypes for gpsutils.c.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: gpsutils.h $
00013  *  Revision 1.6  2005/02/18 10:32:33Z  martin
00014  *  Check more predefined macros to determine if compiling for Windows.
00015  *  Revision 1.5  2003/02/04 09:18:48Z  MARTIN
00016  *  Updated function prototypes.
00017  *  Revision 1.4  2002/12/12 16:08:11  martin
00018  *  Definitions for degree character.
00019  *  Requires mbggeo.h.
00020  *  Updated function prototypes.
00021  *  Revision 1.3  2001/02/05 09:40:42Z  MARTIN
00022  *  New file header.
00023  *  Source code cleanup.
00024  *
00025  **************************************************************************/
00026
00027 #ifndef _GPSUTILS_H
00028 #define _GPSUTILS_H
00029
00030
00031 /* Other headers to be included */
00032
00033 #include <mbggeo.h>
00034
00035
00036 #ifdef _GPSUTILS
00037  #define _ext
00038  #define _DO_INIT
00039 #else
00040  #define _ext extern
00041 #endif
00042
00043
00044 /* Start of header body */
00045
00046 #define ANSI_C_DEGREE     '°'    // single char
00047 #define ANSI_S_DEGREE     "°"    // string
00048
00049 #if defined( _Windows ) || defined( _WINDOWS ) \
00050   || defined( WIN32 ) || defined( __linux )
00051   #define C_DEGREE  ANSI_C_DEGREE
00052   #define S_DEGREE  ANSI_S_DEGREE
00053 #else
00054   #define C_DEGREE  'ø'
00055   #define S_DEGREE  "ø"
00056 #endif
00057
00058
00059 /* function prototypes: */
00060
00061 #ifdef __cplusplus
00062 extern "C" {
00063 #endif
00064
00065 /* ----- function prototypes begin ----- */
00066
00067 /* This section was generated automatically */
00068 /* by MAKEHDR, do not remove the comments. */
00069
00070  void swap_double( double *d ) ;
00071  void swap_eph_doubles( EPH *ephp ) ;
00072  void swap_alm_doubles( ALM *almp ) ;
00073  void swap_utc_doubles( UTC *utcp ) ;
00074  void swap_iono_doubles( IONO *ionop ) ;
00075  void swap_pos_doubles( POS *posp ) ;
00076  void sprint_dms( char *s, DMS *pdms, int prec ) ;
00077  void sprint_alt( char *s, double alt ) ;
00078  void sprint_pos_geo( char *s, POS *ppos, const char *sep, int prec ) ;
00079  void sprint_fixed_freq( char *s, FIXED_FREQ_INFO *p_ff ) ;
00080
00081 /* ----- function prototypes end ----- */
00082
00083 #ifdef __cplusplus
00084 }
00085 #endif
00086
00087
00088 /* End of header body */
00089
00090 #undef _ext
00091 #undef _DO_INIT
00092
00093 #endif  /* _GPSUTILS_H */
00094
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/hrtime.c Source File

  • Files

c/demo/mbgdevio/hrtime.c

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: hrtime.c 1.5 2009/01/23 08:31:28Z daniel REL_M $
00005  *  $Name: MBGDEVIO_HRTIME_100 $
00006  *
00007  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00008  *
00009  * -----------------------------------------------------------------------
00010  *  $Log: hrtime.c $
00011  *  Revision 1.5  2009/01/23 08:31:28Z  daniel
00012  *  Revision 1.4  2009/01/07 15:22:36Z  daniel
00013  *  Cleaned up source code.
00014  *  Revision 1.3  2008/01/16 08:48:24Z  daniel
00015  *  Revision 1.2  2007/11/30 12:14:52Z  daniel
00016  *  Revision 1.1  2007/11/05 10:54:00Z  daniel
00017  *  Initial revision
00018  *
00019  **************************************************************************/
00020
00075 #include <mbgdevio.h>
00076 #include <mbgutil.h>
00077
00078 #include <stdio.h>
00079
00080
00081 static int n_sec_change = 0;
00082
00083
00084 static /*HDR*/
00085 void err_msg( const char *msg )
00086 {
00087   fprintf( stderr, "** %s: %i\n", msg, GetLastError() );
00088
00089 }  // err_msg
00090
00091
00092
00093 static /*HDR*/
00094 void print_drvr_info( void )
00095 {
00096   int rc;
00097   PCPS_DRVR_INFO drvr_info;
00098   MBG_DEV_HANDLE dh = mbg_open_device( 0 );
00099
00100   if ( dh == MBG_INVALID_DEV_HANDLE )
00101   {
00102     err_msg( "Unable to open device" );
00103     exit( 1 );
00104   }
00105
00106
00107   rc = mbg_get_drvr_info( dh, &drvr_info );
00108
00109   mbg_close_device( &dh );
00110
00111
00112   if ( rc != PCPS_SUCCESS )
00113   {
00114     err_msg( "Failed to read driver info" );
00115     exit( 1 );
00116   }
00117
00118   printf( "Kernel driver: %s v%i.%02i, %i device%s\n\n",
00119           drvr_info.id_str,
00120           drvr_info.ver_num / 100,
00121           drvr_info.ver_num % 100,
00122           drvr_info.n_devs,
00123           ( drvr_info.n_devs == 1 ) ? "" : "s"
00124         );
00125
00126 }  // print_drvr_info
00127
00128
00129
00130 static /*HDR*/
00131 void print_dev_info( MBG_DEV_HANDLE dh,
00132                      PCPS_DEV *p_dev )
00133 {
00134   int rc;
00135
00136   rc = mbg_get_device_info( dh, p_dev );
00137
00138   if ( rc == PCPS_SUCCESS )
00139   {
00140     _pcps_port_base( p_dev, 0 ) ?
00141       printf( "  %s at port %03Xh\n",
00142             _pcps_fw_id( p_dev ),
00143             _pcps_port_base( p_dev, 0 )
00144           ) :
00145       printf( "  %s\n",
00146             _pcps_fw_id( p_dev )
00147           );
00148   }
00149   else
00150     err_msg( "Failed to read device info" );
00151
00152 }  // print_dev_info
00153
00154
00155
00156 int main( int argc, char* argv[] )
00157 {
00158   int i;
00159   int rc = 0;
00160   int devices_found;
00161
00162   if ( mbgdevio_check_version( MBGDEVIO_VERSION ) != PCPS_SUCCESS )
00163   {
00164     printf( "The MBGDEVIO DLL API version %X which is installed is not compatible\n"
00165             "with API version %X required by this program.\n",
00166             mbgdevio_get_version(),
00167             MBGDEVIO_VERSION
00168           );
00169     exit( 1 );
00170   }
00171
00172   devices_found = mbg_find_devices();
00173
00174   if ( devices_found == 0 )
00175   {
00176     printf( "No radio clock found.\n" );
00177     return 1;
00178   }
00179
00180
00181   printf( "Found %i radio clock%s\n",
00182           devices_found,
00183           ( devices_found == 1 ) ? "" : "s"
00184         );
00185
00186
00187   print_drvr_info();
00188
00189
00190   // There may be several radio clock devices installed.
00191   // Try to get information from each of the devices.
00192   for ( i = 0; i < devices_found; i++ )
00193   {
00194     static PCPS_DEV dev;
00195
00196     MBG_DEV_HANDLE dh;
00197
00198
00199     printf( "Radio clock %i:\n", i );
00200
00201     dh = mbg_open_device( i );
00202
00203     if ( dh == MBG_INVALID_DEV_HANDLE )
00204     {
00205       err_msg( "Unable to open device" );
00206       continue;
00207     }
00208
00209
00210     print_dev_info( dh, &dev );
00211     printf( "\n" );
00212
00213
00214     // Some clocks (mainly GPS receivers and IRIG decoders)
00215     // support a high resolution time. If supported, read and
00216     // display the HR time.
00217     if ( _pcps_has_hr_time( &dev ) )
00218     {
00219       char ws[100];
00220       char offs[20];
00221
00222       PCPS_HR_TIME hr_t;
00223       int32_t latency = 0;
00224       int rc;
00225
00226       // Read a high resolution time stamp with compensated latency.
00227       // The function mbg_get_hr_time_comp() has been introduced in
00228       // mbgdevio DLL v2.1.2 and compensates the execution time (latency)
00229       // required to acces the hardware from inside the kernel driver.
00230
00231       #if 1 // use with mbgdevio DLL v2.1.2 or greater
00232
00233
00234         // The latency value can optionally be returned by this function.
00235         // If the latency value is not required, a NULL pointer can be
00236         // passed instead. The latency value is in hectonanoseconds [hns],
00237         // i.e. 100 nanosecond units.
00238
00239         rc = mbg_get_hr_time_comp( dh, &hr_t, &latency );
00240
00241       #else  // the code below can be used with mbgdevio DLL < v2.1.2.
00242
00243         rc = mbg_get_hr_time( dh, &hr_t );
00244
00245       #endif
00246
00247       if ( rc == PCPS_SUCCESS )
00248       {
00249         char latency_fmt[50];
00250
00251         if ( latency )
00252           sprintf( latency_fmt,", latency: %i hns", latency);
00253         else
00254           strcpy(latency_fmt,"");
00255
00256         // The format functions below are taken from mbgutil.dll.
00257
00258         // Display PCPS_HR_TIME as raw data in hex format.
00259         mbg_str_pcps_hr_time_raw( ws, sizeof( ws ), &hr_t );
00260         printf( "  HR time (raw): %s %s\n\n", ws, latency_fmt );
00261
00262         // Convert PCPS_HR_TIME into a readable timestamp with fractions as local time.
00263         mbg_str_pcps_hr_tstamp_loc( ws, sizeof( ws ), &hr_t );
00264         printf( "  HR timestamp (loc): %s%s\n", ws, latency_fmt);
00265
00266         // Convert PCPS_HR_TIME into a readable timestamp with fractions as UTC time.
00267         mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hr_t );
00268         printf( "  HR timestamp (utc): %s          %s\n", ws, latency_fmt);
00269
00270         // Convert PCPS_HR_TIME into a readable date/time format as local time.
00271         mbg_str_pcps_hr_date_time_loc( ws, sizeof( ws ), &hr_t );
00272         mbg_str_pcps_hr_time_offs( offs, sizeof( offs ), &hr_t, "UTC" );
00273         printf( "  HR date/time (loc): %s %s%s\n", ws, offs, latency_fmt );
00274
00275         // Convert PCPS_HR_TIME into a readable date/time format as UTC time.
00276         mbg_str_pcps_hr_date_time_utc( ws, sizeof( ws ), &hr_t );
00277         printf( "  HR date/time (utc): %s          %s\n", ws, latency_fmt );
00278       }
00279       else
00280         err_msg( "Failed to read High Resolution Time" );
00281     }
00282
00283     mbg_close_device( &dh );
00284
00285     printf( "\n" );
00286   }
00287
00288   printf ( "\n" );
00289
00290   return rc;
00291 }
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbg_arch.h Source File

  • Files

c/mbglib/include/mbg_arch.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbg_arch.h 1.2 2009/03/19 15:14:15Z martin REL_M martin $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions to support different computer hardware architectures.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbg_arch.h $
00013  *  Revision 1.2  2009/03/19 15:14:15Z  martin
00014  *  Fixed byte swapping of doubles for SPARC architecture.
00015  *  Revision 1.1  2008/12/05 13:47:42  martin
00016  *  Initial revision.
00017  *
00018  **************************************************************************/
00019
00020 #ifndef _MBG_ARCH_H
00021 #define _MBG_ARCH_H
00022
00023 #include <mbg_tgt.h>
00024
00025
00026 #if defined( MBG_ARCH_SPARC )
00027   #define MBG_ARCH_BIG_ENDIAN      1
00028 #endif
00029
00030
00031 #if !defined( MBG_ARCH_BIG_ENDIAN )
00032   #define MBG_ARCH_LITTLE_ENDIAN   1
00033 #endif
00034
00035
00036
00037 #if defined( MBG_TGT_LINUX )
00038
00039   #include <asm/byteorder.h>
00040
00041   #if defined( __KERNEL__ )
00042     #include <asm/unaligned.h>
00043
00044     #define _mbg_put_unaligned( _v, _p )  put_unaligned( _v, _p )
00045     #define _mbg_get_unaligned( _p )      get_unaligned( _p )
00046   #endif
00047
00048 #endif
00049
00050
00051
00052 // If no macros required to access unaligned data have yet been defined,
00053 // define some default macros assuming no special handling is required
00054 // to access unaligned data.
00055
00056 #if !defined( _pcps_put_unaligned )
00057   #define _pcps_put_unaligned( _v, _p )   ((void)( *(_p) = (_v) ))
00058 #endif
00059
00060 #if !defined( _pcps_get_unaligned )
00061   #define _pcps_get_unaligned( _p )       (*(_p))
00062 #endif
00063
00064
00065
00066 // If no macros to convert endianess have yet been defined, define
00067 // some default macros assuming endianess conversion is not required.
00068
00069 #if !defined( __le16_to_cpu )
00070   #define __le16_to_cpu( _x )   (_x)
00071 #endif
00072
00073 #if !defined( __le32_to_cpu )
00074   #define __le32_to_cpu( _x )   (_x)
00075 #endif
00076
00077 #if !defined( __le64_to_cpu )
00078   #define __le64_to_cpu( _x )   (_x)
00079 #endif
00080
00081 #if !defined( __cpu_to_le16 )
00082   #define __cpu_to_le16( _x )   (_x)
00083 #endif
00084
00085 #if !defined( __cpu_to_le32 )
00086   #define __cpu_to_le32( _x )   (_x)
00087 #endif
00088
00089 #if !defined( __cpu_to_le64 )
00090   #define __cpu_to_le64( _x )   (_x)
00091 #endif
00092
00093
00094
00095 // The macros below are used to convert the endianess
00096 // of the plug-in cards to the endianess of the host CPU
00097
00098 #define _mbg8_to_cpu( _x )   ( _x )
00099 #define _mbg16_to_cpu( _x )  __le16_to_cpu( _x )
00100 #define _mbg32_to_cpu( _x )  __le32_to_cpu( _x )
00101 #define _mbg64_to_cpu( _x )  __le64_to_cpu( _x )
00102
00103 #define _cpu_to_mbg8( _x )   ( _x )
00104 #define _cpu_to_mbg16( _x )  __cpu_to_le16( _x )
00105 #define _cpu_to_mbg32( _x )  __cpu_to_le32( _x )
00106 #define _cpu_to_mbg64( _x )  __cpu_to_le64( _x )
00107
00108
00109
00110 // swap a double type variable bytewise e.g. to convert the endianess
00111
00112 static __mbg_inline
00113 void mbg_swab_double( double *p )
00114 {
00115 #if 0  // The __swab64() may not work correctly for whatever reason ...
00116   __swab64p( p );
00117 #else  // ... so we do the swapping manually
00118   double d = 0;
00119   int i;
00120
00121   for ( i = 0; i < sizeof( double); i++ )
00122     BYTE_OF( d, i ) = BYTE_OF( *p, ( sizeof( double) - 1 - i ) );
00123
00124   for ( i = 0; i < sizeof( double); i++ )
00125     BYTE_OF( *p, i ) = BYTE_OF( d, i );
00126 #endif
00127
00128 }  // mbg_swab_double
00129
00130
00131
00132 #if defined( MBG_ARCH_BIG_ENDIAN )
00133
00134   #define _mbg_swab16( _p )        *(_p) = __swab16( *(_p) )
00135   #define _mbg_swab32( _p )        *(_p) = __swab32( *(_p) )
00136
00137   #define _mbg_swab_double( _p )   mbg_swab_double( _p )
00138
00139   #define _mbg_swab_doubles( _p, _n )  \
00140   {                                    \
00141     int i;                             \
00142     for ( i = 0; i < (_n); i++ )       \
00143       _mbg_swab_double( &_p[i] );      \
00144   }
00145
00146 #else
00147
00148   #define _mbg_swab16( _p )             _nop_macro_fnc()
00149   #define _mbg_swab32( _p )             _nop_macro_fnc()
00150
00151   #define _mbg_swab_double( _p )        _nop_macro_fnc()
00152
00153   #define _mbg_swab_doubles( _p, _n )   _nop_macro_fnc()
00154
00155 #endif
00156
00157 #endif  /* _MBG_ARCH_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbg_tgt.h Source File

  • Files

c/mbglib/include/mbg_tgt.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbg_tgt.h 1.19 2009/06/09 10:03:58Z daniel REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Check the build environment and setup control definitions
00010  *    for the Meinberg library modules.
00011  *
00012  * -----------------------------------------------------------------------
00013  *  $Log: mbg_tgt.h $
00014  *  Revision 1.19  2009/06/09 10:03:58Z  daniel
00015  *  Preliminary support for ARM architecture.
00016  *  Revision 1.18  2009/04/01 14:10:55  martin
00017  *  Cleanup for CVI.
00018  *  Revision 1.17  2009/03/19 15:21:07Z  martin
00019  *  Conditionally define DWORD_PTR type for old MS C compilers.
00020  *  Revision 1.16  2008/12/08 16:42:30  martin
00021  *  Defined _GNU_SOURCE for Linux.
00022  *  Revision 1.15  2008/11/19 15:31:49  martin
00023  *  Added symbol MBG_ARCH_I386.
00024  *  Revision 1.14  2008/09/03 15:06:04  martin
00025  *  Support DOS protected mode target.
00026  *  Support SUN SPARC architecture.
00027  *  Specified handle types for common host environments.
00028  *  Added macro MBG_USE_MM_IO_FOR_PCI.
00029  *  Added macro _nop_macro_fnc().
00030  *  Revision 1.13  2008/01/30 15:52:22  martin
00031  *  Modified checking for availability of wchar_t.
00032  *  Revision 1.13  2008/01/29 15:18:07Z  martin
00033  *  Recognize DOS target under Watcom compilers.
00034  *  Flag Watcom C always supports wchar_t.
00035  *  Revision 1.12  2008/01/17 09:38:50Z  daniel
00036  *  Added macros to determine whether C language extensions
00037  *  (e.g. C94, C99) are supported by the target environment.
00038  *  Added macro to check whether wchar_t and friends are
00039  *  supported, and some compatibility stuff.
00040  *  Revision 1.11  2007/10/31 16:58:03  martin
00041  *  Fixed __mbg_inline for Borland C (DOS).
00042  *  Revision 1.10  2007/09/25 08:10:27Z  martin
00043  *  Support CVI target environment.
00044  *  Added MBG_PORT_HANDLE type for serial ports.
00045  *  Added macros for unified inline code syntax.
00046  *  Revision 1.9  2006/12/08 12:45:54Z  martin
00047  *  Under Windows include ntddk.h rather than windows.h
00048  *  if building kernel driver .
00049  *  Revision 1.8  2006/10/25 12:20:45Z  martin
00050  *  Initial support for FreeBSD, NetBSD, and OpenBSD.
00051  *  Added definitions for generic handle types.
00052  *  Revision 1.7  2006/08/23 13:43:55  martin
00053  *  Added definition for MBG_TGT_UNIX.
00054  *  Minor syntax fixes.
00055  *  Revision 1.6  2006/01/25 14:37:06  martin
00056  *  Added definitions for 64 bit Windows environments.
00057  *  Revision 1.5  2003/12/17 16:11:41Z  martin
00058  *  Split API modifiers into _MBG_API and _MBG_API_ATTR.
00059  *  Revision 1.4  2003/06/19 08:20:22Z  martin
00060  *  Added WINAPI attribute for DLL exported functions.
00061  *  Revision 1.3  2003/04/09 13:37:20Z  martin
00062  *  Added definition for _MBG_API.
00063  *  Revision 1.2  2003/02/24 16:08:45Z  martin
00064  *  Don't setup for Win32 PNP if explicitely configured non-PNP.
00065  *  Revision 1.1  2002/02/19 13:46:20Z  MARTIN
00066  *  Initial revision
00067  *
00068  **************************************************************************/
00069
00070 #ifndef _MBG_TGT_H
00071 #define _MBG_TGT_H
00072
00073
00074 /* Other headers to be included */
00075
00076 #include <stddef.h>
00077
00078 #ifdef _MBG_TGT
00079  #define _ext
00080 #else
00081  #define _ext extern
00082 #endif
00083
00084
00085 /* Start of header body */
00086
00087 #if defined( _CVI ) || defined( _CVI_ )
00088
00089   #define MBG_TGT_WIN32
00090   #define MBG_TGT_CVI
00091
00092 #elif defined( _WIN32_WINNT )
00093
00094   // MS platform SDK
00095   // WinNT 4.0 and above
00096   #define MBG_TGT_WIN32
00097
00098   #if ( _WIN32_WINNT >= 0x0500 )
00099     // Win2k and above
00100     #if !defined( MBG_TGT_WIN32_NON_PNP )
00101       // only if not explicitely disabled
00102       #define MBG_TGT_WIN32_PNP
00103     #endif
00104   #endif
00105
00106 #elif defined( WINVER )
00107
00108   // MS platform SDK
00109   // Win95, WinNT 4.0 and above
00110   #define MBG_TGT_WIN32
00111
00112   #if ( WINVER >= 0x0500 )
00113     // Win98, Win2k and above
00114     // #define ...
00115   #endif
00116
00117 #elif defined( __WIN32__ )
00118
00119   // Borland C++ Builder
00120   #define MBG_TGT_WIN32
00121
00122 #elif defined( _WIN32 )
00123
00124   // MS Visual C++
00125   #define MBG_TGT_WIN32
00126
00127 #elif defined( __WINDOWS_386__ )
00128
00129   // Watcom C/C++ for target Win32
00130   #define MBG_TGT_WIN32
00131
00132 #elif defined( __NETWARE_386__ )
00133
00134   // Watcom C/C++ for target NetWare
00135   #define MBG_TGT_NETWARE
00136
00137 #elif defined( __OS2__ )
00138
00139   // Watcom C/C++ for target OS/2
00140   #define MBG_TGT_OS2
00141
00142 #elif defined( __linux )
00143
00144   // GCC for target Linux
00145   #define MBG_TGT_LINUX
00146   #define _GNU_SOURCE    1
00147
00148 #elif defined( __FreeBSD__ )
00149
00150   // GCC for target FreeBSD
00151   #define MBG_TGT_FREEBSD
00152
00153 #elif defined( __NetBSD__ )
00154
00155   // GCC for target NetBSD
00156   #define MBG_TGT_NETBSD
00157
00158 #elif defined( __OpenBSD__ )
00159
00160   // GCC for target FreeBSD
00161   #define MBG_TGT_OPENBSD
00162
00163 #elif defined( __QNX__ )
00164
00165   // any compiler for target QNX
00166   #define MBG_TGT_QNX
00167
00168   #if defined( __QNXNTO__ )
00169     // target QNX Neutrino
00170     #define MBG_TGT_QNX_NTO
00171   #endif
00172
00173 #elif defined( __MSDOS__ ) || defined( __DOS__ )
00174
00175   // any compiler for target DOS
00176   #define MBG_TGT_DOS
00177
00178   #if defined( __WATCOMC__ ) && defined( __386__ )
00179
00180     #define MBG_TGT_DOS_PM  // protected mode DOS
00181
00182   #endif
00183
00184 #endif
00185
00186 // Some definitions which depend on the type of compiler ...
00187
00188 #if defined( __GNUC__ )
00189
00190   #define __mbg_inline __inline__
00191
00192   #define MBG_TGT_HAS_WCHAR_T  defined( MBG_TGT_WIN32 )
00193
00194   #if defined( __sparc__ )
00195
00196     #define MBG_ARCH_SPARC
00197     #define _MBG_ARCH_DEFINED
00198
00199   #elif defined( __arm__ )
00200
00201     #define MBG_ARCH_ARM
00202     #define _MBG_ARCH_DEFINED
00203
00204   #endif
00205
00206 #elif defined( _MSC_VER )
00207
00208   #define __mbg_inline __forceinline
00209
00210   #define MBG_TGT_HAS_WCHAR_T  1
00211
00212 #elif defined( _CVI ) || defined( _CVI_ )
00213
00214   #define __mbg_inline //##++++
00215
00216   #define MBG_TGT_HAS_WCHAR_T  0
00217
00218 #elif defined( __BORLANDC__ )
00219
00220   #if defined( __cplusplus )
00221     #define __mbg_inline inline
00222   #endif
00223
00224   #define MBG_TGT_HAS_WCHAR_T  defined( MBG_TGT_WIN32 )
00225
00226 #elif defined( __WATCOMC__ )
00227
00228   #define __mbg_inline _inline
00229
00230   #define MBG_TGT_HAS_WCHAR_T  defined( MBG_TGT_WIN32 )
00231
00232 #endif
00233
00234
00235
00236 // Currently we support only Sparc and i386/x86_64 architectures,
00237 // so unless we have explicitely found sparc we assume i386.
00238
00239 #if !defined( _MBG_ARCH_DEFINED )
00240   #define MBG_ARCH_I386
00241 #endif
00242
00243
00244 #if !defined( __mbg_inline )
00245
00246   #define __mbg_inline
00247
00248 #endif
00249
00250
00251 #if defined( MBG_TGT_FREEBSD ) \
00252  || defined( MBG_TGT_NETBSD ) \
00253  || defined( MBG_TGT_OPENBSD )
00254   #define MBG_TGT_BSD
00255 #endif
00256
00257 #if defined( MBG_TGT_LINUX ) \
00258  || defined( MBG_TGT_BSD ) \
00259  || defined( MBG_TGT_QNX_NTO )
00260   #define MBG_TGT_UNIX
00261 #endif
00262
00263
00264
00265 #if defined( MBG_TGT_WIN32 )
00266
00267   #if defined( _AMD64_ )
00268     // This is used for AMD64 architecture and for
00269     // Intel XEON CPUs with 64 bit extension.
00270     #define MBG_TGT_WIN32_PNP_X64
00271     #define WIN32_FLAVOR "x64"
00272   #elif defined( _IA64_ )
00273     #define MBG_TGT_WIN32_PNP_IA64
00274     #define WIN32_FLAVOR "ia64"
00275   #endif
00276
00277   #if defined( _KDD_ )
00278     #include <ntddk.h>
00279   #else
00280     // This must not be used for kernel drivers.
00281     #include <windows.h>
00282     typedef HANDLE MBG_HANDLE;
00283
00284     #define MBG_INVALID_HANDLE  INVALID_HANDLE_VALUE
00285
00286         #if defined( MBG_TGT_CVI )
00287       // CVI uses an own set of functions to support serial ports
00288       typedef int MBG_PORT_HANDLE;
00289       #define MBG_INVALID_PORT_HANDLE -1
00290     #else
00291       typedef HANDLE MBG_PORT_HANDLE;
00292       #define MBG_INVALID_PORT_HANDLE MBG_INVALID_HANDLE
00293     #endif
00294
00295     // The DWORD_PTR type is not defined in the headers shipping
00296     // with VC6. However, if the SDK is installed then the SDK's
00297     // headers may declare this type. This is at least the case
00298     // in the Oct 2001 SDK which also defines the symbol _W64.
00299     #if !defined( _W64 )
00300       typedef DWORD DWORD_PTR;
00301     #endif
00302
00303   #endif
00304
00305   #define _MBG_API  WINAPI
00306
00307   #if defined( MBG_LIB_EXPORT )
00308     #define _MBG_API_ATTR __declspec( dllexport )
00309   #else
00310     #define _MBG_API_ATTR __declspec( dllimport )
00311   #endif
00312
00313 #elif defined( MBG_TGT_UNIX )
00314
00315   typedef int MBG_HANDLE;
00316   typedef int MBG_PORT_HANDLE;
00317
00318   #define MBG_INVALID_HANDLE  -1
00319
00320 #else
00321
00322   typedef int MBG_HANDLE;
00323   typedef int MBG_PORT_HANDLE;
00324
00325   #define MBG_INVALID_HANDLE  -1
00326
00327 #endif
00328
00329
00330 #if !defined( _MBG_API )
00331   #define _MBG_API
00332 #endif
00333
00334 #if !defined( _MBG_API_ATTR )
00335   #define _MBG_API_ATTR
00336 #endif
00337
00338
00339 #if !defined( MBG_USE_MM_IO_FOR_PCI )
00340   #if ( 0 || defined( MBG_ARCH_SPARC ) )
00341     #define MBG_USE_MM_IO_FOR_PCI  1
00342   #else
00343     #define MBG_USE_MM_IO_FOR_PCI  0
00344   #endif
00345 #endif
00346
00347
00348 #if !defined( _nop_macro_fnc )
00349   #define _nop_macro_fnc()     do {} while (0)
00350 #endif
00351
00352
00353 // The macros below are defined in order to be able to check if
00354 // certain C language extensions are available on the target system:
00355 #define MBG_TGT_C94 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199409L ) )
00356 #define MBG_TGT_C99 ( defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199901L ) )
00357
00358 // Check if wchar_t is supported
00359 #if !defined( MBG_TGT_HAS_WCHAR_T )
00360   #define MBG_TGT_HAS_WCHAR_T  ( MBG_TGT_C94 || defined( WCHAR_MAX ) )
00361 #endif
00362
00363 #if !MBG_TGT_HAS_WCHAR_T
00364   // Even if wchar_t is not natively supported by the target platform
00365   // there may already be a compatibility define (e.g. BC3.1)
00366   // However, some functions may be missing (e.g. snwprintf()).
00367   #if !defined( _WCHAR_T )          /* BC3.1 */ \
00368    && !defined( _WCHAR_T_DEFINED_ ) /* WC11 */
00369     //##++ #define _WCHAR_T
00370     #define wchar_t char
00371   #endif
00372 #endif
00373
00374
00375
00376 /* End of header body */
00377
00378 #undef _ext
00379
00380
00381 /* function prototypes: */
00382
00383 #ifdef __cplusplus
00384 extern "C" {
00385 #endif
00386
00387 /* ----- function prototypes begin ----- */
00388
00389 /* This section was generated automatically */
00390 /* by MAKEHDR, do not remove the comments. */
00391
00392 /* (no header definitions found) */
00393
00394 /* ----- function prototypes end ----- */
00395
00396 #ifdef __cplusplus
00397 }
00398 #endif
00399
00400
00401 #endif  /* _MBG_TGT_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgdevio.h Source File

  • Files

c/mbglib/include/mbgdevio.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgdevio.h 1.37 2009/08/12 14:31:51Z daniel REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions and prototypes used with Meinberg device driver I/O.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbgdevio.h $
00013  *  Revision 1.37  2009/08/12 14:31:51Z  daniel
00014  *  New version code 306, compatibility version still 210.
00015  *  Revision 1.36  2009/06/19 12:20:31Z  martin
00016  *  Updated function prototypes.
00017  *  Revision 1.35  2009/06/09 08:57:09  daniel
00018  *  New version code 305, compatibility version still 210.
00019  *  Revision 1.34  2009/06/08 18:20:14Z  daniel
00020  *  Updated function prototypes.
00021  *  Fixes for ARM target.
00022  *  Revision 1.33  2009/03/19 15:36:26  martin
00023  *  New version code 304, compatibility version still 210.
00024  *  Moved some inline functions dealing with MBG_PC_CYCLES
00025  *  from mbgdevio.h to pcpsdev.h.
00026  *  Include mbg_arch.h here.
00027  *  Removed unused doxygen comment.
00028  *  Updated function prototypes.
00029  *  Revision 1.32  2008/12/17 10:43:30Z  martin
00030  *  New version code 303, compatibility version still 210.
00031  *  Increased MBG_MAX_DEVICES from 5 to 8.
00032  *  Added macros to read the time stamp counter (cycles), and
00033  *  added an inline rdtscll() call for user space Linux.
00034  *  Added some inline functions to deal with cycles and timestamps.
00035  *  Generic support for threads and process/thread affinity controlled
00036  *  by symbol MBGDEVIO_USE_THREAD_API.
00037  *  New preprocessor symbol MBGDEVIO_HAVE_THREAD_AFFINITY.
00038  *  Support extrapolated time stamps controlled
00039  *  by symbol MBGDEVIO_XHRT_API.
00040  *  Removed definition of MBG_TGT_SUPP_MMAP.
00041  *  Updated function prototypes and doxygen comments.
00042  *  Revision 1.31  2008/02/26 16:57:38Z  martin
00043  *  Updated function prototypes and doxygen comments.
00044  *  Revision 1.30  2008/02/04 13:33:15Z  martin
00045  *  New preprocessor symbol MBG_TGT_SUPP_MMAP.
00046  *  Revision 1.29  2008/01/31 08:55:39Z  daniel
00047  *  Renamed functions related to mapped memory support
00048  *  Revision 1.28  2008/01/31 08:36:22Z  martin
00049  *  Picked up changes from 1.24.1.1:
00050  *  Added default preprocessor symbol MBGDEVIO_SIMPLE.
00051  *  Revision 1.27  2008/01/17 15:56:37Z  daniel
00052  *  New version code 302, compatibility version still 210.
00053  *  Added structure MBG_MAPPED_MEM_INFO.
00054  *  Updated function prototypes.
00055  *  Revision 1.26  2007/10/16 10:11:42Z  daniel
00056  *  New version code 301, compatibility version still 210.
00057  *  Revision 1.25  2007/09/26 14:10:34Z  martin
00058  *  New version code 300, compatibility version still 210.
00059  *  Added MBG_MAX_DEVICES.
00060  *  Added enum SELECTION_MODE.
00061  *  Added structures MBG_DEVICE_LIST and MBG_DEVICE_NAME_LIST.
00062  *  Updated function prototypes.
00063  *  Revision 1.24  2007/03/22 10:14:16Z  martin
00064  *  New version code 219, compatibility version still 210.
00065  *  Revision 1.23  2007/03/02 10:18:10Z  martin
00066  *  Updated function prototypes due to renamed data structures.
00067  *  Use new definitions of generic handle types.
00068  *  Preliminary support for *BSD.
00069  *  Revision 1.22  2006/08/09 13:47:29  martin
00070  *  New version code 218, compatibility version still 210.
00071  *  Revision 1.21  2006/06/08 12:30:22Z  martin
00072  *  New version code 217, compatibility version still 210.
00073  *  Revision 1.20  2006/05/02 13:14:27Z  martin
00074  *  New version code 216, compatibility version still 210.
00075  *  Updated function prototypes.
00076  *  Revision 1.19  2006/01/11 12:14:53Z  martin
00077  *  New version code 215, compatibility version still 210.
00078  *  Revision 1.18  2005/12/15 09:38:39Z  martin
00079  *  New version 214, compatibility version still 210.
00080  *  Revision 1.17  2005/06/02 11:54:40Z  martin
00081  *  Updated function prototypes.
00082  *  Revision 1.16  2005/02/16 15:13:00Z  martin
00083  *  New MBGDEVIO_VERSION 0x0212.
00084  *  Updated function prototypes.
00085  *  Revision 1.15  2005/01/14 10:22:44Z  martin
00086  *  Updated function prototypes.
00087  *  Revision 1.14  2004/12/09 11:24:00Z  martin
00088  *  Support configuration of on-board frequency synthesizer.
00089  *  Revision 1.13  2004/11/09 14:13:00Z  martin
00090  *  Updated function prototypes.
00091  *  Revision 1.12  2004/08/17 11:13:46Z  martin
00092  *  Account for renamed symbols.
00093  *  Revision 1.11  2004/04/14 09:34:23Z  martin
00094  *  New definition MBGDEVIO_COMPAT_VERSION.
00095  *  Pack structures 1 byte aligned.
00096  *  Revision 1.10  2003/12/22 15:35:10Z  martin
00097  *  New revision 2.03.
00098  *  Moved some definitions to pcpsdev.h.
00099  *  New structures to read device time together with associated
00100  *  PC high resolution timer cycles.
00101  *  Updated function prototypes.
00102  *  Revision 1.9  2003/06/19 08:50:05Z  martin
00103  *  Definition of MBGDEVIO_VERSION number to allow DLL
00104  *  API version checking.
00105  *  Replaced some defines by typedefs.
00106  *  Renamed USE_DOS_TSR to MBG_USE_DOS_TSR.
00107  *  New preprocessor symbol MBG_USE_KERNEL_DRIVER which
00108  *  is defined only for targets which use IOCTLs.
00109  *  Don't include pcps_dos.h here.
00110  *  Updated function prototypes.
00111  *  Revision 1.8  2003/05/16 08:44:26  MARTIN
00112  *  Cleaned up inclusion of headers.
00113  *  Removed obsolete definitions.
00114  *  Changes for direct access targets.
00115  *  Revision 1.7  2003/04/25 10:16:00  martin
00116  *  Updated inclusion of headers.
00117  *  Made prototypes available for all targets.
00118  *  Revision 1.6  2003/04/15 19:38:05Z  martin
00119  *  Updated function prototypes.
00120  *  Revision 1.5  2003/04/09 13:44:53Z  martin
00121  *  Use new common IOCTL codes from mbgioctl.h.
00122  *  Updated function prototypes.
00123  *  Revision 1.4  2002/09/06 11:06:35Z  martin
00124  *  Updated function prototypes for Win32 API..
00125  *  Win32 compatibility macros to use old APIs with new functions.
00126  *  Support targets OS/2 and NetWare.
00127  *  Revision 1.3  2002/02/28 10:08:54Z  MARTIN
00128  *  Syntax cleanup for Win32.
00129  *  Revision 1.2  2002/02/26 14:40:47  MARTIN
00130  *  Source code cleanup.
00131  *  Changes for DOS with and without TSR.
00132  *  Revision 1.1  2002/02/19 13:48:21  MARTIN
00133  *  Initial revision
00134  *
00135  **************************************************************************/
00136
00137 #ifndef _MBGDEVIO_H
00138 #define _MBGDEVIO_H
00139
00140
00141 /* Other headers to be included */
00142
00143 #include <mbggeo.h>
00144 #include <mbg_tgt.h>
00145 #include <mbg_arch.h>
00146 #include <mbgerror.h>
00147 #include <pcpsdev.h>
00148 #include <pci_asic.h>
00149 #include <use_pack.h>
00150 #include <time.h>
00151
00152
00153 #define MBGDEVIO_VERSION         0x0306
00154
00155 #define MBGDEVIO_COMPAT_VERSION  0x0210
00156
00157 #define MBG_MAX_DEVICES  8
00158
00159 #if defined( MBG_TGT_WIN32 )
00160
00161   #if !defined( MBGDEVIO_XHRT_API )
00162     #define MBGDEVIO_XHRT_API  1
00163   #endif
00164
00165   #if !defined( MBGDEVIO_USE_THREAD_API )
00166     #define MBGDEVIO_USE_THREAD_API  1
00167   #endif
00168
00169   #if !defined( MBGDEVIO_HAVE_THREAD_AFFINITY )
00170     #define MBGDEVIO_HAVE_THREAD_AFFINITY  1
00171   #endif
00172
00173   #define MBG_USE_KERNEL_DRIVER  1
00174   #include <windows.h>
00175
00176 #elif defined( MBG_TGT_LINUX )
00177
00178   #if !defined( MBGDEVIO_XHRT_API )
00179     #define MBGDEVIO_XHRT_API  1
00180   #endif
00181
00182   // Thread support under Linux depends strongly on
00183   // the versions of some libraries, so the symbols
00184   // MBGDEVIO_USE_THREAD_API and MBGDEVIO_HAVE_THREAD_AFFINITY
00185   // should be set in the project's Makefile, depending on the
00186   // target envionment. Otherwise thread support is disabled
00187   // as per default.
00188
00189   #define MBG_USE_KERNEL_DRIVER  1
00190   #include <fcntl.h>
00191
00192 #elif defined( MBG_TGT_BSD )
00193
00194   #define MBG_USE_KERNEL_DRIVER  1
00195   #include <fcntl.h>
00196
00197 #elif defined( MBG_TGT_OS2 )
00198
00199   #define MBG_USE_KERNEL_DRIVER  1
00200
00201 #elif defined( MBG_TGT_DOS )
00202
00203   #if !defined( MBG_USE_DOS_TSR )
00204     #define MBG_USE_DOS_TSR  1
00205   #endif
00206
00207   #include <pcpsdrvr.h>
00208
00209 #else // other target OSs which access the hardware directly
00210
00211   #include <pcpsdrvr.h>
00212
00213 #endif
00214
00215
00216 #if !defined( MBGDEVIO_XHRT_API )
00217   #define MBGDEVIO_XHRT_API  0
00218 #endif
00219
00220 #if !defined( MBGDEVIO_USE_THREAD_API )
00221   #define MBGDEVIO_USE_THREAD_API  0
00222 #endif
00223
00224 #if !defined( MBGDEVIO_HAVE_THREAD_AFFINITY )
00225   #define MBGDEVIO_HAVE_THREAD_AFFINITY  0
00226 #endif
00227
00228 #ifdef _MBGDEVIO
00229  #define _ext
00230 #else
00231  #define _ext extern
00232 #endif
00233
00234
00235 /* Start of header body */
00236
00237 #if defined( _USE_PACK )      // set byte alignment
00238   #pragma pack( 1 )
00239 #endif
00240
00241
00242 // If MBGDEVIO_SIMPLE != 0  then some complex configuration
00243 // API calls are excluded from build, which would otherwise
00244 // require some additional mbglib modules to be linked
00245 // to the application.
00246 #if !defined( MBGDEVIO_SIMPLE )
00247   #define MBGDEVIO_SIMPLE   0
00248 #endif
00249
00250
00251 #if defined( MBG_USE_KERNEL_DRIVER )
00252
00253   typedef MBG_HANDLE MBG_DEV_HANDLE ;
00254
00255   #define MBG_INVALID_DEV_HANDLE  MBG_INVALID_HANDLE
00256
00257 #else // other target OSs which access the hardware directly
00258
00259   typedef PCPS_DDEV *MBG_DEV_HANDLE;
00260
00261   #define MBG_INVALID_DEV_HANDLE  NULL
00262
00263 #endif
00264
00265
00266
00267 #if defined( MBG_TGT_LINUX ) && !defined( MBG_ARCH_ARM )
00268
00269   #include <sched.h>
00270
00271   #define MBG_PROCESS_ID              pid_t
00272   #define _mbg_get_current_process()  0
00273
00274   #define MBG_CPU_SET                 cpu_set_t
00275   #define MBG_CPU_SET_SIZE            CPU_SETSIZE
00276   #define _mbg_cpu_clear( _ps )       CPU_ZERO( (_ps) )
00277   #define _mbg_cpu_set( _i, _ps )     CPU_SET( (_i), (_ps) )
00278   #define _mbg_cpu_isset( _i, _ps )   CPU_ISSET( (_i), (_ps) )
00279
00280   #if MBGDEVIO_USE_THREAD_API
00281
00282     #include <pthread.h>
00283
00284     #define MBG_THREAD_ID               pthread_t
00285     #define _mbg_get_current_thread()   0
00286     #define MBG_THREAD_FNC_ATTR         // empty
00287     #define MBG_THREAD_FNC_RET_VAL      void *
00288     #define _mbg_thread_exit( _v )      return (void *) (_v)
00289
00290     #define MBG_MUTEX                   pthread_mutex_t
00291     #define _mbg_mutex_init( _pm )      pthread_mutex_init( (_pm), NULL )
00292     #define _mbg_mutex_deinit( _pm )    _nop_macro_fnc()
00293     #define _mbg_mutex_lock( _pm )      pthread_mutex_lock( (_pm) )
00294     #define _mbg_mutex_unlock( _pm )    pthread_mutex_unlock( (_pm) )
00295
00296   #endif
00297
00298 #elif defined( MBG_TGT_WIN32 )
00299
00300   #define MBG_PROCESS_ID              HANDLE
00301   #define _mbg_get_current_process()  GetCurrentProcess()
00302
00303   #define MBG_CPU_SET                 DWORD_PTR  // Attention: this is not used as pointer!
00304   #define MBG_CPU_SET_SIZE            ( sizof( MBG_CPU_SET ) * 8 )
00305
00306   #define MBG_THREAD_ID               HANDLE
00307   #define _mbg_get_current_thread()   GetCurrentThread()
00308   #define MBG_THREAD_FNC_ATTR         WINAPI
00309   #define MBG_THREAD_FNC_RET_VAL      DWORD
00310   #define _mbg_thread_exit( _v )      ExitThread( _v )
00311
00312   #define MBG_MUTEX                   CRITICAL_SECTION
00313   #define _mbg_mutex_init( _pm )      InitializeCriticalSection( (_pm) )
00314   #define _mbg_mutex_deinit( _pm )    DeleteCriticalSection( (_pm) )
00315   #define _mbg_mutex_lock( _pm )      EnterCriticalSection( (_pm) )
00316   #define _mbg_mutex_unlock( _pm )    LeaveCriticalSection( (_pm) )
00317
00318 #endif  // target specific
00319
00320
00321 #if !defined( MBG_TGT_WIN32 )
00322
00323   #define FILETIME int  // just a dummy to avoid build errors
00324
00325 #endif
00326
00327
00328 #if !defined( MBG_PROCESS_ID )
00329   #define MBG_PROCESS_ID              int
00330 #endif
00331
00332 #if !defined( _mbg_get_current_process )
00333   #define _mbg_get_current_process()  0
00334 #endif
00335
00336 #if !defined( MBG_CPU_SET )
00337   #define MBG_CPU_SET                 int
00338 #endif
00339
00340 #if !defined( MBG_CPU_SET_SIZE )
00341   #define MBG_CPU_SET_SIZE            ( sizof( MBG_CPU_SET ) * 8 )
00342 #endif
00343
00344 #if !defined( _mbg_cpu_clear )
00345   #define _mbg_cpu_clear( _ps )       ( *(_ps) = 0 )
00346 #endif
00347
00348 #if !defined( _mbg_cpu_set )
00349   #define _mbg_cpu_set( _i, _ps )     ( *(_ps) |= ( 1UL << (_i) ) )
00350 #endif
00351
00352 #if !defined( _mbg_cpu_isset )
00353   #define _mbg_cpu_isset( _i, _ps )   ( *(_ps) & ( 1UL << (_i) ) )
00354 #endif
00355
00356
00357 #if !defined( MBG_THREAD_ID )
00358   #define MBG_THREAD_ID               int
00359 #endif
00360
00361 #if !defined( _mbg_get_current_thread )
00362   #define _mbg_get_current_thread()   0
00363 #endif
00364
00365 #if !defined( MBG_THREAD_FNC_ATTR )
00366   #define MBG_THREAD_FNC_ATTR         // empty
00367 #endif
00368
00369 #if !defined( MBG_THREAD_FNC_RET_VAL )
00370   #define MBG_THREAD_FNC_RET_VAL      void
00371 #endif
00372
00373 #if !defined( _mbg_thread_exit )
00374   #define _mbg_thread_exit( _v )      _nop_macro_fnc()
00375 #endif
00376
00377
00378 #if !defined( MBG_MUTEX )
00379   #define MBG_MUTEX                   int
00380 #endif
00381
00382 #if !defined( _mbg_mutex_init )
00383   #define _mbg_mutex_init( _pm )      _nop_macro_fnc()
00384 #endif
00385
00386 #if !defined( _mbg_mutex_deinit )
00387   #define _mbg_mutex_deinit( _pm )      _nop_macro_fnc()
00388 #endif
00389
00390 #if !defined( _mbg_mutex_lock )
00391   #define _mbg_mutex_lock( _pm )      _nop_macro_fnc()
00392 #endif
00393
00394 #if !defined( _mbg_mutex_unlock )
00395   #define _mbg_mutex_unlock( _pm )    _nop_macro_fnc()
00396 #endif
00397
00398 typedef struct
00399 {
00400   MBG_THREAD_ID thread_id;
00401   #if defined( MBG_TGT_WIN32 )
00402     HANDLE exit_request;
00403   #endif
00404 } MBG_THREAD_INFO;
00405
00406
00407
00408 typedef struct
00409 {
00410   PCPS_HR_TIME_CYCLES htc;
00411   uint64_t tstamp64;
00412 } MBG_XHRT_VARS;
00413
00414
00415 typedef struct
00416 {
00417   MBG_XHRT_VARS vars;
00418   MBG_XHRT_VARS prv_vars;
00419   MBG_PC_CYCLES_FREQUENCY freq_hz;
00420   int ioctl_status;
00421   int sleep_ms;
00422   MBG_MUTEX mutex;
00423   MBG_DEV_HANDLE dh;
00424 } MBG_XHRT_INFO;
00425
00426
00427 typedef struct
00428 {
00429   MBG_XHRT_INFO xhrt_info;
00430   MBG_THREAD_INFO ti;
00431 } MBG_POLL_THREAD_INFO;
00432
00433
00434
00439 enum MBG_MATCH_MODE
00440 {
00441   MBG_MATCH_ANY,
00442   MBG_MATCH_MODEL,
00443   MBG_MATCH_EXACTLY,
00444   N_MBG_MATCH_MODE
00445 };
00446
00447
00448
00449 typedef struct _MBG_DEVICE_LIST
00450 {
00451   char   *device_path;
00452   struct _MBG_DEVICE_LIST *next;
00453
00454 } MBG_DEVICE_LIST;
00455
00456
00457
00458 typedef struct _MBG_DEVICENAME_LIST
00459 {
00460   char   device_name[40];
00461   struct _MBG_DEVICENAME_LIST *next;
00462
00463 } MBG_DEVICENAME_LIST;
00464
00465
00466
00467 #define _mbg_generic_read_var( _dh, _cmd, _s )  \
00468   mbg_generic_read( _dh, _cmd, &(_s), sizeof( (_s) ) )
00469
00470 #define _mbg_generic_write_var( _dh, _cmd, _s )  \
00471   mbg_generic_write( _dh, _cmd, &(_s), sizeof( (_s) ) )
00472
00473 #define _mbg_generic_read_gps_var( _dh, _cmd, _s )  \
00474   mbg_generic_read_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )
00475
00476 #define _mbg_generic_write_gps_var( _dh, _cmd, _s )  \
00477   mbg_generic_write_gps( _dh, _cmd, &(_s), sizeof( (_s) ) )
00478
00479
00480
00481 /* function prototypes: */
00482
00483 #ifdef __cplusplus
00484 extern "C" {
00485 #endif
00486
00487 /* ----- function prototypes begin ----- */
00488
00489 /* This section was generated automatically */
00490 /* by MAKEHDR, do not remove the comments. */
00491
00503  _MBG_API_ATTR int _MBG_API mbgdevio_get_version( void ) ;
00504
00516  _MBG_API_ATTR int _MBG_API mbgdevio_check_version( int header_version ) ;
00517
00527  _MBG_API_ATTR MBG_DEV_HANDLE _MBG_API mbg_open_device( unsigned int device_index ) ;
00528
00545  _MBG_API_ATTR int _MBG_API mbg_find_devices( void ) ;
00546
00566  _MBG_API_ATTR int _MBG_API mbg_find_devices_with_names( MBG_DEVICENAME_LIST **device_list,  int max_devices ) ;
00567
00576  _MBG_API_ATTR void _MBG_API mbg_free_device_name_list( MBG_DEVICENAME_LIST *list) ;
00577
00594  _MBG_API_ATTR MBG_DEV_HANDLE _MBG_API mbg_open_device_by_name( const char* hw_name, int selection_mode )  //##++++
00595 ;
00596
00603  _MBG_API_ATTR void _MBG_API mbg_close_device( MBG_DEV_HANDLE *dev_handle ) ;
00604
00614  _MBG_API_ATTR int _MBG_API mbg_get_drvr_info( MBG_DEV_HANDLE dh, PCPS_DRVR_INFO *p ) ;
00615
00624  _MBG_API_ATTR int _MBG_API mbg_get_device_info( MBG_DEV_HANDLE dh, PCPS_DEV *p ) ;
00625
00636  _MBG_API_ATTR int _MBG_API mbg_get_status_port( MBG_DEV_HANDLE dh, PCPS_STATUS_PORT *p ) ;
00637
00638  /* (Intentionally excluded from Doxygen)
00639     Generic read function which writes a command code to the device
00640     and reads a number of replied data to a generic buffer.
00641
00642     <b>Warning</b>: This is for debugging purposes only!
00643     The specialized API calls should be used preferably.
00644     A specific device may not support any command code.
00645
00646     @param dh Valid handle to a Meinberg device
00647     @param cmd Can be any \ref group_cmd_bytes "command byte" supported by the device
00648     @param *p Pointer to a buffer to be filled up
00649     @param size Size of the buffer *p
00650
00651     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00652
00653     @see mbg_generic_write()
00654     @see mbg_generic_read_gps()
00655     @see mbg_generic_write_gps()
00656     @see mbg_generic_io()
00657   */
00658  _MBG_API_ATTR int _MBG_API mbg_generic_read( MBG_DEV_HANDLE dh, int cmd, void *p, int size ) ;
00659
00660  /* (Intentionally excluded from Doxygen)
00661     Generic read function which writes a GPS command code to the device
00662     and reads a number of replied data to a generic buffer.
00663     The macro _pcps_has_gps_data() or the API call mbg_dev_has_gps_data()
00664     check whether this call is supported by a specific card.
00665
00666     <b>Warning</b>: This is for debugging purposes only!
00667     The specialized API calls should be used preferably.
00668     A specific device may not support any GPS command code.
00669
00670     @param dh Valid handle to a Meinberg device
00671     @param cmd Can be any \ref group_cmd_bytes "command byte" supported by the device.
00672     @param *p Pointer to a buffer to be filled up
00673     @param size Size of the buffer *p
00674
00675     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00676
00677     @see mbg_dev_has_gps_data()
00678     @see mbg_generic_write_gps()
00679     @see mbg_generic_read()
00680     @see mbg_generic_write()
00681     @see mbg_generic_io()
00682   */
00683  _MBG_API_ATTR int _MBG_API mbg_generic_read_gps( MBG_DEV_HANDLE dh, int cmd, void *p, int size ) ;
00684
00685  /* (Intentionally excluded from Doxygen)
00686     Generic write function which writes a command code plus an
00687     associated number of data bytes to the device.
00688
00689     <b>Warning</b>: This is for debugging purposes only!
00690     The specialized API calls should be used preferably.
00691     A specific device may not support any command code.
00692
00693     @param dh   Valid handle to a Meinberg device
00694     @param cmd  Can be any \ref group_cmd_bytes "command byte" supported by the device.
00695     @param *p   Pointer to a buffer to be written
00696     @param size Size of the buffer *p
00697
00698     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00699
00700     @see mbg_generic_read()
00701     @see mbg_generic_read_gps()
00702     @see mbg_generic_write_gps()
00703     @see mbg_generic_io()
00704   */
00705  _MBG_API_ATTR int _MBG_API mbg_generic_write( MBG_DEV_HANDLE dh, int cmd, const void *p, int size ) ;
00706
00707  /* (Intentionally excluded from Doxygen)
00708     Generic write function which writes a GPS command code plus an
00709     associated number of data bytes to the device.
00710     The macro _pcps_has_gps_data() or the API call mbg_dev_has_gps_data()
00711     check whether this call is supported by a specific card.
00712
00713     <b>Warning</b>: This is for debugging purposes only!
00714     The specialized API calls should be used preferably.
00715     A specific device may not support any GPS command code.
00716
00717     @param dh   Valid handle to a Meinberg device
00718     @param cmd  Can be any \ref group_cmd_bytes "command byte" supported by the device.
00719     @param *p   Pointer to a buffer to be written
00720     @param size Size of the buffer *p
00721
00722     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00723
00724     @see mbg_dev_has_gps_data()
00725     @see mbg_generic_read_gps()
00726     @see mbg_generic_read()
00727     @see mbg_generic_write()
00728     @see mbg_generic_io()
00729   */
00730  _MBG_API_ATTR int _MBG_API mbg_generic_write_gps( MBG_DEV_HANDLE dh, int cmd, const void *p, int size ) ;
00731
00732  /* (Intentionally excluded from Doxygen)
00733     Write and/or read generic data to/from a device.
00734     The macro _pcps_has_generic_io() or the API call mbg_dev_has_generic_io()
00735     check whether this call is supported by a specific card.
00736
00737     <b>Warning</b>: This call is for debugging purposes and internal use only!
00738
00739     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00740
00741     @see mbg_dev_has_generic_io()
00742     @see mbg_generic_read()
00743     @see mbg_generic_write()
00744     @see mbg_generic_read_gps()
00745     @see mbg_generic_write_gps()
00746   */
00747  _MBG_API_ATTR int _MBG_API mbg_generic_io( MBG_DEV_HANDLE dh, int type, const void *in_p, int in_sz, void *out_p, int out_sz ) ;
00748
00767  _MBG_API_ATTR int _MBG_API mbg_get_time( MBG_DEV_HANDLE dh, PCPS_TIME *p ) ;
00768
00781  _MBG_API_ATTR int _MBG_API mbg_set_time( MBG_DEV_HANDLE dh, const PCPS_STIME *p ) ;
00782
00805  _MBG_API_ATTR int _MBG_API mbg_get_sync_time( MBG_DEV_HANDLE dh, PCPS_TIME *p ) ;
00806
00822  _MBG_API_ATTR int _MBG_API mbg_get_time_sec_change( MBG_DEV_HANDLE dh, PCPS_TIME *p ) ;
00823
00846  _MBG_API_ATTR int _MBG_API mbg_get_hr_time( MBG_DEV_HANDLE dh, PCPS_HR_TIME *p ) ;
00847
00848  /* (Intentionally excluded from Doxygen )
00849     Write a high resolution time stamp ::PCPS_TIME_STAMP to the clock
00850     to configure a %UTC time when the clock shall generate an event.
00851     The macro _pcps_has_event_time() or the API call mbg_dev_has_event_time()
00852     check whether this call is supported by a specific card.
00853
00854     <b>Note:</b> This is only supported by some special firmware.
00855
00856     @param dh Valid handle to a Meinberg device
00857     @param *p Pointer to a ::PCPS_TIME_STAMP structure to be written
00858
00859     @return ::MBG_SUCCESS or error code returned by device I/O control function.
00860
00861     @see mbg_dev_has_event_time()
00862   */
00863  _MBG_API_ATTR int _MBG_API mbg_set_event_time( MBG_DEV_HANDLE dh, const PCPS_TIME_STAMP *p ) ;
00864
00882  _MBG_API_ATTR int _MBG_API mbg_get_serial( MBG_DEV_HANDLE dh, PCPS_SERIAL *p ) ;
00883
00901  _MBG_API_ATTR int _MBG_API mbg_set_serial( MBG_DEV_HANDLE dh, const PCPS_SERIAL *p ) ;
00902
00924  _MBG_API_ATTR int _MBG_API mbg_get_tzcode( MBG_DEV_HANDLE dh, PCPS_TZCODE *p ) ;
00925
00947  _MBG_API_ATTR int _MBG_API mbg_set_tzcode( MBG_DEV_HANDLE dh, const PCPS_TZCODE *p ) ;
00948
00968  _MBG_API_ATTR int _MBG_API mbg_get_pcps_tzdl( MBG_DEV_HANDLE dh, PCPS_TZDL *p ) ;
00969
00989  _MBG_API_ATTR int _MBG_API mbg_set_pcps_tzdl( MBG_DEV_HANDLE dh, const PCPS_TZDL *p ) ;
00990
01006  _MBG_API_ATTR int _MBG_API mbg_get_ref_offs( MBG_DEV_HANDLE dh, MBG_REF_OFFS *p ) ;
01007
01023  _MBG_API_ATTR int _MBG_API mbg_set_ref_offs( MBG_DEV_HANDLE dh, const MBG_REF_OFFS *p ) ;
01024
01040  _MBG_API_ATTR int _MBG_API mbg_get_opt_info( MBG_DEV_HANDLE dh, MBG_OPT_INFO *p ) ;
01041
01057  _MBG_API_ATTR int _MBG_API mbg_set_opt_settings( MBG_DEV_HANDLE dh, const MBG_OPT_SETTINGS *p ) ;
01058
01076  _MBG_API_ATTR int _MBG_API mbg_get_irig_rx_info( MBG_DEV_HANDLE dh, IRIG_INFO *p ) ;
01077
01096  _MBG_API_ATTR int _MBG_API mbg_set_irig_rx_settings( MBG_DEV_HANDLE dh, const IRIG_SETTINGS *p ) ;
01097
01108  _MBG_API_ATTR int _MBG_API mbg_dev_has_irig_ctrl_bits( MBG_DEV_HANDLE dh, int *p ) ;
01109
01127  _MBG_API_ATTR int _MBG_API mbg_get_irig_ctrl_bits(  MBG_DEV_HANDLE dh, MBG_IRIG_CTRL_BITS *p ) ;
01128
01139  _MBG_API_ATTR int _MBG_API mbg_dev_has_irig_time( MBG_DEV_HANDLE dh, int *p ) ;
01140
01156  _MBG_API_ATTR int _MBG_API mbg_get_irig_time(  MBG_DEV_HANDLE dh, PCPS_IRIG_TIME *p ) ;
01157
01171  _MBG_API_ATTR int _MBG_API mbg_clr_ucap_buff( MBG_DEV_HANDLE dh ) ;
01172
01188  _MBG_API_ATTR int _MBG_API mbg_get_ucap_entries( MBG_DEV_HANDLE dh, PCPS_UCAP_ENTRIES *p ) ;
01189
01212  _MBG_API_ATTR int _MBG_API mbg_get_ucap_event( MBG_DEV_HANDLE dh, PCPS_HR_TIME *p ) ;
01213
01235  _MBG_API_ATTR int _MBG_API mbg_get_gps_tzdl( MBG_DEV_HANDLE dh, TZDL *p ) ;
01236
01258  _MBG_API_ATTR int _MBG_API mbg_set_gps_tzdl( MBG_DEV_HANDLE dh, const TZDL *p ) ;
01259
01278  _MBG_API_ATTR int _MBG_API mbg_get_gps_sw_rev( MBG_DEV_HANDLE dh, SW_REV *p ) ;
01279
01292  _MBG_API_ATTR int _MBG_API mbg_get_gps_bvar_stat( MBG_DEV_HANDLE dh, BVAR_STAT *p ) ;
01293
01307  _MBG_API_ATTR int _MBG_API mbg_get_gps_time( MBG_DEV_HANDLE dh, TTM *p ) ;
01308
01320  _MBG_API_ATTR int _MBG_API mbg_set_gps_time( MBG_DEV_HANDLE dh, const TTM *p ) ;
01321
01340  _MBG_API_ATTR int _MBG_API mbg_get_gps_port_parm( MBG_DEV_HANDLE dh, PORT_PARM *p ) ;
01341
01360  _MBG_API_ATTR int _MBG_API mbg_set_gps_port_parm( MBG_DEV_HANDLE dh, const PORT_PARM *p ) ;
01361
01376  _MBG_API_ATTR int _MBG_API mbg_get_gps_ant_info( MBG_DEV_HANDLE dh, ANT_INFO *p ) ;
01377
01397  _MBG_API_ATTR int _MBG_API mbg_get_gps_ucap( MBG_DEV_HANDLE dh, TTM *p ) ;
01398
01417  _MBG_API_ATTR int _MBG_API mbg_get_gps_enable_flags( MBG_DEV_HANDLE dh, ENABLE_FLAGS *p ) ;
01418
01437  _MBG_API_ATTR int _MBG_API mbg_set_gps_enable_flags( MBG_DEV_HANDLE dh, const ENABLE_FLAGS *p ) ;
01438
01453  _MBG_API_ATTR int _MBG_API mbg_get_gps_stat_info( MBG_DEV_HANDLE dh, STAT_INFO *p ) ;
01454
01467  _MBG_API_ATTR int _MBG_API mbg_set_gps_cmd( MBG_DEV_HANDLE dh, const GPS_CMD *p ) ;
01468
01483  _MBG_API_ATTR int _MBG_API mbg_get_gps_pos( MBG_DEV_HANDLE dh, POS *p ) ;
01484
01499  _MBG_API_ATTR int _MBG_API mbg_set_gps_pos_xyz( MBG_DEV_HANDLE dh, const XYZ p ) ;
01500
01515  _MBG_API_ATTR int _MBG_API mbg_set_gps_pos_lla( MBG_DEV_HANDLE dh, const LLA p ) ;
01516
01531  _MBG_API_ATTR int _MBG_API mbg_get_gps_ant_cable_len( MBG_DEV_HANDLE dh, ANT_CABLE_LEN *p ) ;
01532
01547  _MBG_API_ATTR int _MBG_API mbg_set_gps_ant_cable_len( MBG_DEV_HANDLE dh, const ANT_CABLE_LEN *p ) ;
01548
01565  _MBG_API_ATTR int _MBG_API mbg_get_gps_receiver_info( MBG_DEV_HANDLE dh, RECEIVER_INFO *p ) ;
01566
01586  _MBG_API_ATTR int _MBG_API mbg_set_gps_port_settings_idx( MBG_DEV_HANDLE dh, const PORT_SETTINGS_IDX *p ) ;
01587
01608  _MBG_API_ATTR int _MBG_API mbg_set_gps_port_settings( MBG_DEV_HANDLE dh, const PORT_SETTINGS *p, int idx ) ;
01609
01627  _MBG_API_ATTR int _MBG_API mbg_setup_receiver_info( MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_INFO *p ) ;
01628
01650  _MBG_API_ATTR int _MBG_API mbg_get_serial_settings( MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_PORT_CFG *pcfg, const RECEIVER_INFO *p_ri ) ;
01651
01677  _MBG_API_ATTR int _MBG_API mbg_save_serial_settings( MBG_DEV_HANDLE dh, const PCPS_DEV *pdev, RECEIVER_PORT_CFG *pcfg, int port_num ) ;
01678
01691  _MBG_API_ATTR int _MBG_API mbg_get_asic_version( MBG_DEV_HANDLE dh, PCI_ASIC_VERSION *p ) ;
01692
01705  _MBG_API_ATTR int _MBG_API mbg_get_asic_features( MBG_DEV_HANDLE dh, PCI_ASIC_FEATURES *p ) ;
01706
01721  _MBG_API_ATTR int _MBG_API mbg_dev_has_time_scale( MBG_DEV_HANDLE dh, int *p ) ;
01722
01739  _MBG_API_ATTR int _MBG_API mbg_get_time_scale_info( MBG_DEV_HANDLE dh, MBG_TIME_SCALE_INFO *p ) ;
01740
01760  _MBG_API_ATTR int _MBG_API mbg_set_time_scale_settings( MBG_DEV_HANDLE dh, MBG_TIME_SCALE_SETTINGS *p ) ;
01761
01782  _MBG_API_ATTR int _MBG_API mbg_dev_has_utc_parm( MBG_DEV_HANDLE dh, int *p ) ;
01783
01799  _MBG_API_ATTR int _MBG_API mbg_get_utc_parm( MBG_DEV_HANDLE dh, UTC *p ) ;
01800
01821  _MBG_API_ATTR int _MBG_API mbg_set_utc_parm( MBG_DEV_HANDLE dh, UTC *p ) ;
01822
01852  _MBG_API_ATTR int _MBG_API mbg_get_time_cycles( MBG_DEV_HANDLE dh, PCPS_TIME_CYCLES *p ) ;
01853
01882  _MBG_API_ATTR int _MBG_API mbg_get_hr_time_cycles( MBG_DEV_HANDLE dh, PCPS_HR_TIME_CYCLES *p ) ;
01883
01913  _MBG_API_ATTR int _MBG_API mbg_get_hr_time_comp( MBG_DEV_HANDLE dh, PCPS_HR_TIME *p, int32_t *hns_latency ) ;
01914
01932  _MBG_API_ATTR int _MBG_API mbg_get_irig_tx_info( MBG_DEV_HANDLE dh, IRIG_INFO *p ) ;
01933
01950  _MBG_API_ATTR int _MBG_API mbg_set_irig_tx_settings( MBG_DEV_HANDLE dh, const IRIG_SETTINGS *p ) ;
01951
01968  _MBG_API_ATTR int _MBG_API mbg_get_synth( MBG_DEV_HANDLE dh, SYNTH *p ) ;
01969
01986  _MBG_API_ATTR int _MBG_API mbg_set_synth( MBG_DEV_HANDLE dh, const SYNTH *p ) ;
01987
02004  _MBG_API_ATTR int _MBG_API mbg_get_synth_state( MBG_DEV_HANDLE dh, SYNTH_STATE *p ) ;
02005
02018  _MBG_API_ATTR int _MBG_API mbg_dev_has_fast_hr_timestamp( MBG_DEV_HANDLE dh, int *p ) ;
02019
02032  _MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp_cycles(  MBG_DEV_HANDLE dh, PCPS_TIME_STAMP_CYCLES *p ) ;
02033
02048  _MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp_comp( MBG_DEV_HANDLE dh, PCPS_TIME_STAMP *p, int32_t *hns_latency ) ;
02049
02068  _MBG_API_ATTR int _MBG_API mbg_get_fast_hr_timestamp(  MBG_DEV_HANDLE dh, PCPS_TIME_STAMP *p ) ;
02069
02078  _MBG_API_ATTR int _MBG_API mbg_dev_is_gps( MBG_DEV_HANDLE dh, int *p ) ;
02079
02088  _MBG_API_ATTR int _MBG_API mbg_dev_is_dcf( MBG_DEV_HANDLE dh, int *p ) ;
02089
02098  _MBG_API_ATTR int _MBG_API mbg_dev_is_msf( MBG_DEV_HANDLE dh, int *p ) ;
02099
02108  _MBG_API_ATTR int _MBG_API mbg_dev_is_wwvb( MBG_DEV_HANDLE dh, int *p ) ;
02109
02118  _MBG_API_ATTR int _MBG_API mbg_dev_is_lwr( MBG_DEV_HANDLE dh, int *p ) ;
02119
02134  _MBG_API_ATTR int _MBG_API mbg_dev_is_irig_rx( MBG_DEV_HANDLE dh, int *p ) ;
02135
02148  _MBG_API_ATTR int _MBG_API mbg_dev_has_hr_time( MBG_DEV_HANDLE dh, int *p ) ;
02149
02161  _MBG_API_ATTR int _MBG_API mbg_dev_has_cab_len( MBG_DEV_HANDLE dh, int *p ) ;
02162
02176  _MBG_API_ATTR int _MBG_API mbg_dev_has_tzdl( MBG_DEV_HANDLE dh, int *p ) ;
02177
02191  _MBG_API_ATTR int _MBG_API mbg_dev_has_pcps_tzdl( MBG_DEV_HANDLE dh, int *p ) ;
02192
02206  _MBG_API_ATTR int _MBG_API mbg_dev_has_tzcode( MBG_DEV_HANDLE dh, int *p ) ;
02207
02222  _MBG_API_ATTR int _MBG_API mbg_dev_has_tz( MBG_DEV_HANDLE dh, int *p ) ;
02223
02224  /* (Intentionally excluded from Doxygen)
02225     Check if a specific device supports setting an event time, i.e.
02226     configure a %UTC time when the clock shall generate an event.
02227
02228     <b>Note:</b> This is only supported by some special firmware.
02229
02230     @param dh Valid handle to a Meinberg device
02231     @param *p Pointer to an int which is set 0 or != 0 unless the call fails.
02232
02233     @return ::MBG_SUCCESS or error code returned by device I/O control function.
02234
02235     @see mbg_set_event_time()
02236 */
02237  _MBG_API_ATTR int _MBG_API mbg_dev_has_event_time( MBG_DEV_HANDLE dh, int *p ) ;
02238
02254  _MBG_API_ATTR int _MBG_API mbg_dev_has_receiver_info( MBG_DEV_HANDLE dh, int *p ) ;
02255
02267  _MBG_API_ATTR int _MBG_API mbg_dev_can_clr_ucap_buff( MBG_DEV_HANDLE dh, int *p ) ;
02268
02287  _MBG_API_ATTR int _MBG_API mbg_dev_has_ucap( MBG_DEV_HANDLE dh, int *p ) ;
02288
02305  _MBG_API_ATTR int _MBG_API mbg_dev_has_irig_tx( MBG_DEV_HANDLE dh, int *p ) ;
02306
02307  /* (Intentionally excluded from Doxygen)
02308     Check if a specific device provides a serial output supporting
02309     higher baud rates than older cards, i.e. ::DEFAULT_BAUD_RATES_DCF_HS
02310     rather than ::DEFAULT_BAUD_RATES_DCF.
02311
02312     The mbg_get_serial_settings() takes care of this, so applications
02313     which use that call as suggested won't need to use this call directly.
02314
02315     @param dh Valid handle to a Meinberg device
02316     @param *p Pointer to an int which is set 0 or != 0 unless the call fails.
02317
02318     @return ::MBG_SUCCESS or error code returned by device I/O control function.
02319
02320     @see mbg_get_serial_settings()
02321 */
02322  _MBG_API_ATTR int _MBG_API mbg_dev_has_serial_hs( MBG_DEV_HANDLE dh, int *p ) ;
02323
02333  _MBG_API_ATTR int _MBG_API mbg_dev_has_signal( MBG_DEV_HANDLE dh, int *p ) ;
02334
02344  _MBG_API_ATTR int _MBG_API mbg_dev_has_mod( MBG_DEV_HANDLE dh, int *p ) ;
02345
02357  _MBG_API_ATTR int _MBG_API mbg_dev_has_irig( MBG_DEV_HANDLE dh, int *p ) ;
02358
02371  _MBG_API_ATTR int _MBG_API mbg_dev_has_ref_offs( MBG_DEV_HANDLE dh, int *p ) ;
02372
02385  _MBG_API_ATTR int _MBG_API mbg_dev_has_opt_flags( MBG_DEV_HANDLE dh, int *p ) ;
02386
02396  _MBG_API_ATTR int _MBG_API mbg_dev_has_gps_data( MBG_DEV_HANDLE dh, int *p ) ;
02397
02409  _MBG_API_ATTR int _MBG_API mbg_dev_has_synth( MBG_DEV_HANDLE dh, int *p ) ;
02410
02411  /* (Intentionally excluded from Doxygen)
02412     Check if a specific device supports the mbg_generic_io() call.
02413
02414     <b>Warning</b>: That call is for debugging purposes and internal use only!
02415
02416     @param dh Valid handle to a Meinberg device
02417     @param *p Pointer to an int which is set 0 or != 0 unless the call fails.
02418
02419     @return ::MBG_SUCCESS or error code returned by device I/O control function.
02420
02421     @see mbg_generic_io()
02422 */
02423  _MBG_API_ATTR int _MBG_API mbg_dev_has_generic_io( MBG_DEV_HANDLE dh, int *p ) ;
02424
02435  _MBG_API_ATTR int _MBG_API mbg_dev_has_asic_version( MBG_DEV_HANDLE dh, int *p ) ;
02436
02447  _MBG_API_ATTR int _MBG_API mbg_dev_has_asic_features( MBG_DEV_HANDLE dh, int *p ) ;
02448
02470  _MBG_API_ATTR int _MBG_API mbg_get_gps_all_pout_info( MBG_DEV_HANDLE dh, POUT_INFO_IDX pii[], const RECEIVER_INFO *p_ri ) ;
02471
02490  _MBG_API_ATTR int _MBG_API mbg_set_gps_pout_settings_idx( MBG_DEV_HANDLE dh, const POUT_SETTINGS_IDX *p ) ;
02491
02510  _MBG_API_ATTR int _MBG_API mbg_set_gps_pout_settings( MBG_DEV_HANDLE dh, const POUT_SETTINGS *p, int idx ) ;
02511
02522  _MBG_API_ATTR int _MBG_API mbg_get_irq_stat_info( MBG_DEV_HANDLE dh, PCPS_IRQ_STAT_INFO *p ) ;
02523
02537  _MBG_API_ATTR int _MBG_API mbg_dev_has_lan_intf( MBG_DEV_HANDLE dh, int *p ) ;
02538
02554  _MBG_API_ATTR int _MBG_API mbg_get_lan_if_info( MBG_DEV_HANDLE dh, LAN_IF_INFO *p ) ;
02555
02571  _MBG_API_ATTR int _MBG_API mbg_get_ip4_state( MBG_DEV_HANDLE dh, IP4_SETTINGS *p ) ;
02572
02588  _MBG_API_ATTR int _MBG_API mbg_get_ip4_settings( MBG_DEV_HANDLE dh, IP4_SETTINGS *p ) ;
02589
02604  _MBG_API_ATTR int _MBG_API mbg_set_ip4_settings( MBG_DEV_HANDLE dh, const IP4_SETTINGS *p ) ;
02605
02618  _MBG_API_ATTR int _MBG_API mbg_dev_has_ptp( MBG_DEV_HANDLE dh, int *p ) ;
02619
02634  _MBG_API_ATTR int _MBG_API mbg_get_ptp_state( MBG_DEV_HANDLE dh, PTP_STATE *p ) ;
02635
02650  _MBG_API_ATTR int _MBG_API mbg_get_ptp_cfg_info( MBG_DEV_HANDLE dh, PTP_CFG_INFO *p ) ;
02651
02666  _MBG_API_ATTR int _MBG_API mbg_set_ptp_cfg_settings( MBG_DEV_HANDLE dh, const PTP_CFG_SETTINGS *p ) ;
02667
02680  _MBG_API_ATTR int _MBG_API mbg_get_process_affinity( MBG_PROCESS_ID pid, MBG_CPU_SET *p ) ;
02681
02694  _MBG_API_ATTR int _MBG_API mbg_set_process_affinity( MBG_PROCESS_ID pid, MBG_CPU_SET *p ) ;
02695
02708  _MBG_API_ATTR int _MBG_API mbg_set_current_process_affinity_to_cpu( int cpu_num ) ;
02709
02724  _MBG_API_ATTR int _MBG_API mbg_thread_create( MBG_THREAD_INFO *p_ti, MBG_THREAD_FNC_RET_VAL (MBG_THREAD_FNC_ATTR *fnc)(void *), void *arg ) ;
02725
02739  _MBG_API_ATTR int _MBG_API mbg_thread_stop( MBG_THREAD_INFO *p_ti ) ;
02740
02756  _MBG_API_ATTR int _MBG_API mbg_thread_sleep_interruptible( MBG_THREAD_INFO *p_ti, ulong sleep_ms ) ;
02757
02772  _MBG_API_ATTR int _MBG_API mbg_thread_set_affinity( MBG_THREAD_INFO *p_ti, MBG_CPU_SET *p ) ;
02773
02795  _MBG_API_ATTR int _MBG_API mbg_xhrt_poll_thread_create( MBG_POLL_THREAD_INFO *p_pti, MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY freq_hz, int sleep_ms ) ;
02796
02811  _MBG_API_ATTR int _MBG_API mbg_xhrt_poll_thread_stop( MBG_POLL_THREAD_INFO *p_pti ) ;
02812
02831  _MBG_API_ATTR int _MBG_API mbg_get_xhrt_time_as_pcps_hr_time( MBG_XHRT_INFO *p, PCPS_HR_TIME *p_hrt ) ;
02832
02852  _MBG_API_ATTR int _MBG_API mbg_get_xhrt_time_as_filetime( MBG_XHRT_INFO *p, FILETIME *p_ft ) ;
02853
02870  _MBG_API_ATTR int _MBG_API mbg_get_xhrt_cycles_frequency( MBG_XHRT_INFO *p, MBG_PC_CYCLES_FREQUENCY *p_freq_hz ) ;
02871
02882  _MBG_API_ATTR int _MBG_API mbg_get_default_cycles_frequency_from_dev( MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY *p ) ;
02883
02897  _MBG_API_ATTR MBG_PC_CYCLES_FREQUENCY _MBG_API mbg_get_default_cycles_frequency( void ) ;
02898
02899
02900 /* ----- function prototypes end ----- */
02901
02902 #ifdef __cplusplus
02903 }
02904 #endif
02905
02906
02907
02908 static __mbg_inline
02909 void mbg_init_pc_cycles_frequency( MBG_DEV_HANDLE dh, MBG_PC_CYCLES_FREQUENCY *p )
02910 {
02911   if ( *p == 0 )
02912     mbg_get_default_cycles_frequency_from_dev( dh, p );
02913
02914 }  // mbg_init_pc_cycles_frequency
02915
02916
02917
02918 #if MBG_TGT_HAS_64BIT_TYPES
02919
02920 static __mbg_inline
02921 uint64_t pcps_time_stamp_to_uint64( const PCPS_TIME_STAMP *ts )
02922 {
02923   return ( ( (uint64_t) ts->sec ) << 32 ) + ts->frac;
02924
02925 }  // pcps_time_stamp_to_uint64
02926
02927
02928
02929 static __mbg_inline
02930 void uint64_to_pcps_time_stamp( PCPS_TIME_STAMP *ts, uint64_t n )
02931 {
02932   ts->sec = (uint32_t) ( n >> 32 );
02933   ts->frac = (uint32_t) ( n & 0xFFFFFFFFUL );
02934
02935 }  // uint64_to_pcps_time_stamp
02936
02937 #endif
02938
02939
02940
02941 #if defined( _USE_PACK )   // set default alignment
02942   #pragma pack()
02943 #endif
02944
02945 /* End of header body */
02946
02947
02948 #undef _ext
02949
02950 #endif  /* _MBGDEVIO_H */
02951
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/mbgdevio_demo.c Source File

  • Files

c/demo/mbgdevio/mbgdevio_demo.c

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgdevio_demo.c 1.10 2009/08/18 14:14:27Z daniel TRASH $
00005  *  $Name: MBGDEVIO_DEMO_120 $
00006  *
00007  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00008  *
00009  * -----------------------------------------------------------------------
00010  *  $Log: mbgdevio_demo.c $
00011  *  Revision 1.10  2009/08/18 14:14:27Z  daniel
00012  *  Added calls to read the irig control bits, irig time, irig debug status,
00013  *  ptp infos and LAN interface info.
00014  *  Revision 1.9  2009/04/01 14:07:24Z  martin
00015  *  Code cleanup.
00016  *  Revision 1.8  2009/03/23 15:12:54Z  daniel
00017  *  Include UTC parameters and time scales.
00018  *  Revision 1.7  2009/01/23 08:31:28Z  daniel
00019  *  Revision 1.6  2009/01/20 11:13:26Z  daniel
00020  *  Added comments.
00021  *  Revision 1.5  2009/01/08 07:52:59Z  daniel
00022  *  Code cleanup
00023  *  Revision 1.4  2008/12/04 13:39:04Z  daniel
00024  *  Revision 1.3  2008/02/07 08:29:08Z  daniel
00025  *  Use function mbg_mm_get_hr_timestamp_comp().
00026  *  Revision 1.2  2008/01/31 08:06:41Z  daniel
00027  *  Include demonstration of mapped memory support.
00028  *  Revision 1.1  2007/11/02 11:13:24Z  daniel
00029  *  Initial revision
00030  *
00031  **************************************************************************/
00032
00053 #include <mbgdevio.h>
00054 #include <mbgtime.h>
00055 #include <mbgutil.h>
00056
00057 #include <stdio.h>
00058 #include <stdlib.h>
00059
00060
00061
00062
00064 #define MAX_MEM_MAPPED_CNT 20
00065
00066 static int n_sec_change = 0;
00067
00068 const char *time_scale_str[N_MBG_TIME_SCALE] = MBG_TIME_SCALE_STRS;
00069
00070
00071
00072 static /*HDR*/
00073 void err_msg( const char *msg )
00074 {
00075   fprintf( stderr, "** %s: %i\n", msg, GetLastError() );
00076
00077 }  // err_msg
00078
00079
00080
00081 static /*HDR*/
00082 void print_drvr_info( void )
00083 {
00084   int rc;
00085   PCPS_DRVR_INFO drvr_info;
00086   MBG_DEV_HANDLE dh = mbg_open_device( 0 );
00087
00088   if ( dh == MBG_INVALID_DEV_HANDLE )
00089   {
00090     err_msg( "Unable to open device" );
00091     exit( 1 );
00092   }
00093
00094
00095   rc = mbg_get_drvr_info( dh, &drvr_info );
00096
00097   mbg_close_device( &dh );
00098
00099
00100   if ( rc != PCPS_SUCCESS )
00101   {
00102     err_msg( "Failed to read driver info" );
00103     exit( 1 );
00104   }
00105
00106   printf( "Kernel driver: %s v%i.%02i\n\n",
00107           drvr_info.id_str,
00108           drvr_info.ver_num / 100,
00109           drvr_info.ver_num % 100
00110         );
00111
00112 }  // print_drvr_info
00113
00114
00115
00116 static /*HDR*/
00117 void print_dev_info( MBG_DEV_HANDLE dh,
00118                      PCPS_DEV *p_dev )
00119 {
00120   int rc;
00121
00122   rc = mbg_get_device_info( dh, p_dev );
00123
00124   if ( rc == PCPS_SUCCESS )
00125   {
00126     printf( "  %s at port %03Xh\n",
00127             _pcps_type_name( p_dev ),
00128             _pcps_port_base( p_dev, 0 )
00129           );
00130   }
00131   else
00132     err_msg( "Failed to read device info" );
00133
00134 }  // print_dev_info
00135
00136
00137
00138 static /*HDR*/
00139 void print_date_time( PCPS_TIME *tp, const char *label )
00140 {
00141   if ( label )
00142     printf( label );
00143
00144   printf( "%02u.%02u.%02u  %02u:%02u:%02u.%02u (UTC%+dh)\n",
00145           tp->mday, tp->month, tp->year,
00146           tp->hour, tp->min, tp->sec, tp->sec100,
00147           tp->offs_utc
00148         );
00149
00150 }  // print_date_time
00151
00152
00153
00154 static /*HDR*/
00155 void print_date_time_status( MBG_DEV_HANDLE dh )
00156 {
00157   PCPS_TIME t;
00158
00159
00160   // Read a simple time stamp with 10 ms resolution.
00161   if ( PCPS_SUCCESS == mbg_get_time( dh, &t ) )
00162   {
00163     print_date_time( &t, "  " );
00164
00165     printf( "  %s\n",
00166             ( t.status & PCPS_FREER ) ?
00167             "free running" :
00168             "synchronized" );
00169
00170     printf( "  %s\n",
00171             ( t.status & PCPS_SYNCD ) ?
00172             "synchronized after last RESET" :
00173             "not synchronized after last RESET" );
00174   }
00175   else
00176     err_msg( "Failed to read date/time/status" );
00177
00178 }  // print_date_time_status
00179
00180
00181
00182 static /*HDR*/
00183 char *sprint_hr_time( char *s, const PCPS_HR_TIME *t )
00184 {
00185   const char *cp = "UTC";
00186
00187   if ( t->status & PCPS_SCALE_TAI )
00188     cp = "TAI";
00189   else
00190     if ( t->status & PCPS_SCALE_GPS )
00191       cp = "GPS";
00192
00193   sprintf( s, "%08lX.%08lX %s%+ldsec, st: %04X",
00194            t->tstamp.sec,
00195            t->tstamp.frac,
00196            cp,
00197            t->utc_offs,
00198            t->status
00199          );
00200
00201   return s;
00202
00203 }  // sprint_hr_time
00204
00205
00206
00207 static /*HDR*/
00208 void print_hr_time( MBG_DEV_HANDLE dh )
00209 {
00210   PCPS_HR_TIME hr_t;
00211
00212   // Read a high resolution time stamp with compensated latency.
00213   // The function mbg_get_hr_time_comp() has been introduced in
00214   // mbgdevio DLL v2.1.2 and compensates the execution time (latency)
00215   // required to acces the hardware from inside the kernel driver.
00216
00217   #if 1  // use with mbgdevio DLL v2.1.2 or greater
00218
00219     int32_t latency;
00220
00221     // The latency value can optionally be returned by this function.
00222     // If the latency value is not required, a NULL pointer can be
00223     // passed instead. The latency value is in hectonanoseconds [hns],
00224     // i.e. 100 nanosecond units.
00225
00226     if ( PCPS_SUCCESS == mbg_get_hr_time_comp( dh, &hr_t, &latency ) )
00227     {
00228       char ws[200];
00229       const char *cp = "UTC";
00230
00231       if ( hr_t.status & PCPS_SCALE_TAI )
00232         cp = "TAI";
00233       else
00234         if ( hr_t.status & PCPS_SCALE_GPS )
00235           cp = "GPS";
00236
00237       printf( "  HR time (RAW): %s, latency: %i hns\n", sprint_hr_time( ws, &hr_t ), latency );
00238
00239       // Format function taken from mbgutil.h
00240       mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hr_t );
00241       printf( "  HR time (%s): %s, latency=%i hns\n", cp, ws, latency );
00242     }
00243     else
00244       err_msg( "Failed to read High Resolution Time" );
00245
00246   #else  // the code below can be used with mbgdevio DLL < v2.1.2.
00247
00248     if ( PCPS_SUCCESS == mbg_get_hr_time( dh, &hr_t ) )
00249       printf( "  HR time: %s\n", sprint_hr_time( ws, &hr_t ) );
00250     else
00251       err_msg( "Failed to read High Resolution Time" );
00252
00253   #endif
00254
00255 }  // print_hr_time
00256
00257
00258
00259 static /*HDR*/
00260 void print_sec_changes( MBG_DEV_HANDLE dh )
00261 {
00262   int i = 0;
00263
00264   for (;;)
00265   {
00266     PCPS_TIME t;
00267     BOOL rc;
00268
00269     // This IOCTL call blocks until a second change is detected.
00270     rc = mbg_get_time_sec_change( dh, &t );
00271
00272     if ( rc == PCPS_SUCCESS )
00273     {
00274       print_hr_time( dh );
00275       print_date_time( &t, "  New sec: " );
00276     }
00277     else
00278       err_msg( "Failed to get time at second change." );
00279
00280     // Wait for specified number of second changes.
00281     // If number is 0, wait forever.
00282     if ( n_sec_change )
00283       if ( ++i >= n_sec_change )
00284         break;
00285   }
00286
00287 }  // print_sec_changes
00288
00289
00290
00291 static /*HDR*/
00292 void print_receiver_position( MBG_DEV_HANDLE dh )
00293 {
00294   POS pos;
00295   char ws[256];
00296
00297
00298   if ( PCPS_SUCCESS == mbg_get_gps_pos( dh, &pos ) )
00299   {
00300     mbg_str_pos( ws, sizeof( ws ), &pos, 4 );
00301     printf( "  Receiver position: %s\n", ws );
00302   }
00303   else
00304     err_msg( "Failed to read receiver position" );
00305
00306 }  // print_receiver_position
00307
00308
00309
00310 static /*HDR*/
00311 void print_sv_info( MBG_DEV_HANDLE dh )
00312 {
00313   STAT_INFO stat_info;
00314
00315
00316   if ( PCPS_SUCCESS == mbg_get_gps_stat_info( dh, &stat_info ) )
00317   {
00318     printf( "  Satellites: %u in view, %u good\n",
00319             stat_info.svs_in_view,
00320             stat_info.good_svs
00321           );
00322   }
00323   else
00324     err_msg( "Failed to read GPS status info" );
00325
00326 }  // print_sv_info
00327
00328
00329
00330 static /*HDR*/
00360 void check_user_captures( MBG_DEV_HANDLE dh, PCPS_DEV *pdev )
00361 {
00362   unsigned int ucaps_read = 0;
00363
00364   if ( _pcps_has_ucap( pdev ) )
00365   {
00366     PCPS_UCAP_ENTRIES ucap_entries;
00367     PCPS_HR_TIME ucap_event;
00368     char ws[100];
00369
00370     for (;;)   // read all entries from capture buffer
00371     {
00372       if ( PCPS_SUCCESS != mbg_get_ucap_entries( dh, &ucap_entries ) )
00373       {
00374         err_msg( "Failed to read user capture buffer entries." );
00375         break;
00376       }
00377
00378       if ( PCPS_SUCCESS != mbg_get_ucap_event( dh, &ucap_event ) )
00379       {
00380         err_msg( "Failed to read user capture event." );
00381         break;
00382       }
00383
00384
00385       // If a user capture event has been read
00386       // then it it removed from the clock's buffer.
00387
00388       // If no new capture event is available, the ucap.tstamp structure
00389       // is set to 0.
00390       // Alternatively, PCPS_UCAP_ENTRIES.used can be checked for the
00391       // number of events pending in the buffer.
00392
00393       if ( ucap_event.tstamp.sec == 0 ) // no new user capture event
00394         break;
00395
00396
00397       printf( "  New capture: CH%i: %s (%i/%i)\n",
00398               ucap_event.signal,    // this is the channel number
00399               sprint_hr_time( ws, &ucap_event ),
00400               ucap_entries.used,
00401               ucap_entries.max
00402             );
00403
00404       ucaps_read++;
00405     }
00406   }
00407   else
00408   {
00409     TTM ucap;
00410
00411     for (;;)   // read all entries from capture buffer
00412     {
00413       if ( PCPS_SUCCESS != mbg_get_gps_ucap( dh, &ucap ) )
00414       {
00415         err_msg( "Failed to read user captures" );
00416         break;
00417       }
00418
00419
00420       // If a user capture event has been read
00421       // then it it removed from the clock's buffer.
00422
00423       // If no new capture is available, the ucap.tm structure
00424       // is set to "unread".
00425       if ( !_pcps_time_is_read( &ucap.tm ) ) // no new user capture entry
00426         break;
00427
00428       printf( "  New capture: CH%i: %02i.%02i.%02i  %2i:%02i:%02i.%07li\n",
00429               ucap.channel,
00430               ucap.tm.mday,
00431               ucap.tm.month,
00432               ucap.tm.year % 100,
00433               ucap.tm.hour,
00434               ucap.tm.min,
00435               ucap.tm.sec,
00436               ucap.tm.frac
00437             );
00438
00439       ucaps_read++;
00440     }
00441   }
00442
00443
00444   if ( ucaps_read )
00445     printf( "  User captures read: %u\n", ucaps_read );
00446   else
00447     printf( "  No user captures to be read.\n" );
00448
00449
00450   if ( _pcps_can_clr_ucap_buff( pdev ) )
00451   {
00452     if ( PCPS_SUCCESS == mbg_clr_ucap_buff( dh ) )
00453       printf( "  Capture buffer cleared.\n" );
00454     else
00455       err_msg( "  Failed to clear capture buffer" );
00456   }
00457   else
00458     printf( "  Clearing capture buffer not supported.\n" );
00459
00460 }  // check_user_captures
00461
00462
00463
00464 static /*HDR*/
00465 void print_utc_parameters( MBG_DEV_HANDLE dh, PCPS_DEV *pdev )
00466 {
00467
00468   if ( _pcps_has_utc_parm( pdev ) )
00469   {
00470     UTC utc;
00471
00472     if ( mbg_get_utc_parm( dh, &utc ) == PCPS_SUCCESS )
00473     {
00474       printf("  UTC parameters:\n");
00475
00476       if ( !utc.valid )
00477         printf("  UTC parameters not valid!\n");
00478       else
00479       {
00480         if ( utc.delta_tls != utc.delta_tlsf )
00481         {
00482
00483           // a leap second is currently being announced
00484
00485           time_t t_ls = (time_t) utc.WNlsf * SECS_PER_WEEK
00486                     + (time_t) utc.DNt * SECS_PER_DAY
00487                     + GPS_SEC_BIAS - 1;
00488
00489           struct tm *tm = gmtime( &t_ls );
00490
00491           printf( "  UTC offset transition from %is to %is due to leap second\n"
00492                   "  %s at UTC midnight at the end of %04i-%02i-%02i.\n",
00493                   utc.delta_tls, utc.delta_tlsf,
00494                   ( utc.delta_tls < utc.delta_tlsf ) ? "insertion" : "deletion",
00495                   tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday
00496                 );
00497
00498         }
00499         else
00500           printf( "  UTC offset parameter: %is, no leap second announced.\n", utc.delta_tls );
00501       }
00502     }
00503   }
00504 } // print_utc_parameters
00505
00506
00507
00508 static /*HDR*/
00509 void show_irig_ctrl_bits( MBG_DEV_HANDLE dh )
00510 {
00511   MBG_IRIG_CTRL_BITS irig_ctrl_bits;
00512
00513   int rc = mbg_get_irig_ctrl_bits( dh, &irig_ctrl_bits );
00514
00515   if ( rc != MBG_SUCCESS )
00516     return;
00517
00518   printf( "\nIRIG control bits: %08lX (hex, LSB first)\n", (ulong) irig_ctrl_bits );
00519
00520 }  // show_irig_ctrl_bits
00521
00522
00523
00524 static /*HDR*/
00525 void show_irig_debug_status( MBG_DEV_HANDLE dh )
00526 {
00527   static const char *status_str[N_MBG_DEBUG_BIT] = MBG_DEBUG_STATUS_STRS;
00528
00529   MBG_DEBUG_STATUS st;
00530   int i;
00531   int rc = _mbg_generic_read_var( dh, PCPS_GET_DEBUG_STATUS, st );
00532
00533   if ( rc != MBG_SUCCESS )
00534     return;
00535
00536   printf( "\nDebug status (hex): %08lX\n", (ulong) st );
00537
00538   for ( i = 0; i < N_MBG_DEBUG_BIT; i++ )
00539     if ( st & ( 1UL << i ) )
00540       printf( "  %s\n", status_str[i] );
00541
00542 }  // show_irig_debug_status
00543
00544
00545 /*HDR*/
00546 int snprint_ip4_addr( char *s, size_t max_len, const IP4_ADDR *addr )
00547 {
00548   int n;
00549
00550   n = mbg_snprintf( s, max_len, "%i.%i.%i.%i",
00551                 BYTE_OF( *addr, 3 ),
00552                 BYTE_OF( *addr, 2 ),
00553                 BYTE_OF( *addr, 1 ),
00554                 BYTE_OF( *addr, 0 )
00555               );
00556
00557   return n;
00558
00559 }  // snprint_ip4_addr
00560
00561
00562
00563 static /*HDR*/
00564 void show_lan_intf_state( MBG_DEV_HANDLE dh )
00565 {
00566   IP4_SETTINGS ip4_settings;
00567   LAN_IF_INFO lan_if_info;
00568   char ws[100];
00569
00570   int rc = mbg_get_ip4_state( dh, &ip4_settings );
00571
00572   if ( rc != MBG_SUCCESS )
00573     return;
00574
00575   rc = mbg_get_lan_if_info( dh, &lan_if_info );
00576
00577   if ( rc != MBG_SUCCESS )
00578     return;
00579
00580
00581   printf( "\nOn-board LAN interface settings:\n" );
00582
00583   mbg_snprintf( ws, sizeof( ws ), "%02X-%02X-%02X-%02X-%02X-%02X",
00584             lan_if_info.mac_addr[0],
00585             lan_if_info.mac_addr[1],
00586             lan_if_info.mac_addr[2],
00587             lan_if_info.mac_addr[3],
00588             lan_if_info.mac_addr[4],
00589             lan_if_info.mac_addr[5]
00590          );
00591   printf( "  MAC Address:    %s\n", ws );
00592
00593   snprint_ip4_addr( ws, sizeof( ws ), &ip4_settings.ip_addr );
00594   printf( "  IP Address:     %s%s\n", ws, ( ip4_settings.flags & IP4_MSK_DHCP ) ?
00595           "(DHCP)" : "" );
00596
00597   snprint_ip4_addr( ws, sizeof( ws ), &ip4_settings.netmask );
00598   printf( "  Net Mask:       %s\n", ws );
00599
00600   snprint_ip4_addr( ws, sizeof( ws ), &ip4_settings.broad_addr );
00601   printf( "  Broadcast Addr: %s\n", ws );
00602
00603   snprint_ip4_addr( ws, sizeof( ws ), &ip4_settings.gateway );
00604   printf( "  Gateway:        %s\n", ws );
00605
00606   printf( "  Link detected:  %s\n", ( ip4_settings.flags & IP4_MSK_LINK ) ? "YES" : "NO" );
00607
00608 }  // show_lan_intf_state
00609
00610
00611
00612 static /*HDR*/
00613 void print_ptp_status( MBG_DEV_HANDLE dh )
00614 {
00615   static const char *ptp_stat_str[N_PTP_PORT_STATE] = PTP_PORT_STATE_STRS;
00616   char ws[100];
00617   const char *cp;
00618   int ptp_state_available;
00619   PTP_STATE ptp_state;
00620
00621   int rc = mbg_get_ptp_state( dh, &ptp_state );
00622
00623   if ( rc != MBG_SUCCESS )
00624   {
00625     printf(" Error getting PTP State!\n");
00626     return;
00627   }
00628
00629   printf( "\nPTP port status:\n" );
00630
00631   printf( "  Port mode:       %s\n", ( ptp_state.port_state < N_PTP_PORT_STATE ) ?
00632           ptp_stat_str[ptp_state.port_state] : "(undefined)" );
00633
00634   ptp_state_available = ( ptp_state.port_state == PTP_PORT_STATE_SLAVE );
00635
00636   cp = ptp_state_available ? ws : "N/A";
00637
00638   mbg_snprintf( ws, sizeof( ws ), "%02X-%02X-%02X-%02X-%02X-%02X",
00639             ptp_state.gm_identity.b[0],
00640             ptp_state.gm_identity.b[1],
00641             ptp_state.gm_identity.b[2],
00642             ptp_state.gm_identity.b[5],
00643             ptp_state.gm_identity.b[6],
00644             ptp_state.gm_identity.b[7]
00645          );
00646   printf( "  Grandmaster MAC: %s\n", cp );
00647
00648
00649   mbg_snprintf( ws, sizeof( ws ), "%c%li.%09li s",
00650             _nano_time_negative( &ptp_state.path_delay ) ? '-' : '+',
00651             labs( (long) ptp_state.path_delay.secs ),
00652             labs( (long) ptp_state.path_delay.nano_secs )
00653           );
00654   printf( "  PTP path delay:  %s\n", cp );
00655
00656
00657   mbg_snprintf( ws, sizeof( ws ), "%c%li.%09li s",
00658             _nano_time_negative( &ptp_state.offset ) ? '-' : '+',
00659             labs( (long) ptp_state.offset.secs ),
00660             labs( (long) ptp_state.offset.nano_secs )
00661             );
00662   printf( "  PTP time offset: %s\n\n", cp );
00663
00664
00665 }
00666
00667
00668 int main( int argc, char* argv[] )
00669 {
00670   int i,j;
00671   int rc = 0;
00672   int devices_found;
00673
00674   if ( mbgdevio_check_version( MBGDEVIO_VERSION ) != PCPS_SUCCESS )
00675   {
00676     printf( "The MBGDEVIO DLL API version %X which is installed is not compatible\n"
00677             "with API version %X required by this program.\n",
00678             mbgdevio_get_version(),
00679             MBGDEVIO_VERSION
00680           );
00681     exit( 1 );
00682   }
00683
00684   devices_found = mbg_find_devices();
00685
00686   if ( devices_found == 0 )
00687   {
00688     printf( "No radio clock found.\n" );
00689     return 1;
00690   }
00691
00692
00693   printf( "Found %i radio clock%s\n",
00694           devices_found,
00695           ( devices_found == 1 ) ? "" : "s"
00696         );
00697
00698
00699   print_drvr_info();
00700
00701
00702   // There may be several radio clock devices installed.
00703   // Try to get information from each of the devices.
00704   for ( i = 0; i < devices_found; i++ )
00705   {
00706     static PCPS_DEV dev;
00707
00708     MBG_DEV_HANDLE dh;
00709
00710     printf( "Radio clock %i:\n", i );
00711
00712     dh = mbg_open_device( i );
00713
00714     if ( dh == MBG_INVALID_DEV_HANDLE )
00715     {
00716       err_msg( "Unable to open device" );
00717       continue;
00718     }
00719
00720     print_dev_info( dh, &dev );
00721
00722     if ( _pcps_has_time_scale (&dev ) )
00723     {
00724       MBG_TIME_SCALE_INFO tsi;
00725       int rc;
00726
00727       rc = mbg_get_time_scale_info( dh, &tsi );
00728
00729       if ( rc == PCPS_SUCCESS )
00730         printf( "  Current time scale: \"%s\"\n", time_scale_str[tsi.settings.scale] );
00731       else
00732         printf( "  Error: mbg_get_time_scale_info() returned 0x%X.\n", rc);
00733     }
00734
00735     // Read the current date, time, and status.
00736     print_date_time_status( dh );
00737
00738     // Some clocks (mainly GPS receivers and IRIG decoders)
00739     // support a high resolution time. If supported, read and
00740     // display the HR time.
00741     if ( _pcps_has_hr_time( &dev ) )
00742       print_hr_time( dh );
00743
00744     // Newer IRIG receiver cards support reading the original
00745     // raw IRIG time stamp.
00746     if ( _pcps_has_irig_time( &dev ) )
00747     {
00748       PCPS_IRIG_TIME it;
00749
00750       rc = mbg_get_irig_time( dh, &it );
00751
00752       if ( rc == MBG_SUCCESS )
00753         printf( "\nRaw IRIG time: yday %u, %02u:%02u:%02u\n",
00754                 it.yday, it.hour, it.min, it.sec );
00755     }
00756
00757
00758     // Print some GPS clock specific info
00759     if ( _pcps_is_gps( &dev ) )
00760     {
00761       print_receiver_position( dh );
00762       print_sv_info( dh );
00763       check_user_captures( dh, &dev );
00764
00765       printf("\n");
00766     }
00767
00768     if ( _pcps_has_utc_parm( &dev ) )
00769       print_utc_parameters( dh, &dev );
00770
00771     if ( _pcps_is_irig_rx( &dev ) )
00772       show_irig_debug_status( dh );
00773
00774     if ( _pcps_has_irig_ctrl_bits( &dev ) )
00775       show_irig_ctrl_bits( dh );
00776
00777     if ( _pcps_has_lan_intf( &dev ) )
00778       show_lan_intf_state( dh );
00779
00780     if ( _pcps_is_ptp( &dev ) )
00781       print_ptp_status( dh );
00782
00783
00784     //***********
00785     // Loop some seconds waiting for second to change
00786     // Uncomment the line below if required:
00787
00788     //print_sec_changes( dh );
00789
00790     //***********
00791
00792
00793     // Check if device has support for memory mapped I/O
00794     // and read a couple of time stamps.
00795     if ( _pcps_has_asic_version( &dev ) )
00796     {
00797       PCI_ASIC_FEATURES asic_features;
00798
00799       rc = mbg_get_asic_features( dh, &asic_features );
00800
00801       if ( rc == PCPS_SUCCESS && ( asic_features &  PCI_ASIC_HAS_MM_IO ) )
00802       {
00803         PCPS_HR_TIME hrtime[MAX_MEM_MAPPED_CNT] = { 0 };
00804         uint32_t latency[MAX_MEM_MAPPED_CNT] = { 0 };
00805         int rc;
00806
00807         // Read some memory mapped time stamps
00808         // as fast as possible
00809         for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
00810         {
00811           rc = mbg_get_fast_hr_timestamp_comp( dh, &hrtime[j].tstamp, &latency[j] );
00812
00813           if ( rc != PCPS_SUCCESS )
00814           {
00815             printf("  Error: mbg_get_fast_hr_timestamp_comp() returned 0x%X\n",rc );
00816             break;
00817           }
00818         }
00819
00820         if ( j == MAX_MEM_MAPPED_CNT )
00821         {
00822           // Print time stamps
00823           for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
00824           {
00825             char ws[200];
00826
00827             mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hrtime[j] );
00828             printf( "  HR timestamp (MEM):  %s latency=%u hns\n", ws, latency[j] );
00829           }
00830         }
00831       }
00832     }
00833
00834     mbg_close_device( &dh );
00835     printf( "\n" );
00836   }
00837
00838   printf ( "\n" );
00839
00840   return rc;
00841 }
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/mbgdmpst.c Source File

  • Files

c/demo/mbgsvcio/mbgdmpst.c

Go to the documentation of this file.
00001 // mbgdmpst.cpp : Defines the entry point for the application.
00002 //
00003
00004 #include <mbgsvcio.h>
00005 #include <pcpsdefs.h>
00006
00007 #include <stdio.h>
00008
00009
00010
00011
00012 static const char *prog_info = "Meinberg Time Adjustment Status Dumper";
00013 static const char *prog_version = "v1.1";
00014
00015 #define SECTION_INFO   "[Info]"
00016 #define SECTION_OUTPUT "[Output]"
00017
00018 #define KEY_SVC_ACTIVE         "SvcTimeAdjustmentActive"
00019 #define KEY_SVC_REF_ACCESSIBLE "SvcRefTimeAccessible"
00020
00021
00022 #define KEY_FREER              "RefTimeNotSynchronized"
00023 #define KEY_DL_ENB             "RefDaylightSavingEnabled"
00024 #define KEY_SYNC_AFTER_RESET   "RefSyncAfterReset"
00025 #define KEY_DL_ANN             "RefDaylightChangeAnnounced"
00026 #define KEY_UTC                "RefIsUtc"
00027 #define KEY_LS_ANN             "RefLeapSecondAnnounced"
00028 #define KEY_SET_MANUALLY       "RefTimeSetManually"
00029 #define KEY_INV_TIME           "RefTimeInvalid"
00030
00031
00032
00033 static /*HDR*/
00034 void dump_status_item( FILE *fp, const char *name, int val, int cond )
00035 {
00036   fprintf( fp, "%s=", name );
00037
00038   if ( cond )
00039     fprintf( fp, "%i", val );
00040
00041   fprintf( fp, "\n" );
00042
00043 }  // dump_status_item
00044
00045
00046
00047 static /*HDR*/
00048 void dump_status( FILE *fp, int st, int cond )
00049 {
00050   #define N_STATUS 8
00051
00052   typedef struct
00053   {
00054     int mask;
00055     const char *key_name;
00056   } ST_INFO;
00057
00058   static const ST_INFO st_info[N_STATUS] =
00059   {
00060     { PCPS_FREER, KEY_FREER },
00061     { PCPS_DL_ENB, KEY_DL_ENB },
00062     { PCPS_SYNCD, KEY_SYNC_AFTER_RESET },
00063     { PCPS_DL_ANN, KEY_DL_ANN },
00064     { PCPS_UTC, KEY_UTC },
00065     { PCPS_LS_ANN, KEY_LS_ANN },
00066     { PCPS_IFTM, KEY_SET_MANUALLY },
00067     { PCPS_INVT, KEY_INV_TIME }
00068   };
00069
00070   int i;
00071
00072
00073   for ( i = 0; i < N_STATUS; i++ )
00074   {
00075     const ST_INFO *p = &st_info[i];
00076     int val = ( st & p->mask ) != 0;
00077     dump_status_item( fp, p->key_name, val, cond );
00078   }
00079
00080 }  // dump_status
00081
00082
00083
00084 /*HDR*/
00085 void mbg_dump_time_adjustment_status( FILE *fp )
00086 {
00087   static const char *key_svc_active     = KEY_SVC_ACTIVE;
00088   static const char *key_ref_accessible = KEY_SVC_REF_ACCESSIBLE;
00089
00090   int svc_active;
00091   int ref_accessible;
00092   int ref_time_status;
00093
00094   fprintf( fp,
00095            "%s\n"
00096            "About=%s %s\n"
00097            "\n",
00098            SECTION_INFO,
00099            prog_info,
00100            prog_version
00101          );
00102
00103   fprintf( fp, "%s\n", SECTION_OUTPUT );
00104
00105   svc_active = mbg_time_adjustment_active();
00106   dump_status_item( fp, key_svc_active, svc_active, 1 );
00107
00108   svc_active = svc_active > 0;
00109
00110   ref_accessible = svc_active && mbg_ref_time_accessible();
00111   dump_status_item( fp, key_ref_accessible, ref_accessible, svc_active );
00112
00113   ref_accessible = ref_accessible > 0;
00114
00115   ref_time_status = mbg_get_ref_time_status();
00116   dump_status( fp, ref_time_status, ref_accessible );
00117
00118   fprintf( fp, "\n" );
00119
00120 }  // mbg_dump_time_adjustment_status
00121
00122
00123
00124
00125 int main(int argc, char* argv[])
00126 {
00127 #if 1
00128   if ( argc > 1 )
00129   {
00130     FILE *fp = fopen( argv[1], "wt" );
00131
00132     if ( fp )
00133     {
00134       mbg_dump_time_adjustment_status( fp );
00135       fclose( fp );
00136     }
00137   }
00138 #endif
00139
00140         return 0;
00141 }
00142
00143
00144
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgerror.h Source File

  • Files

c/mbglib/include/mbgerror.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgerror.h 1.4 2008/12/05 13:28:50Z martin REL_M $
00005  *  $Name: $
00006  *
00007  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00008  *
00009  *  Description:
00010  *    Error codes used with Meinberg devices and drivers.
00011  *    The codes can be translated into an OS dependent error code.
00012  *
00013  * -----------------------------------------------------------------------
00014  *  $Log: mbgerror.h $
00015  *  Revision 1.4  2008/12/05 13:28:50Z  martin
00016  *  Added new code MBG_ERR_IRQ_UNSAFE.
00017  *  Revision 1.3  2008/02/26 14:50:14Z  daniel
00018  *  Added codes:
00019  *  MBG_ERR_NOT_SUPP_ON_OS, MBG_ERR_LIB_NOT_COMPATIBLE,
00020  *  MBG_ERR_N_COM_EXCEEDS_SUPP, MBG_ERR_N_STR_EXCEEDS_SUPP
00021  *  Added doxygen compatible comments.
00022  *  Revision 1.2  2007/09/27 07:26:22Z  martin
00023  *  Define STATUS_SUCCESS for Windows if not in kernel mode.
00024  *  Revision 1.1  2007/09/26 08:08:54Z  martin
00025  *  Initial revision.
00026  *
00027  **************************************************************************/
00028
00029 #ifndef _MBGERROR_H
00030 #define _MBGERROR_H
00031
00032
00033 /* Other headers to be included */
00034
00035 #include <mbg_tgt.h>
00036
00037 #ifdef _MBGERROR
00038  #define _ext
00039  #define _DO_INIT
00040 #else
00041  #define _ext extern
00042 #endif
00043
00044
00045 /* Start of header body */
00046
00061 // Attention!!
00062 // These error codes below must fit exactly to the corresponding codes that are evaluated in user space.
00063 // For Windows, they are located in messages.mc/.h in mbgsvctl.dll
00064
00065 #define MBG_SUCCESS     PCPS_SUCCESS
00067 // The codes below are defined in pcpsdefs.h and returned by the firmware:
00068 #define MBG_ERR_STIME   PCPS_ERR_STIME
00069 #define MBG_ERR_CFG     PCPS_ERR_CFG
00071 // Codes returned by the driver's low level functions:
00072 #define MBG_ERR_GENERIC             -19
00073 #define MBG_ERR_TIMEOUT             -20
00074 #define MBG_ERR_FW_ID               -21
00075 #define MBG_ERR_NBYTES              -22
00078 #define MBG_ERR_INV_TIME            -23
00079 #define MBG_ERR_FIFO                -24
00081 #define MBG_ERR_NOT_READY           -25
00083 #define MBG_ERR_INV_TYPE            -26
00086 // Codes returned by the driver's high level functions:
00087 #define MBG_ERR_NO_MEM              -27
00088 #define MBG_ERR_CLAIM_RSRC          -28
00089 #define MBG_ERR_DEV_NOT_SUPP        -29
00090 #define MBG_ERR_INV_DEV_REQUEST     -30
00091 #define MBG_ERR_NOT_SUPP_BY_DEV     -31
00092 #define MBG_ERR_USB_ACCESS          -32
00093 #define MBG_ERR_CYCLIC_TIMEOUT      -33
00094 #define MBG_ERR_NOT_SUPP_ON_OS      -34
00095 #define MBG_ERR_LIB_NOT_COMPATIBLE  -35
00097 #define MBG_ERR_N_COM_EXCEEDS_SUPP  -36
00099 #define MBG_ERR_N_STR_EXCEEDS_SUPP  -37
00101 #define MBG_ERR_IRQ_UNSAFE          -38
00104 // Codes used with DOS TSRs only:
00105 #define MBG_ERR_INV_INTNO           -40
00106 #define MBG_ERR_NO_DRIVER           -41
00107 #define MBG_ERR_DRV_VERSION         -42   // endgroup
00110
00111 // Depending on the operating system, the codes above have to be converted before
00112 // they are sent up to user space
00113 #if defined( MBG_TGT_WIN32 )
00114   #if !defined( STATUS_SUCCESS )  // not in kernel mode
00115     #define STATUS_SUCCESS  0
00116   #endif
00117
00118   #define _mbg_err_to_os( _c ) \
00119   ( ( _c == MBG_SUCCESS ) ?  STATUS_SUCCESS : ( abs( _c ) | 0xE0000000 ) )
00120 #endif
00121
00122
00123 // If no specific conversion has been defined
00124 // then use the original codes.
00125 #if !defined( _mbg_err_to_os )
00126   #define _mbg_err_to_os( _c )   ( _c )
00127 #endif
00128
00129
00130
00131 /* function prototypes: */
00132
00133 #ifdef __cplusplus
00134 extern "C" {
00135 #endif
00136
00137 /* ----- function prototypes begin ----- */
00138
00139 /* This section was generated automatically */
00140 /* by MAKEHDR, do not remove the comments. */
00141
00142 /* (no header definitions found) */
00143
00144 /* ----- function prototypes end ----- */
00145
00146 #ifdef __cplusplus
00147 }
00148 #endif
00149
00150
00151 /* End of header body */
00152
00153 #undef _ext
00154 #undef _DO_INIT
00155
00156 #endif  /* _MBGERROR_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbggeo.h Source File

  • Files

c/mbglib/include/mbggeo.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbggeo.h 1.10 2008/09/03 14:54:28Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions and prototypes for mbggeo.c.
00010  *
00011  *  Terms used:
00012  *
00013  *     WGS84   world geodetic system of 1984
00014  *
00015  *     XYZ     WGS84 earth centered, earth fixed (ECEF) kartesian
00016  *             coordinates
00017  *
00018  *     LLA     longitude, latitude, altitude depending on the reference
00019  *             ellipsoid used.
00020  *
00021  *     DMS     degrees, minutes, seconds
00022  *
00023  * -----------------------------------------------------------------------
00024  *  $Log: mbggeo.h $
00025  *  Revision 1.10  2008/09/03 14:54:28Z  martin
00026  *  Added macros to swap endianess of structures.
00027  *  Revision 1.9  2008/01/17 09:31:33  daniel
00028  *  Made comments compatible for doxygen parser.
00029  *  No sourcecode changes.
00030  *  Revision 1.8  2004/11/09 14:16:00Z  martin
00031  *  Redefined interface data types using C99 fixed-size definitions.
00032  *  Revision 1.7  2003/02/14 13:23:04Z  martin
00033  *  Omit inclusion of mystd.h.
00034  *  Revision 1.6  2003/01/13 15:17:15  martin
00035  *  Structures were defined with default alignment which
00036  *  could result in different data sizes on different platforms.
00037  *  Revision 1.5  2002/12/18 14:46:41Z  martin
00038  *  Removed variable USER_POS meinberg.
00039  *  Updated function prototypes.
00040  *  Revision 1.4  2002/12/12 12:04:25Z  martin
00041  *  Moved some definitions here.
00042  *  Use standard file format.
00043  *
00044  **************************************************************************/
00045
00046 #ifndef _MBGGEO_H
00047 #define _MBGGEO_H
00048
00049
00050 /* Other headers to be included */
00051
00052 #include <gpsdefs.h>
00053 #include <use_pack.h>
00054
00055 #ifdef _MBGGEO
00056  #define _ext
00057  #define _DO_INIT
00058 #else
00059  #define _ext extern
00060 #endif
00061
00062
00063 /* Start of header body */
00064
00065 #if defined( _USE_PACK )   // set byte alignment
00066   #pragma pack( 1 )
00067 #endif
00068
00069
00074 typedef struct
00075 {
00076   uint16_t prefix;
00077   uint16_t deg;
00078   uint16_t min;
00079   double sec;
00080 } DMS;
00081
00082 // The corresponding macro _mbg_swab_dms() is defined in gpsdefs.h.
00083 #define _mbg_swab_dms( _p )        \
00084 {                                  \
00085   _mbg_swab16( &(_p)->prefix );    \
00086   _mbg_swab16( &(_p)->deg );       \
00087   _mbg_swab16( &(_p)->min );       \
00088   _mbg_swab_double( &(_p)->sec );  \
00089 }
00090
00091
00092
00093 typedef struct
00094 {
00095   XYZ xyz;
00096   LLA lla;
00097   DMS longitude;
00098   DMS latitude;
00099   int16_t ellipsoid;
00100 } POS;
00101
00102 #define _mbg_swab_pos( _p )           \
00103 {                                     \
00104   _mbg_swab_xyz( (_p)->xyz );         \
00105   _mbg_swab_lla( (_p)->lla );         \
00106   _mbg_swab_dms( &(_p)->longitude );  \
00107   _mbg_swab_dms( &(_p)->latitude );   \
00108   _mbg_swab16( &(_p)->ellipsoid );    \
00109 }
00110
00111
00112
00113 typedef struct
00114 {
00115   CSUM csum;        /* checksum of the remaining bytes */
00116   int16_t valid;    /* flag data are valid */
00117
00118   char name[40];
00119   POS pos;          /* the position in WGS84 ECEF coords and LLA */
00120   double det;
00121
00122
00123 /* The components below hold the results of intermediate terms */
00124 /* computed in complete_user_pos(). */
00125
00126 /* The sin.., cos.., nt.. and ut.. variables are used to compute the */
00127 /* enu_dcos[] parameters of a SV structure in xyz_to_ead(). */
00128
00129 /* The e_radius.. variables are used to compute the latitude, longitude */
00130 /* and altitude from ECEF coordinates in lla_to_xyz(). */
00131
00132   double sin_lat;        /* sin( latitude ) */
00133   double cos_lat;        /* cos( latitude ) */
00134   double sin_lon;        /* sin( longitude ) */
00135   double cos_lon;        /* cos( longitude ) */
00136
00137   double nt1;            /* -sin_lat * cos_lon */
00138   double nt2;            /* -sin_lat * sin_lon */
00139   double utx;            /*  cos_lat * cos_lon */
00140   double uty;            /*  cos_lat * sin_lon */
00141
00142   double e_radius;       /* N */
00143   double e_radius_alt;   /* N + h */
00144
00145 } USER_POS;
00146
00147
00148
00149 typedef struct
00150 {
00151   CSUM csum;        /* checksum of the remaining bytes */
00152   int16_t valid;    /* flag data are valid */
00153
00154   char name[40];
00155   XYZ dxyz;            /* offset from the WGS84 ECEF coords */
00156   double a;            /* semi major axis */
00157   double rcp_f;        /* reciproke of flatness */
00158
00159 /* the variables below will be computed in the init_mbggeo() function: */
00160
00161   double f;            /* flatness */
00162   double b;            /* semi minor axis */
00163   double sqr_e;        /* square of numerical eccentricity */
00164 } ELLIPSOID;
00165
00166
00167
00168 enum { WGS84, BESSEL, N_ELLIPSOIDS };
00169
00170 _ext ELLIPSOID ellipsoid[N_ELLIPSOIDS]
00171 #ifdef _DO_INIT
00172  = { { 0, 0,
00173        "WGS 84",
00174        { 0.0, 0.0, 0.0 },
00175        6378137.0,
00176        298.257223563
00177      },
00178
00179      { 0, 0,
00180        "Bessel",
00181        { -128.0, 481.0, 664.0 },
00182        6377397.0,
00183        299.15
00184      }
00185
00186    }
00187 #endif
00188 ;
00189
00190
00191 /* WGS84 constants used */
00192
00193 _ext double OMEGADOTe   /* earth's rotation rate  [rad/sec] */
00194 #ifdef _DO_INIT
00195   = 7.2921151467e-5
00196 #endif
00197 ;
00198
00199 _ext double mue         /* earth's gravitational constant  [m^3/sec^2] */
00200 #ifdef _DO_INIT
00201   = 3.986005e14
00202 #endif
00203 ;
00204
00205
00206
00207 _ext double vr_to_doppler;
00208
00209
00210 _ext double gps_pi
00211 #ifdef _DO_INIT
00212   = 3.1415926535898
00213 #endif
00214 ;
00215
00216 _ext double gps_c0
00217 #ifdef _DO_INIT
00218   = 2.99792458e8
00219 #endif
00220 ;
00221
00222
00223 #ifndef PI
00224   #define PI 3.1415926535897932
00225 #endif
00226
00227
00228 _ext double pi
00229 #ifdef _DO_INIT
00230  = PI
00231 #endif
00232 ;
00233
00234
00235 _ext double r2d
00236 #ifdef _DO_INIT
00237   = 180.0 / PI
00238 #endif
00239 ;
00240
00241
00242 _ext double d2r
00243 #ifdef _DO_INIT
00244   = PI / 180.0
00245 #endif
00246 ;
00247
00248
00249 /* variables for simplifying computations */
00250
00251 _ext double gps_two_pi;
00252 _ext double sqrt_mue;         /* sqrt( mue )  */
00253
00254
00255
00256 /* function prototypes: */
00257
00258 #ifdef __cplusplus
00259 extern "C" {
00260 #endif
00261
00262 /* ----- function prototypes begin ----- */
00263
00264 /* This section was generated automatically */
00265 /* by MAKEHDR, do not remove the comments. */
00266
00267  void dms_to_rad( const DMS *dms, double *rad ) ;
00268  void rad_to_dms( const double *rad, DMS *dms, const char prefix ) ;
00269  void dms_to_lla( POS *pos ) ;
00270  void lla_to_dms( POS *pos ) ;
00271  void lla_to_xyz( USER_POS *pos ) ;
00272  void xyz_to_lla( POS *pos, void (*cyclic_func)( void ) ) ;
00273  void dms_to_xyz( USER_POS *pos ) ;
00274  void setup_user_pos_from_dms( USER_POS *user ) ;
00275  void setup_user_pos_from_lla( USER_POS *user ) ;
00276  void setup_user_pos_from_xyz( USER_POS *user, void (*cyclic_func)( void ) ) ;
00277  double distance( XYZ xyz_1, XYZ xyz_2 ) ;
00278  void init_mbggeo( void ) ;
00279
00280 /* ----- function prototypes end ----- */
00281
00282 #ifdef __cplusplus
00283 }
00284 #endif
00285
00286
00287 #if defined( _USE_PACK )   // set default alignment
00288   #pragma pack()
00289 #endif
00290
00291 /* End of header body */
00292
00293 #undef _ext
00294 #undef _DO_INIT
00295
00296 #endif  /* _MBGGEO_H */
00297
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgsvcio.h Source File

  • Files

c/mbglib/include/mbgsvcio.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgsvcio.h 1.16 2009/08/14 09:28:13Z daniel REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions and prototypes for mbgsvcio.c.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbgsvcio.h $
00013  *  Revision 1.16  2009/08/14 09:28:13Z  daniel
00014  *  New version code 306, compatibility version code still 200.
00015  *  Revision 1.15  2009/06/09 08:57:47Z  daniel
00016  *  Rev No. 305
00017  *  Revision 1.14  2009/03/19 09:06:40Z  daniel
00018  *  New version code 304, compatibility version code still 200.
00019  *  Revision 1.13  2009/01/12 09:40:18Z  daniel
00020  *  New version code 303, compatibility version code still 200.
00021  *  Added comments in doxygen format.
00022  *  Revision 1.12  2008/01/17 10:14:41Z  daniel
00023  *  New version code 302, compatibility version code still 200.
00024  *  Revision 1.11  2007/10/16 10:16:27Z  daniel
00025  *  New version code 301, compatibility version code still 200.
00026  *  Revision 1.10  2007/09/24 15:28:17Z  martin
00027  *  New version code 300, compatibility version code still 200.
00028  *  Revision 1.9  2007/03/22 09:52:18Z  martin
00029  *  New version code 219, compatibility version code still 200.
00030  *  Removed obsolete headers.
00031  *  Revision 1.8  2006/08/09 13:38:02Z  martin
00032  *  New version code 218, compatibility version still 200.
00033  *  Revision 1.7  2006/06/08 12:23:54Z  martin
00034  *  New version code 217, compatibility version still 200.
00035  *  Revision 1.6  2006/05/02 12:52:17Z  martin
00036  *  New version code 216, compatibility version still 200.
00037  *  Revision 1.5  2006/01/11 12:04:32Z  martin
00038  *  New version code 215, compatibility version still 200.
00039  *  Revision 1.4  2005/12/15 09:16:38Z  martin
00040  *  New version code 214, compatibility version still 200.
00041  *  Revision 1.3  2005/07/20 07:38:39Z  martin
00042  *  New version code 213.
00043  *  Revision 1.2  2005/02/16 15:34:40Z  martin
00044  *  New version 2.12.
00045  *  Revision 1.1  2004/07/01 10:00:51Z  martin
00046  *
00047  **************************************************************************/
00048
00049 #ifndef _MBGSVCIO_H
00050 #define _MBGSVCIO_H
00051
00052
00053 /* Other headers to be included */
00054
00055 #include <mbg_tgt.h>
00056
00057
00058
00059 #ifdef _MBGSVCIO
00060   #define _ext
00061 #else
00062   #define _ext extern
00063 #endif
00064
00065
00066 /* Start of header body */
00067
00068 #if defined( _USE_PACK )      // set byte alignment
00069   #pragma pack( 1 )
00070 #endif
00071
00072 #define MBGSVCIO_VERSION         0x0306
00073
00074 #define MBGSVCIO_COMPAT_VERSION  0x0200
00075
00076
00077 #ifdef __cplusplus
00078 extern "C" {
00079 #endif
00080
00081 /* ----- function prototypes begin ----- */
00082
00083 /* This section was generated automatically */
00084 /* by MAKEHDR, do not remove the comments. */
00085
00097  _MBG_API_ATTR int _MBG_API mbgsvcio_get_version( void ) ;
00098
00110  _MBG_API_ATTR int _MBG_API mbgsvcio_check_version( int header_version ) ;
00111
00117  _MBG_API_ATTR int _MBG_API mbg_time_adjustment_active( void ) ;
00118
00127  _MBG_API_ATTR int _MBG_API mbg_ref_time_accessible( void ) ;
00128
00150  _MBG_API_ATTR int _MBG_API mbg_get_ref_time_status( void ) ;
00151
00152
00153 /* ----- function prototypes end ----- */
00154
00155 #ifdef __cplusplus
00156 }
00157 #endif
00158
00159 #if defined( _USE_PACK )   // set default alignment
00160   #pragma pack()
00161 #endif
00162
00163 /* End of header body */
00164
00165 #undef _ext
00166
00167 #endif  // _MBGSVCIO_H
00168
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgtime.h Source File

  • Files

c/mbglib/include/mbgtime.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgtime.h 1.12 2009/03/27 14:14:00Z martin TEST $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions and prototypes for mbgtime.c.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbgtime.h $
00013  *  Revision 1.12  2009/03/27 14:14:00Z  martin
00014  *  Cleanup for CVI.
00015  *  Revision 1.11  2009/03/13 09:30:06Z  martin
00016  *  Include mystd.h in mbgtime.c rather than here. The bit type used
00017  *  here is now defined in words.h.
00018  *  Updated comments for GPS_SEC_BIAS.
00019  *  Revision 1.10  2008/12/11 10:45:41Z  martin
00020  *  Added clock_t mask for gcc (GnuC).
00021  *  Revision 1.9  2006/08/25 09:33:46Z  martin
00022  *  Updated function prototypes.
00023  *  Revision 1.8  2004/12/28 11:29:02Z  martin
00024  *  Added macro _n_days.
00025  *  Updated function prototypes.
00026  *  Revision 1.7  2002/09/06 07:15:48Z  martin
00027  *  Added MASK_CLOCK_T for Linux.
00028  *  Revision 1.6  2002/02/25 08:37:44  Andre
00029  *  definition MASK_CLOCK_T for ARM added
00030  *  Revision 1.5  2001/03/02 10:18:10Z  MARTIN
00031  *  Added MASK_CLOCK_T for Watcom C.
00032  *  Revision 1.4  2000/09/15 07:57:53  MARTIN
00033  *  Removed outdated function prototypes.
00034  *  Revision 1.3  2000/07/21 14:05:18  MARTIN
00035  *  Defined some new constants.
00036  *
00037  **************************************************************************/
00038
00039 #ifndef _MBGTIME_H
00040 #define _MBGTIME_H
00041
00042
00043 /* Other headers to be included */
00044
00045 #include <gpsdefs.h>
00046
00047 #include <time.h>
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00053 #ifdef _MBGTIME
00054  #define _ext
00055 #else
00056  #define _ext extern
00057 #endif
00058
00059
00060 /* Start of header body */
00061
00062 #ifdef _166
00063  #define _const const
00064 #else
00065  #define _const
00066 #endif
00067
00068
00069 // The Unix time_t epoche is usually 1970-01-01 00:00 whereas
00070 // the GPS epoche is 1980-01-06 00:00, so the difference is 10 years,
00071 // plus 2 days due to leap years (1972 and 1976), plus the difference
00072 // of the day-of-month (6 - 1).
00073 #define GPS_SEC_BIAS  315964800UL     // ( ( ( 10UL * 365UL ) + 2 + 5 ) * SECS_PER_DAY )
00074
00075 // time_t t = ( gps_week * SECS_PER_WEEK ) + sec_of_week + GPS_SEC_BIAS
00076
00077
00078 #if defined( _C166 )
00079   #if _C166 >= 50
00080     #define MASK_CLOCK_T 0x7FFFFFFFL
00081   #else
00082     #define MASK_CLOCK_T 0x7FFF   /* time.h not shipped with compiler */
00083   #endif
00084 #endif
00085
00086 #if defined( __WATCOMC__ )
00087   #define MASK_CLOCK_T 0x7FFFFFFFL
00088 #endif
00089
00090 #if defined( _CVI ) || defined( _CVI_ )
00091   #define MASK_CLOCK_T 0x7FFFFFFFL
00092 #endif
00093
00094 #if defined( _MSC_VER )
00095   #define MASK_CLOCK_T 0x7FFFFFFFL
00096 #endif
00097
00098 #if defined( __NETWARE_386__ )
00099   #define MASK_CLOCK_T 0x7FFFFFFFL
00100 #endif
00101
00102 #if defined( __ARM )
00103   #define MASK_CLOCK_T 0x7FFFFFFFL
00104 #endif
00105
00106 #if defined( __GNUC__ )
00107   #if defined( __linux )
00108     #define MASK_CLOCK_T ( ( (ulong) (clock_t) -1 ) >> 1 )
00109   #else  // Windows / MinGW
00110     #define MASK_CLOCK_T 0x7FFFFFFFL
00111   #endif
00112 #endif
00113
00114
00115 #if !defined( MASK_CLOCK_T )
00116   #if sizeof( clock_t ) == sizeof( short )
00117     #define MASK_CLOCK_T 0x7FFF
00118   #elif sizeof( clock_t ) == sizeof( long )
00119     #define MASK_CLOCK_T 0x7FFFFFFFL
00120   #endif
00121 #endif
00122
00123 typedef struct
00124 {
00125   clock_t start;
00126   clock_t stop;
00127   short is_set;
00128 } TIMEOUT;
00129
00130
00131 #define DAYS_PER_WEEK     7
00132
00133 #define SECS_PER_MIN      60
00134 #define MINS_PER_HOUR     60
00135 #define HOURS_PER_DAY     24
00136 #define DAYS_PER_WEEK     7
00137
00138 #define MINS_PER_DAY      ( MINS_PER_HOUR * HOURS_PER_DAY )
00139
00140 #define SECS_PER_HOUR     3600
00141 #define SECS_PER_DAY      86400L
00142 #define SECS_PER_WEEK     604800L
00143
00144 #define SEC100S_PER_SEC   100L
00145 #define SEC100S_PER_MIN   ( SEC100S_PER_SEC * SECS_PER_MIN )
00146 #define SEC100S_PER_HOUR  ( SEC100S_PER_SEC * SECS_PER_HOUR )
00147 #define SEC100S_PER_DAY   ( SEC100S_PER_SEC * SECS_PER_DAY )
00148
00149 #define MSEC_PER_SEC   1000L
00150 #define MSEC_PER_MIN   ( MSEC_PER_SEC * SECS_PER_MIN )
00151 #define MSEC_PER_HOUR  ( MSEC_PER_SEC * SECS_PER_HOUR )
00152 #define MSEC_PER_DAY   ( MSEC_PER_SEC * SECS_PER_DAY )
00153
00154
00155
00156 _ext TM_GPS dhms;
00157 _ext TM_GPS datum;
00158
00159
00160 _ext const char *short_time_fmt
00161 #ifdef _MBGTIME
00162  = "%2i:%02i"
00163 #endif
00164 ;
00165
00166 _ext const char *time_fmt
00167 #ifdef _MBGTIME
00168  = "%2i:%02i:%02i"
00169 #endif
00170 ;
00171
00172 _ext const char *long_time_fmt
00173 #ifdef _MBGTIME
00174  = "%2i:%02i:%02i.%02i"
00175 #endif
00176 ;
00177
00178 _ext const char *date_fmt
00179 #ifdef _MBGTIME
00180  = "%2i.%02i.%04i"
00181 #endif
00182 ;
00183
00184 _ext const char *day_date_fmt
00185 #ifdef _MBGTIME
00186  = "%s, %2i.%02i.%04i"
00187 #endif
00188 ;
00189
00190 _ext const char *day_name_eng[]
00191 #ifdef _MBGTIME
00192  = { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }
00193 #endif
00194 ;
00195
00196 _ext const char *day_name_ger[]
00197 #ifdef _MBGTIME
00198  = { "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" }
00199 #endif
00200 ;
00201
00202 _ext _const TM_GPS init_tm
00203 #ifdef _MBGTIME
00204   = { 1980, 1, 1, 0, 0, 0, 0, 0, 0, 0 }
00205 #endif
00206 ;
00207
00208
00209 _ext char days_of_month[2][12]
00210 #ifdef _MBGTIME
00211  = {
00212      { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
00213      { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
00214    }
00215 #endif
00216 ;
00217
00218
00219 // simplify call to n_days with structures
00220 #define _n_days( _s ) \
00221   n_days( (_s)->mday, (_s)->month, (_s)->year )
00222
00223
00224 /* ----- function prototypes begin ----- */
00225
00226 /* This section was generated automatically */
00227 /* by MAKEHDR, do not remove the comments. */
00228
00229  void set_timeout( TIMEOUT *t, clock_t clk, clock_t interval ) ;
00230  void stretch_timeout( TIMEOUT *t, clock_t interval ) ;
00231  bit check_timeout( TIMEOUT *t, clock_t clk ) ;
00232  int err_tm( TM_GPS *tm ) ;
00233  TM_GPS *clear_time( TM_GPS *tm ) ;
00234  TM_GPS *wsec_to_tm( long wsec, TM_GPS *tm ) ;
00235  long tm_to_wsec( TM_GPS *tm ) ;
00236  int is_leap_year( int y ) ;
00237  int day_of_year( int day, int month, int year ) ;
00238  void date_of_year ( int year, int day_num, TM_GPS *tm ) ;
00239  int day_of_week( int day, int month, int year ) ;
00240  int days_to_years( long *day_num, int year ) ;
00241  long n_days( ushort mday, ushort month, ushort year ) ;
00242  double nano_time_to_double( const NANO_TIME *p ) ;
00243  void double_to_nano_time( NANO_TIME *p, double d ) ;
00244  int sprint_time( char *s, const TM_GPS *tm ) ;
00245  int sprint_short_time( char *s, TM_GPS *time ) ;
00246  int sprint_date( char *s, const TM_GPS *tm ) ;
00247  int sprint_day_date( char *s, const TM_GPS *tm ) ;
00248  int sprint_tm( char *s, const TM_GPS *tm ) ;
00249  void sscan_time( char *s, TM_GPS *tm ) ;
00250  void sscan_date( char *s, TM_GPS *tm ) ;
00251
00252 /* ----- function prototypes end ----- */
00253
00254
00255 /* End of header body */
00256
00257
00258 #undef _ext
00259
00260 #ifdef __cplusplus
00261 }
00262 #endif
00263
00264
00265 #endif  /* _MBGTIME_H */
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/mbgutil.h Source File

  • Files

c/mbglib/include/mbgutil.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: mbgutil.h 1.16 2009/08/14 10:11:53Z daniel REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions used with mbgutil.c.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: mbgutil.h $
00013  *  Revision 1.16  2009/08/14 10:11:53Z  daniel
00014  *  New version code 306, compatibility version still 110.
00015  *  Revision 1.15  2009/06/09 08:57:47Z  daniel
00016  *  Rev No. 305
00017  *  Revision 1.14  2009/03/19 09:06:00Z  daniel
00018  *  New version code 304, compatibility version still 110.
00019  *  Revision 1.13  2009/01/12 09:35:41Z  daniel
00020  *  New version code 303, compatibility version still 110.
00021  *  Updated function prototypes.
00022  *  Revision 1.12  2008/01/17 10:15:26Z  daniel
00023  *  New version code 302, compatibility version still 110.
00024  *  Revision 1.11  2007/10/16 10:01:17Z  daniel
00025  *  New version code 301, compatibility version still 110.
00026  *  Revision 1.9  2007/03/21 16:48:31Z  martin
00027  *  New version code 219, compatibility version still 110.
00028  *  Revision 1.8  2006/08/09 13:18:18Z  martin
00029  *  New version code 218, compatibility version still 110.
00030  *  Revision 1.7  2006/06/08 10:48:52Z  martin
00031  *  New version code 217, compatibility version still 110.
00032  *  Added macro _mbg_strncpy().
00033  *  Revision 1.6  2006/05/10 10:56:54Z  martin
00034  *  Updated function prototypes.
00035  *  Revision 1.5  2006/05/02 13:24:49Z  martin
00036  *  New version code 216, compatibility version still 110.
00037  *  Revision 1.4  2006/01/11 12:24:05Z  martin
00038  *  New version code 215, compatibility version still 110.
00039  *  Revision 1.3  2005/12/15 10:01:51Z  martin
00040  *  New version 214, compatibility version still 110.
00041  *  Revision 1.2  2005/02/18 15:13:42Z  martin
00042  *  Updated function prototypes.
00043  *  Revision 1.1  2005/02/18 10:39:49Z  martin
00044  *  Initial revision
00045  *
00046  **************************************************************************/
00047
00048 #ifndef _MBGUTIL_H
00049 #define _MBGUTIL_H
00050
00051
00052 /* Other headers to be included */
00053
00054 #include <mbg_tgt.h>
00055 #include <use_pack.h>
00056 #include <pcpsdefs.h>
00057 #include <mbggeo.h>
00058 #include <pci_asic.h>
00059
00060
00061 #define MBGUTIL_VERSION         0x0306
00062
00063 #define MBGUTIL_COMPAT_VERSION  0x0110
00064
00065
00066 #if defined( MBG_TGT_WIN32 )
00067
00068   #include <windows.h>
00069
00070 #elif defined( MBG_TGT_LINUX )
00071
00072
00073 #elif defined( MBG_TGT_OS2 )
00074
00075
00076 #elif defined( MBG_TGT_DOS )
00077
00078   #if !defined( MBG_USE_DOS_TSR )
00079   #endif
00080
00081 #else
00082
00083 #endif
00084
00085 #ifdef _MBGUTIL
00086  #define _ext
00087  #define _DO_INIT
00088 #else
00089  #define _ext extern
00090 #endif
00091
00092
00093 /* Start of header body */
00094
00095 #if defined( _USE_PACK )      // set byte alignment
00096   #pragma pack( 1 )
00097 #endif
00098
00099
00100 #if defined( MBG_TGT_WIN32 )
00101
00102 #elif defined( MBG_TGT_LINUX )
00103
00104 #elif defined( MBG_TGT_OS2 )
00105
00106 #else
00107
00108 #endif
00109
00110
00111
00112 /* function prototypes: */
00113
00114 #ifdef __cplusplus
00115 extern "C" {
00116 #endif
00117
00118 // The macro below can be used to simplify the API call if
00119 // a string variable is used rather than a char *.
00120 #define _mbg_strncpy( _s, _src ) \
00121   mbg_strncpy( _s, sizeof( _s ), _src )
00122
00123
00124 /* ----- function prototypes begin ----- */
00125
00126 /* This section was generated automatically */
00127 /* by MAKEHDR, do not remove the comments. */
00128
00129  _MBG_API_ATTR int _MBG_API mbgutil_get_version( void ) ;
00130  _MBG_API_ATTR int _MBG_API mbgutil_check_version( int header_version ) ;
00131  _MBG_API_ATTR int _MBG_API mbg_snprintf( char *s, size_t max_len, const char * fmt, ... ) ;
00132  _MBG_API_ATTR int _MBG_API mbg_strncpy( char *s, size_t max_len, const char *src ) ;
00133  _MBG_API_ATTR int _MBG_API mbg_strchar( char *s, size_t max_len, char c, size_t n ) ;
00134  _MBG_API_ATTR int _MBG_API mbg_str_date_short( char *s, int max_len,  int mday, int month ) ;
00135  _MBG_API_ATTR int _MBG_API mbg_str_date( char *s, int max_len,  int mday, int month, int year ) ;
00136  _MBG_API_ATTR int _MBG_API mbg_str_time_short( char *s, int max_len,  int hour, int min ) ;
00137  _MBG_API_ATTR int _MBG_API mbg_str_time( char *s, int max_len, int hour, int min, int sec ) ;
00138  _MBG_API_ATTR int _MBG_API mbg_str_time_long( char *s, int max_len, int hour, int min, int sec, int sec100 ) ;
00139  _MBG_API_ATTR int _MBG_API mbg_str_tm_gps_date_time( char *s, int max_len, const TM_GPS *pt ) ;
00140  _MBG_API_ATTR int _MBG_API mbg_str_pcps_date_short( char *s, int max_len,  const PCPS_TIME *pt ) ;
00141  _MBG_API_ATTR int _MBG_API mbg_str_pcps_date( char *s, int max_len,  const PCPS_TIME *pt ) ;
00142  _MBG_API_ATTR int _MBG_API mbg_str_pcps_time_short( char *s, int max_len, const PCPS_TIME *pt ) ;
00143  _MBG_API_ATTR int _MBG_API mbg_str_pcps_time( char *s, int max_len, const PCPS_TIME *pt ) ;
00144  _MBG_API_ATTR int _MBG_API mbg_str_pcps_time_long( char *s, int max_len, const PCPS_TIME *pt ) ;
00145  _MBG_API_ATTR int _MBG_API mbg_str_pcps_date_time( char *s, int max_len,  const PCPS_TIME *pt,  const char *tz_str ) ;
00146  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date( char *s, int max_len,  uint32_t sec ) ;
00147  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time( char *s, int max_len,  uint32_t sec ) ;
00148  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date_time_utc( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00149  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_date_time_loc( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00150  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_frac( char *s, int max_len,  uint32_t frac ) ;
00151  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_offs( char *s, int max_len,  const PCPS_HR_TIME *pt, const char *info ) ;
00152  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_tstamp_utc( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00153  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_tstamp_loc( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00154  _MBG_API_ATTR int _MBG_API mbg_str_pcps_tstamp_raw( char *s, int max_len,  const PCPS_TIME_STAMP *pt ) ;
00155  _MBG_API_ATTR int _MBG_API mbg_str_pcps_hr_time_raw( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00156  _MBG_API_ATTR int _MBG_API mbg_str_ucap( char *s, int max_len,  const PCPS_HR_TIME *pt ) ;
00157  _MBG_API_ATTR int _MBG_API mbg_str_pos_dms( char *s, int max_len,  const DMS *pdms, int prec ) ;
00158  _MBG_API_ATTR int _MBG_API mbg_str_pos_alt( char *s, int max_len, double alt ) ;
00159  _MBG_API_ATTR int _MBG_API mbg_str_pos( char *s, int max_len,  const POS *ppos, int prec ) ;
00160  _MBG_API_ATTR int _MBG_API mbg_str_dev_name( char *s, int max_len, const char *short_name,  uint16_t fw_rev_num, PCI_ASIC_VERSION asic_version_num ) ;
00161
00162 /* ----- function prototypes end ----- */
00163
00164 #ifdef __cplusplus
00165 }
00166 #endif
00167
00168
00169 #if defined( _USE_PACK )   // set default alignment
00170   #pragma pack()
00171 #endif
00172
00173 /* End of header body */
00174
00175
00176 #undef _ext
00177 #undef _DO_INIT
00178
00179 #endif  /* _MBGUTIL_H */
00180
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/msc/resource.h Source File

  • Files

c/demo/mbgsvcio/msc/resource.h

Go to the documentation of this file.
00001 //{{NO_DEPENDENCIES}}
00002 // Microsoft Developer Studio generated include file.
00003 // Used by mbgdmpst.rc
00004 //
00005
00006 // Next default values for new objects
00007 //
00008 #ifdef APSTUDIO_INVOKED
00009 #ifndef APSTUDIO_READONLY_SYMBOLS
00010 #define _APS_NEXT_RESOURCE_VALUE        101
00011 #define _APS_NEXT_COMMAND_VALUE         40001
00012 #define _APS_NEXT_CONTROL_VALUE         1000
00013 #define _APS_NEXT_SYMED_VALUE           101
00014 #endif
00015 #endif
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pci_asic.h Source File

  • Files

c/mbglib/include/pci_asic.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: pci_asic.h 1.15 2009/03/27 09:39:15Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions for the Meinberg PCI interface ASIC.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: pci_asic.h $
00013  *  Revision 1.15  2009/03/27 09:39:15Z  martin
00014  *  Increased current ASIC minor number for TCR170PEX to 0x02.
00015  *  Renamed some symbols.
00016  *  Revision 1.14  2009/03/11 16:54:10Z  martin
00017  *  Increased current ASIC minor number for TCR511PEX to 0x04.
00018  *  Fixed a typo.
00019  *  Revision 1.13  2008/12/05 12:28:18Z  martin
00020  *  Modified syntax of macro _convert_asic_version_number().
00021  *  Added macros to deal with the ASIC version number.
00022  *  Added definition PCI_ASIC_HAS_PGMB_IRQ.
00023  *  Added ASIC revision numbers for PEX511, TCR511PEX, and GPS170PEX
00024  *  which fix an IRQ bug with these cards.
00025  *  Added definitions for PTP270PEX, FRC511PEX, and TCR170PEX.
00026  *  Revision 1.12  2008/07/21 10:30:00Z  martin
00027  *  Added macros to convert the endianess of data types.
00028  *  Added PCI_ASIC_CURRENT_MINOR_... symbols.
00029  *  Revision 1.11  2008/06/11 09:49:43  martin
00030  *  Added definitions and comments how to handle version numbers
00031  *  of the PCI and PEX interface chips and EPLDs.
00032  *  Revision 1.10  2008/02/29 15:21:48Z  martin
00033  *  Added definition PCI_ASIC_HAS_MM_IO.
00034  *  Revision 1.9  2008/01/17 09:51:05  daniel
00035  *  Added macro _convert_asic_version_number().
00036  *  Cleanup for PCI ASIC version and features.
00037  *  Revision 1.8  2006/06/14 12:59:12Z  martin
00038  *  Added support for TCR511PCI.
00039  *  Revision 1.7  2006/03/10 10:47:03  martin
00040  *  Added support for PCI511.
00041  *  Revision 1.6  2005/11/03 15:30:44Z  martin
00042  *  Added support for GPS170PCI.
00043  *  Revision 1.5  2004/11/09 12:51:56Z  martin
00044  *  Redefined fixed width data types using standard C99 types.
00045  *  Defined some constants unsigned.
00046  *  Revision 1.4  2004/10/14 15:01:23  martin
00047  *  Added support for TCR167PCI.
00048  *  Revision 1.3  2003/05/13 14:38:55Z  MARTIN
00049  *  Added ushort fields to unions PCI_ASIC_REG and
00050  *  PCI_ASIC_ADDON_DATA.
00051  *  Revision 1.2  2003/04/03 10:56:38  martin
00052  *  Use unions for registers.
00053  *  Modified BADR0 initializer due to fixed size of address decoder.
00054  *  Revision 1.1  2003/02/07 11:42:52  MARTIN
00055  *  Initial revision
00056  *
00057  **************************************************************************/
00058
00059 #ifndef _PCI_ASIC_H
00060 #define _PCI_ASIC_H
00061
00062
00063 /* Other headers to be included */
00064
00065 #include <words.h>
00066 #include <use_pack.h>
00067
00068 #if defined( _USE_PACK )      // set byte alignment
00069   #pragma pack( 1 )
00070 #endif
00071
00072
00073 #ifdef _PCI_ASIC
00074  #define _ext
00075  #define _DO_INIT
00076 #else
00077  #define _ext extern
00078 #endif
00079
00080
00081 /* Start of header body */
00082
00083
00084 typedef struct
00085 {
00086   uint32_t cfg_class_rev_id;
00087   uint16_t cfg_badr_0;
00088   uint16_t cfg_dev_id;
00089 } PCI_ASIC_CFG;
00090
00091
00092 typedef union
00093 {
00094   uint32_t ul;
00095   uint16_t us[2];
00096   uint8_t b[4];
00097 } PCI_ASIC_REG;
00098
00099
00100 typedef uint32_t PCI_ASIC_VERSION;
00101 #define _mbg_swab_asic_version( _p )   _mbg_swab32( _p )
00102
00103 typedef uint32_t PCI_ASIC_FEATURES;
00104 #define _mbg_swab_asic_features( _p )  _mbg_swab32( _p )
00105
00106 #define PCI_ASIC_HAS_MM_IO     0x0001
00107 #define PCI_ASIC_HAS_PGMB_IRQ  0x0002
00108
00109
00110 typedef union
00111 {
00112   uint32_t ul[4];
00113   uint16_t us[8];
00114   uint8_t b[16];
00115 } PCI_ASIC_ADDON_DATA;
00116
00117
00118 typedef struct
00119 {
00120   PCI_ASIC_CFG cfg;             // writeable from add-on once after power-up
00121   PCI_ASIC_VERSION raw_version;
00122   PCI_ASIC_FEATURES features;
00123   PCI_ASIC_REG status_port;
00124   PCI_ASIC_REG control_status;     // codes defined below
00125   PCI_ASIC_REG pci_data;           // pass byte from PCI bus to add-on
00126   PCI_ASIC_REG reserved_1;
00127
00128   PCI_ASIC_ADDON_DATA addon_data;  // returns data from add-on to PCI bus
00129   PCI_ASIC_ADDON_DATA reserved_2;  // currently not implemented
00130 } PCI_ASIC;
00131
00132
00133 // The following bits are used with the control_status register.
00134 // All other bits are reserved for future use.
00135
00136 // The IRQ flag for the add-on side is set whenever data is
00137 // written to the cmd register. It is cleared if the add-on
00138 // microcontroller writes this bit back to the control_status
00139 // register. If the bit is set, the add-on signals /ADD_ON_IRQ
00140 // and ADD_ON_BUSY are asserted.
00141 #define PCI_ASIC_ADD_ON_IRQF   0x00000001UL
00142
00143 // The IRQ flag for the PCI bus is set whenever the add-on
00144 // microcontroller asserts the ASIC's /PCI_IRQ line, or the
00145 // add-on microcontroller sets this bit to 1. It is cleared
00146 // if this bit is written back from the PCI side. If the bit
00147 // is set, an IRQ is asserted on the PCI bus.
00148 #define PCI_ASIC_PCI_IRQF      0x00010000UL
00149
00150
00151 // The ASIC's address decoder always decodes 8 bits, so
00152 // each device must request at least that number of
00153 // addresses from the PCI BIOS:
00154 #define PCI_ASIC_ADDR_RANGE    0x100U
00155
00156
00157 // Initializers for device configurations
00158
00159 #define PCPS_DEV_CLASS_CODE   0x08800000UL
00160 #define PCI_ASIC_BADR0_INIT   ( ~( PCI_ASIC_ADDR_RANGE - 1 ) | 0x01 )
00161
00162
00163 #define PCI_ASIC_CFG_PCI510          \
00164 {                                    \
00165   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00166   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00167   _hilo_16( PCI_DEV_PCI510 )         \
00168 }
00169
00170 #define PCI_ASIC_CFG_GPS169PCI       \
00171 {                                    \
00172   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00173   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00174   _hilo_16( PCI_DEV_GPS169PCI )      \
00175 }
00176
00177 #define PCI_ASIC_CFG_TCR510PCI       \
00178 {                                    \
00179   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00180   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00181   _hilo_16( PCI_DEV_TCR510PCI )      \
00182 }
00183
00184 #define PCI_ASIC_CFG_TCR167PCI       \
00185 {                                    \
00186   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00187   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00188   _hilo_16( PCI_DEV_TCR167PCI )      \
00189 }
00190
00191 #define PCI_ASIC_CFG_GPS170PCI       \
00192 {                                    \
00193   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00194   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00195   _hilo_16( PCI_DEV_GPS170PCI )      \
00196 }
00197
00198 #define PCI_ASIC_CFG_PCI511          \
00199 {                                    \
00200   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00201   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00202   _hilo_16( PCI_DEV_PCI511 )         \
00203 }
00204
00205 #define PCI_ASIC_CFG_TCR511PCI       \
00206 {                                    \
00207   _hilo_32( PCPS_DEV_CLASS_CODE ),   \
00208   _hilo_16( PCI_ASIC_BADR0_INIT ),   \
00209   _hilo_16( PCI_DEV_TCR511PCI )      \
00210 }
00211
00212 /*
00213   Handling of the version numbers of the PCI interface
00214   chips has changed between the ASICs used for standard PCI
00215   and the EPLDs used to configure the PEX8311 chip
00216   for a specific device.
00217
00218   The macro below can be used to convert both types
00219   of version number into the same format so that the
00220   version numbers can be handled in the same way:
00221 */
00222 #define _convert_asic_version_number( _n ) \
00223   ( ( (_n) < 0x100 ) ? ( (_n) << 8 ) : (_n) )
00224
00225
00226
00227 /*
00228  * Macros to extract the major and minor part of an ASIC version number */
00229
00230 #define _pcps_asic_version_major( _v ) \
00231   ( ( (_v) >> 8 ) & 0xFF )
00232
00233 #define _pcps_asic_version_minor( _v ) \
00234   ( (_v) & 0xFF )
00235
00236
00237 /*
00238  * Macros to check whether a version number is correct
00239  * and matches a required minimum version
00240  */
00241 #define _pcps_asic_version_greater_equal( _v, _v_major, _v_minor ) \
00242   (                                                                \
00243     ( _pcps_asic_version_major( _v ) == (_v_major) ) &&            \
00244     ( _pcps_asic_version_minor( _v ) >= (_v_minor) )               \
00245   )
00246
00247
00248 /*
00249   The low byte of the converted version number is handled
00250   as a minor version, whereas the remaining upper bytes are
00251   interpreted as a major number which may be specific
00252   for a device.
00253 */
00254 enum
00255 {
00256   PCI_ASIC_MAJOR_PCI_0,      // PCI ASIC with CRC bug
00257   PCI_ASIC_MAJOR_PCI_1,      // fixed version of PCI ASIC
00258   PCI_ASIC_MAJOR_PEX511,     // PEX EPLD for PEX511
00259   PCI_ASIC_MAJOR_GPS170PEX,  // PEX EPLD for GPS170PEX
00260   PCI_ASIC_MAJOR_TCR511PEX,  // PEX EPLD for TCR511PEX
00261   PCI_ASIC_MAJOR_PTP270PEX,  // PEX EPLD for PTP270PEX
00262   PCI_ASIC_MAJOR_FRC511PEX,  // PEX EPLD for FRC511PEX
00263   PCI_ASIC_MAJOR_TCR170PEX,  // PEX EPLD for TCR170PEX
00264   N_PCI_ASIC_MAJOR           // the number of known codes
00265 };
00266
00267 /*
00268   The minor number increases when a new EPLD image is released.
00269   At least EPLD images with the following "required minor" numbers
00270   should be installed for proper operation. The "current minor"
00271   numbers can be used to check if a newer EPLD image is available:
00272 */
00273 #define PCI_ASIC_CURRENT_MINOR_PEX511      0x04
00274 #define PCI_ASIC_REQUIRED_MINOR_PEX511     0x03
00275 #define PCI_ASIC_FIX_HRT_MINOR_PEX511      0x04     // increases HRT accuracy
00276 #define PCI_ASIC_FIX_IRQ_MINOR_PEX511      0x03     // fixes IRQ problem
00277 #define PCI_ASIC_HR_TIME_MINOR_PEX511      0x02     // supports HR time with PEX511
00278
00279 #define PCI_ASIC_CURRENT_MINOR_GPS170PEX   0x04
00280 #define PCI_ASIC_REQUIRED_MINOR_GPS170PEX  0x03
00281 #define PCI_ASIC_FIX_HRT_MINOR_GPS170PEX   0x04     // increases MM HRT accuracy
00282 #define PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX   0x03     // fixes IRQ problem
00283
00284 #define PCI_ASIC_CURRENT_MINOR_TCR511PEX   0x04
00285 #define PCI_ASIC_REQUIRED_MINOR_TCR511PEX  0x03
00286 //                                         0x04     // EPLD sources shared with PEX511 0x04
00287 #define PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX   0x03     // fixes IRQ problem, increases HRT accuracy
00288
00289 #define PCI_ASIC_CURRENT_MINOR_PTP270PEX   0x01
00290 #define PCI_ASIC_REQUIRED_MINOR_PTP270PEX  0x01
00291
00292 #define PCI_ASIC_CURRENT_MINOR_FRC511PEX   0x01
00293 #define PCI_ASIC_REQUIRED_MINOR_FRC511PEX  0x01
00294
00295 #define PCI_ASIC_CURRENT_MINOR_TCR170PEX   0x02
00296 #define PCI_ASIC_REQUIRED_MINOR_TCR170PEX  0x02
00297 #define PCI_ASIC_FIX_EE_ACCESS_TCR170PEX   0x02     // fixes EE access problem after reset
00298
00299
00300 /* function prototypes: */
00301
00302 #ifdef __cplusplus
00303 extern "C" {
00304 #endif
00305
00306 /* ----- function prototypes begin ----- */
00307
00308 /* This section was generated automatically */
00309 /* by MAKEHDR, do not remove the comments. */
00310
00311 /* (no header definitions found) */
00312
00313 /* ----- function prototypes end ----- */
00314
00315 #ifdef __cplusplus
00316 }
00317 #endif
00318
00319
00320 #if defined( _USE_PACK )      // set default alignment
00321   #pragma pack()
00322 #endif
00323
00324 /* End of header body */
00325
00326 #undef _ext
00327 #undef _DO_INIT
00328
00329 #endif  /* _PCI_ASIC_H */
00330
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pcpsdefs.h Source File

  • Files

c/mbglib/include/pcpsdefs.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: pcpsdefs.h 1.41 2009/06/19 12:16:42Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    General definitions for Meinberg plug-in radio clocks
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: pcpsdefs.h $
00013  *  Revision 1.41  2009/06/19 12:16:42Z  martin
00014  *  Added PCPS_GIVE_IRIG_TIME command and associated definitions.
00015  *  Revision 1.40  2009/06/08 19:29:11  daniel
00016  *  Support PTP configuration.
00017  *  Support LAN_IF configuration
00018  *  Added definition of PCPS_CMD_INFO.
00019  *  Revision 1.39  2009/03/19 08:58:09  martin
00020  *  Added PCPS_GET_IRIG_CTRL_BITS cmd and associated data type.
00021  *  Revision 1.38  2009/03/10 17:07:09  martin
00022  *  Support configurable time scales and GPS UTC parameters.
00023  *  Added ext. status flag for time scales, and PCPS_LS_ANN_NEG.
00024  *  Added bit mask PCPS_SCALE_MASK.
00025  *  Revision 1.37  2008/12/05 16:01:37Z  martin
00026  *  Added ref types PTP, FRC, and WWVB.
00027  *  Added ref names MSF, PTP, FRC, and WWVB.
00028  *  Added device codes TCR170PEX, PTP270PEX, and FRC511PEX.
00029  *  Added macros to convert the endianess of structures.
00030  *  Moved definitions of PCPS_HRT_FRAC_SCALE and
00031  *  PCPS_HRT_FRAC_SCALE_FMT here.
00032  *  Added definitions of PCPS_HRT_FRAC_CONVERSION_TYPE
00033  *  and PCPS_HRT_BIN_FRAC_SCALE.
00034  *  Escaped '<' and '>' characters for doxygen.
00035  *  Modified comments for PCPS_TZDL.
00036  *  Removed trailing spaces and obsolete comments.
00037  *  Revision 1.36  2008/01/17 09:20:25Z  daniel
00038  *  Added new REF type PCPS_REF_MSF.
00039  *  Revision 1.35  2008/01/17 09:18:46Z  daniel
00040  *  Made comments compatible for doxygen parser.
00041  *  No sourcecode changes.
00042  *  Revision 1.34  2007/07/17 08:22:47Z  martin
00043  *  Added support for TCR511PEX and GPS170PEX.
00044  *  Revision 1.33  2007/05/20 21:39:51Z  martin
00045  *  Added support for PEX511.
00046  *  Added PCPS_GET_STATUS_PORT cmd code for devices
00047  *  that do not support a hardware status port.
00048  *  Revision 1.32  2007/03/29 12:57:32Z  martin
00049  *  Renamed some TZCODE numbers for unique naming conventions.
00050  *  Added definitions of the older symbols for compatibility.
00051  *  Revision 1.31  2007/03/26 15:42:31Z  martin
00052  *  Replaced PCPS_REF_OFFS and associated definitions by MBG_REF_OFFS, etc.,
00053  *  which are defined in gpsdefs.h.
00054  *  Added PCPS_GET_DEBUG_STATUS code.
00055  *  Revision 1.30  2006/06/29 10:13:13  martin
00056  *  Added some descriptive comments.
00057  *  Revision 1.29  2006/06/14 12:59:12Z  martin
00058  *  Added support for TCR511PCI.
00059  *  Revision 1.28  2006/05/18 09:45:16  martin
00060  *  Added data types used with PZF receivers.
00061  *  Revision 1.27  2006/05/03 10:19:14Z  martin
00062  *  Added initializers for reference source names.
00063  *  Revision 1.26  2006/03/10 10:24:45Z  martin
00064  *  New definitions for PCI511.
00065  *  Added command codes to configure programmable pulse outputs.
00066  *  Revision 1.25  2005/11/03 15:05:16Z  martin
00067  *  New definitions for GPS170PCI.
00068  *  New types PCPS_TIME_STATUS and PCPS_TIME_STATUS_X.
00069  *  Removed obsolete enumeration of PCPS_TIME fields.
00070  *  Revision 1.24  2005/05/03 07:56:55Z  martin
00071  *  Added command PCPS_GET_SYNTH_STATE.
00072  *  Revision 1.23  2005/03/29 12:51:10Z  martin
00073  *  New cmd code PCPS_GENERIC_IO.
00074  *  Revision 1.22  2004/12/09 11:03:37Z  martin
00075  *  Support configuration of on-board frequency synthesizer.
00076  *  Revision 1.21  2004/11/09 12:55:32Z  martin
00077  *  Redefined interface data types using C99 fixed-size definitions.
00078  *  Added workaround macros for some structure sizes because the C166
00079  *  compiler always reports an even structure size even if the structure
00080  *  size is in fact odd, which might lead to different sizes in C166 and
00081  *  other environments.
00082  *  Modifications were required in order to be able to configure IRIG
00083  *  settings of cards which provide both IRIG input and output.
00084  *  The existing codes have been renamed with .._RX.. and are used to
00085  *  configure the IRIG receiver (input). New codes have been defined
00086  *  used to configure the IRIG transmitter.
00087  *  Renamed PC_GPS_STAT to PC_GPS_BVAR_STAT.
00088  *  Use more specific data types than generic types.
00089  *  Revision 1.20  2004/10/14 15:01:23  martin
00090  *  Added support for TCR167PCI.
00091  *  Revision 1.19  2004/06/16 12:46:33Z  martin
00092  *  Moved OPT_SETTINGS related definitions to gpsdefs.h,
00093  *  and renamed symbols from PCPS_.. to to MBG_...
00094  *  Revision 1.18  2004/04/26 14:27:08Z  martin
00095  *  Added union PCPS_TIME_UNION.
00096  *  Revision 1.17  2003/05/27 08:50:35Z  MARTIN
00097  *  New commands PCPS_GIVE_UCAP_ENTRIES, PCPS_GIVE_UCAP_EVENT
00098  *  and associated definitions which allow faster reading of
00099  *  user capture events and monitoring of the capture buffer
00100  *  fill level.
00101  *  Revision 1.16  2003/04/03 10:48:53  martin
00102  *  Support for PCI510, GPS169PCI, and TCR510PCI.
00103  *  New codes PCPS_GET_REF_OFFS, PCPS_SET_REF_OFFS
00104  *  and related structures.
00105  *  New codes PCPS_GET_OPT_INFO, PCPS_SET_OPT_SETTINGS
00106  *  and related structures.
00107  *  New codes PCPS_GET_IRIG_INFO, PCPS_SET_IRIG_SETTINGS.
00108  *  Preliminary PCPS_TZDL structure and cmd codes
00109  *  to read/write that structure.
00110  *  Revision 1.15  2002/08/08 13:24:03  MARTIN
00111  *  Moved definition of ref time sources here.
00112  *  Added new ref time source IRIG.
00113  *  Added new cmd to clear time capture buffer.
00114  *  Fixed some comments.
00115  *  Revision 1.14  2002/01/31 13:39:38  MARTIN
00116  *  Added new GPS data type codes for RECEIVER_INFO, etc.
00117  *  New PCPS_HR_TIME status flag PCPS_IO_BLOCKED.
00118  *  Moved REV_NUMs defining special features to pcpsdev.h.
00119  *  Removed obsolete initializer for framing string table.
00120  *  Updated some comments.
00121  *  Removed obsolete code.
00122  *  Revision 1.13  2001/12/03 16:15:14  martin
00123  *  Introduced PCPS_TIME_STAMP which allows to handle high precision
00124  *  time stamps.
00125  *  Replaced the sec/frac fields in PCPS_HR_TIME by PCPS_TIME_STAMP.
00126  *  This is compatible on byte level but may require source code
00127  *  modifications.
00128  *  Introduced new command PCPS_SET_EVENT_TIME which is used
00129  *  EXCLUSIVELY with a custom GPS firmware.
00130  *  Revision 1.12  2001/10/16 10:07:42  MARTIN
00131  *  Defined PCI509 firmware revision number which supports
00132  *  baud rate higher than standard.
00133  *  Revision 1.11  2001/03/30 13:02:39  MARTIN
00134  *  Control alignment of structures from new file use_pack.h.
00135  *  Defined initializers with valid framing parameters.
00136  *  Revision 1.10  2001/02/28 15:39:25  MARTIN
00137  *  Modified preprocessor syntax.
00138  *  Revision 1.9  2001/02/16 11:32:05  MARTIN
00139  *  Renamed "PROM" or "EPROM" in comments or and names to
00140  *  "FW" or firmware.
00141  *  This includes the cmd codes PCPS_GIVE_PROM_ID_... which have
00142  *  been renamed to PCPS_GIVE_FW_ID_...
00143  *  Renamed structure PCPS_TIME_SET to PCPS_STIME.
00144  *  Renamed return code PCPS_ERR_NONE to PCPS_SUCCESS.
00145  *  Modified some comments.
00146  *  Revision 1.8  2000/10/11 09:17:09  MARTIN
00147  *  Cleaned up comment syntax.
00148  *  Revision 1.7  2000/07/21 14:16:30  MARTIN
00149  *  Modified some comments.
00150  *  Added PCI definitions.
00151  *  Renamed PCPS_GET_GPS_DATA to PCPS_READ_GPS_DATA.
00152  *  Renamed PCPS_SET_GPS_DATA to PCPS_WRITE_GPS_DATA.
00153  *  New types PCPS_SERIAL and PCPS_TZCODE.
00154  *  Removed PCPS_SERIAL_BYTES and PCPS_TZCODE_BYTES, may use sizeof()
00155  *  the types instead.
00156  *  New type PCPS_TIME_SET which can be used to write date and time
00157  *  to the clock.
00158  *  Revision 1.6  2000/06/07 12:09:31  MARTIN
00159  *  renamed PCPS_SERIAL_GROUP to PCPS_CFG_GROUP
00160  *  renamed PCPS_ERR_SERIAL to PCPS_ERR_CFG
00161  *  modified definitions for baud rate, framing, and mode
00162  *  added PCPS_SN_... definitions
00163  *  added PCPS_GET_TZCODE and PCPS_SET_TZCODE definitions
00164  *  added PC_GPS_ANT_CABLE_LEN definition
00165  *  added RCS keywords
00166  *  updated some comments
00167  *
00168  * -----------------------------------------------------------------------
00169  *  Changes before put under RCS control:
00170  *
00171  *  Revision 1.5  2000/03/24
00172  *    Introduced PCPS_GIVE_SERNUM
00173  *    Cleaned up for definitions for serial parameter byte
00174  *    Reviewed and updated comments.
00175  *
00176  *  1998/07/22
00177  *    Introduced PCPS_HR_TIME.
00178  *    Rearranged order of definitions.
00179  *    Reviewed and updated comments.
00180  *
00181  *  1997/06/12
00182  *    GPS definitions added.
00183  *
00184  *  1996/01/25
00185  *    PCPS_TIME redefined from an array of bytes to a structure.
00186  *
00187  **************************************************************************/
00188
00189 #ifndef _PCPSDEFS_H
00190 #define _PCPSDEFS_H
00191
00192
00193 /* Other headers to be included */
00194
00195 #include <words.h>
00196 #include <use_pack.h>
00197
00198
00199 /* Start of header body  */
00200
00201 #if defined( _USE_PACK )   // set byte alignment
00202   #pragma pack( 1 )
00203 #endif
00204
00205
00210 enum
00211 {
00212   PCPS_REF_NONE,
00213   PCPS_REF_DCF,
00214   PCPS_REF_GPS,
00215   PCPS_REF_IRIG,
00216   PCPS_REF_MSF,
00217   PCPS_REF_PTP,
00218   PCPS_REF_FRC,
00219   PCPS_REF_WWVB,
00220   N_PCPS_REF
00221 };
00222
00223
00224 /* Initializers for the reference source names */
00225
00226 #define PCPS_REF_NAME_NONE_ENG  "unknown"
00227 #define PCPS_REF_NAME_NONE_GER  "nicht bekannt"
00228 #define PCPS_REF_NAME_DCF       "DCF77"
00229 #define PCPS_REF_NAME_GPS       "GPS"
00230 #define PCPS_REF_NAME_IRIG      "IRIG"
00231 #define PCPS_REF_NAME_MSF       "MSF"
00232 #define PCPS_REF_NAME_PTP       "PTP"
00233 #define PCPS_REF_NAME_FRC       "FRC"
00234 #define PCPS_REF_NAME_WWVB      "WWVB"
00235
00236
00237 #define PCPS_REF_NAMES_ENG \
00238 {                          \
00239   PCPS_REF_NAME_NONE_ENG,  \
00240   PCPS_REF_NAME_DCF,       \
00241   PCPS_REF_NAME_GPS,       \
00242   PCPS_REF_NAME_IRIG,      \
00243   PCPS_REF_NAME_MSF,       \
00244   PCPS_REF_NAME_PTP,       \
00245   PCPS_REF_NAME_FRC,       \
00246   PCPS_REF_NAME_WWVB       \
00247 }
00248
00249
00250 #define PCPS_REF_NAMES_LSTR                            \
00251 {                                                      \
00252   { PCPS_REF_NAME_NONE_ENG, PCPS_REF_NAME_NONE_GER },  \
00253   { PCPS_REF_NAME_DCF, NULL },                         \
00254   { PCPS_REF_NAME_GPS, NULL },                         \
00255   { PCPS_REF_NAME_IRIG, NULL },                        \
00256   { PCPS_REF_NAME_MSF, NULL },                         \
00257   { PCPS_REF_NAME_PTP, NULL },                         \
00258   { PCPS_REF_NAME_FRC, NULL },                         \
00259   { PCPS_REF_NAME_WWVB, NULL }                         \
00260 }
00261
00262
00263
00267 #define PCI_VENDOR_MEINBERG     0x1360
00268
00269 /* PCI device ID numbers (assigned by Meinberg) *
00270  *   High byte:  type of ref time source
00271  *   Low Byte:   enumeration of device types
00272  */
00273 #define PCI_DEV_PCI32           ( ( PCPS_REF_DCF << 8 )  | 0x01 )
00274 #define PCI_DEV_PCI509          ( ( PCPS_REF_DCF << 8 )  | 0x02 )
00275 #define PCI_DEV_PCI510          ( ( PCPS_REF_DCF << 8 )  | 0x03 )
00276 #define PCI_DEV_PCI511          ( ( PCPS_REF_DCF << 8 )  | 0x04 )
00277 #define PCI_DEV_PEX511          ( ( PCPS_REF_DCF << 8 )  | 0x05 )
00278
00279 #define PCI_DEV_GPS167PCI       ( ( PCPS_REF_GPS << 8 )  | 0x01 )
00280 #define PCI_DEV_GPS168PCI       ( ( PCPS_REF_GPS << 8 )  | 0x02 )
00281 #define PCI_DEV_GPS169PCI       ( ( PCPS_REF_GPS << 8 )  | 0x03 )
00282 #define PCI_DEV_GPS170PCI       ( ( PCPS_REF_GPS << 8 )  | 0x04 )
00283 #define PCI_DEV_GPS170PEX       ( ( PCPS_REF_GPS << 8 )  | 0x05 )
00284
00285 #define PCI_DEV_TCR510PCI       ( ( PCPS_REF_IRIG << 8 ) | 0x01 )
00286 #define PCI_DEV_TCR167PCI       ( ( PCPS_REF_IRIG << 8 ) | 0x02 )
00287 #define PCI_DEV_TCR511PCI       ( ( PCPS_REF_IRIG << 8 ) | 0x03 )
00288 #define PCI_DEV_TCR511PEX       ( ( PCPS_REF_IRIG << 8 ) | 0x04 )
00289 #define PCI_DEV_TCR170PEX       ( ( PCPS_REF_IRIG << 8 ) | 0x05 )
00290
00291 #define PCI_DEV_PTP270PEX       ( ( PCPS_REF_PTP  << 8 ) | 0x01 )
00292
00293 #define PCI_DEV_FRC511PEX       ( ( PCPS_REF_FRC  << 8 ) | 0x01 )
00294
00526 #define PCPS_GIVE_TIME_GROUP     0x00
00527 #define PCPS_SET_TIME_GROUP      0x10
00528 #define PCPS_IRQ_GROUP           0x20
00529 #define PCPS_CFG_GROUP           0x30
00530 #define PCPS_GIVE_DATA_GROUP     0x40
00531 #define PCPS_GPS_DATA_GROUP      0x50
00532 #define PCPS_CTRL_GROUP          0x60
00533 #define PCPS_CFG2_GROUP          0x70
00534
00535
00536 /* PCPS_GIVE_TIME_GROUP */
00537 #define PCPS_GIVE_TIME           ( PCPS_GIVE_TIME_GROUP | 0x0 )
00538 #define PCPS_GIVE_TIME_NOCLEAR   ( PCPS_GIVE_TIME_GROUP | 0x1 )
00539 #define PCPS_GIVE_SYNC_TIME      ( PCPS_GIVE_TIME_GROUP | 0x2 )  // only supported if _pcps_has_sync_time()
00540 #define PCPS_GIVE_HR_TIME        ( PCPS_GIVE_TIME_GROUP | 0x3 )  // only supported if _pcps_has_hr_time()
00541 #define PCPS_GIVE_IRIG_TIME      ( PCPS_GIVE_TIME_GROUP | 0x4 )  // only supported if _pcps_has_irig_time()
00542
00543
00544 /* PCPS_SET_TIME_GROUP */
00545 #define PCPS_SET_TIME            ( PCPS_SET_TIME_GROUP  | 0x0 )
00546 /* on error, return PCPS_ERR_STIME */
00547
00548 /* Attention: The code below can be used EXCLUSIVELY */
00549 /* with a GPS167PCI with customized CERN firmware !! */
00550 /* _pcps_has_event_time() checks whether supported. */
00551 #define PCPS_SET_EVENT_TIME      ( PCPS_SET_TIME_GROUP  | 0x4 )
00552
00553
00554 /* PCPS_IRQ_GROUP */
00555 #define PCPS_IRQ_NONE            ( PCPS_IRQ_GROUP  | 0x0 )
00556 #define PCPS_IRQ_1_SEC           ( PCPS_IRQ_GROUP  | 0x1 )
00557 #define PCPS_IRQ_1_MIN           ( PCPS_IRQ_GROUP  | 0x2 )
00558 #define PCPS_IRQ_10_MIN          ( PCPS_IRQ_GROUP  | 0x4 )
00559 #define PCPS_IRQ_30_MIN          ( PCPS_IRQ_GROUP  | 0x8 )
00560
00561
00562 /* PCPS_CFG_GROUP */
00563
00564 #define PCPS_GET_SERIAL          ( PCPS_CFG_GROUP | 0x0 )
00565 #define PCPS_SET_SERIAL          ( PCPS_CFG_GROUP | 0x1 )
00566 /* on error, return PCPS_ERR_CFG */
00567
00568 typedef uint8_t PCPS_SERIAL;
00569
00570
00571 #define PCPS_GET_TZCODE          ( PCPS_CFG_GROUP | 0x2 )
00572 #define PCPS_SET_TZCODE          ( PCPS_CFG_GROUP | 0x3 )
00573 /* on error, return PCPS_ERR_CFG */
00574
00575 typedef uint8_t PCPS_TZCODE;
00576
00577 /* the following codes are used with the PCPS_TZCODE parameter: */
00578 enum
00579 {
00580   PCPS_TZCODE_CET_CEST,  /* default as broadcasted by DCF77 (UTC+1h/UTC+2h) */
00581   PCPS_TZCODE_CET,       /* always CET (UTC+1h), discard DST */
00582   PCPS_TZCODE_UTC,       /* always UTC */
00583   PCPS_TZCODE_EET_EEST,  /* East European Time, CET/CEST + 1h */
00584   N_PCPS_TZCODE          /* the number of valid codes */
00585 };
00586
00587 /* the definitions below are for compatibily only: */
00588 #define PCPS_TZCODE_MEZMESZ  PCPS_TZCODE_CET_CEST
00589 #define PCPS_TZCODE_MEZ      PCPS_TZCODE_CET
00590 #define PCPS_TZCODE_OEZ      PCPS_TZCODE_EET_EEST
00591
00592
00593 #define PCPS_GET_PCPS_TZDL       ( PCPS_CFG_GROUP | 0x4 )
00594 #define PCPS_SET_PCPS_TZDL       ( PCPS_CFG_GROUP | 0x5 )
00595 /* on error, return PCPS_ERR_CFG */
00596
00602 typedef struct
00603 {
00604   // The year_or_wday field below contains the full year number
00605   // or 0..6 == Sun..Sat if the DL_AUTO_FLAG is set; see below.
00606   uint16_t year_or_wday;
00607   uint8_t month;
00608   uint8_t mday;
00609   uint8_t hour;
00610   uint8_t min;
00611 } PCPS_DL_ONOFF;
00612
00613 #define _mbg_swab_pcps_dl_onoff( _p )  \
00614 {                                      \
00615   _mbg_swab16( &(_p)->year_or_wday );  \
00616 }
00617
00627 #define DL_AUTO_FLAG  0x8000  // also defined in gpsdefs.h
00628
00629 typedef struct
00630 {
00631   int16_t offs;
00632   int16_t offs_dl;
00633   PCPS_DL_ONOFF tm_on;
00634   PCPS_DL_ONOFF tm_off;
00635 } PCPS_TZDL;
00636
00637 #define _mbg_swab_pcps_tzdl( _p )            \
00638 {                                            \
00639   _mbg_swab16( &(_p)->offs );                \
00640   _mbg_swab16( &(_p)->offs_dl );             \
00641   _mbg_swab_pcps_dl_onoff( &(_p)->tm_on );   \
00642   _mbg_swab_pcps_dl_onoff( &(_p)->tm_off );  \
00643 }
00644
00645
00646
00647 #define PCPS_GET_REF_OFFS        ( PCPS_CFG_GROUP | 0x6 )
00648 #define PCPS_SET_REF_OFFS        ( PCPS_CFG_GROUP | 0x7 )
00649 /* on error, return PCPS_ERR_CFG */
00650
00651 /* The associated type MBG_REF_OFFS is defined in gpsdefs.h. */
00652
00653
00654 #define PCPS_GET_OPT_INFO        ( PCPS_CFG_GROUP | 0x8 )
00655 #define PCPS_SET_OPT_SETTINGS    ( PCPS_CFG_GROUP | 0x9 )
00656 /* on error, return PCPS_ERR_CFG */
00657
00658 /* The associated structures MBG_OPT_INFO and MBG_OPT_SETTINGS
00659    are defined in gpsdefs.h. */
00660
00661
00662 #define PCPS_GET_IRIG_RX_INFO     ( PCPS_CFG_GROUP | 0xA )
00663 #define PCPS_SET_IRIG_RX_SETTINGS ( PCPS_CFG_GROUP | 0xB )
00664 /* on error, return PCPS_ERR_CFG */
00665
00666 #define PCPS_GET_IRIG_TX_INFO     ( PCPS_CFG_GROUP | 0xC )
00667 #define PCPS_SET_IRIG_TX_SETTINGS ( PCPS_CFG_GROUP | 0xD )
00668 /* on error, return PCPS_ERR_CFG */
00669
00670 /* The associated structures IRIG_INFO and IRIG_SETTINGS
00671    are defined in gpsdefs.h. */
00672
00673
00674 #define PCPS_GET_SYNTH            ( PCPS_CFG_GROUP | 0xE )
00675 #define PCPS_SET_SYNTH            ( PCPS_CFG_GROUP | 0xF )
00676 /* on error, return PCPS_ERR_CFG */
00677
00678 /* The associated structure SYNTH is defined in gpsdefs.h. */
00679
00680
00681
00682 /* PCPS_GIVE_DATA_GROUP */
00683 #define PCPS_GIVE_FW_ID_1        ( PCPS_GIVE_DATA_GROUP | 0x0 )
00684 #define PCPS_GIVE_FW_ID_2        ( PCPS_GIVE_DATA_GROUP | 0x1 )
00685 #define PCPS_GIVE_SERNUM         ( PCPS_GIVE_DATA_GROUP | 0x2 )
00686 #define PCPS_GENERIC_IO          ( PCPS_GIVE_DATA_GROUP | 0x3 )
00687 #define PCPS_GET_SYNTH_STATE     ( PCPS_GIVE_DATA_GROUP | 0x4 )
00688 #define PCPS_GET_IRIG_CTRL_BITS  ( PCPS_GIVE_DATA_GROUP | 0x5 )
00689
00690 // bit coded return type for PCPS_GET_IRIG_CTRL_BITS
00691 typedef uint32_t  MBG_IRIG_CTRL_BITS;
00692
00693 #define _mbg_swab_irig_ctrl_bits( _p )  _mbg_swab32( _p )
00694
00695
00696 #define PCPS_GET_STATUS_PORT     ( PCPS_GIVE_DATA_GROUP | 0xB )
00697 #define PCPS_GET_DEBUG_STATUS    ( PCPS_GIVE_DATA_GROUP | 0xC )
00698 // expects sizeof( MBG_DEBUG_STATUS ) chars
00699
00700 // PCPS_GIVE_DATA_GROUP codes 0x0D, 0x0E, and 0x0F are reserved.
00701
00702
00703 /* PCPS_GPS_DATA_GROUP */
00704 #define PCPS_READ_GPS_DATA       ( PCPS_GPS_DATA_GROUP | 0x0 )
00705 #define PCPS_WRITE_GPS_DATA      ( PCPS_GPS_DATA_GROUP | 0x1 )
00706
00707
00708 /* PCPS_CTRL_GROUP */
00709 #define PCPS_CLR_UCAP_BUFF       ( PCPS_CTRL_GROUP | 0x0 )
00710 #define PCPS_GIVE_UCAP_ENTRIES   ( PCPS_CTRL_GROUP | 0x1 )
00711 #define PCPS_GIVE_UCAP_EVENT     ( PCPS_CTRL_GROUP | 0x2 )
00712
00713 typedef struct
00714 {
00715   uint32_t used;
00716   uint32_t max;
00717 } PCPS_UCAP_ENTRIES;
00718
00719 #define _mbg_swab_pcps_ucap_entries( _p )  \
00720 {                                          \
00721   _mbg_swab32( &(_p)->used );              \
00722   _mbg_swab32( &(_p)->max );               \
00723 }
00724
00725
00726
00730 #define PCPS_FORCE_RESET         0x80
00731
00734 /* Codes returned when commands with parameters have been passed */
00735 /* to the board */
00736 #define PCPS_SUCCESS       0
00737 #define PCPS_ERR_STIME    -1
00738 #define PCPS_ERR_CFG      -2
00742 #ifndef BITMASK
00743   #define BITMASK( b )  ( ( 1 << b ) - 1 )
00744 #endif
00745
00746
00748 #define PCPS_FIFO_SIZE     16
00749
00750 typedef int8_t PCPS_BUFF[PCPS_FIFO_SIZE];
00751
00752
00753 #define PCPS_ID_SIZE   ( 2 * PCPS_FIFO_SIZE + 1 )
00754 typedef char PCPS_ID_STR[PCPS_ID_SIZE];
00755
00756
00757 #define PCPS_SN_SIZE   ( PCPS_FIFO_SIZE + 1 )
00758 typedef char PCPS_SN_STR[PCPS_SN_SIZE];
00759
00760
00765 typedef struct
00766 {
00767   uint32_t sec;
00768   uint32_t frac;
00769 } PCPS_TIME_STAMP;
00770
00771 #define _mbg_swab_pcps_time_stamp( _p )  \
00772 {                                        \
00773   _mbg_swab32( &(_p)->sec );             \
00774   _mbg_swab32( &(_p)->frac );            \
00775 }
00776
00777
00778
00779 // Depending on the target environment define a data type
00780 // which can be used to convert binary fractions without
00781 // range overflow.
00782 #if defined( MBG_TGT_UNIX )
00783   #define PCPS_HRT_FRAC_CONVERSION_TYPE int64_t
00784 #elif defined( MBG_TGT_WIN32 )
00785   #define PCPS_HRT_FRAC_CONVERSION_TYPE int64_t
00786 #elif defined( __WATCOMC__ ) && ( __WATCOMC__ >= 1100 )
00787   #define PCPS_HRT_FRAC_CONVERSION_TYPE int64_t
00788 #else
00789   #define PCPS_HRT_FRAC_CONVERSION_TYPE double
00790 #endif
00791
00792 // Max value of PCPS_TIME_STAMP::frac + 1 used for scaling
00793 #define PCPS_HRT_BIN_FRAC_SCALE  ( (PCPS_HRT_FRAC_CONVERSION_TYPE) 4294967296.0  )  // == 0x100000000
00794
00795
00796 // The scale and format to be used to print the fractions
00797 // of a second as returned in the PCPS_TIME_STAMP structure.
00798 // The function frac_sec_from_bin() can be used for
00799 // the conversion.
00800 #ifndef PCPS_HRT_FRAC_SCALE
00801   #define PCPS_HRT_FRAC_SCALE       10000000UL
00802 #endif
00803
00804 #ifndef PCPS_HRT_FRAC_SCALE_FMT
00805   #define PCPS_HRT_FRAC_SCALE_FMT   "%07lu"
00806 #endif
00807
00808
00809
00810
00811
00812 typedef uint16_t PCPS_TIME_STATUS_X;
00814 #define _mbg_swab_pcps_time_status_x( _p )   _mbg_swab16( _p )
00815
00816
00831 typedef struct
00832 {
00833   PCPS_TIME_STAMP tstamp;
00834   int32_t utc_offs;
00835   PCPS_TIME_STATUS_X status;
00836   uint8_t signal;
00837 } PCPS_HR_TIME;
00838
00839 #define _mbg_swab_pcps_hr_time( _p )              \
00840 {                                                 \
00841   _mbg_swab_pcps_time_stamp( &(_p)->tstamp );     \
00842   _mbg_swab32( &(_p)->utc_offs );                 \
00843   _mbg_swab_pcps_time_status_x( &(_p)->status );  \
00844 }
00845
00846
00847 typedef uint8_t PCPS_TIME_STATUS;
00848
00853 typedef struct PCPS_TIME_s
00854 {
00855   uint8_t sec100;
00856   uint8_t sec;
00857   uint8_t min;
00858   uint8_t hour;
00860   uint8_t mday;
00861   uint8_t wday;
00862   uint8_t month;
00863   uint8_t year;
00865   PCPS_TIME_STATUS status;
00866   uint8_t signal;
00867   int8_t offs_utc;
00868 } PCPS_TIME;
00869
00870
00874 typedef struct PCPS_STIME_s
00875 {
00876   uint8_t sec100;
00877   uint8_t sec;
00878   uint8_t min;
00879   uint8_t hour;
00881   uint8_t mday;
00882   uint8_t wday;
00883   uint8_t month;
00884   uint8_t year;
00886   PCPS_TIME_STATUS status;
00887 } PCPS_STIME;
00888
00889 #ifdef _C166
00890   // This is a workaround to specify some structure sizes. The C166 compiler
00891   // always reports an even structure size although the structure size may
00892   // be odd due to the number of bytes. This might lead to errors between
00893   // the C166 and other build environments.
00894   #define sizeof_PCPS_TIME   ( sizeof( PCPS_TIME ) - 1 )
00895   #define sizeof_PCPS_STIME  ( sizeof( PCPS_STIME ) - 1 )
00896 #else
00897   #define sizeof_PCPS_TIME   sizeof( PCPS_TIME )
00898   #define sizeof_PCPS_STIME  sizeof( PCPS_STIME )
00899 #endif
00900
00901 typedef union
00902 {
00903   PCPS_TIME t;
00904   PCPS_STIME stime;
00905 } PCPS_TIME_UNION;
00906
00907
00908
00919 typedef struct PCPS_IRIG_TIME_s
00920 {
00921   PCPS_TIME_STATUS_X status;
00922   int16_t offs_utc;
00923   uint16_t yday;
00924   uint16_t frac;
00925   uint8_t sec;
00926   uint8_t min;
00927   uint8_t hour;
00928   uint8_t year;
00929   uint8_t signal;
00930   uint8_t reserved;
00931 } PCPS_IRIG_TIME;
00932
00933 #define _mbg_swab_pcps_irig_time( _p )            \
00934 {                                                 \
00935   _mbg_swab_pcps_time_status_x( &(_p)->status );  \
00936   _mbg_swab16( &(_p)->offs_utc );                 \
00937   _mbg_swab16( &(_p)->yday );                     \
00938   _mbg_swab16( &(_p)->frac );                     \
00939 }
00940
00941
00942
00943 /* Bit masks used with both PCPS_TIME_STATUS and PCPS_TIME_STATUS_X */
00944
00945 #define PCPS_FREER     0x01
00948 #define PCPS_DL_ENB    0x02
00950 #define PCPS_SYNCD     0x04
00952 #define PCPS_DL_ANN    0x08
00954 #define PCPS_UTC       0x10
00956 #define PCPS_LS_ANN    0x20
00959 #define PCPS_IFTM      0x40
00962 #define PCPS_INVT      0x80
00965 /* Bit masks used only with PCPS_TIME_STATUS_X */
00966
00967 #define PCPS_LS_ENB      0x0100
00968 #define PCPS_ANT_FAIL    0x0200
00969 #define PCPS_LS_ANN_NEG  0x0400
00970 #define PCPS_SCALE_GPS   0x0800
00971 #define PCPS_SCALE_TAI   0x1000
00973 /* The next two bits are used only if the structure */
00974 /* PCPS_HR_TIME contains a user capture event */
00975 #define PCPS_UCAP_OVERRUN      0x2000
00976 #define PCPS_UCAP_BUFFER_FULL  0x4000
00988 #define PCPS_IO_BLOCKED        0x8000
00989
00994 #define PCPS_SCALE_MASK ( PCPS_SCALE_TAI | PCPS_SCALE_GPS )
00995
00996
01016 enum
01017 {
01018   PCPS_BD_300,
01019   PCPS_BD_600,
01020   PCPS_BD_1200,
01021   PCPS_BD_2400,
01022   PCPS_BD_4800,
01023   PCPS_BD_9600,
01024   PCPS_BD_19200,
01025   N_PCPS_BD     /* number of codes */
01026 };
01027
01028 #define PCPS_BD_BITS   4  /* field with in the cfg byte */
01029 #define PCPS_BD_SHIFT  0  /* num of bits to shift left */
01030
01031 /*
01032  * Initializers for a table of all baud rate strings
01033  * and values can be found in gpsdefs.h.
01034  */
01035
01036
01042 enum
01043 {
01044   PCPS_FR_8N1,
01045   PCPS_FR_7E2,
01046   PCPS_FR_8N2,
01047   PCPS_FR_8E1,
01048   N_PCPS_FR_DCF     /* number of valid codes */
01049 };
01050
01051 #define PCPS_FR_BITS   2             /* field with in the cfg byte */
01052 #define PCPS_FR_SHIFT  PCPS_BD_BITS  /* num of bits to shift left */
01053
01054 /*
01055  * An initializer for a table of framing strings is only defined for
01056  * the new MBG_FRAMING_... definitions. For editing the serial port
01057  * configuration, the old codes above should be translated to the new
01058  * codes to unify handling inside the edit functions.
01059  */
01060
01069 enum
01070 {
01071   PCPS_MOD_REQ,     /* time string on request '?' only */
01072   PCPS_MOD_SEC,     /* time string once per second */
01073   PCPS_MOD_MIN,     /* time string once per minute */
01074   PCPS_MOD_RSVD,    /* reserved */
01075   N_PCPS_MOD_DCF    /* number of possible codes */
01076 };
01077
01078 #define PCPS_MOD_BITS   2      /* field with in the cfg byte */
01079 #define PCPS_MOD_SHIFT  ( PCPS_BD_BITS + PCPS_FR_BITS )
01080                                /* num of bits to shift left */
01081
01122 /* receiver distance from transmitter [km] */
01123 typedef uint16_t TR_DISTANCE;
01124
01125 /* correlation status info */
01126 typedef struct
01127 {
01128   uint8_t val;
01129   uint8_t status;
01130   char corr_dir;
01131   uint8_t flags;
01132 } CORR_INFO;
01133
01135 enum
01136 {
01137   PZF_CORR_RAW,
01138   PZF_CORR_CHECK,
01139   PZF_CORR_FINE,
01140   N_PZF_CORR_STATE
01141 };
01142
01143
01155 enum
01156 {                           // R/W  data type       description
01157   // system data            -----------------------------------------------
01158   PC_GPS_TZDL = 0,          // R/W  TZDL            time zone / daylight saving
01159   PC_GPS_SW_REV,            // R/-  SW_REV          software revision
01160   PC_GPS_BVAR_STAT,         // R/-  BVAR_STAT       status of buffered variables
01161   PC_GPS_TIME,              // R/W  TTM             curr. time
01162   PC_GPS_POS_XYZ,           // -/W  XYZ             curr. pos. in ECEF coords
01163   PC_GPS_POS_LLA,           // -/W  LLA             curr. pos. in geogr. coords
01164   PC_GPS_PORT_PARM,         // R/W  PORT_PARM       param. of the serial ports
01165   PC_GPS_ANT_INFO,          // R/-  ANT_INFO        time diff after ant. disconn.
01166   PC_GPS_UCAP,              // R/-  TTM             user capture
01167   PC_GPS_ENABLE_FLAGS,      // R/W  ENABLE_FLAGS    controls when to enable outp.
01168   PC_GPS_STAT_INFO,         // R/-  GPS_STAT_INFO
01169   PC_GPS_CMD,               // -/W  GPS_CMD         commands as described below
01170   PC_GPS_IDENT,             // R/-  GPS_IDENT       serial number
01171   PC_GPS_POS,               // R/-  POS             position XYZ, LLA, and DMS
01172   PC_GPS_ANT_CABLE_LEN,     // R/W  ANT_CABLE_LEN   used to compensate delay
01173   // The codes below are supported by new GPS receiver boards:
01174   PC_GPS_RECEIVER_INFO,     // R/-  RECEIVER_INFO        rcvr model info
01175   PC_GPS_ALL_STR_TYPE_INFO, // R/-  n*STR_TYPE_INFO_IDX  all string types
01176   PC_GPS_ALL_PORT_INFO,     // R/-  n*PORT_INFO_IDX      all port info
01177   PC_GPS_PORT_SETTINGS_IDX, // -/W  PORT_SETTINGS_IDX    port settings only
01178   PC_GPS_ALL_POUT_INFO,     // R/-  n*POUT_INFO_IDX      all pout info
01179   PC_GPS_POUT_SETTINGS_IDX, // -/W  POUT_SETTINGS_IDX    pout settings only
01180   PC_GPS_TIME_SCALE,        // R/W  MBG_TIME_SCALE_{SETTINGS|INFO}, only if PCPS_HAS_TIME_SCALE
01181   PC_GPS_LAN_IF_INFO,       // R/-  LAN_IF_INFO   LAN interface info, only if PCPS_HAS_LAN_INTF
01182   PC_GPS_IP4_STATE,         // R/-  IP4_SETTINGS  LAN interface state, only if PCPS_HAS_LAN_INTF
01183   PC_GPS_IP4_SETTINGS,      // R/W  IP4_SETTINGS  LAN interface configuration, only if PCPS_HAS_LAN_INTF
01184   PC_GPS_PTP_STATE,         // R/-  PTP_STATE, only if PCPS_HAS_PTP
01185   PC_GPS_PTP_CFG,           // R/W  PTP_CFG_{SETTINGS|INFO}, only if PCPS_HAS_PTP
01186
01187   // GPS data
01188   PC_GPS_CFGH = 0x80,  // -/-  CFGH          SVs' config. and health codes
01189   PC_GPS_ALM,          // -/-  SV_ALM        one SV's num and almanac
01190   PC_GPS_EPH,          // -/-  SV_EPH        one SV's num and ephemeris
01191   PC_GPS_UTC,          // R/W  UTC           UTC corr. param., only if PCPS_HAS_UTC_PARM
01192   PC_GPS_IONO,         // -/-  IONO          ionospheric corr. param.
01193   PC_GPS_ASCII_MSG     // -/-  ASCII_MSG     the GPS ASCII message
01194 };
01195
01196
01198 enum
01199 {
01200   PC_GPS_CMD_BOOT = 1,
01201   PC_GPS_CMD_INIT_SYS,
01202   PC_GPS_CMD_INIT_USER,
01203   PC_GPS_CMD_INIT_DAC,
01204   N_PC_GPS_CMD
01205 };
01206
01207 // The type below can be used to store an unambiguous command code.
01208 // In case of the standard PCPS_... commands the lower byte contains
01209 // the command code and the upper byte is 0.
01210 // In case of a GPS command the lower byte contains PCPS_READ_GPS_DATA
01211 // or PCPS_WRITE_GPS_DATA, as appropriate, and the upper byte contains
01212 // the associated PC_GPS_... type code.
01213 typedef uint16_t PCPS_CMD_INFO;
01214
01215 #if defined( _USE_PACK )   // set default alignment
01216   #pragma pack()
01217 #endif
01218
01219 /* End of header body */
01220
01221 #endif  /* _PCPSDEFS_H */
01222
Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/pcpsdev.h Source File

  • Files

c/mbglib/include/pcpsdev.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: pcpsdev.h 1.45 2009/06/19 12:15:18Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions used to share information on radio clock devices
00010  *    between device drivers which have direct access to the hardware
00011  *    devices and user space programs which evaluate and present that
00012  *    information.
00013  *
00014  *    At the bottom of the file there are some macros defined which
00015  *    should be used to access the structures to extract characteristics
00016  *    of an individual clock.
00017  *
00018  * -----------------------------------------------------------------------
00019  *  $Log: pcpsdev.h $
00020  *  Revision 1.45  2009/06/19 12:15:18Z  martin
00021  *  Added has_irig_time feature and associated macros.
00022  *  Revision 1.44  2009/06/08 19:30:48  daniel
00023  *  Account for new features PCPS_HAS_LAN_INTF and
00024  *  PCPS_HAS_PTP.
00025  *  Revision 1.43  2009/04/08 08:26:20  daniel
00026  *  Define firmware version at which the TCR511PCI starts
00027  *  to support Irig control bits.
00028  *  Revision 1.42  2009/03/19 14:58:47Z  martin
00029  *  Tmp. workaround in mbg_delta_pc_cycles() under SPARC which might
00030  *  generate bus errors due to unaligned access.
00031  *  Revision 1.41  2009/03/16 16:01:22  martin
00032  *  Support reading IRIG control function bits.
00033  *  Revision 1.40  2009/03/13 09:13:39  martin
00034  *  Support new features .._has_time_scale() and .._has_utc_parm().
00035  *  Moved some inline functions dealing with MBG_PC_CYCLES
00036  *  from mbgdevio.h here.
00037  *  Merged the code from _pcps_get_cycles() and _pcps_get_cycles_frequency()
00038  *  to the mbg_get_pc_cycles...() inline functions which now replace the
00039  *  _pcps_get_cycles...() macros.
00040  *  Fixed cycles code for non-x86 architectures.
00041  *  Revision 1.39  2008/12/05 16:24:24Z  martin
00042  *  Changed MAX_PARM_STR_TYPE from 10 to 20.
00043  *  Added support for WWVB signal source.
00044  *  Support new devices PTP270PEX, FRC511PEX, TCR170PEX, and WWVB51USB.
00045  *  Added macros _pcps_is_ptp(), _pcps_is_frc(), and _pcps_is_wwvb().
00046  *  Defined firmware version numbers which fix an IRQ problem with PEX511,
00047  *  TCR511PEX, and GPS170PEX cards. The fix also requires specific ASIC
00048  *  versions specified in pci_asic.h.
00049  *  Defined firmware versions at which PCI511 and PEX511 start
00050  *  to support HR time.
00051  *  Support mapped I/O resources.
00052  *  Changed MBG_PC_CYCLES type for Windows to int64_t.
00053  *  Renamed MBG_VIRT_ADDR to MBG_MEM_ADDR.
00054  *  Added MBG_PC_CYCLES_FREQUENCY type.
00055  *  Added definition of PCPS_TIME_STAMP_CYCLES.
00056  *  Added PCPS_IRQ_STAT_INFO type and associated flags.
00057  *  Added macros to convert the endianess of structures.
00058  *  Added macros _pcps_fw_rev_num_major() and _pcps_fw_rev_num_minor().
00059  *  Made irq_num signed to use -1 for unassigned IRQ numbers.
00060  *  Revision 1.38  2008/01/17 10:12:34  daniel
00061  *  Added support for TCR51USB and MSF51USB.
00062  *  New type MBG_VIRT_ADDR to specify virtual address values.
00063  *  New struct PCPS_MAPPED_MEM
00064  *  Cleanup for PCI ASIC version and features.
00065  *  Added macros _pcps_is_msf(), _pcps_is_lwr(),
00066  *  _psps_has_asic_version(), _pcps_has_asic_features().
00067  *  Revision 1.37  2008/01/17 09:58:11Z  daniel
00068  *  Made comments compatible for doxygen parser.
00069  *  No sourcecode changes.
00070  *  Revision 1.36  2007/09/26 09:34:38Z  martin
00071  *  Added support for USB in general and new USB device USB5131.
00072  *  Added new types PCPS_DEV_ID and PCPS_REF_TYPE.
00073  *  Removed old PCPS_ERR_... codes. Use MBG_ERR_... codes
00074  *  from mbgerror.h instead. The old values haven't changed.
00075  *  Revision 1.35  2007/07/17 08:22:47Z  martin
00076  *  Added support for TCR511PEX and GPS170PEX.
00077  *  Revision 1.34  2007/07/16 12:50:41Z  martin
00078  *  Added support for PEX511.
00079  *  Modified/renamed some macros and symbols.
00080  *  Revision 1.33  2007/03/02 09:40:04Z  martin
00081  *  Changes due to renamed library symbols.
00082  *  Removed obsolete inclusion of headers.
00083  *  Preliminary support for *BSD.
00084  *  Preliminary support for USB.
00085  *  Revision 1.32  2006/10/23 08:47:55Z  martin
00086  *  Don't use abs() in _pcps_ref_offs_out_of_range() since this might
00087  *  not work properly for 16 bit integers and value 0x8000.
00088  *  Revision 1.31  2006/06/14 12:59:13Z  martin
00089  *  Added support for TCR511PCI.
00090  *  Revision 1.30  2006/04/05 14:58:41  martin
00091  *  Support higher baud rates for PCI511.
00092  *  Revision 1.29  2006/04/03 07:29:07Z  martin
00093  *  Added a note about the missing PCPS_ST_IRQF signal
00094  *  on PCI510 cards.
00095  *  Revision 1.28  2006/03/10 10:32:56Z  martin
00096  *  Added support for PCI511.
00097  *  Added support for programmable pulse outputs.
00098  *  Revision 1.27  2005/11/04 08:48:00Z  martin
00099  *  Added support for GPS170PCI.
00100  *  Revision 1.26  2005/06/02 08:34:38Z  martin
00101  *  New types MBG_DBG_PORT, MBG_DBG_DATA.
00102  *  Revision 1.25  2005/05/03 10:04:14  martin
00103  *  Added macro _pcps_is_pci_amcc().
00104  *  Revision 1.24  2005/03/29 12:58:19Z  martin
00105  *  Support GENERIC_IO feature.
00106  *  Revision 1.23  2004/12/09 11:03:37Z  martin
00107  *  Support configuration of on-board frequency synthesizer.
00108  *  Revision 1.22  2004/11/09 12:57:52Z  martin
00109  *  Redefined interface data types using C99 fixed-size definitions.
00110  *  Added support for TCR167PCI.
00111  *  New macro _pcps_has_gps_data().
00112  *  New type PCPS_STATUS_PORT.
00113  *  Removed obsolete inclusion of asm/timex.h for Linux.
00114  *  Revision 1.21  2004/09/06 15:19:49Z  martin
00115  *  Support a GPS_DATA interface where sizes are specified
00116  *  by 16 instead of the original 8 bit quantities, thus allowing
00117  *  to transfer data blocks which exceed 255 bytes.
00118  *  Modified inclusion of header files under Linux.
00119  *  Modified definition of MBG_PC_CYCLES for Linux.
00120  *  Revision 1.20  2004/04/14 09:09:11  martin
00121  *  Source code cleanup.
00122  *  Revision 1.19  2004/04/07 09:49:14Z  martin
00123  *  Support new feature PCPS_HAS_IRIG_TX.
00124  *  New macros _pcps_has_irig(), _pcps_has_irig_tx().
00125  *  Revision 1.18  2004/01/14 11:02:14Z  MARTIN
00126  *  Added formal type MBG_PC_CYCLES for OS/2,
00127  *  though it's not really required or used.
00128  *  Revision 1.17  2003/12/22 15:40:16  martin
00129  *  Support higher baud rates for TCR510PCI and PCI510.
00130  *  Supports PCPS_HR_TIME for TCR510PCI.
00131  *  New structures used to read device time together with associated
00132  *  PC CPU cycles.
00133  *  For Win32, differentiate between kernel mode and non-kernel mode.
00134  *  Moved some definitions here from mbgdevio.h.
00135  *  New type PCPS_ASIC_VERSION.
00136  *  New macro _pcps_ref_offs_out_of_range().
00137  *  Revision 1.16  2003/06/19 09:48:30Z  MARTIN
00138  *  Renamed symbols ..clr_cap_buffer to ..clr_ucap_buffer.
00139  *  New macro _pcps_has_ucap().
00140  *  New definitions to support cmds PCPS_GIVE_UCAP_ENTRIES
00141  *  and PCPS_GIVE_UCAP_EVENT.
00142  *  Revision 1.15  2003/04/15 09:57:25  martin
00143  *  New typedefs ALL_STR_TYPE_INFO, ALL_PORT_INFO,
00144  *  RECEIVER_PORT_CFG.
00145  *  Revision 1.14  2003/04/09 14:07:01Z  martin
00146  *  Supports PCI510, GPS169PCI, and TCR510PCI,
00147  *  and new PCI_ASIC used by those devices.
00148  *  Renamed macro _pcps_is_irig() to _pcps_is_irig_rx().
00149  *  New macros _pcps_has_ref_offs(), _pcps_has_opt_flags().
00150  *  Fixed macro _pcps_has_hr_time().
00151  *  New type PCPS_BUS_FLAGS.
00152  *  Preliminary support for PCPS_TZDL.
00153  *  Revision 1.13  2002/08/09 07:19:49  MARTIN
00154  *  Moved definition of ref time sources to pcpsdefs.h.
00155  *  New feature PCPS_CAN_CLR_CAP_BUFF and
00156  *  associated macro _pcps_can_clr_cap_buff().
00157  *  New macros _pcps_is_irig(), _pcps_has_signal(),
00158  *  _pcps_has_mod().
00159  *  Revision 1.12  2002/02/19 09:22:53  MARTIN
00160  *  Added definitions for the maximum number of clocks' serial ports
00161  *  and string types that can be handled by the configuration programs.
00162  *  Revision 1.11  2002/02/01 11:36:58  MARTIN
00163  *  Added new definitions for GPS168PCI.
00164  *  Inserted definitions of firmware REV_NUMs  for supported features
00165  *  which had previously been defined in pcpsdefs.h.
00166  *  Include use_pack.h.
00167  *  Updated comments.
00168  *  Source code cleanup.
00169  *  Revision 1.10  2001/11/30 09:52:48  martin
00170  *  Added support for event_time which, however, requires
00171  *  a custom GPS firmware.
00172  *  Revision 1.9  2001/10/16 10:11:14  MARTIN
00173  *  New Macro _pcps_has_serial_hs() which determines whether
00174  *  DCF77 clock supports baud rate higher than default.
00175  *  Re-arranged order of macro definitions.
00176  *  Revision 1.8  2001/09/03 07:15:05  MARTIN
00177  *  Added macro to access the firmware revision number.
00178  *  Cleaned up macro syntax.
00179  *  Added some comments.
00180  *  Revision 1.7  2001/08/30 13:20:04  MARTIN
00181  *  New macro to mark a PCPS_TIME variable  as unread.
00182  *  New macro to check if a PCPS_TIME variable  is unread.
00183  *  Revision 1.6  2001/03/15 15:45:01  MARTIN
00184  *  Added types PCPS_ERR_FLAGS, PCPS_BUS_NUM, PCPS_SLOT_NUM.
00185  *  Revision 1.5  2001/03/01 13:53:10  MARTIN
00186  *  Initial version for the new driver library.
00187  *
00188  **************************************************************************/
00189
00190 #ifndef _PCPSDEV_H
00191 #define _PCPSDEV_H
00192
00193 #include <pcpsdefs.h>
00194 #include <gpsdefs.h>
00195 #include <usbdefs.h>
00196 #include <mbg_tgt.h>
00197 #include <use_pack.h>
00198
00199
00200
00201 /* Start of header body */
00202
00203 #if defined( _USE_PACK )   // set byte alignment
00204   #pragma pack( 1 )
00205 #endif
00206
00207
00208
00209 #if defined( MBG_TGT_WIN32 )
00210
00211   // used with QueryPerformanceCounter()
00212   typedef int64_t MBG_PC_CYCLES;
00213   typedef uint64_t MBG_PC_CYCLES_FREQUENCY;
00214
00215 #elif defined( MBG_TGT_LINUX )
00216
00217   typedef uint64_t MBG_PC_CYCLES;
00218   typedef uint64_t MBG_PC_CYCLES_FREQUENCY;
00219
00220 #elif defined( MBG_TGT_OS2 )
00221
00222   typedef uint32_t MBG_PC_CYCLES;  //##++ should differentiate more
00223   typedef uint32_t MBG_PC_CYCLES_FREQUENCY;
00224
00225 #elif defined( MBG_TGT_DOS )
00226
00227   typedef uint32_t MBG_PC_CYCLES;  //##++ should differentiate more
00228   typedef uint32_t MBG_PC_CYCLES_FREQUENCY;
00229   #define MBG_MEM_ADDR  uint32_t   // 64 bit not supported, nor required.
00230
00231 #else // other target OSs which access the hardware directly
00232
00233   typedef uint32_t MBG_PC_CYCLES;  //##++ should differentiate more
00234   typedef uint32_t MBG_PC_CYCLES_FREQUENCY;
00235
00236 #endif
00237
00238
00239 // MBG_PC_CYCLES and MBG_PC_CYCLES_FREQUENCY are always read in native
00240 // machine endianess, so no endianess conversion is required.
00241 #define _mbg_swab_mbg_pc_cycles( _p ) \
00242   _nop_macro_fnc()
00243
00244 #define _mbg_swab_mbg_pc_cycles_frequency( _p ) \
00245   _nop_macro_fnc()
00246
00247
00248
00249 #if defined( MBG_TGT_LINUX ) && defined( MBG_ARCH_I386 )
00250
00251   static __mbg_inline unsigned long long int mbg_rdtscll( void )
00252   {
00253     // The code below is a hack to get around issues with
00254     // different versions of gcc.
00255     //
00256     // Normally the inline asm code could look similar to:
00257     //
00258     //     __asm__ volatile ( "rdtsc" : "=A" (x) )
00259     //
00260     // which would copy the output regs edx:eax as a 64 bit
00261     // number to a variable x.
00262     //
00263     // The "=A" expression should implicitely tell the compiler
00264     // the edx and eax registers have been clobbered. However,
00265     // this does not seem to work properly at least with gcc 4.1.2
00266     // shipped with Centos 5.
00267     //
00268     // If optimization level 1 or higher is used then function
00269     // parameters are also passed in registers. If the inline
00270     // code above is used inside a function then the edx register
00271     // is clobbered but the gcc 4.1.2 is not aware of this and
00272     // assumes edx is unchanged, which may yield faulty results
00273     // or even lead to segmentation faults.
00274     //
00275     // A possible workaround could be to mark edx explicitely as
00276     // being clobbered in the asm inline code, but unfortunately
00277     // other gcc versions report an error if a register which is
00278     // implicitely (by "=A") known to be clobbered is also listed
00279     // explicitely to be clobbered.
00280     //
00281     // So the code below is a workaround which tells the compiler
00282     // implicitely that the eax ("=a") and edx ("=d") registers
00283     // are being used and thus clobbered.
00284
00285     union
00286     {
00287       struct
00288       {
00289         uint32_t lo;
00290         uint32_t hi;
00291       } u32;
00292
00293       uint64_t u64;
00294
00295     } tsc_val;
00296
00297     __asm__ __volatile__( "rdtsc" : "=a" (tsc_val.u32.lo), "=d" (tsc_val.u32.hi) );
00298
00299     return tsc_val.u64;
00300
00301   }  // mbg_rdtscll
00302
00303 #endif
00304
00305
00306
00307 static __mbg_inline
00308 void mbg_get_pc_cycles( MBG_PC_CYCLES *p )
00309 {
00310   #if defined( MBG_TGT_WIN32 )
00311
00312     #if defined( _KDD_ )  // kernel space
00313       *p = (MBG_PC_CYCLES) KeQueryPerformanceCounter( NULL ).QuadPart;
00314     #else                 // user space
00315       QueryPerformanceCounter( (LARGE_INTEGER *) p );
00316     #endif
00317
00318   #elif defined( MBG_TGT_LINUX ) && defined( MBG_ARCH_I386 )
00319
00320     #if 0 && ( defined( CONFIG_X86_TSC ) || defined( CONFIG_M586TSC ) )  //##++++
00321       #define _pcps_get_cycles( _c ) \
00322         _c = get_cycles()
00323     #else
00324       *p = mbg_rdtscll();
00325     #endif
00326
00327   #else
00328
00329     *p = 0;
00330
00331   #endif
00332
00333 }  // mbg_get_pc_cycles
00334
00335
00336
00337 static __mbg_inline
00338 void mbg_get_pc_cycles_frequency( MBG_PC_CYCLES_FREQUENCY *p )
00339 {
00340   #if defined( MBG_TGT_WIN32 )
00341     LARGE_INTEGER li;
00342
00343     #if defined( _KDD_ )  // kernel space
00344       KeQueryPerformanceCounter( &li );
00345     #else                 // user space
00346       QueryPerformanceFrequency( &li );
00347     #endif
00348
00349     *p = li.QuadPart;
00350
00351   #elif defined( MBG_TGT_LINUX )
00352
00353     #if defined( __KERNEL__ ) && defined( MBG_ARCH_I386 )
00354       *p = ( cpu_khz * 1000 );
00355     #else
00356       *p = 0;
00357     #endif
00358
00359   #else
00360
00361     *p = 0;
00362
00363   #endif
00364
00365 }  // mbg_get_pc_cycles_frequency
00366
00367
00368
00369 static __mbg_inline
00370 MBG_PC_CYCLES mbg_delta_pc_cycles( const MBG_PC_CYCLES *p1, const MBG_PC_CYCLES *p2 )
00371 {
00372 #if defined( MBG_ARCH_SPARC )
00373   // cycle counts are currently not supported under SPARC, so we always return 0.
00374   return 0;
00375 #else
00376   return *p1 - *p2;
00377 #endif
00378
00379 }  // mbg_delta_pc_cycles
00380
00381
00382
00383 #if !defined( MBG_MEM_ADDR )
00384   // By default a memory address is stored
00385   // as a 64 bit quantitiy.
00386   #define MBG_MEM_ADDR  uint64_t
00387 #endif
00388
00389
00390 typedef uint8_t PCPS_STATUS_PORT;
00391 typedef uint8_t MBG_DBG_DATA;
00392 typedef uint16_t MBG_DBG_PORT;
00393
00394
00395 // ------ definitions used when accessing a clock -------------------
00396 //  (also refer to pcpsdefs.h for more common definitions)
00397
00413 #define PCPS_ST_BUSY  0x01
00414 #define PCPS_ST_IRQF  0x02
00415 #define PCPS_ST_MOD   0x20
00416 #define PCPS_ST_SEC   0x40
00417 #define PCPS_ST_MIN   0x80
00421 // The following flags describe the bus types which are
00422 // supported by the plugin clocks.
00423 #define PCPS_BUS_ISA        0x0001    // IBM compatible PC/AT ISA bus
00424 #define PCPS_BUS_MCA        0x0002    // IBM PS/2 micro channel
00425 #define PCPS_BUS_PCI        0x0004    // PCI
00426 #define PCPS_BUS_USB        0x0008    // USB
00427
00428 // The flags below are or'ed to the PC_BUS_PCI code
00429 // in order to indicate which PCI interface chip is used
00430 // on a PCI card. If no flag is set then the S5933 chip is
00431 // installed which has been used for the first generation
00432 // of Meinberg PCI cards.
00433
00434 // S5920 PCI interface chip.
00435 #define PCPS_BUS_PCI_CHIP_S5920    0x8000
00436
00437 // Meinberg's own PCI interface chip.
00438 #define PCPS_BUS_PCI_CHIP_ASIC     0x4000
00439
00440 // PEX8311 PCI Express interface chip
00441 #define PCPS_BUS_PCI_CHIP_PEX8311  0x2000
00442
00443
00444 // The constant below combines the PCI bus flags.
00445 #define PCPS_BUS_PCI_S5933    ( PCPS_BUS_PCI )
00446 #define PCPS_BUS_PCI_S5920    ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_S5920 )
00447 #define PCPS_BUS_PCI_ASIC     ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_ASIC )
00448 #define PCPS_BUS_PCI_PEX8311  ( PCPS_BUS_PCI | PCPS_BUS_PCI_CHIP_PEX8311 )
00449
00450
00451
00453 enum PCPS_TYPES
00454 {
00455   PCPS_TYPE_PC31,
00456   PCPS_TYPE_PS31_OLD,
00457   PCPS_TYPE_PS31,
00458   PCPS_TYPE_PC32,
00459   PCPS_TYPE_PCI32,
00460   PCPS_TYPE_GPS167PC,
00461   PCPS_TYPE_GPS167PCI,
00462   PCPS_TYPE_PCI509,
00463   PCPS_TYPE_GPS168PCI,
00464   PCPS_TYPE_PCI510,
00465   PCPS_TYPE_GPS169PCI,
00466   PCPS_TYPE_TCR510PCI,
00467   PCPS_TYPE_TCR167PCI,
00468   PCPS_TYPE_GPS170PCI,
00469   PCPS_TYPE_PCI511,
00470   PCPS_TYPE_TCR511PCI,
00471   PCPS_TYPE_PEX511,
00472   PCPS_TYPE_TCR511PEX,
00473   PCPS_TYPE_GPS170PEX,
00474   PCPS_TYPE_USB5131,
00475   PCPS_TYPE_TCR51USB,
00476   PCPS_TYPE_MSF51USB,
00477   PCPS_TYPE_PTP270PEX,
00478   PCPS_TYPE_FRC511PEX,
00479   PCPS_TYPE_TCR170PEX,
00480   PCPS_TYPE_WWVB51USB,
00481   N_PCPS_DEV_TYPE
00482 };
00483
00484
00485 #define PCPS_CLOCK_NAME_SZ   10   // including terminating 0
00486
00487 typedef uint16_t PCPS_DEV_ID;
00488 typedef uint16_t PCPS_REF_TYPE;
00489 typedef uint16_t PCPS_BUS_FLAGS;
00490
00497 typedef struct
00498 {
00499   uint16_t num;
00500   char name[PCPS_CLOCK_NAME_SZ];
00501   PCPS_DEV_ID dev_id;
00502   PCPS_REF_TYPE ref_type;
00503   PCPS_BUS_FLAGS bus_flags;
00504 } PCPS_DEV_TYPE;
00505
00506
00507
00508 #if MBG_USE_MM_IO_FOR_PCI
00509   typedef uint64_t PCPS_PORT_ADDR;
00510 #else
00511   typedef uint16_t PCPS_PORT_ADDR;
00512 #endif
00513
00514
00515
00520 typedef struct
00521 {
00522   PCPS_PORT_ADDR base;
00523   uint16_t num;
00524 } PCPS_PORT_RSRC;
00525
00527 #define N_PCPS_PORT_RSRC 2
00528
00529
00530
00531 typedef struct
00532 {
00533   MBG_MEM_ADDR user_virtual_address;
00534   ulong len;
00535   #if defined( MBG_TGT_LINUX )
00536     uint32_t pfn_offset;
00537   #endif
00538 } PCPS_MAPPED_MEM;
00539
00540
00541
00542 typedef uint32_t PCPS_ERR_FLAGS;
00543 typedef uint32_t PCPS_FEATURES;
00544 typedef uint16_t PCPS_BUS_NUM;
00545 typedef uint16_t PCPS_SLOT_NUM;
00546
00553 typedef struct
00554 {
00555   PCPS_ERR_FLAGS err_flags;
00556   PCPS_BUS_NUM bus_num;
00557   PCPS_SLOT_NUM slot_num;
00558   PCPS_PORT_RSRC port[N_PCPS_PORT_RSRC];
00559   uint16_t status_port;
00560   int16_t irq_num;
00561   uint32_t timeout_clk;
00562   uint16_t fw_rev_num;
00563   PCPS_FEATURES features;
00564   PCPS_ID_STR fw_id;
00565   PCPS_SN_STR sernum;
00566 } PCPS_DEV_CFG;
00567
00572 #define PCPS_EF_TIMEOUT         0x00000001
00573 #define PCPS_EF_INV_EPROM_ID    0x00000002
00574 #define PCPS_EF_IO_INIT         0x00000004
00575 #define PCPS_EF_IO_CFG          0x00000008
00576 #define PCPS_EF_IO_ENB          0x00000010
00577 #define PCPS_EF_IO_RSRC         0x00000020
00592 #define PCPS_CAN_SET_TIME       0x00000001UL
00593 #define PCPS_HAS_SERIAL         0x00000002UL
00594 #define PCPS_HAS_SYNC_TIME      0x00000004UL
00595 #define PCPS_HAS_TZDL           0x00000008UL
00596 #define PCPS_HAS_IDENT          0x00000010UL
00597 #define PCPS_HAS_UTC_OFFS       0x00000020UL
00598 #define PCPS_HAS_HR_TIME        0x00000040UL
00599 #define PCPS_HAS_SERNUM         0x00000080UL
00600 #define PCPS_HAS_TZCODE         0x00000100UL
00601 #define PCPS_HAS_CABLE_LEN      0x00000200UL
00602 #define PCPS_HAS_EVENT_TIME     0x00000400UL  // custom GPS firmware only
00603 #define PCPS_HAS_RECEIVER_INFO  0x00000800UL
00604 #define PCPS_CAN_CLR_UCAP_BUFF  0x00001000UL
00605 #define PCPS_HAS_PCPS_TZDL      0x00002000UL
00606 #define PCPS_HAS_UCAP           0x00004000UL
00607 #define PCPS_HAS_IRIG_TX        0x00008000UL
00608 #define PCPS_HAS_GPS_DATA_16    0x00010000UL  // use 16 bit size specifiers
00609 #define PCPS_HAS_SYNTH          0x00020000UL
00610 #define PCPS_HAS_GENERIC_IO     0x00040000UL
00611 #define PCPS_HAS_TIME_SCALE     0x00080000UL
00612 #define PCPS_HAS_UTC_PARM       0x00100000UL
00613 #define PCPS_HAS_IRIG_CTRL_BITS 0x00200000UL
00614 #define PCPS_HAS_LAN_INTF       0x00400000UL
00615 #define PCPS_HAS_PTP            0x00800000UL
00616 #define PCPS_HAS_IRIG_TIME      0x01000000UL
00617
00619 // The constants below define those features which are available
00620 // in ALL firmware versions which have been shipped with a
00621 // specific clock.
00622
00623 #define PCPS_FEAT_PC31PS31  0
00624
00625 // Some of the features are available in all newer clocks,
00626 // so these have been put together in one definition:
00627 #define PCPS_FEAT_LVL2      ( PCPS_CAN_SET_TIME   \
00628                             | PCPS_HAS_SERIAL     \
00629                             | PCPS_HAS_SYNC_TIME  \
00630                             | PCPS_HAS_UTC_OFFS )
00631
00632 #define PCPS_FEAT_PC32      ( PCPS_FEAT_LVL2 )
00633
00634 #define PCPS_FEAT_PCI32     ( PCPS_FEAT_LVL2 )
00635
00636 #define PCPS_FEAT_PCI509    ( PCPS_FEAT_LVL2 \
00637                             | PCPS_HAS_SERNUM \
00638                             | PCPS_HAS_TZCODE )
00639
00640 #define PCPS_FEAT_PCI510    ( PCPS_FEAT_PCI509 )
00641
00642 #define PCPS_FEAT_PCI511    ( PCPS_FEAT_PCI510 )
00643
00644 #define PCPS_FEAT_GPS167PC  ( PCPS_FEAT_LVL2 \
00645                             | PCPS_HAS_TZDL \
00646                             | PCPS_HAS_IDENT )
00647
00648 #define PCPS_FEAT_GPS167PCI ( PCPS_FEAT_LVL2 \
00649                             | PCPS_HAS_TZDL  \
00650                             | PCPS_HAS_IDENT \
00651                             | PCPS_HAS_HR_TIME )
00652
00653 #define PCPS_FEAT_GPS168PCI ( PCPS_FEAT_LVL2 \
00654                             | PCPS_HAS_TZDL  \
00655                             | PCPS_HAS_IDENT \
00656                             | PCPS_HAS_HR_TIME \
00657                             | PCPS_HAS_CABLE_LEN \
00658                             | PCPS_HAS_RECEIVER_INFO )
00659
00660 #define PCPS_FEAT_GPS169PCI ( PCPS_FEAT_GPS168PCI \
00661                             | PCPS_CAN_CLR_UCAP_BUFF \
00662                             | PCPS_HAS_UCAP )
00663
00664 #define PCPS_FEAT_GPS170PCI ( PCPS_FEAT_GPS169PCI \
00665                             | PCPS_HAS_IRIG_TX \
00666                             | PCPS_HAS_GPS_DATA_16 \
00667                             | PCPS_HAS_GENERIC_IO )
00668
00669 #define PCPS_FEAT_TCR510PCI ( PCPS_FEAT_LVL2 \
00670                             | PCPS_HAS_SERNUM )
00671
00672 #define PCPS_FEAT_TCR167PCI ( PCPS_FEAT_LVL2 \
00673                             | PCPS_HAS_SERNUM \
00674                             | PCPS_HAS_TZDL \
00675                             | PCPS_HAS_HR_TIME \
00676                             | PCPS_HAS_RECEIVER_INFO \
00677                             | PCPS_CAN_CLR_UCAP_BUFF \
00678                             | PCPS_HAS_UCAP \
00679                             | PCPS_HAS_IRIG_TX \
00680                             | PCPS_HAS_GPS_DATA_16 \
00681                             | PCPS_HAS_GENERIC_IO )
00682
00683 #define PCPS_FEAT_TCR511PCI ( PCPS_FEAT_TCR510PCI \
00684                             | PCPS_HAS_HR_TIME )
00685
00686 #define PCPS_FEAT_PEX511    ( PCPS_FEAT_PCI511 )
00687
00688 #define PCPS_FEAT_TCR511PEX ( PCPS_FEAT_TCR511PCI )
00689
00690 #define PCPS_FEAT_GPS170PEX ( PCPS_FEAT_GPS170PCI )
00691
00692 #define PCPS_FEAT_USB5131   ( PCPS_HAS_UTC_OFFS  \
00693                             | PCPS_HAS_SERNUM    \
00694                             | PCPS_HAS_SYNC_TIME \
00695                             | PCPS_HAS_HR_TIME   \
00696                             | PCPS_CAN_SET_TIME  \
00697                             | PCPS_HAS_TZCODE )
00698
00699 #define PCPS_FEAT_TCR51USB  ( PCPS_HAS_UTC_OFFS  \
00700                             | PCPS_HAS_SERNUM    \
00701                             | PCPS_HAS_SYNC_TIME \
00702                             | PCPS_HAS_HR_TIME   \
00703                             | PCPS_CAN_SET_TIME )
00704
00705 #define PCPS_FEAT_MSF51USB  ( PCPS_HAS_UTC_OFFS  \
00706                             | PCPS_HAS_SERNUM    \
00707                             | PCPS_HAS_SYNC_TIME \
00708                             | PCPS_HAS_HR_TIME   \
00709                             | PCPS_CAN_SET_TIME )
00710
00711 #define PCPS_FEAT_PTP270PEX ( PCPS_HAS_SERNUM    \
00712                             | PCPS_HAS_SYNC_TIME \
00713                             | PCPS_HAS_HR_TIME   \
00714                             | PCPS_HAS_RECEIVER_INFO \
00715                             | PCPS_CAN_SET_TIME  \
00716                             | PCPS_CAN_CLR_UCAP_BUFF \
00717                             | PCPS_HAS_UCAP \
00718                             | PCPS_HAS_GPS_DATA_16 )
00719
00720 #define PCPS_FEAT_FRC511PEX ( PCPS_HAS_SERNUM    \
00721                             | PCPS_HAS_HR_TIME   \
00722                             | PCPS_HAS_RECEIVER_INFO \
00723                             | PCPS_CAN_SET_TIME  \
00724                             | PCPS_CAN_CLR_UCAP_BUFF \
00725                             | PCPS_HAS_UCAP \
00726                             | PCPS_HAS_GPS_DATA_16 )
00727
00728 #define PCPS_FEAT_TCR170PEX ( PCPS_FEAT_TCR167PCI )
00729
00730 #define PCPS_FEAT_WWVB51USB ( PCPS_FEAT_MSF51USB )
00731
00732 // Some features of the API used to access Meinberg plug-in radio clocks
00733 // have been implemented starting with the special firmware revision
00734 // numbers defined below.
00735 //
00736 // If no number is specified for a feature/clock model then the feature
00737 // is either always supported by that clock model, or not at all.
00738
00739
00740 // There are some versions of PCI Express cards out there which do not
00741 // safely support hardware IRQs. The following firmware versions are required
00742 // for safe IRQ operation:
00743 #define REV_HAS_IRQ_FIX_MINOR_PEX511     0x0106
00744 #define REV_HAS_IRQ_FIX_MINOR_TCR511PEX  0x0105
00745 #define REV_HAS_IRQ_FIX_MINOR_GPS170PEX  0x0104
00746 // Additionally there are certain revisions of the bus interface logic
00747 // required. The associated version codes are defined in pci_asic.h.
00748
00749 // The macro below can be used to check whether the required versions are there:
00750 #define _pcps_pex_irq_is_safe( _curr_fw_ver, _req_fw_ver, _curr_asic_ver,    \
00751                                _req_asic_ver_major, _req_asic_ver_minor )    \
00752   ( ( (_curr_fw_ver) >= (_req_fw_ver) ) && _pcps_asic_version_greater_equal( \
00753     (_curr_asic_ver), (_req_asic_ver_major), (_req_asic_ver_minor ) )        \
00754   )
00755
00756
00757 /* command PCPS_GIVE_IRIG_TIME: */
00758 #define REV_HAS_IRIG_TIME_TCR511PEX 0x0109
00759 #define REV_HAS_IRIG_TIME_TCR511PCI 0x0109
00760
00761 /* command PCPS_GET_IRIG_CTRL_BITS: */
00762 #define REV_HAS_IRIG_CTRL_BITS_TCR511PEX 0x0107
00763 #define REV_HAS_IRIG_CTRL_BITS_TCR511PCI 0x0107
00764
00765 /* This board uses the GPS_DATA interface with 16 bit buffer sizes
00766    instead of the original 8 bit sizes, thus allowing to transfer
00767    data blocks which exceed 255 bytes (PCPS_HAS_GPS_DATA_16) */
00768 #define REV_HAS_GPS_DATA_16_GPS169PCI    0x0202
00769
00770 /* the clock supports a higher baud rate than N_PCPS_BD_DCF */
00771 #define REV_HAS_SERIAL_HS_PCI509         0x0104
00772
00773 /* commands PCPS_GIVE_UCAP_ENTRIES, PCPS_GIVE_UCAP_EVENT */
00774 #define REV_HAS_UCAP_GPS167PCI           0x0421
00775 #define REV_HAS_UCAP_GPS168PCI           0x0104
00776
00777 /* command PCPS_CLR_UCAP_BUFF */
00778 #define REV_CAN_CLR_UCAP_BUFF_GPS167PCI  0x0419
00779 #define REV_CAN_CLR_UCAP_BUFF_GPS168PCI  0x0101
00780
00781 /* commands PCPS_READ_GPS_DATA and PCPS_WRITE_GPS_DATA with */
00782 /* code PC_GPS_ANT_CABLE_LEN */
00783 #define REV_HAS_CABLE_LEN_GPS167PCI      0x0411
00784 #define REV_HAS_CABLE_LEN_GPS167PC       0x0411
00785
00786 /* command PCPS_GIVE_HR_TIME, structure PCPS_HR_TIME: */
00787 #define REV_HAS_HR_TIME_GPS167PC         0x0305
00788 #define REV_HAS_HR_TIME_TCR510PCI        0x0200
00789 #define REV_HAS_HR_TIME_PEX511           0x0105  // This also requires a certain ASIC version.
00790 #define REV_HAS_HR_TIME_PCI511           0x0103
00791
00792 /* field offs_utc in structure PCPS_TIME: */
00793 #define REV_HAS_UTC_OFFS_PC31PS31        0x0300
00794
00795 /* command PCPS_GIVE_SYNC_TIME: */
00796 #define REV_HAS_SYNC_TIME_PC31PS31       0x0300
00797
00798 /* command PCPS_GET_SERIAL, PCPS_SET_SERIAL: */
00799 #define REV_HAS_SERIAL_PC31PS31          0x0300
00800
00801 /* command PCPS_GIVE_TIME_NOCLEAR: */
00802 #define REV_GIVE_TIME_NOCLEAR_PC31PS31   0x0300
00803
00804 /* status bit PCPS_LS_ANN: */
00805 #define REV_PCPS_LS_ANN_PC31PS31         0x0300
00806
00807 /* status bit PCPS_IFTM: */
00808 #define REV_PCPS_IFTM_PC31PS31           0x0300
00809
00810 /* command PCPS_SET_TIME: */
00811 #define REV_CAN_SET_TIME_PC31PS31        0x0240
00812
00813 /* command PCPS_GIVE_TIME_NOCLEAR: */
00814 // This is supported by all clocks but PC31/PS31 with
00815 // firmware versions before v3.0. If such a card shall
00816 // be used then the firmware should be updated to the
00817 // last recent version.
00818
00819
00824 typedef struct
00825 {
00826   PCPS_DEV_TYPE type;
00827   PCPS_DEV_CFG cfg;
00828 } PCPS_DEV;
00829
00830
00831 // The macros below simplify access to the data
00832 // stored in PCPS_DEV structure and should be used
00833 // to extract the desired information.
00834 // If the formal parameter is called _d then a pointer
00835 // to device structure PCPS_DEV is expected.
00836 // If the formal parameter is called _c then a pointer
00837 // to configuration structure PCPS_DEV_CFG is expected.
00838
00839 // Access device type information:
00840 #define _pcps_type_num( _d )     ( (_d)->type.num )
00841 #define _pcps_type_name( _d )    ( (_d)->type.name )
00842 #define _pcps_dev_id( _d )       ( (_d)->type.dev_id )
00843 #define _pcps_ref_type( _d )     ( (_d)->type.ref_type )
00844 #define _pcps_bus_flags( _d )    ( (_d)->type.bus_flags )
00845
00846 // Query device type features:
00847 #define _pcps_is_gps( _d )       ( _pcps_ref_type( _d ) == PCPS_REF_GPS )
00848 #define _pcps_is_dcf( _d )       ( _pcps_ref_type( _d ) == PCPS_REF_DCF )
00849 #define _pcps_is_msf( _d )       ( _pcps_ref_type( _d ) == PCPS_REF_MSF )
00850 #define _pcps_is_wwvb( _d )      ( _pcps_ref_type( _d ) == PCPS_REF_WWVB )
00851 #define _pcps_is_irig_rx( _d )   ( _pcps_ref_type( _d ) == PCPS_REF_IRIG )
00852 #define _pcps_is_ptp( _d )       ( _pcps_ref_type( _d ) == PCPS_REF_PTP )
00853 #define _pcps_is_frc( _d )       ( _pcps_ref_type( _d ) == PCPS_REF_FRC )
00854
00855 #define _pcps_is_lwr( _d )       ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )
00856
00857 #define _pcps_is_isa( _d )       ( _pcps_bus_flags( _d ) & PCPS_BUS_ISA )
00858 #define _pcps_is_mca( _d )       ( _pcps_bus_flags( _d ) & PCPS_BUS_MCA )
00859 #define _pcps_is_pci( _d )       ( _pcps_bus_flags( _d ) & PCPS_BUS_PCI )
00860 #define _pcps_is_usb( _d )       ( _pcps_bus_flags( _d ) & PCPS_BUS_USB )
00861
00862 #define _pcps_is_pci_s5933( _d )    ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5933 )
00863 #define _pcps_is_pci_s5920( _d )    ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_S5920 )
00864 #define _pcps_is_pci_amcc( _d )     ( _pcps_is_pci_s5920( _d ) || _pcps_is_pci_s5933( _d )  )
00865 #define _pcps_is_pci_asic( _d )     ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_ASIC )
00866 #define _pcps_is_pci_pex8311( _d )  ( _pcps_bus_flags( _d ) == PCPS_BUS_PCI_PEX8311 )
00867
00868
00869 // Access device configuration information:
00870 #define _pcps_bus_num( _d )      ( (_d)->cfg.bus_num )
00871 #define _pcps_slot_num( _d )     ( (_d)->cfg.slot_num )
00872
00873 #define _pcps_cfg_port_rsrc( _c, _n )  ( (_c)->port[_n] )
00874 #define _pcps_port_rsrc( _d, _n )      _pcps_cfg_port_rsrc( &(_d)->cfg, (_n) )
00875 #define _pcps_port_rsrc_unused( _d )   ( (_d)->base == 0 || (_d)->num == 0 )
00876
00877 #define _pcps_cfg_port_base( _c, _n )  ( _pcps_cfg_port_rsrc( (_c), (_n) ).base )
00878 #define _pcps_port_base( _d, _n )      ( _pcps_port_rsrc( (_d), (_n) ).base )
00879
00880 #define _pcps_cfg_irq_num( _c )        ( (_c)->irq_num )
00881 #define _pcps_irq_num( _d )            _pcps_cfg_irq_num( &(_d)->cfg )
00882
00883 #define _pcps_cfg_timeout_clk( _c )    ( (_c)->timeout_clk )
00884 #define _pcps_timeout_clk( _d )        _pcps_cfg_timeout_clk( &(_d)->cfg )
00885
00886 #define _pcps_fw_rev_num( _d )         ( (_d)->cfg.fw_rev_num )
00887 #define _pcps_fw_id( _d )              ( (_d)->cfg.fw_id )
00888 #define _pcps_sernum( _d )             ( (_d)->cfg.sernum )
00889
00890
00891 // The macros below handle the clock device's err_flags.
00892 #define _pcps_err_flags( _d )           ( (_d)->cfg.err_flags )
00893 #define _pcps_chk_err_flags( _d, _msk ) ( _pcps_err_flags( _d ) & (_msk) )
00894 #define _pcps_set_err_flags( _d, _msk ) ( _pcps_err_flags( _d ) |= (_msk) )
00895 #define _pcps_clr_err_flags( _d, _msk ) ( _pcps_err_flags( _d ) &= ~(_msk) )
00896
00897
00898 // Query whether a special feature is supported:
00899 #define _pcps_has_feature( _d, _f ) ( ( (_d)->cfg.features & (_f) ) != 0 )
00900 #define _pcps_can_set_time( _d )   _pcps_has_feature( (_d), PCPS_CAN_SET_TIME )
00901 #define _pcps_has_serial( _d )     _pcps_has_feature( (_d), PCPS_HAS_SERIAL )
00902 #define _pcps_has_sync_time( _d )  _pcps_has_feature( (_d), PCPS_HAS_SYNC_TIME )
00903 #define _pcps_has_ident( _d )      _pcps_has_feature( (_d), PCPS_HAS_IDENT )
00904 #define _pcps_has_utc_offs( _d )   _pcps_has_feature( (_d), PCPS_HAS_UTC_OFFS )
00905 #define _pcps_has_hr_time( _d )    _pcps_has_feature( (_d), PCPS_HAS_HR_TIME )
00906 #define _pcps_has_sernum( _d )     _pcps_has_feature( (_d), PCPS_HAS_SERNUM )
00907 #define _pcps_has_cab_len( _d )    _pcps_has_feature( (_d), PCPS_HAS_CABLE_LEN )
00908 #define _pcps_has_tzdl( _d )       _pcps_has_feature( (_d), PCPS_HAS_TZDL )
00909 #define _pcps_has_pcps_tzdl( _d )  _pcps_has_feature( (_d), PCPS_HAS_PCPS_TZDL )
00910 #define _pcps_has_tzcode( _d )     _pcps_has_feature( (_d), PCPS_HAS_TZCODE )
00911 #define _pcps_has_tz( _d )         _pcps_has_feature( (_d), PCPS_HAS_TZDL \
00912                                                           | PCPS_HAS_PCPS_TZDL \
00913                                                           | PCPS_HAS_TZCODE )
00914 // The next one is supported only with a certain GPS firmware version:
00915 #define _pcps_has_event_time( _d ) _pcps_has_feature( (_d), PCPS_HAS_EVENT_TIME )
00916 #define _pcps_has_receiver_info( _d ) _pcps_has_feature( (_d), PCPS_HAS_RECEIVER_INFO )
00917 #define _pcps_can_clr_ucap_buff( _d ) _pcps_has_feature( (_d), PCPS_CAN_CLR_UCAP_BUFF )
00918 #define _pcps_has_ucap( _d )       _pcps_has_feature( (_d), PCPS_HAS_UCAP )
00919 #define _pcps_has_irig_tx( _d )    _pcps_has_feature( (_d), PCPS_HAS_IRIG_TX )
00920
00921 // The macro below determines whether a DCF77 clock
00922 // supports a higher baud rate than standard
00923 #define _pcps_has_serial_hs( _d ) \
00924   ( ( _pcps_type_num( _d ) == PCPS_TYPE_TCR511PEX ) || \
00925     ( _pcps_type_num( _d ) == PCPS_TYPE_PEX511 )    || \
00926     ( _pcps_type_num( _d ) == PCPS_TYPE_TCR511PCI ) || \
00927     ( _pcps_type_num( _d ) == PCPS_TYPE_TCR510PCI ) || \
00928     ( _pcps_type_num( _d ) == PCPS_TYPE_PCI511 )    || \
00929     ( _pcps_type_num( _d ) == PCPS_TYPE_PCI510 )    || \
00930     ( _pcps_type_num( _d ) == PCPS_TYPE_PCI509 &&      \
00931       _pcps_fw_rev_num( _d ) >= REV_HAS_SERIAL_HS_PCI509 ) )
00932
00933
00934 #define _pcps_has_signal( _d ) \
00935   ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) || _pcps_is_irig_rx( _d )  )
00936
00937 #define _pcps_has_mod( _d ) \
00938   ( _pcps_is_dcf( _d ) || _pcps_is_msf( _d ) || _pcps_is_wwvb( _d ) )
00939
00940
00941 #define _pcps_has_irig( _d ) \
00942   ( _pcps_is_irig_rx( _d ) || _pcps_has_irig_tx( _d ) )
00943
00944 #define _pcps_has_irig_ctrl_bits( _d ) \
00945   _pcps_has_feature( (_d), PCPS_HAS_IRIG_CTRL_BITS )
00946
00947 #define _pcps_has_irig_time( _d ) \
00948   _pcps_has_feature( (_d), PCPS_HAS_IRIG_TIME )
00949
00950 #define _pcps_has_ref_offs( _d ) \
00951   _pcps_is_irig_rx( _d )
00952
00953 #define _pcps_ref_offs_out_of_range( _n ) \
00954   ( ( (_n) > MBG_REF_OFFS_MAX ) || ( (_n) < -MBG_REF_OFFS_MAX ) )
00955
00956 #define _pcps_has_opt_flags( _d ) \
00957   _pcps_is_irig_rx( _d )
00958
00959 #define _pcps_has_gps_data_16( _d )  _pcps_has_feature( (_d), PCPS_HAS_GPS_DATA_16 )
00960
00961 #define _pcps_has_gps_data( _d ) \
00962   ( _pcps_is_gps( _d ) || _pcps_has_gps_data_16( _d ) )
00963
00964 #define _pcps_has_synth( _d )  _pcps_has_feature( (_d), PCPS_HAS_SYNTH )
00965
00966 #define _pcps_has_generic_io( _d )  _pcps_has_feature( (_d), PCPS_HAS_GENERIC_IO )
00967
00968 #define _pcps_has_time_scale( _d )  _pcps_has_feature( (_d), PCPS_HAS_TIME_SCALE )
00969
00970 #define _pcps_has_utc_parm( _d )  _pcps_has_feature( (_d), PCPS_HAS_UTC_PARM )
00971
00972 #define _pcps_has_lan_intf( _d )  _pcps_has_feature( (_d), PCPS_HAS_LAN_INTF )
00973
00974 #define _pcps_has_ptp( _d )  _pcps_has_feature( (_d), PCPS_HAS_PTP )
00975
00976
00977 #define _pcps_has_asic_version( _d ) ( _pcps_is_pci_asic( _d ) || _pcps_is_pci_pex8311( _d ) )
00978
00979 #define _pcps_has_asic_features( _d ) _pcps_has_asic_version( _d )
00980
00981
00985 typedef struct
00986 {
00987   uint16_t ver_num;
00988   uint16_t n_devs;
00989   PCPS_ID_STR id_str;
00990 } PCPS_DRVR_INFO;
00991
00992
00993
00994 /*
00995  * The definitions and types below are used to collect
00996  * all configuration parameters of a clock's serial ports
00997  * that can be handled by this library:
00998  */
00999
01000 // The maximum number of clocks' serial ports and string types
01001 // that can be handled by the configuration programs:
01002 #define MAX_PARM_PORT        4
01003 #define MAX_PARM_STR_TYPE    20
01004
01005 typedef PORT_INFO_IDX ALL_PORT_INFO[MAX_PARM_PORT];
01006 typedef STR_TYPE_INFO_IDX ALL_STR_TYPE_INFO[MAX_PARM_STR_TYPE];
01007
01008 typedef struct
01009 {
01010   ALL_PORT_INFO pii;
01011   ALL_STR_TYPE_INFO stii;
01012   PORT_PARM tmp_pp;
01013
01014 } RECEIVER_PORT_CFG;
01015
01016
01017
01018 /*
01019  * The definitions and types below are used to collect
01020  * all configuration parameters of a clock's programmable
01021  * pulse outputs that can be handled by this library:
01022  */
01023
01024 #define MAX_PARM_POUT        4
01025
01026 typedef POUT_INFO_IDX ALL_POUT_INFO[MAX_PARM_POUT];
01027
01028
01029
01030 // The macros below can be used to mark a PCPS_TIME variable
01031 // as unread, i.e. its contents have not been read from the clock,
01032 // and to check if such a variable is marked as unread.
01033 #define _pcps_time_set_unread( _t );      { (_t)->sec = 0xFF; }
01034 #define _pcps_time_is_read( _t )          ( (uchar) (_t)->sec != 0xFF )
01035
01036
01037
01046 typedef struct
01047 {
01048   MBG_PC_CYCLES cycles;
01049   PCPS_TIME t;
01050 } PCPS_TIME_CYCLES;
01051
01052
01053
01058 typedef struct
01059 {
01060   MBG_PC_CYCLES cycles;
01061   PCPS_TIME_STAMP tstamp;
01062 } PCPS_TIME_STAMP_CYCLES;
01063
01064 #define _mbg_swab_pcps_time_stamp_cycles( _p ) \
01065 {                                              \
01066   _mbg_swab_mbg_pc_cycles( &(_p)->cycles );    \
01067   _mbg_swab_pcps_time_stamp( &(_p)->tstamp );  \
01068 }
01069
01070
01071
01080 typedef struct
01081 {
01082   MBG_PC_CYCLES cycles;
01083   PCPS_HR_TIME t;
01084 } PCPS_HR_TIME_CYCLES;
01085
01086 #define _mbg_swab_pcps_hr_time_cycles( _p ) \
01087 {                                           \
01088   _mbg_swab_mbg_pc_cycles( &(_p)->cycles ); \
01089   _mbg_swab_pcps_hr_time( &(_p)->t );       \
01090 }
01091
01092
01093
01094 typedef uint32_t PCPS_IRQ_STAT_INFO;
01095
01096 // Flags used with PCPS_IRQ_STAT_INFO:
01097 #define PCPS_IRQ_STAT_ENABLE_CALLED  0x01
01098 #define PCPS_IRQ_STAT_ENABLED        0x02
01099 #define PCPS_IRQ_STAT_UNSAFE         0x04  // IRQs unsafe with this firmeware version / ASIC
01100
01101 #define PCPS_IRQ_STATE_DANGER        ( PCPS_IRQ_STAT_ENABLED | PCPS_IRQ_STAT_UNSAFE )
01102
01103 #define _pcps_fw_rev_num_major( _v ) \
01104   ( ( (_v) >> 8 ) & 0xFF )
01105
01106 #define _pcps_fw_rev_num_minor( _v ) \
01107   ( (_v) & 0xFF )
01108
01109
01110 #if defined( _USE_PACK )   // set default alignment
01111   #pragma pack()
01112 #endif
01113
01114 /* End of header body */
01115
01116 #undef _ext
01117
01118 #endif  /* _PCPSDEV_H */
01119
Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/usbdefs.h Source File

  • Files

c/mbglib/include/usbdefs.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: usbdefs.h 1.9 2009/03/13 09:02:24Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions used with USB devices.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: usbdefs.h $
00013  *  Revision 1.9  2009/03/13 09:02:24Z  martin
00014  *  Removed definitions for timeout intervals.
00015  *  Revision 1.8  2009/02/18 11:08:44  daniel
00016  *  Added new class code and device ID for SCU_USB
00017  *  Revision 1.7  2008/11/28 07:45:30Z  daniel
00018  *  Added new class code and device ID for WWVB51USB
00019  *  Revision 1.6  2008/01/09 10:39:18Z  daniel
00020  *  Added new class code and device ID for MSF51USB
00021  *  Revision 1.5  2007/10/29 08:23:26Z  daniel
00022  *  Added new class code and device ID for TCR51USB
00023  *  Revision 1.4  2007/09/25 09:59:50Z  daniel
00024  *  Added indices for endpoint definitions.
00025  *  Added timeout definitions.
00026  *  Revision 1.3  2006/12/20 16:11:36Z  daniel
00027  *  Added new device class and device_id for nCipher CMC-device.
00028  *  Revision 1.2  2006/12/07 09:10:57Z  daniel
00029  *  Added new class code and device ID for USB5131.
00030  *  Revision 1.1  2006/04/21 08:14:56Z  martin
00031  *  Initial revision
00032  *
00033  **************************************************************************/
00034
00035 #ifndef _USBDEFS_H
00036 #define _USBDEFS_H
00037
00038
00039 /* Other headers to be included */
00040
00041
00042 /* Start of header body */
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00048
00049 /* Meinberg's USB vendor ID number (assigned by USB-IF Administration) */
00050 #define USB_VENDOR_MEINBERG     0x1938
00051
00052
00053 /*
00054  * USB device class codes (assigned by Meinberg)
00055  */
00056 enum
00057 {
00058   MBG_USB_CLASS_NONE,   // (unknown or not defined)
00059   MBG_USB_CLASS_CPC,    // Control Panel Controller
00060   MBG_USB_CLASS_TSU,    // Time Stamp Unit
00061   MBG_USB_CLASS_DCF,    // DCF77 Radio Clock
00062   MBG_USB_CLASS_CMC,    // nCipher Crypto Module Carrier
00063   MBG_USB_CLASS_TCR,    // IRIG Time Code Receiver
00064   MBG_USB_CLASS_MSF,    // MSF Radio Clock
00065   MBG_USB_CLASS_WWVB,   // WWVB Radio Clock
00066   MBG_USB_CLASS_SCU,    // Meinberg Signal Changeover Unit
00067   N_MBG_USB_CLASS       // number of known device class codes
00068 };
00069
00070
00071 /*
00072  * USB device ID numbers (assigned by Meinberg)
00073  *   High byte:  USB device class as specified above
00074  *   Low byte:   enumeration of device of a class
00075  */
00076 #define USB_DEV_CPC_01      ( ( MBG_USB_CLASS_CPC << 8 )  | 0x01 )
00077
00078 #define USB_DEV_TSU_01      ( ( MBG_USB_CLASS_TSU << 8 )  | 0x01 )
00079
00080 #define USB_DEV_USB5131     ( ( MBG_USB_CLASS_DCF << 8 )  | 0x01 )
00081
00082 #define USB_DEV_CMC         ( ( MBG_USB_CLASS_CMC << 8 )  | 0x01 )
00083
00084 #define USB_DEV_TCR51USB    ( ( MBG_USB_CLASS_TCR << 8 )  | 0x01 )
00085
00086 #define USB_DEV_MSF51USB    ( ( MBG_USB_CLASS_MSF << 8 )  | 0x01 )
00087
00088 #define USB_DEV_WWVB51USB   ( ( MBG_USB_CLASS_WWVB << 8 ) | 0x01 )
00089
00090 #define USB_DEV_SCU_USB     ( ( MBG_USB_CLASS_SCU << 8 )  | 0x01 )
00091
00092 enum
00093 {
00094   MBGUSB_EP_IDX_HOST_IN,          // transfers from device to host
00095   MBGUSB_EP_IDX_HOST_OUT,         // transfers from host to device
00096   MBGUSB_EP_IDX_HOST_IN_CYCLIC,   // cyclic auto-transfer to host
00097   MBGUSB_MAX_ENDPOINTS            // max number of supported endpoints
00098 };
00099
00100
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104
00105 /* End of header body */
00106
00107 #endif  /* _USBDEFS_H */
Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/use_pack.h Source File

  • Files

c/mbglib/include/use_pack.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: use_pack.h 1.2 2002/02/25 08:50:33Z Andre REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Check the current compiler type to decide if pragma pack() is
00010  *    required to pack cross-platform data structures.
00011  *
00012  * -----------------------------------------------------------------------
00013  *  $Log: use_pack.h $
00014  *  Revision 1.2  2002/02/25 08:50:33Z  Andre
00015  *  query __ARM added, __SH2 removed
00016  *  Revision 1.1  2001/03/30 08:54:33Z  MARTIN
00017  *  Initial revision
00018  *
00019  **************************************************************************/
00020
00021 #ifndef _USE_PACK_H
00022 #define _USE_PACK_H
00023
00024 #if ( !defined( _C166 ) && !defined( _CC51 ) && !defined( __ARM ) )
00025   #define _USE_PACK
00026 #endif
00027
00028 #endif  /* _USE_PACK_H */
00029
Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgsvcio/vc6/resource.h Source File

  • Files

c/demo/mbgsvcio/vc6/resource.h

Go to the documentation of this file.
00001 //{{NO_DEPENDENCIES}}
00002 // Microsoft Developer Studio generated include file.
00003 // Used by mbgdmpst.rc
00004 //
00005
00006 // Next default values for new objects
00007 //
00008 #ifdef APSTUDIO_INVOKED
00009 #ifndef APSTUDIO_READONLY_SYMBOLS
00010 #define _APS_NEXT_RESOURCE_VALUE        101
00011 #define _APS_NEXT_COMMAND_VALUE         40001
00012 #define _APS_NEXT_CONTROL_VALUE         1000
00013 #define _APS_NEXT_SYMED_VALUE           101
00014 #endif
00015 #endif
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/mbglib/include/words.h Source File

  • Files

c/mbglib/include/words.h

Go to the documentation of this file.
00001
00002 /**************************************************************************
00003  *
00004  *  $Id: words.h 1.20 2009/07/02 15:38:12Z martin REL_M $
00005  *
00006  *  Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
00007  *
00008  *  Description:
00009  *    Definitions of commonly used data types.
00010  *
00011  * -----------------------------------------------------------------------
00012  *  $Log: words.h $
00013  *  Revision 1.20  2009/07/02 15:38:12Z  martin
00014  *  Added new macro _wswap32().
00015  *  Revision 1.19  2009/04/14 14:45:45Z  martin
00016  *  Added BYTE_OF_P() and WORD_OF_P() macros.
00017  *  Revision 1.18  2009/03/27 14:05:18  martin
00018  *  Cleanup for CVI.
00019  *  Revision 1.17  2009/03/13 09:06:03Z  martin
00020  *  Declared bit type for non-firmware environments.
00021  *  Revision 1.16  2008/12/05 12:05:41Z  martin
00022  *  Define dummy int64_t/uint64_t types for targets
00023  *  which don't support 64 bit data types.
00024  *  Revision 1.15  2008/07/14 14:44:00Z  martin
00025  *  Use fixed size C99 types which come with GCC and newer Borland compilers.
00026  *  Revision 1.14  2008/01/30 10:27:50Z  martin
00027  *  Moved some macro definitions here.
00028  *  Revision 1.13  2007/03/08 15:00:30Z  martin
00029  *  Fixed incompatibility of macro _IS_MBG_FIRMWARE.
00030  *  Added a workaround for _IS_MBG_FIRMWARE under CVI.
00031  *  Support for BSD.
00032  *  Revision 1.12  2006/12/15 10:45:46  martin
00033  *  Added macro _IS_MBG_FIRMWARE.
00034  *  Cleanup for Linux, QNX, and Watcom C.
00035  *  Include mbg_tgt.h for non-firmware targets.
00036  *  Revision 1.11  2004/11/10 10:45:34  martin
00037  *  Added C99 fixed-type handling for QNX.
00038  *  Revision 1.10  2004/11/09 13:12:56  martin
00039  *  Redefined C99 integer types with fixed sizes as standard types
00040  *  if required, depending on the environment.
00041  *  Revision 1.9  2003/02/07 11:36:54  MARTIN
00042  *  New macros _hilo_16() and _hilo_32() for endian conversion.
00043  *  Revision 1.8  2002/05/28 10:09:54  MARTIN
00044  *  Added new macros _var_bswap16() and _var_bswap32().
00045  *  Revision 1.7  2001/03/14 11:30:48  MARTIN
00046  *  Removed definitions for UINT8, UINT16, UINT32.
00047  *  Redefined preprocessor control for Win32.
00048  *  Revision 1.6  2001/02/28 15:43:20  MARTIN
00049  *  Modified preprocessor syntax.
00050  *  Revision 1.5  2001/02/05 10:20:53  MARTIN
00051  *  Include different Linux types for user space and kernel space programs.
00052  *  Source code cleanup.
00053  *  Revision 1.4  2000/09/15 08:34:11  MARTIN
00054  *  Exclude some definitions if compiling under Win NT.
00055  *  Revision 1.3  2000/08/22 15:04:28  MARTIN
00056  *  Added new file header.
00057  *  Added macros to revert endianess of 16 and 32 bit values.
00058  *
00059  **************************************************************************/
00060
00061 #ifndef _WORDS_H
00062 #define _WORDS_H
00063
00064
00065 /* Other headers to be included */
00066
00067
00068 #if !defined( _IS_MBG_FIRMWARE )
00069
00070 #if defined( _C166 ) ||    \
00071     defined( _CC51 ) ||    \
00072     defined( __ARM )
00073   #define _IS_MBG_FIRMWARE 1
00074 #else
00075   #define _IS_MBG_FIRMWARE 0
00076 #endif
00077
00078
00079 #endif
00080
00081 #if !_IS_MBG_FIRMWARE
00082   #include <mbg_tgt.h>
00083
00084   typedef unsigned char bit;
00085 #endif
00086
00087
00088 #ifdef _WORDS
00089  #define _ext
00090 #else
00091  #define _ext extern
00092 #endif
00093
00094
00095 /* Start of header body */
00096
00097
00098 // Check whether the target system supports C99 fixed-size types.
00099
00100 #if defined( MBG_TGT_LINUX )  // any Linux target
00101
00102   #if defined( __KERNEL__ )
00103     #include <linux/types.h>
00104   #else
00105     #include <stdint.h>
00106     #include <sys/types.h>
00107   #endif
00108
00109   #define _C99_BIT_TYPES_DEFINED       1
00110
00111 #elif defined( MBG_TGT_BSD )
00112
00113   #include <sys/types.h>
00114
00115   #define _C99_BIT_TYPES_DEFINED       1
00116
00117 #elif defined( MBG_TGT_QNX )      // QNX 4.x or QNX 6.x
00118
00119   #if defined( MBG_TGT_QNX_NTO )  // QNX 6.x (Neutrino) with gcc
00120     #include <stdint.h>
00121   #else                           // QNX 4.x with Watcom C 10.6
00122     #include <sys/types.h>        // 64 bit types not supported
00123   #endif
00124
00125   #define _C99_BIT_TYPES_DEFINED       1
00126
00127 #endif
00128
00129
00130 // If it's not yet clear whether fixed-size types are supported,
00131 // check the build environment which may be multi-platform.
00132
00133 #if !defined( _C99_BIT_TYPES_DEFINED )
00134
00135   #if defined( __WATCOMC__ )
00136     #if __WATCOMC__ > 1230  // Open Watcom C 1.3 and above
00137       #include <stdint.h>
00138       #define _C99_BIT_TYPES_DEFINED     1
00139     #elif defined( __WATCOM_INT64__ )  // Watcom C 11, non-QNX
00140       typedef __int64 int64_t;
00141       typedef unsigned __int64 uint64_t;
00142
00143       #define _C99_BIT_TYPES_DEFINED     1
00144     #endif
00145   #endif
00146
00147   #if defined( __BORLANDC__ )
00148     #if ( __BORLANDC__ >= 0x570 )  // at least Borland Developer Studio 2006
00149       #define _C99_BIT_TYPES_DEFINED     1
00150     #endif
00151   #endif
00152
00153   #if defined( __GNUC__ )
00154     #include <stdint.h>
00155     #define _C99_BIT_TYPES_DEFINED     1
00156   #endif
00157
00158 #endif
00159
00160
00161 // If neither the target system nor the build environment define C99 fixed-size
00162 // types define those types based on standard types with the proper sizes
00163 // commonly used in 16/32 bit environments.
00164
00165 #if defined( _C99_BIT_TYPES_DEFINED )
00166
00167   #define MBG_TGT_HAS_64BIT_TYPES    1
00168
00169 #else
00170
00171   typedef char           int8_t;
00172   typedef unsigned char  uint8_t;
00173
00174   typedef short          int16_t;
00175   typedef unsigned short uint16_t;
00176
00177   typedef long           int32_t;
00178   typedef unsigned long  uint32_t;
00179
00180
00181   #if defined( MBG_TGT_WIN32 )
00182
00183     typedef __int64           int64_t;
00184     typedef unsigned __int64  uint64_t;
00185
00186     #define MBG_TGT_HAS_64BIT_TYPES    1
00187
00188   #else
00189     // The types below are required to avoid build errors
00190     // if these types are formally used in function prototypes.
00191     // We explicitely use abnormal data types to hopefully
00192     // cause compiler errors in case these types are
00193     // unexpectedly used to generate real code for a target
00194     // platform which does not support 64 bit types.
00195     typedef void *int64_t;
00196     typedef void *uint64_t;
00197   #endif
00198
00199 #endif
00200
00201
00202
00203 #if !defined( MBG_TGT_HAS_64BIT_TYPES )
00204
00205   #define MBG_TGT_HAS_64BIT_TYPES    0
00206
00207 #endif
00208
00209
00210
00211 // Some commonly used types
00212
00213 typedef unsigned char uchar;
00214
00215 #if !defined( MBG_TGT_LINUX )
00216   typedef unsigned short ushort;
00217   typedef unsigned int uint;
00218   typedef unsigned long ulong;
00219 #endif
00220
00221 typedef double udouble;
00222
00223 typedef unsigned char byte;
00224 typedef unsigned short word;
00225 typedef unsigned long longword;
00226 typedef unsigned long dword;
00227
00228
00229 #define HI_BYTE( _x )      ( (_x) >> 8 )
00230 #define LO_BYTE( _x )      ( (_x) & 0xFF )
00231
00232 #define HI_WORD( _x )      ( (_x) >> 16 )
00233 #define LO_WORD( _x )      ( (_x) & 0xFFFF )
00234
00235 // the macros below assume little endianess
00236 // these macros expect the name of a variable
00237 #define BYTE_OF( _v, _n )  *( ( (uint8_t *) &(_v) ) + (_n) )
00238 #define WORD_OF( _v, _n )  *( ( (uint16_t *) &(_v) ) + (_n) )
00239
00240 // same as above, but taking pointers
00241 #define BYTE_OF_P( _p, _n )  *( ( (uint8_t *) (_p) ) + (_n) )
00242 #define WORD_OF_P( _p, _n )  *( ( (uint16_t *) (_p) ) + (_n) )
00243
00244
00245 // a macro to swap the byte order of a 16 bit value
00246 #define _bswap16( _x )                        \
00247 (                                             \
00248   ( ( ( (uint16_t) (_x) ) & 0x00FF ) << 8 ) | \
00249   ( ( ( (uint16_t) (_x) ) & 0xFF00 ) >> 8 )   \
00250 )
00251
00252 // a macro to swap the byte order of a 32 bit value
00253 #define _bswap32( _x )                               \
00254 (                                                    \
00255   ( ( ( (uint32_t) (_x) ) & 0x000000FFUL ) << 24 ) | \
00256   ( ( ( (uint32_t) (_x) ) & 0x0000FF00UL ) << 8 )  | \
00257   ( ( ( (uint32_t) (_x) ) & 0x00FF0000UL ) >> 8 )  | \
00258   ( ( ( (uint32_t) (_x) ) & 0xFF000000UL ) >> 24 )   \
00259 )
00260
00261 // a macro to swap the word order of a 32 bit value
00262 #define _wswap32( _x )                               \
00263 (                                                    \
00264   ( ( ( (uint32_t) (_x) ) & 0x0000FFFFUL ) << 16 ) | \
00265   ( ( ( (uint32_t) (_x) ) >> 16 ) & 0x0000FFFFUL )   \
00266 )
00267
00268 #define _var_bswap16( _v )   (_v) = _bswap16( _v )
00269 #define _var_bswap32( _v )   (_v) = _bswap32( _v )
00270
00271
00272 // The C51 compiler is big-endian, that means the most
00273 // significant byte of a 16 or 32 bit value is stored in
00274 // the lowest memory location. Most other systems are
00275 // little-endian, so we must use macros to adjust the
00276 // byte order if the C51 is used.
00277
00278 #if defined( _CC51 )
00279   #define _hilo_16( _x )  _bswap16( _x )
00280   #define _hilo_32( _x )  _bswap32( _x )
00281 #else
00282   #define _hilo_16( _x )  (_x)
00283   #define _hilo_32( _x )  (_x)
00284 #endif
00285
00286 /* End of header body */
00287
00288 #undef _ext
00289
00290 #endif  /* _WORDS_H */
Generated on Tue Aug 18 16:18:09 2009 for Meinberg SDK by doxygen 1.5.5


Meinberg SDK: c/demo/mbgdevio/xhrtime.c Source File

  • Files

c/demo/mbgdevio/xhrtime.c

Go to the documentation of this file.
00001 /**************************************************************************
00002  *
00003  *  $Id: xhrtime.c 1.4 2009/01/23 08:31:28Z daniel REL_M $
00004  *
00005  * -----------------------------------------------------------------------
00006  *  $Log: xhrtime.c $
00007  *  Revision 1.4  2009/01/23 08:31:28Z  daniel
00008  *  Revision 1.3  2009/01/20 11:13:26Z  daniel
00009  *  Added comments.
00010  *  Revision 1.2  2009/01/15 15:59:09Z  daniel
00011  *  Revision 1.1  2009/01/07 15:21:48Z  daniel
00012  *  Initial revision
00013  *
00014  **************************************************************************/
00015
00077 #include <mbgdevio.h>
00078 #include <mbgutil.h>
00079
00080 #include <stdio.h>
00081
00082
00083 // Configuration
00084 #define N_LOOPS 30
00085 #define USE_PCPS_HR_TIME 1
00091 typedef union
00092 {
00093   FILETIME ft;
00094   DWORDLONG dwl;
00095 } FT_DWL;
00096
00097
00098 static /*HDR*/
00099 void err_msg( const char *msg )
00100 {
00101   fprintf( stderr, "** %s: %i\n", msg, GetLastError() );
00102
00103 }  // err_msg
00104
00105
00106
00107 static /*HDR*/
00108 void print_drvr_info( void )
00109 {
00110   int rc;
00111   PCPS_DRVR_INFO drvr_info;
00112   MBG_DEV_HANDLE dh = mbg_open_device( 0 );
00113
00114   if ( dh == MBG_INVALID_DEV_HANDLE )
00115   {
00116     err_msg( "Unable to open device" );
00117     exit( 1 );
00118   }
00119
00120   rc = mbg_get_drvr_info( dh, &drvr_info );
00121
00122   mbg_close_device( &dh );
00123
00124
00125   if ( rc != PCPS_SUCCESS )
00126   {
00127     err_msg( "Failed to read driver info" );
00128     exit( 1 );
00129   }
00130
00131   printf( "Kernel driver: %s v%i.%02i, %i device%s\n\n",
00132           drvr_info.id_str,
00133           drvr_info.ver_num / 100,
00134           drvr_info.ver_num % 100,
00135           drvr_info.n_devs,
00136           ( drvr_info.n_devs == 1 ) ? "" : "s"
00137         );
00138
00139 }  // print_drvr_info
00140
00141
00142
00143 static /*HDR*/
00144 void print_dev_info( MBG_DEV_HANDLE dh,
00145                      PCPS_DEV *p_dev )
00146 {
00147   int rc;
00148
00149   rc = mbg_get_device_info( dh, p_dev );
00150
00151   if ( rc == PCPS_SUCCESS )
00152   {
00153     _pcps_port_base( p_dev, 0 ) ?
00154       printf( "  %s, SN: %s at port %03Xh\n",
00155             _pcps_fw_id( p_dev ), _pcps_sernum( p_dev ),
00156             _pcps_port_base( p_dev, 0 )
00157           ) :
00158       printf( "  %s, SN: %s\n",
00159             _pcps_fw_id( p_dev ), _pcps_sernum( p_dev )
00160           );
00161   }
00162   else
00163     err_msg( "Failed to read device info" );
00164
00165 }  // print_dev_info
00166
00167
00168
00169 int main( int argc, char* argv[] )
00170 {
00171   int i;
00172   int rc = 0;
00173   int devices_found;
00174
00175   if ( mbgdevio_check_version( MBGDEVIO_VERSION ) != PCPS_SUCCESS )
00176   {
00177     printf( "The MBGDEVIO DLL API version %X which is installed is not compatible\n"
00178             "with API version %X required by this program.\n",
00179             mbgdevio_get_version(),
00180             MBGDEVIO_VERSION
00181           );
00182     exit( 1 );
00183   }
00184
00185   devices_found = mbg_find_devices();
00186
00187   if ( devices_found == 0 )
00188   {
00189     printf( "No radio clock found.\n" );
00190     return 1;
00191   }
00192
00193
00194   printf( "Found %i radio clock%s\n",
00195           devices_found,
00196           ( devices_found == 1 ) ? "" : "s"
00197         );
00198
00199
00200   print_drvr_info();
00201
00202
00203   // There may be several radio clock devices installed.
00204   // Try to get information from each of the devices.
00205   for ( i = 0; i < devices_found; i++ )
00206   {
00207     static PCPS_DEV dev;
00208
00209     MBG_DEV_HANDLE dh;
00210
00211
00212     printf( "Radio clock %i:\n", i );
00213
00214     dh = mbg_open_device( i );
00215
00216     if ( dh == MBG_INVALID_DEV_HANDLE )
00217     {
00218       err_msg( "Unable to open device" );
00219       continue;
00220     }
00221
00222
00223     print_dev_info( dh, &dev );
00224     printf( "\n" );
00225
00226
00227     // Start a polling thread and get extrapolated time stamps from the DLL.
00228     // Only devices which support PCPS_HR_TIME support the extrapolation feature.
00229     if ( _pcps_has_hr_time( &dev ) )
00230     {
00231       int rc;
00232       int this_loops = N_LOOPS;
00233       MBG_POLL_THREAD_INFO poll_thread_info = { { { { 0 } } } };
00234
00235       // Start the polling thread.
00236       rc = mbg_xhrt_poll_thread_create( &poll_thread_info, dh, 0, 0 );
00237
00238       if ( rc != MBG_SUCCESS )
00239         return -1;
00240
00241       for (;;)
00242       {
00243         static int has_printed_msg = 0;
00244         MBG_PC_CYCLES cyc_1;
00245         MBG_PC_CYCLES cyc_2;
00246         MBG_PC_CYCLES_FREQUENCY freq_hz;
00247         double access_time;
00248
00249       #if USE_PCPS_HR_TIME
00250         PCPS_HR_TIME hrt;
00251         char ws[80];
00252       #else
00253         FT_DWL tstamp_ft;
00254         SYSTEMTIME tstamp_st, tstamp_lt;
00255         TIME_ZONE_INFORMATION tzi;
00256       #endif
00257
00258         // Calculate the cycles frequency with high accuracy with the help
00259         // of the reference clock.
00260         rc = mbg_get_xhrt_cycles_frequency( &poll_thread_info.xhrt_info, &freq_hz );
00261
00262         if ( rc != MBG_SUCCESS )
00263           goto fail;
00264
00265         // As long as the frequency is 0, no valid time stamps can be received.
00266         // For the caclulation of the frequency at least 2 polling cycles are needed
00267         // which last 1 second by default.
00268         if ( freq_hz == 0 )
00269         {
00270           if ( !has_printed_msg )
00271           {
00272             printf( "Waiting until frequency has been computed ... " );
00273             has_printed_msg = 1;
00274           }
00275
00276           Sleep( 50 );
00277           continue;
00278         }
00279
00280         if ( has_printed_msg )
00281         {
00282           printf( "\n" );
00283           has_printed_msg = 0;
00284         }
00285
00286         // Get PC cycles to compute the access time.
00287         mbg_get_pc_cycles( &cyc_1 );
00288
00289         // Request a time stamp
00290         #if USE_PCPS_HR_TIME
00291           rc = mbg_get_xhrt_time_as_pcps_hr_time( &poll_thread_info.xhrt_info, &hrt );
00292         #else
00293           rc = mbg_get_xhrt_time_as_filetime( &poll_thread_info.xhrt_info, &tstamp_ft.ft );
00294         #endif
00295
00296         mbg_get_pc_cycles( &cyc_2 );
00297
00298         if ( rc != MBG_SUCCESS )
00299           goto fail;
00300
00301         // Compute the access_time
00302         access_time = ( (double) cyc_2 - (double) cyc_1 ) / (double) ( (int64_t) freq_hz ) * (double) 1E6;
00303
00304         #if USE_PCPS_HR_TIME
00305
00306           // Convert PCPS_HR_TIME into a readable time stamp with fractions as local time.
00307           mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hrt );
00308           printf( "Extrapolated ref time (UTC)  : %s           (%.3f us)\n", ws, access_time );
00309
00310           mbg_str_pcps_hr_tstamp_loc( ws, sizeof( ws ), &hrt );
00311           printf( "Extrapolated ref time (LOCAL): %s (%.3f us)\n\n", ws, access_time );
00312
00313         #else
00314
00315           // Convert the FILETIME timestamps into a readable format
00316           FileTimeToSystemTime( &tstamp_ft.ft, &tstamp_st );
00317
00318           printf("Extrapolated ref time (UTC)  : %02d:%02d:%02d.%07d (%.3f us)\n",
00319             tstamp_st.wHour,tstamp_st.wMinute,tstamp_st.wSecond,
00320             (DWORD) ( tstamp_ft.dwl % 10000000UL ), access_time ) ;
00321
00322           // Convert the UTC time to local time if necessary
00323           GetTimeZoneInformation( &tzi );
00324
00325           SystemTimeToTzSpecificLocalTime( &tzi, &tstamp_st, &tstamp_lt );
00326
00327           printf("Extrapolated ref time (LOCAL): %02d:%02d:%02d.%07d (%.3f us)\n\n",
00328             tstamp_lt.wHour,tstamp_lt.wMinute,tstamp_lt.wSecond,
00329             (DWORD) ( tstamp_ft.dwl % 10000000UL), access_time) ;
00330
00331         #endif
00332
00333         if ( this_loops > 0 )
00334           this_loops--;
00335
00336         if ( this_loops == 0 )
00337           break;
00338
00339         // if this_loops is < 0 then loop forever
00340       }
00341
00342       goto done;
00343
00344     fail:
00345       printf("** Aborting: xhrt function returned %i\n", rc );
00346
00347     done:
00348       mbg_xhrt_poll_thread_stop( &poll_thread_info );
00349
00350       mbg_close_device( &dh );
00351       printf( "\n" );
00352     }
00353     else
00354       printf( "High resolution time not supported by this device.\n" );
00355
00356   }
00357
00358   printf ( "\n" );
00359
00360   return rc;
00361 }
00362
00363
00364
Generated on Tue Aug 18 16:18:08 2009 for Meinberg SDK by doxygen 1.5.5