summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Burnicki <martin.burnicki@meinberg.de>2012-08-09 12:01:00 +0200
committerMartin Burnicki <martin.burnicki@meinberg.de>2012-08-09 12:01:00 +0200
commit00bbb622f7a0f4e9c4ca97abbec75544b0f23ecf (patch)
treef70b84dd1236ed486a4844828ffc620acae3dc7b
parent49a1a7ac911259fc1e2817b6631d5dbc5ce1713c (diff)
downloadmbgsdk-win-00bbb622f7a0f4e9c4ca97abbec75544b0f23ecf.tar.gz
mbgsdk-win-00bbb622f7a0f4e9c4ca97abbec75544b0f23ecf.zip
Update example code for the C demo projectspatch-dkwin-3069912-2012-08-09
Files provided by mbgsdk-win-c-patch-dkwin-3069912-2012-08-09.zip Obsolete files not included, and directory names adjusted to match common directory structure.
-rw-r--r--c/demo/mbgdevio/hrtime.c9
-rw-r--r--c/demo/mbgdevio/mbgdevio_demo.c259
-rw-r--r--c/demo/mbgdevio/vc6/hrtime.dsp20
-rw-r--r--c/demo/mbgdevio/vc6/mbgdevio_demo.dsp8
-rw-r--r--c/demo/mbgsvcio/vc6/mbgdmpst.dsw12
5 files changed, 207 insertions, 101 deletions
diff --git a/c/demo/mbgdevio/hrtime.c b/c/demo/mbgdevio/hrtime.c
index 94eea4b..020e354 100644
--- a/c/demo/mbgdevio/hrtime.c
+++ b/c/demo/mbgdevio/hrtime.c
@@ -1,13 +1,14 @@
/**************************************************************************
*
- * $Id: hrtime.c 1.5 2009/01/23 08:31:28Z daniel REL_M $
- * $Name: MBGDEVIO_HRTIME_100 $
+ * $Id: hrtime.c 1.6 2012/08/09 09:14:02Z daniel TRASH $
+ * $Name: $
*
* Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
*
* -----------------------------------------------------------------------
* $Log: hrtime.c $
+ * Revision 1.6 2012/08/09 09:14:02Z daniel
* Revision 1.5 2009/01/23 08:31:28Z daniel
* Revision 1.4 2009/01/07 15:22:36Z daniel
* Cleaned up source code.
@@ -30,8 +31,8 @@
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
+ With our GPS cards, the effective resolution of the HR time is better
+ than 1 microsecond. For the IRIG receivers, the resolution is 10
microseconds which is still much better than 10/15 milliseconds provided
by the Windows system clock.
diff --git a/c/demo/mbgdevio/mbgdevio_demo.c b/c/demo/mbgdevio/mbgdevio_demo.c
index 9997f71..ad70f1e 100644
--- a/c/demo/mbgdevio/mbgdevio_demo.c
+++ b/c/demo/mbgdevio/mbgdevio_demo.c
@@ -1,15 +1,23 @@
/**************************************************************************
*
- * $Id: mbgdevio_demo.c 1.10 2009/08/18 14:14:27Z daniel TRASH $
- * $Name: MBGDEVIO_DEMO_120 $
+ * $Id: mbgdevio_demo.c 1.14 2012/08/09 09:17:55Z daniel TRASH $
+ * $Name: $
*
* Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
*
* -----------------------------------------------------------------------
* $Log: mbgdevio_demo.c $
+ * Revision 1.14 2012/08/09 09:17:55Z daniel
+ * Cleanup
+ * Revision 1.13 2012/08/09 09:13:45Z daniel
+ * Fix for new format of PTP structures
+ * Revision 1.12 2012/08/09 09:04:39Z daniel
+ * Revision 1.11 2009/09/10 14:51:13Z martin
+ * Controled by variable read_fast, read block of time stamps using
+ * mbg_get_fast_hr_timestamp_comp() or mbg_get_hr_time_comp().
* Revision 1.10 2009/08/18 14:14:27Z daniel
- * Added calls to read the irig control bits, irig time, irig debug status,
+ * Added calls to read the irig control bits, irig time, irig debug status,
* ptp infos and LAN interface info.
* Revision 1.9 2009/04/01 14:07:24Z martin
* Code cleanup.
@@ -29,26 +37,26 @@
* Initial revision
*
**************************************************************************/
-
+
/**
\file
- Example program to access Meinberg computer peripherals
+ Example program to access Meinberg computer peripherals
using the mbgdevio (Meinberg Device I/O) DLL.<br>
The program checks first whether a certain feature like high
- resolution time, Memory Mapped I/O, different time scales or
+ 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:<br>
<B>"mbglib\lib\msc"</B> for Microsoft C compilers<br>
<B>"mbglib\lib\bc"</B> for Inprise/Borland compilers
*/
-
+
#include <mbgdevio.h>
#include <mbgtime.h>
@@ -58,10 +66,12 @@
#include <stdlib.h>
+static int read_fast = 1;
+
/** Number of memory mapped time reads */
-#define MAX_MEM_MAPPED_CNT 20
+#define MAX_MEM_MAPPED_CNT 20
static int n_sec_change = 0;
@@ -84,7 +94,7 @@ void print_drvr_info( void )
int rc;
PCPS_DRVR_INFO drvr_info;
MBG_DEV_HANDLE dh = mbg_open_device( 0 );
-
+
if ( dh == MBG_INVALID_DEV_HANDLE )
{
err_msg( "Unable to open device" );
@@ -114,7 +124,7 @@ void print_drvr_info( void )
static /*HDR*/
-void print_dev_info( MBG_DEV_HANDLE dh,
+void print_dev_info( MBG_DEV_HANDLE dh,
PCPS_DEV *p_dev )
{
int rc;
@@ -142,7 +152,7 @@ void print_date_time( PCPS_TIME *tp, const char *label )
printf( label );
printf( "%02u.%02u.%02u %02u:%02u:%02u.%02u (UTC%+dh)\n",
- tp->mday, tp->month, tp->year,
+ tp->mday, tp->month, tp->year,
tp->hour, tp->min, tp->sec, tp->sec100,
tp->offs_utc
);
@@ -162,14 +172,14 @@ void print_date_time_status( MBG_DEV_HANDLE dh )
{
print_date_time( &t, " " );
- printf( " %s\n",
- ( t.status & PCPS_FREER ) ?
- "free running" :
+ printf( " %s\n",
+ ( t.status & PCPS_FREER ) ?
+ "free running" :
"synchronized" );
- printf( " %s\n",
- ( t.status & PCPS_SYNCD ) ?
- "synchronized after last RESET" :
+ printf( " %s\n",
+ ( t.status & PCPS_SYNCD ) ?
+ "synchronized after last RESET" :
"not synchronized after last RESET" );
}
else
@@ -183,14 +193,14 @@ static /*HDR*/
char *sprint_hr_time( char *s, const PCPS_HR_TIME *t )
{
const char *cp = "UTC";
-
+
if ( t->status & PCPS_SCALE_TAI )
cp = "TAI";
else
if ( t->status & PCPS_SCALE_GPS )
cp = "GPS";
- sprintf( s, "%08lX.%08lX %s%+ldsec, st: %04X",
+ sprintf( s, "%08lX.%08lX %s%+ldsec, st: %04X",
t->tstamp.sec,
t->tstamp.frac,
cp,
@@ -209,18 +219,18 @@ void print_hr_time( MBG_DEV_HANDLE dh )
{
PCPS_HR_TIME hr_t;
- // Read a high resolution time stamp with compensated latency.
- // The function mbg_get_hr_time_comp() has been introduced in
- // mbgdevio DLL v2.1.2 and compensates the execution time (latency)
- // required to acces the hardware from inside the kernel driver.
+ // Read a high resolution time stamp with compensated latency.
+ // The function mbg_get_hr_time_comp() has been introduced in
+ // mbgdevio DLL v2.1.2 and compensates the execution time (latency)
+ // required to acces the hardware from inside the kernel driver.
#if 1 // use with mbgdevio DLL v2.1.2 or greater
- int32_t latency;
+ int32_t latency;
- // The latency value can optionally be returned by this function.
- // If the latency value is not required, a NULL pointer can be
- // passed instead. The latency value is in hectonanoseconds [hns],
+ // The latency value can optionally be returned by this function.
+ // If the latency value is not required, a NULL pointer can be
+ // passed instead. The latency value is in hectonanoseconds [hns],
// i.e. 100 nanosecond units.
if ( PCPS_SUCCESS == mbg_get_hr_time_comp( dh, &hr_t, &latency ) )
@@ -268,7 +278,7 @@ void print_sec_changes( MBG_DEV_HANDLE dh )
// This IOCTL call blocks until a second change is detected.
rc = mbg_get_time_sec_change( dh, &t );
-
+
if ( rc == PCPS_SUCCESS )
{
print_hr_time( dh );
@@ -286,8 +296,8 @@ void print_sec_changes( MBG_DEV_HANDLE dh )
} // print_sec_changes
-
-
+
+
static /*HDR*/
void print_receiver_position( MBG_DEV_HANDLE dh )
{
@@ -316,8 +326,8 @@ void print_sv_info( MBG_DEV_HANDLE dh )
if ( PCPS_SUCCESS == mbg_get_gps_stat_info( dh, &stat_info ) )
{
printf( " Satellites: %u in view, %u good\n",
- stat_info.svs_in_view,
- stat_info.good_svs
+ stat_info.svs_in_view,
+ stat_info.good_svs
);
}
else
@@ -387,14 +397,14 @@ void check_user_captures( MBG_DEV_HANDLE dh, PCPS_DEV *pdev )
// If no new capture event is available, the ucap.tstamp structure
// is set to 0.
- // Alternatively, PCPS_UCAP_ENTRIES.used can be checked for the
+ // Alternatively, PCPS_UCAP_ENTRIES.used can be checked for the
// number of events pending in the buffer.
if ( ucap_event.tstamp.sec == 0 ) // no new user capture event
break;
- printf( " New capture: CH%i: %s (%i/%i)\n",
+ printf( " New capture: CH%i: %s (%i/%i)\n",
ucap_event.signal, // this is the channel number
sprint_hr_time( ws, &ucap_event ),
ucap_entries.used,
@@ -439,7 +449,7 @@ void check_user_captures( MBG_DEV_HANDLE dh, PCPS_DEV *pdev )
ucaps_read++;
}
}
-
+
if ( ucaps_read )
printf( " User captures read: %u\n", ucaps_read );
@@ -522,6 +532,32 @@ void show_irig_ctrl_bits( MBG_DEV_HANDLE dh )
static /*HDR*/
+void show_irig_time( MBG_DEV_HANDLE dh )
+{
+ PCPS_IRIG_TIME irig_time;
+ char irig_time_str[128];
+ int rc;
+
+ rc = mbg_get_irig_time( dh, &irig_time );
+
+ if ( irig_time.yday == 0 )
+ strcpy( irig_time_str, "N/A" );
+ else
+ {
+ int n = sprintf( irig_time_str, "Day: %u, Time: %02d:%02d:%02d",
+ irig_time.yday, irig_time.hour, irig_time.min, irig_time.sec );
+
+ if ( irig_time.year != 0xFF )
+ sprintf( &irig_time_str[n], ", Year: %02d", irig_time.year );
+ }
+
+ printf( "IRIG Time: %s\n", irig_time_str );
+
+} // show_irig_ctrl_bits
+
+
+
+static /*HDR*/
void show_irig_debug_status( MBG_DEV_HANDLE dh )
{
static const char *status_str[N_MBG_DEBUG_BIT] = MBG_DEBUG_STATUS_STRS;
@@ -581,12 +617,12 @@ void show_lan_intf_state( MBG_DEV_HANDLE dh )
printf( "\nOn-board LAN interface settings:\n" );
mbg_snprintf( ws, sizeof( ws ), "%02X-%02X-%02X-%02X-%02X-%02X",
- lan_if_info.mac_addr[0],
- lan_if_info.mac_addr[1],
- lan_if_info.mac_addr[2],
- lan_if_info.mac_addr[3],
- lan_if_info.mac_addr[4],
- lan_if_info.mac_addr[5]
+ lan_if_info.mac_addr.b[0],
+ lan_if_info.mac_addr.b[1],
+ lan_if_info.mac_addr.b[2],
+ lan_if_info.mac_addr.b[3],
+ lan_if_info.mac_addr.b[4],
+ lan_if_info.mac_addr.b[5]
);
printf( " MAC Address: %s\n", ws );
@@ -636,12 +672,12 @@ void print_ptp_status( MBG_DEV_HANDLE dh )
cp = ptp_state_available ? ws : "N/A";
mbg_snprintf( ws, sizeof( ws ), "%02X-%02X-%02X-%02X-%02X-%02X",
- ptp_state.gm_identity.b[0],
- ptp_state.gm_identity.b[1],
- ptp_state.gm_identity.b[2],
- ptp_state.gm_identity.b[5],
- ptp_state.gm_identity.b[6],
- ptp_state.gm_identity.b[7]
+ ptp_state.gm_id.b[0],
+ ptp_state.gm_id.b[1],
+ ptp_state.gm_id.b[2],
+ ptp_state.gm_id.b[5],
+ ptp_state.gm_id.b[6],
+ ptp_state.gm_id.b[7]
);
printf( " Grandmaster MAC: %s\n", cp );
@@ -690,7 +726,7 @@ int main( int argc, char* argv[] )
}
- printf( "Found %i radio clock%s\n",
+ printf( "Found %i radio clock%s\n",
devices_found,
( devices_found == 1 ) ? "" : "s"
);
@@ -699,7 +735,7 @@ int main( int argc, char* argv[] )
print_drvr_info();
- // There may be several radio clock devices installed.
+ // There may be several radio clock devices installed.
// Try to get information from each of the devices.
for ( i = 0; i < devices_found; i++ )
{
@@ -710,7 +746,7 @@ int main( int argc, char* argv[] )
printf( "Radio clock %i:\n", i );
dh = mbg_open_device( i );
-
+
if ( dh == MBG_INVALID_DEV_HANDLE )
{
err_msg( "Unable to open device" );
@@ -725,7 +761,7 @@ int main( int argc, char* argv[] )
int rc;
rc = mbg_get_time_scale_info( dh, &tsi );
-
+
if ( rc == PCPS_SUCCESS )
printf( " Current time scale: \"%s\"\n", time_scale_str[tsi.settings.scale] );
else
@@ -735,9 +771,10 @@ int main( int argc, char* argv[] )
// Read the current date, time, and status.
print_date_time_status( dh );
- // Some clocks (mainly GPS receivers and IRIG decoders)
- // support a high resolution time. If supported, read and
+ // Some clocks (mainly GPS receivers and IRIG decoders)
+ // support a high resolution time. If supported, read and
// display the HR time.
+
if ( _pcps_has_hr_time( &dev ) )
print_hr_time( dh );
@@ -754,9 +791,9 @@ int main( int argc, char* argv[] )
it.yday, it.hour, it.min, it.sec );
}
-
+
// Print some GPS clock specific info
- if ( _pcps_is_gps( &dev ) )
+ if ( _pcps_is_gps( &dev ) )
{
print_receiver_position( dh );
print_sv_info( dh );
@@ -774,18 +811,48 @@ int main( int argc, char* argv[] )
if ( _pcps_has_irig_ctrl_bits( &dev ) )
show_irig_ctrl_bits( dh );
- if ( _pcps_has_lan_intf( &dev ) )
+ if ( _pcps_has_lan_intf( &dev ) )
show_lan_intf_state( dh );
- if ( _pcps_is_ptp( &dev ) )
+ if ( _pcps_is_ptp( &dev ) )
print_ptp_status( dh );
+/*
+ if ( _pcps_has_raw_irig_data( &dev ) )
+ {
+ MBG_RAW_IRIG_DATA irig_data;
+ int rc;
+ char temp[100];
+
+ while ( 1 )
+ {
+ rc = mbg_get_raw_irig_data_on_sec_change( dh, &irig_data );
+
+ if ( rc == MBG_SUCCESS )
+ {
+ sprintf( temp, "%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+ irig_data.data[0], irig_data.data[1], irig_data.data[2], irig_data.data[3],
+ irig_data.data[4], irig_data.data[5], irig_data.data[6], irig_data.data[7],
+ irig_data.data[8], irig_data.data[9], irig_data.data[10], irig_data.data[11],
+ irig_data.data[12], irig_data.data[13], irig_data.data[14], irig_data.data[15] );
+
+ printf( "\n\n RAW IRIG DATA: %s\n",temp );
+
+ show_irig_ctrl_bits(dh);
+ show_irig_time(dh);
+
+ }
+ }
+ }
+
+*/
+
//***********
// Loop some seconds waiting for second to change
// Uncomment the line below if required:
- //print_sec_changes( dh );
+ print_sec_changes( dh );
//***********
@@ -804,37 +871,79 @@ int main( int argc, char* argv[] )
uint32_t latency[MAX_MEM_MAPPED_CNT] = { 0 };
int rc;
- // Read some memory mapped time stamps
- // as fast as possible
- for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
+ if ( read_fast )
+ {
+ // Read some memory mapped time stamps
+ // as fast as possible
+ for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
+ {
+ rc = mbg_get_fast_hr_timestamp_comp( dh, &hrtime[j].tstamp, &latency[j] );
+
+ if ( rc != PCPS_SUCCESS )
+ break;
+ }
+ }
+ else
{
- rc = mbg_get_fast_hr_timestamp_comp( dh, &hrtime[j].tstamp, &latency[j] );
-
- if ( rc != PCPS_SUCCESS )
+ // Read some memory mapped time stamps
+ // as fast as possible
+ for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
{
- printf(" Error: mbg_get_fast_hr_timestamp_comp() returned 0x%X\n",rc );
- break;
+ rc = mbg_get_hr_time_comp( dh, &hrtime[j], &latency[j] );
+
+ if ( rc != PCPS_SUCCESS )
+ break;
}
}
- if ( j == MAX_MEM_MAPPED_CNT )
+ if ( rc == PCPS_SUCCESS )
{
// Print time stamps
for ( j = 0; j < MAX_MEM_MAPPED_CNT; j++ )
{
- char ws[200];
+ unsigned __int64 lFracPtp270pex = hrtime[j].tstamp.frac;
+ unsigned __int64 lPtp270pexTs = hrtime[j].tstamp.sec; // "sec" [s]
+ // mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hrtime[j] );
+
+
+ lFracPtp270pex *= 1000000000;
+ lFracPtp270pex >>= 32; // "frac" [1 ns]
+
+ // Create a proper 1 ns Timestamp, with the "sec" part and the "frac" part.
+
- mbg_str_pcps_hr_tstamp_utc( ws, sizeof( ws ), &hrtime[j] );
- printf( " HR timestamp (MEM): %s latency=%u hns\n", ws, latency[j] );
+ lPtp270pexTs *= 1000000000; // "sec" [1 ns]
+ lPtp270pexTs += lFracPtp270pex; // "sec" + "frac" [1 ns]
+
+ printf( " HR timestamp ns %s: %I64u lat=%u hns",
+ read_fast ? " (fast)" : "", lPtp270pexTs, latency[j] );
+
+ if ( j )
+ {
+
+
+ // print the difference between the current and the previous time stamp
+ int64_t ts = pcps_time_stamp_to_uint64( &hrtime[j].tstamp );
+ int64_t prv_ts = pcps_time_stamp_to_uint64( &hrtime[j - 1].tstamp );
+ // we divide by PCPS_HRT_BIN_FRAC_SCALE to get the correct fractions
+ // and we multiply by 1E6 to get the result in microseconds
+ double delta_t = (double) ( ts - prv_ts ) * 1E6 / PCPS_HRT_BIN_FRAC_SCALE;
+ printf( " (%+.1f us)", delta_t );
+ }
+
+ printf( "\n" );
}
}
+ else
+ printf(" Error: mbg_get_fast_hr_timestamp_comp() returned 0x%X\n",rc );
+
}
}
- mbg_close_device( &dh );
+ mbg_close_device( &dh );
printf( "\n" );
}
-
+
printf ( "\n" );
return rc;
diff --git a/c/demo/mbgdevio/vc6/hrtime.dsp b/c/demo/mbgdevio/vc6/hrtime.dsp
index 9a36f23..00b900a 100644
--- a/c/demo/mbgdevio/vc6/hrtime.dsp
+++ b/c/demo/mbgdevio/vc6/hrtime.dsp
@@ -48,8 +48,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "hrtime - Win32 Debug"
@@ -63,16 +63,16 @@ LINK32=link.exe
# PROP Output_Dir "hrtime___Win32_Debug"
# PROP Intermediate_Dir "hrtime___Win32_Debug"
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\mbglib\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\mbglib\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
@@ -105,10 +105,6 @@ SOURCE=..\..\..\mbglib\include\mbgdevio.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\mbglib\include\mbgerror.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\mbglib\include\mbggeo.h
# End Source File
# Begin Source File
@@ -117,10 +113,6 @@ SOURCE=..\..\..\mbglib\include\mbgutil.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\mbglib\include\pci_asic.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\mbglib\include\pcpsdefs.h
# End Source File
# Begin Source File
diff --git a/c/demo/mbgdevio/vc6/mbgdevio_demo.dsp b/c/demo/mbgdevio/vc6/mbgdevio_demo.dsp
index 082e424..bc893a7 100644
--- a/c/demo/mbgdevio/vc6/mbgdevio_demo.dsp
+++ b/c/demo/mbgdevio/vc6/mbgdevio_demo.dsp
@@ -109,10 +109,6 @@ SOURCE=..\..\..\mbglib\include\mbgdevio.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\mbglib\include\mbgerror.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\mbglib\include\mbggeo.h
# End Source File
# Begin Source File
@@ -121,10 +117,6 @@ SOURCE=..\..\..\mbglib\include\mbgutil.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\mbglib\include\pci_asic.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\mbglib\include\pcpsdefs.h
# End Source File
# Begin Source File
diff --git a/c/demo/mbgsvcio/vc6/mbgdmpst.dsw b/c/demo/mbgsvcio/vc6/mbgdmpst.dsw
index 5c76f67..71839c5 100644
--- a/c/demo/mbgsvcio/vc6/mbgdmpst.dsw
+++ b/c/demo/mbgsvcio/vc6/mbgdmpst.dsw
@@ -15,6 +15,18 @@ Package=<4>
###############################################################################
+Project: "mbgsvctm"=.\mbgsvctm\mbgsvctm.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Global:
Package=<5>