DSRemoteConnect C++ Library 1.1.3.24
Remote connection library for Dewesoft measurement applications
Loading...
Searching...
No Matches
DSRemoteConnect Library Documentation

Introduction

DSRemoteConnect is a C++ library that provides remote connectivity to Dewesoft measurement applications. It supports two connection types:

  • DCOM: For local/remote Windows applications using Microsoft's Distributed Component Object Model
  • NET: For network-based connections using TCP/IP protocols

Key Features

  • Remote control of Dewesoft measurement sessions
  • Real-time data acquisition from measurement channels
  • Setup file loading and management
  • Channel enumeration and property access
  • Control channel writing capabilities
  • Cross-platform support (Windows primary, with network support for other platforms)

Basic Usage

Basic Connection and Data Reading

#include "DSRemoteConnect.h"
int main() {
// Create instance for NET connection
// Connect to Dewesoft (localhost:8999:8001 = telnet_port:data_port)
dsconConnect(instance, "localhost:8999:8001");
// Load measurement setup
dsconLoadSetup(instance, "C:\\path\\to\\setup.dxs");
// Get channel count
size_t channelCount;
dsconGetChannelCount(instance, &channelCount);
// Enumerate channels
ChannelIdList channelList;
dsconEnumerateChannels(instance, &channelList, &channelCount);
// Create channel instance for first channel
dsconCreateChannelInstance(instance, channelList[0], &channel);
// Start measurement
// Read data in loop
double* data = new double[1000];
double* timestamps = new double[1000];
size_t dataCount = 1000;
while (measurement_active) {
if (dsconChannelReadScalarData_2(channel, data, timestamps, &dataCount) == DSX_NO_ERROR) {
// Process data...
}
}
// Cleanup
dsconFreeEnumerateChannels(instance, &channelList);
dsconDisconnect(instance);
delete[] data;
delete[] timestamps;
return 0;
}
@ DSX_NO_ERROR
No error - operation successful.
@ DSX_CONNECTION_TYPE_NET
Network connection using TCP/IP protocols.
DSREMOTECONNECT_API int dsconFreeChannelInstance(ChannelInstanceHandle chInstance)
Free a channel instance.
DSREMOTECONNECT_API int dsconDestroyInstance(DSXInstanceHandle handle)
Destroy a DSX instance.
DSREMOTECONNECT_API int dsconLoadSetup(DSXInstanceHandle handle, char *fileName)
Load a Dewesoft setup file.
DSXInstance * DSXInstanceHandle
Handle to a DSX instance for connection management.
DSREMOTECONNECT_API int dsconStopMeasurement(DSXInstanceHandle handle)
Stop measurement.
DSREMOTECONNECT_API int dsconCreateChannelInstance(DSXInstanceHandle handle, ChannelID id, ChannelInstanceHandle *chInstance)
Create a channel instance by ID.
DSREMOTECONNECT_API int dsconChannelReadScalarData_2(ChannelInstanceHandle handle, double *data, double *timestamps, size_t *count)
Read scalar data from channel (recommended version)
DSREMOTECONNECT_API int dsconEnumerateChannels(DSXInstanceHandle handle, ChannelIdList *channelIdList, size_t *count)
Enumerate all available channels.
ChannelInstance * ChannelInstanceHandle
Handle to a measurement channel instance.
DSREMOTECONNECT_API int dsconFreeEnumerateChannels(DSXInstanceHandle handle, ChannelIdList *channelIdList)
Free memory allocated by channel enumeration.
DSREMOTECONNECT_API int dsconCreateInstance(DSXInstanceHandle *handle, int connectionType)
Create a new DSX instance.
DSREMOTECONNECT_API int dsconStartMeasurement(DSXInstanceHandle handle)
Start measurement.
DSREMOTECONNECT_API int dsconDisconnect(DSXInstanceHandle handle)
Disconnect from Dewesoft application.
DSREMOTECONNECT_API int dsconGetChannelCount(DSXInstanceHandle handle, size_t *count)
Get the total number of available channels.
DSREMOTECONNECT_API int dsconConnect(DSXInstanceHandle handle, char *connectionString)
Connect to a Dewesoft application.

DCOM Connection Example

// For DCOM connections (local Dewesoft instance)
dsconConnect(instance, ""); // Empty string for local DCOM
@ DSX_CONNECTION_TYPE_DCOM
DCOM connection for local/remote Windows applications.

Error Handling

All functions return DX_ERROR_CODE values. Always check return codes:

int result = dsconStartMeasurement(instance);
if (result != DSX_NO_ERROR) {
printf("Failed to start measurement: error code %d\n", result);
// Handle error...
}

Threading Considerations

  • The library is not thread-safe by default
  • Use proper synchronization when accessing from multiple threads
  • Data reading functions can be called from different threads than control functions

Memory Management