Giter VIP home page Giter VIP logo

node-opendds's Introduction

OpenDDS

OpenDDS

Coverity Scan Build Status

OpenDDS is an open-source C++ implementation of the Object Management Group's specification "Data Distribution Service for Real-time Systems" (DDS), as well as some other related specifications. These standards define a set of interfaces and protocols for developing distributed applications based on the publish-subscribe and distributed cache models. Although OpenDDS is itself developed in C++, Java bindings are provided so that Java applications can use OpenDDS. OpenDDS also includes support for the DDS Security and XTypes specifications.

OpenDDS is built on the ACE abstraction layer to provide platform portability. OpenDDS also leverages the capabilities of TAO for IDL compilation and the OpenDDS DCPS Information Repository.

The primary development of OpenDDS was done by Object Computing, Incorporated in St. Louis and Phoenix. It is released under generous license terms similar to ACE, TAO and MPC. See the LICENSE file for details.

Table of Contents:

Documentation

Other documentation can be found in docs directory.

Support

For commercial support, please see https://opendds.org/support.html.

Questions concerning OpenDDS should be directed to GitHub Discussions.

If you wish to file a bug report:

  1. Fork OpenDDS on GitHub.
  2. Add a minimum working example that demonstrates the problem.
  3. Create a pull request.
  4. Fill out the PROBLEM-REPORT-FORM and attach it to the pull request.
  1. Create a directory tests/DCPS/MyExample (MyExample is a placeholder.)
  2. Add the IDL, code, and configuration files for the example programs. Be sure to exclude any proprietary information as the submitted example will be public.
  3. Add an MPC file that builds the test programs.
  4. Add a launcher script run_test.pl. Be sure to document the options. See tests/DCPS/HelloWorld/run_test.pl for inspiration.
  5. Add a README.rst file that gives a high-level overview of the example and the problem that it illustrates.

It should be possible to build and run the example using run_test.pl as in the quickstarts for Windows and Linux. If the problem lies in the example, then GitHub's Pull Request interface will allow people to discuss, comment on, and propose changes to get the example working. If the problem lies in OpenDDS, then the example is a new test case.

Features

This release of OpenDDS is based on the DDS Specification formal/2015-04-10 (version 1.4). It features the following transport protocols:

  • TCP/IP
  • UDP/IP
  • IP multicast
  • RTPS over UDP/IP (unicast and multicast)
  • Shared memory

RTPS (Interoperability) features are based on the DDS-RTPS Specification formal/2019-04-03 (version 2.3). See the OpenDDS Developer's Guide and the file docs/design/RTPS for more details on RTPS.

See the Developer's Guide for information on OpenDDS compliance with the DDS specification. If you would like to contribute a feature or sponsor the developers to add a feature please see the Support section above for contact information.

Dependencies

These are just the required dependencies. For a complete detailed list of dependencies, including optional ones, see https://opendds.readthedocs.io/en/latest-release/devguide/building/dependencies.html.

ACE/TAO

OpenDDS requires TAO for both IDL compilation as well as interaction with the DCPSInfoRepo. ACE is also required, but it is always included with TAO. If you will be using the configure script for OpenDDS, you do not need to download TAO first -- the configure script will download it for you.

Perl

Perl is used for the configure script, running the automated tests and examples included in this source tree, and generating Makefiles or Visual Studio project files.

On Windows we recommend the use of Strawberry Perl.

Supported Platforms

Operating Systems

This release of OpenDDS has been tested under the following platforms:

Linux family:

  • Red Hat EL and CentOS 6.6, 6.8, 6.9 (x86_64)
  • Red Hat EL and CentOS 7.2, 7.3, 7.4 (x86_64)
  • Red Hat EL 8.0 (x86_64)
  • Fedora 24 and 31 (x86_64)
  • Debian 9.4 (i686)
  • Ubuntu 22.04 LTS (x86_64)
  • openSUSE 42.1 (x86_64)
  • Yocto 3.4.4 (ARMv8)

Windows family:

  • Windows 7 (32-bit, 64-bit)
  • Windows Server 2012 R2 (64-bit)
  • Windows 10 (64-bit)

Embedded/Mobile/IoT:

We have built OpenDDS for VxWorks 6.9, 7, and 21.03 and have run basic system and performance tests (but not the entire regression test suite). Please see the OpenDDS Support page for more information on support for ACE, TAO, and OpenDDS on VxWorks. Download VxWorks RPM packages for ACE, TAO, and OpenDDS here.

Compilers

This release of OpenDDS has been tested using the following compilers:

  • Microsoft Visual C++ 10 with SP1 (Visual Studio 2010)
  • Microsoft Visual C++ 11 (Visual Studio 2012) - Update 4
  • Microsoft Visual C++ 12 (Visual Studio 2013) - Update 5
  • Microsoft Visual C++ 14 (Visual Studio 2015) - Update 3
  • Microsoft Visual C++ 14.1 (Visual Studio 2017) cl 19.16.27048
  • Microsoft Visual C++ 14.2 (Visual Studio 2019) cl 19.29.30146
  • gcc 4.4.7, 4.8.5
  • gcc 6.2.1, 6.3.0
  • gcc 7.2.0, 7.3.0, 7.5.0
  • gcc 8.2.0, 8.2.1
  • gcc 9.3.1
  • gcc 12.2.0
  • Ubuntu clang 14.0.6
  • Ubuntu clang 15.0.0

Building and Installing

For building and installation instructions see https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html

Quick Start with Docker

See the Docker Quick Start for how to use the pre-built docker image.

node-opendds's People

Contributors

brillozon avatar dependabot[bot] avatar iguessthislldo avatar jrw972 avatar lij-oci avatar mitza-oci avatar mkimberlin avatar plabanca avatar simpsont-oci avatar sonndinh avatar wzr1337 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-opendds's Issues

Setting DataWriter representation

What is the correct format or is it possible to set the DataWriter representation?
In OpenDDS 3.16 the default was set to "DDS::XCDR2_DATA_REPRESENTATION"
Is it possible to set it to "DDS::XCDR_DATA_REPRESENTATION" through create_datawriter QoS?

I tried to set: { ...qualityOfService, representation: { value: "DDS::XCDR_DATA_REPRESENTATION" } }

and it seems it is an array :

{ ...qualityOfService, representation: { value: ["DDS::XCDR_DATA_REPRESENTATION", "DDS::XCDR2_DATA_REPRESENTATION"] } }

but this does not seem to set because in the debug logs I still get : dds_demarshal: Deserializing with encoding kind XCDR2.

Any pointers?

Error when using installed tree

Hi,
So I was able to install using the source tree, but when I tried to use the install tree to run this module, it throws out this error. I checked it and the ace folder does not exist in the installed folder of opendds, so my question is, is there any option to add when building the installed opendds to include needed materials for this js binding ? I am using node: 12.22.0 and opendds 3.21.0.

Thank you.

  CXX(target) Release/obj.target/node_opendds/src/node-opendds.o
In file included from ../src/NodeDRListener.h:6,
                 from ../src/node-opendds.cpp:1:
/home/laccc/Projects/OpenDDS/opendds-install/include/dds/DdsDcpsSubscriptionC.h:34:15: fatal error: ace/pre.h: No such file or directory
   34 | #include /**/ "ace/pre.h"
      |               ^~~~~~~~~~~
compilation terminated.
make: *** [node_opendds.target.mk:127: Release/obj.target/node_opendds/src/node-opendds.o] Error 1
make: Leaving directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/laccc/.nvm/versions/node/v12.22.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:314:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Linux 5.15.0-46-generic
gyp ERR! command "/home/laccc/.nvm/versions/node/v12.22.0/bin/node" "/home/laccc/.nvm/versions/node/v12.22.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds
gyp ERR! node -v v12.22.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/laccc/.npm/_logs/2022-08-30T00_40_37_960Z-debug.log

Latest version is not published on npm

It seems that latest version of this library's master branch has not been released on npm. The npm version for example does not contain create_datawriter function.

Error installing opendds

Hi,

When i run npm install opendds im hit with the error:

gyp: undefined variable lib_suffix in binding.gyp

What am i not doing? please assist

Installation issue

Hi guys,
I am trying to install the node-opendds using the readme. However, when I try to do yarn install / npm install. It throws error:
`yarn install v1.22.19
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
$ node-gyp rebuild

C:\Projects\node-opendds-master\node-opendds-master>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
[##] 2/2gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | win32 | x64
gyp info find Python using Python version 2.7.18 found at "C:\Python27\python.exe"
gyp info find VS using VS2015 (14.0) found at:
gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio 14.0"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Python27\python.exe
gyp info spawn args [
gyp info spawn args 'C:\Users\laccc\AppData\Roaming\nvm\v12.22.0\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'msvs',
gyp info spawn args '-I',
gyp info spawn args 'C:\Projects\node-opendds-master\node-opendds-master\build\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\Users\laccc\AppData\Roaming\nvm\v12.22.0\node_modules\npm\node_modules\node-gyp\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\Users\laccc\AppData\Local\node-gyp\Cache\12.22.0\include\node\common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=C:\Users\laccc\AppData\Local\node-gyp\Cache\12.22.0',
gyp info spawn args '-Dnode_gyp_dir=C:\Users\laccc\AppData\Roaming\nvm\v12.22.0\node_modules\npm\node_modules\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\Users\\laccc\\AppData\\Local\\node-gyp\\Cache\\12.22.0\\<(target_arch)\\node.lib',
gyp info spawn args '-Dmodule_root_dir=C:\Projects\node-opendds-master\node-opendds-master',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'C:\Projects\node-opendds-master\node-opendds-master\build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp: Undefined variable lib_suffix in binding.gyp while trying to load binding.gyp
←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mconfigure error←[0m
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m Error: gyp failed with exit code: 1
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at ChildProcess.onCpExit (C:\Users\laccc\AppData\Roaming\nvm\v12.22.0\node_modules\npm\node_modules\node-gyp\lib\configure.js:351:16)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at ChildProcess.emit (events.js:314:20)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mSystem←[0m Windows_NT 10.0.19044
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mcommand←[0m "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mcwd←[0m C:\Projects\node-opendds-master\node-opendds-master
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnode -v←[0m v12.22.0
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnode-gyp -v←[0m v5.1.0
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnot ok←[0m
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.`

  • Node: 12.22.0
  • Node-gyp: 5.1
  • VS: 2015

I wonder what is the problem if you can please help me. Thank you!

couldn't create DomainParticipant on Win32.

19796|28512) ERROR: InfoRepoDiscovery::get_dcps_info: unable to narrow DCPSInfo (file://repo.ior) for key DEFAULT_REPO.
(19796|28512) ERROR: DomainParticipantImpl::enable, add_domain_participant returned invalid id.
(19796|28512) ERROR: DomainParticipantFactoryImpl::create_participant, unable to enable DomainParticipant.
E:\CI-Cor-Ready\615\gmss-bs\my-dds\test.js:14
let participant = factory.create_participant(DOMAIN_ID, qos)
^

Error: couldn't create DomainParticipant
at Object. (E:\CI-Cor-Ready\615\gmss-bs\my-dds\test.js:14:27)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)

Provide usage example

I am learning DDS right now.. played with the c++ Messenger example from the official docs..

Would be nice to have an example here too

CycloneDDS c++ communicate with OpenDDS JSBinding

Hi,
I have tried to communicate CycloneDDS and OpenDDS c++ and it worked. But when I use the opendds nodejs module, I got some error from cycloneDDS publisher saying that the qos parameter is invalid. But I really don't know about qos and not really sure how to match the two. You can see the error message at eclipse-cyclonedds/cyclonedds#1395.

1661987970.270809 [32] dq.builtin: invalid parameter list (vendor 1.3, version 2.4): pid 75 (TYPE_INFORMATION) invalid, input = 84,0,0,0,1,16,0,64,40,0,0,0,36,0,0,0,20,0,0,0,241,2,226,168,205,142,140,"j=XX",233,132,176,90,0,56,0,0,0,255,255,255,255,4,0,0,0,0,0,0,0,2,16,0,64,28,0,0,0,24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0 1661987970.270891 [32] dq.builtin: Invalid SubscriptionBuiltinTopicData (vendor 1.3): invalid qos/parameters

I tried remove the qos in test_subscriber.js but does not work either. My question is how do I use default qos, or change qos in js binding of opendds, or if you know anything about the error message.

Thank you.

Edit: here is the js file:


var DOMAIN_ID = 32;
var secure = process.argv.includes('--secure');
var rtps = process.argv.includes('--rtps');

function init_opendds(opendds_addon) {
  if (secure || rtps) {
    return opendds_addon.initialize('-DCPSConfigFile', 'rtps_disc.ini');
  } else {
    return opendds_addon.initialize();
  }
}

var opendds_addon = require('../lib/node-opendds'),
  factory = init_opendds(opendds_addon),
  library = opendds_addon.load('idl/NodeJSTest'),
  participant = factory.create_participant(DOMAIN_ID),
  reader

try {
  if (!library) {
    throw 'Failed to load shared library';
  }
  reader = participant.subscribe('HelloWorldData_Msg', 'HelloWorldData::Msg', 
  {
    DataReaderQos: {
      reliability: {
        kind: 'RELIABLE_RELIABILITY_QOS',
        max_blocking_time: {sec: 10, nanosec: 0}
      },
    
      history: {
        kind: 'KEEP_ALL_HISTORY_QOS',
        depth: 1
      },

      resource_limits: {
        max_samples: 1000,
      },
   
    }
  },
   function (dr, sinfo, sample) {
    console.log("sample info", sinfo);
    console.log("sample", sample);
  });
} catch (e) {
  console.log(e);
}

process.on('exit', function () {
  factory.delete_participant(participant); // optional
  opendds_addon.finalize(factory);
});

Error when trying to make v8stubs

I have installed OpenDDS 3.12 and have compiled and ran the sample code given in OpenDDS examples. I tried to build and run the test provided with node-opendds.
It gave an error
test_publisher will not be built due to the following missing library: v8stubs

Then I generated makefile in v8stubs folder with the following command:
$ACE_ROOT/bin/mpc.pl -type gnuace v8stubs.mpc
and then tried to build with make command
It threw error #include <v8.h> no such file or directory
So I installed libv8-dev by apt-get install

Now it's throwing error:
`GNUmakefile: /home/ubuntu/testFolder/node_modules/opendds/tools/v8stubs/GNUmakefile.v8stubs MAKEFLAGS=

g++ -Wno-deprecated-declarations -fvisibility=hidden -fvisibility-inlines-hidden -ggdb -pthread -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -D_GNU_SOURCE -I/home/ubuntu/OpenDDS-3.12/ACE_wrappers -D__ACE_INLINE__ -I/include/node -I -c -fPIC -o .shobj/v8stubs.o v8stubs.cpp
v8stubs.cpp:6:16: error: prototype for ‘v8::Localv8::Array v8::Array::New(v8::Isolate*, int)’ does not match any in class ‘v8::Array’
Local Array::New(Isolate*, int) { return {}; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1758:32: error: candidate is: static v8::Localv8::Array v8::Array::New(int)
V8EXPORT static Local New(int length = 0);
^
v8stubs.cpp:7:3: error: ‘EscapableHandleScope’ does not name a type
EscapableHandleScope::EscapableHandleScope(Isolate*) {}
^
v8stubs.cpp:8:22: error: ‘EscapableHandleScope’ has not been declared
internal::Object** EscapableHandleScope::Escape(internal::Object**) {
^
v8stubs.cpp:12:22: error: prototype for ‘v8::internal::Object** v8::HandleScope::CreateHandle(v8::internal::HeapObject*, v8::internal::Object*)’ does not match any in class ‘v8::HandleScope’
internal::Object** HandleScope::CreateHandle(internal::HeapObject*,
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:468:29: error: candidates are: static v8::internal::Object** v8::HandleScope::CreateHandle(v8::internal::HeapObject*)
static internal::Object** CreateHandle(internal::HeapObject* value);
^
/usr/include/v8.h:466:29: error: static v8::internal::Object** v8::HandleScope::CreateHandle(v8::internal::Object*)
static internal::Object** CreateHandle(internal::Object* value);
^
v8stubs.cpp:17:18: error: prototype for ‘v8::Localv8::Integer v8::Integer::NewFromUnsigned(v8::Isolate*, unsigned int)’ does not match any in class ‘v8::Integer’
Local Integer::NewFromUnsigned(Isolate*, unsigned int) {
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1393:34: error: candidates are: static v8::Localv8::Integer v8::Integer::NewFromUnsigned(uint32_t, v8::Isolate*)
V8EXPORT static Local NewFromUnsigned(uint32_t value, Isolate*);
^
/usr/include/v8.h:1391:34: error: static v8::Localv8::Integer v8::Integer::NewFromUnsigned(uint32_t)
V8EXPORT static Local NewFromUnsigned(uint32_t value);
^
v8stubs.cpp:20:18: error: prototype for ‘v8::Localv8::Integer v8::Integer::New(v8::Isolate*, int)’ does not match any in class ‘v8::Integer’
Local Integer::New(Isolate*, int) { return {}; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1392:34: error: candidates are: static v8::Localv8::Integer v8::Integer::New(int32_t, v8::Isolate*)
V8EXPORT static Local New(int32_t value, Isolate*);
^
/usr/include/v8.h:1390:34: error: static v8::Localv8::Integer v8::Integer::New(int32_t)
V8EXPORT static Local New(int32_t value);
^
v8stubs.cpp:22:45: error: no ‘v8::Localv8::Context v8::Isolate::GetCurrentContext()’ member function declared in class ‘v8::Isolate’
Local Isolate::GetCurrentContext() { return {}; }
^
v8stubs.cpp:23:17: error: prototype for ‘v8::Localv8::Number v8::Number::New(v8::Isolate*, double)’ does not match any in class ‘v8::Number’
Local Number::New(Isolate*, double) { return {}; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1377:33: error: candidate is: static v8::Localv8::Number v8::Number::New(double)
V8EXPORT static Local New(double value);
^
v8stubs.cpp:24:17: error: prototype for ‘v8::Localv8::Object v8::Object::New(v8::Isolate*)’ does not match any in class ‘v8::Object’
Local Object::New(Isolate*) { return {}; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1724:33: error: candidate is: static v8::Localv8::Object v8::Object::New()
V8EXPORT static Local New();
^
v8stubs.cpp:25:8: error: prototype for ‘bool v8::Object::Set(unsigned int, v8::Localv8::Value)’ does not match any in class ‘v8::Object’
bool Object::Set(unsigned int, Local) { return false; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1487:17: error: candidates are: bool v8::Object::Set(uint32_t, v8::Handlev8::Value)
V8EXPORT bool Set(uint32_t index,
^
/usr/include/v8.h:1483:17: error: bool v8::Object::Set(v8::Handlev8::Value, v8::Handlev8::Value, v8::PropertyAttribute)
V8EXPORT bool Set(Handle key,
^
v8stubs.cpp:26:8: error: prototype for ‘bool v8::Object::Set(v8::Localv8::Value, v8::Localv8::Value)’ does not match any in class ‘v8::Object’
bool Object::Set(Local, Local) { return false; }
^
In file included from v8stubs.cpp:3:0:
/usr/include/v8.h:1487:17: error: candidates are: bool v8::Object::Set(uint32_t, v8::Handlev8::Value)
V8EXPORT bool Set(uint32_t index,
^
/usr/include/v8.h:1483:17: error: bool v8::Object::Set(v8::Handlev8::Value, v8::Handlev8::Value, v8::PropertyAttribute)
V8EXPORT bool Set(Handle key,
^
v8stubs.cpp:27:48: error: no ‘v8::Localv8::Value v8::Object::SlowGetInternalField(int)’ member function declared in class ‘v8::Object’
Local Object::SlowGetInternalField(int) { return {}; }
^
v8stubs.cpp:28:3: error: ‘MaybeLocal’ does not name a type
MaybeLocal String::NewFromTwoByte(Isolate*, const uint16_t*,
^
v8stubs.cpp:32:3: error: ‘MaybeLocal’ does not name a type
MaybeLocal String::NewFromUtf8(Isolate*, const char*,
^
v8stubs.cpp:36:25: error: no ‘void v8::V8::ToLocalEmpty()’ member function declared in class ‘v8::V8’
void V8::ToLocalEmpty() {}
^
v8stubs.cpp:37:3: error: ‘MaybeLocal’ does not name a type
MaybeLocal Value::ToInt32(Local) const { return {}; }
^
v8stubs.cpp:38:3: error: ‘MaybeLocal’ does not name a type
MaybeLocal Value::ToUint32(Local) const { return {}; }
^
make: *** [.shobj/v8stubs.o] Error 1`

How to run this project

Hello, Now I want to use a tool to realize the function of OpenDDS connecting with web pages, similar to Ros2-Web-Bridge. Is this project the same? Also, when I build this project, I ran the code Node-gyp configure build. After successful operation, I generated the build folder, there are many files below, including node_opendds.node, etc. But Then I don't know how to operate, how to run the contents of the test folder, please help me, thank you very much!

Update addon to work with modern Node.js

Take a look at that node-addon-examples repository I referenced earlier in issue #1. I'm thinking we'll want to use the NAN library to have some isolation from the node/v8 versions. There isn't all that much code in node-opendds to convert, but the code generated by opendds_idl will also have to change (see https://github.com/objectcomputing/OpenDDS/blob/master/dds/idl/v8_generator.cpp). I will gladly assist with any issues you discover while working on this.

Error while installing opendds

I am getting below errors while I am running npm install opendds on Ubuntu 16.04
Currently I am using opendds3.10, node version 4.2.6, npm version 3.5.2.
Any Help to resolve these errors.
Error Log:
Downloads/opendds/OpenDDS-3.10$ npm install opendds

[email protected] install /home/Downloads/opendds/OpenDDS-3.10/node_modules/opendds
node-gyp rebuild

make: Entering directory '/home/Downloads/opendds/OpenDDS-3.10/node_modules/opendds/build'
CXX(target) Release/obj.target/node_opendds/src/node-opendds.o
In file included from ../src/node-opendds.cpp:12:0:
/home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/ace/DLL_Manager.h:143:3: warning: ‘template class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
auto_ptr <ACE_TString> error (void);
^
In file included from /usr/include/c++/5/memory:81:0,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/ace/Auto_Ptr.h:78,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/ace/String_Base.cpp:9,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/ace/String_Base.h:882,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/ace/SString.h:23,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/CDR.h:61,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/UB_String_Argument_T.cpp:7,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/UB_String_Argument_T.h:177,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/Any_Insert_Policy_T.h:18,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/Basic_Arguments.h:25,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/orb_typesC.h:47,
from /home/Downloads/opendds/OpenDDS-3.10/ACE_wrappers/TAO/tao/ORB.h:28,
from /home/Downloads/opendds/OpenDDS-3.10/dds/DdsDcpsSubscriptionC.h:45,
from ../src/NodeDRListener.h:7,
from ../src/node-opendds.cpp:1:
/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
template class auto_ptr;
^
../src/node-opendds.cpp:42:42: error: ‘Arguments’ does not name a type
Handle create_participant(const Arguments& args);
^
../src/node-opendds.cpp:43:42: error: ‘Arguments’ does not name a type
Handle delete_participant(const Arguments& args);
^
../src/node-opendds.cpp:44:33: error: ‘Arguments’ does not name a type
Handle subscribe(const Arguments& args);
^
../src/node-opendds.cpp:45:35: error: ‘Arguments’ does not name a type
Handle unsubscribe(const Arguments& args);
^
../src/node-opendds.cpp:47:34: error: ‘Arguments’ does not name a type
Handle initialize(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::initialize(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:50:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:52:30: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
arg_storage.reserve(args.Length());
^
../src/node-opendds.cpp:54:30: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
for (int i = 0; i < args.Length(); ++i) {
^
../src/node-opendds.cpp:55:42: error: invalid types ‘const int[int]’ for array subscript
const Local js_str = args[i]->ToString();
^
../src/node-opendds.cpp:66:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(ot, "create_participant", create_participant);
^
../src/node-opendds.cpp:67:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(ot, "delete_participant", delete_participant);
^
../src/node-opendds.cpp:69:10: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
obj->SetPointerInInternalField(0, dpf._retn());
^
../src/node-opendds.cpp:70:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(obj);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:73:42: error: ‘Arguments’ does not name a type
Handle create_participant(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::create_participant(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:75:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:76:40: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’
const Local this_js = args.This();
^
../src/node-opendds.cpp:78:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() > 0) {
^
../src/node-opendds.cpp:79:51: error: invalid types ‘const int[int]’ for array subscript
domain = static_castDDS::DomainId_t(args[0]->NumberValue());
^
../src/node-opendds.cpp:81:37: error: ‘class v8::Object’ has no member named ‘GetPointerFromInternalField’
void* const internal = this_js->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:86:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() > 1) {
^
../src/node-opendds.cpp:87:42: error: invalid types ‘const int[int]’ for array subscript
const Local qos_js = args[1]->ToObject();
^
../src/node-opendds.cpp:92:39: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("couldn't create "
^
../src/node-opendds.cpp:93:72: error: ‘ThrowException’ was not declared in this scope
"DomainParticipant")));
^
../src/node-opendds.cpp:94:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:94:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:99:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(ot, "subscribe", subscribe);
^
../src/node-opendds.cpp:100:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(ot, "unsubscribe", unsubscribe);
^
../src/node-opendds.cpp:102:10: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
obj->SetPointerInInternalField(0, dp._retn());
^
../src/node-opendds.cpp:103:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(obj);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:106:42: error: ‘Arguments’ does not name a type
Handle delete_participant(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::delete_participant(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:108:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:109:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() == 0 || !args[0]->IsObject()) {
^
../src/node-opendds.cpp:109:38: error: invalid types ‘const int[int]’ for array subscript
if (args.Length() == 0 || !args[0]->IsObject()) {
^
../src/node-opendds.cpp:110:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:110:78: error: ‘ThrowException’ was not declared in this scope
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:111:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:111:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:113:40: error: invalid types ‘const int[int]’ for array subscript
const Local js_obj = args[0]->ToObject();
^
../src/node-opendds.cpp:114:36: error: ‘class v8::Object’ has no member named ‘GetPointerFromInternalField’
void* const internal = js_obj->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:117:13: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
js_obj->SetPointerInInternalField(0, 0);
^
../src/node-opendds.cpp:124:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:124:34: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:127:33: error: ‘Arguments’ does not name a type
Handle subscribe(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::subscribe(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:129:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:130:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() < 3) {
^
../src/node-opendds.cpp:131:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("At least 3 "
^
../src/node-opendds.cpp:132:77: error: ‘ThrowException’ was not declared in this scope
"arguments required")));
^
../src/node-opendds.cpp:133:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:133:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:135:20: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (!args[args.Length() - 1]->IsFunction()) {
^
../src/node-opendds.cpp:136:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("Last argument must "
^
../src/node-opendds.cpp:137:72: error: ‘ThrowException’ was not declared in this scope
"be a function")));
^
../src/node-opendds.cpp:138:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:138:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:140:33: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’
void* const internal = args.This()->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:144:46: error: invalid types ‘const int[int]’ for array subscript
const String::Utf8Value topic_name(args[0]);
^
../src/node-opendds.cpp:145:46: error: invalid types ‘const int[int]’ for array subscript
const String::Utf8Value topic_type(args[1]);
^
../src/node-opendds.cpp:151:41: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("TypeSupport was not "
^
../src/node-opendds.cpp:152:67: error: ‘ThrowException’ was not declared in this scope
"registered")));
^
../src/node-opendds.cpp:153:22: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:153:38: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:160:39: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("TypeSupport was not built "
^
../src/node-opendds.cpp:161:75: error: ‘ThrowException’ was not declared in this scope
"with support for V8.")));
^
../src/node-opendds.cpp:162:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:162:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:170:39: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("couldn't create Topic")));
^
../src/node-opendds.cpp:170:76: error: ‘ThrowException’ was not declared in this scope
ThrowException(Exception::Error(String::New("couldn't create Topic")));
^
../src/node-opendds.cpp:171:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:171:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:175:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() > 3 && args[2]->IsObject()) {
^
../src/node-opendds.cpp:175:36: error: invalid types ‘const int[int]’ for array subscript
if (args.Length() > 3 && args[2]->IsObject()) {
^
../src/node-opendds.cpp:176:22: error: invalid types ‘const int[int]’ for array subscript
qos_js = args[2]->ToObject();
^
../src/node-opendds.cpp:178:36: error: ‘NewSymbol’ is not a member of ‘v8::String’
const Handle cft_str = String::NewSymbol("ContentFilteredTopic");
^
../src/node-opendds.cpp:181:37: error: ‘NewSymbol’ is not a member of ‘v8::String’
const Handle fe_str = String::NewSymbol("filter_expression"),
^
../src/node-opendds.cpp:184:41: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("filter_expression is "
^
../src/node-opendds.cpp:186:71: error: ‘ThrowException’ was not declared in this scope
"FilteredTopic.")));
^
../src/node-opendds.cpp:190:23: error: ‘ep_str’ was not declared in this scope
if (cft_js->Has(ep_str)) {
^
../src/node-opendds.cpp:193:26: error: ‘NewSymbol’ is not a member of ‘v8::String’
params_js->Get(String::NewSymbol("length"))->ToNumber();
^
../src/node-opendds.cpp:208:39: error: ‘NewSymbol’ is not a member of ‘v8::String’
const Handle subqos_str = String::NewSymbol("SubscriberQos");
^
../src/node-opendds.cpp:215:39: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("couldn't create "
^
../src/node-opendds.cpp:216:65: error: ‘ThrowException’ was not declared in this scope
"Subscriber")));
^
../src/node-opendds.cpp:217:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:217:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:220:33: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
Local cb = args[args.Length() - 1];
^
../src/node-opendds.cpp:226:38: error: ‘NewSymbol’ is not a member of ‘v8::String’
const Handle drqos_str = String::NewSymbol("DataReaderQos");
^
../src/node-opendds.cpp:234:39: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::Error(String::New("couldn't create "
^
../src/node-opendds.cpp:235:65: error: ‘ThrowException’ was not declared in this scope
"DataReader")));
^
../src/node-opendds.cpp:236:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:236:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:242:10: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
obj->SetPointerInInternalField(0, dr._retn());
^
../src/node-opendds.cpp:244:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(obj);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:247:35: error: ‘Arguments’ does not name a type
Handle unsubscribe(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::unsubscribe(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:249:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:250:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() < 1 || !args[0]->IsObject()) {
^
../src/node-opendds.cpp:250:37: error: invalid types ‘const int[int]’ for array subscript
if (args.Length() < 1 || !args[0]->IsObject()) {
^
../src/node-opendds.cpp:251:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:251:78: error: ‘ThrowException’ was not declared in this scope
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:252:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:252:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:254:33: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’
void* const internal = args.This()->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:258:39: error: invalid types ‘const int[int]’ for array subscript
const Local dr_js = args[0]->ToObject();
^
../src/node-opendds.cpp:259:33: error: ‘class v8::Object’ has no member named ‘GetPointerFromInternalField’
void* const dr_obj = dr_js->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:261:12: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
dr_js->SetPointerInInternalField(0, 0);
^
../src/node-opendds.cpp:283:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:283:34: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:286:32: error: ‘Arguments’ does not name a type
Handle finalize(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::finalize(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:288:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:289:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() < 1) {
^
../src/node-opendds.cpp:290:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:290:78: error: ‘ThrowException’ was not declared in this scope
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:291:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:291:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:293:40: error: invalid types ‘const int[int]’ for array subscript
const Local dpf_js = args[0]->ToObject();
^
../src/node-opendds.cpp:294:36: error: ‘class v8::Object’ has no member named ‘GetPointerFromInternalField’
void* const internal = dpf_js->GetPointerFromInternalField(0);
^
../src/node-opendds.cpp:297:13: error: ‘class v8::Object’ has no member named ‘SetPointerInInternalField’
dpf_js->SetPointerInInternalField(0, 0);
^
../src/node-opendds.cpp:307:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:307:34: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp: At global scope:
../src/node-opendds.cpp:310:28: error: ‘Arguments’ does not name a type
Handle load(const Arguments& args)
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handlev8::Value {anonymous}::load(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
V8_INLINE HandleScope() {}
^
../src/node-opendds.cpp:312:17: error: within this context
HandleScope scope;
^
../src/node-opendds.cpp:313:14: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
if (args.Length() == 0 || !args[0]->IsString()) {
^
../src/node-opendds.cpp:313:38: error: invalid types ‘const int[int]’ for array subscript
if (args.Length() == 0 || !args[0]->IsString()) {
^
../src/node-opendds.cpp:314:43: error: ‘New’ is not a member of ‘v8::String’
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:314:78: error: ‘ThrowException’ was not declared in this scope
ThrowException(Exception::TypeError(String::New("1 argument required")));
^
../src/node-opendds.cpp:315:20: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Undefined());
^
../src/node-opendds.cpp:315:36: error: too few arguments to function ‘v8::Localv8::Primitive v8::Undefined(v8::Isolate*)’
return scope.Close(Undefined());
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:315:27: note: declared here
friend Local Undefined(Isolate* isolate);
^
../src/node-opendds.cpp:317:42: error: invalid types ‘const int[int]’ for array subscript
const String::Utf8Value lib_js(args[0]);
^
../src/node-opendds.cpp:322:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
return scope.Close(Boolean::New(ok));
^
../src/node-opendds.cpp:322:39: error: no matching function for call to ‘v8::Boolean::New(const bool&)’
return scope.Close(Boolean::New(ok));
^
In file included from ../src/NodeDRListener.h:4:0,
from ../src/node-opendds.cpp:1:
/usr/include/nodejs/deps/v8/include/v8.h:7603:16: note: candidate: static v8::Localv8::Boolean v8::Boolean::New(v8::Isolate*, bool)
Local Boolean::New(Isolate* isolate, bool value) {
^
/usr/include/nodejs/deps/v8/include/v8.h:7603:16: note: candidate expects 2 arguments, 1 provided
../src/node-opendds.cpp: In function ‘void {anonymous}::init_node_opendds(v8::Handlev8::Object)’:
../src/node-opendds.cpp:327:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(target, "initialize", initialize);
^
../src/node-opendds.cpp:328:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(target, "finalize", finalize);
^
../src/node-opendds.cpp:329:5: error: ‘SetMethod’ is not a member of ‘node’
node::SetMethod(target, "load", load);
^
In file included from /home/Downloads/opendds/OpenDDS-3.10/dds/DCPS/Service_Participant.h:16:0,
from /home/Downloads/opendds/OpenDDS-3.10/dds/DCPS/transport/framework/TransportClient.h:18,
from /home/Downloads/opendds/OpenDDS-3.10/dds/DCPS/DataReaderImpl.h:21,
from ../src/NodeDRListener.h:11,
from ../src/node-opendds.cpp:1:
/home/Downloads/opendds/OpenDDS-3.10/dds/DCPS/MonitorFactory.h: At global scope:
/home/Downloads/opendds/OpenDDS-3.10/dds/DCPS/MonitorFactory.h:94:12: warning: ‘OpenDDS::DCPS::OpenDDS_Requires_MonitorFactory_Initializer’ defined but not used [-Wunused-variable]
static int OpenDDS_Requires_MonitorFactory_Initializer =
^
node_opendds.target.mk:102: recipe for target 'Release/obj.target/node_opendds/src/node-opendds.o' failed
make: *** [Release/obj.target/node_opendds/src/node-opendds.o] Error 1
make: Leaving directory '/home/Downloads/opendds/OpenDDS-3.10/node_modules/opendds/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.4.0-59-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/Downloads/opendds/OpenDDS-3.10/node_modules/opendds
gyp ERR! node -v v4.2.6
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/home/Downloads/opendds/OpenDDS-3.10/package.json'
npm WARN OpenDDS-3.10 No description
npm WARN OpenDDS-3.10 No repository field.
npm WARN OpenDDS-3.10 No README data
npm WARN OpenDDS-3.10 No license field.
npm ERR! Linux 4.4.0-59-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "opendds"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the opendds package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs opendds
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls opendds
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/Downloads/opendds/OpenDDS-3.10/npm-debug.log

Error when running test_publisher.js on Windows 10

Hello, I have built and installed node-opendds v0.1.1 on Windows 10 platform, and can run the cpp2node test case successfully. However, I get an exception with the test_publisher.js for both node2node and node2cpp, Process exited with code 3221226356, when the data writer attempts to register_instance for Sample1. Debugging this through into node-opendds.cpp, line 436 in register_instance is where it breaks:
RegisterInstanceException
RegisterInstanceExceptionJs

Details of dev environment:
Windows 10
Node v16.14.2
node-opendds-0.1.1
OpenDDS 3.19.0 using ACE 6.2a_p22
Visual Studio 2019 - all projects built for x64

Segmentation fault in test when node_publisher writes sample2

It seems that this happens when the 'mu' (union field) of the sample is populated with the fourth option of the union, which is a nested string sequence type.

When I modify sample2 of the node_publisher to make use of any of the other options, the sample is written successfully.

QoS seems not to be working

Hello,

Im using latest node-opendds master 94f20e8152a5daaa3c3c893606c85cad5c2c8d5c and latest OpenDDS release (3.19.0).
It seems to me that setting QoS is not working as expected. All new generated messages are received but not old messages.
I am setting "TRANSIENT_LOCAL_DURABILITY_QOS" also tried "RELIABLE_RELIABILITY_QOS" to no effect.
Can confirm this is working with latest node-opendds master and openDDS with commit 2550e2654208f1ce382b71ad8a0075b7f2152a8f

Currently trying to reproduce the issue with the built-in test. Do you have any quick debug pointers where should I look? Will for example I see the issue with Wireshark?

Everything hangs when creating subscribers/datawriters

I'm using the latest master (as of writing this) from OpenDDS and using node-opendds 0.1.0.

My library is found and participant is created successfully.
Problems arise afterwards when using subscribe or create_datawriter - after that everything seemingly hangs.
I enabled the -DCPSDebugLevel 10 parameter.

After calling subscribe this line is printed
(4450|4450) Service_Participant::get_discovery: returning repository for domain 50, repo uni_rtps.
and nothing more is happening. My entire application becomes unresponsive and will not work until hard reset.

Because this setup has worked before, the latest that I know of 13. October. I made a openDDS checkout back to 2550e2654208f1ce382b71ad8a0075b7f2152a8f. Recompiled and everything is working properly.
Do you know of any changes between those dates that may affect my use-case or do you have any ideas I could troubleshoot this further?

Error when trying to install node-opendds

I tried installing node-opendds after building opendds (build successful). Ran into this error:
`|

[email protected] install C:\node_modules\opendds
node-gyp rebuild

C:\node_modules\opendds>node "C:\Program Files\nodejs\node_modules\npm\bin\node-
gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" rebuild
gyp: Undefined variable lib_suffix in binding.gyp while trying to load binding.g
yp
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (C:\Program Files\nodejs\node_module
s\npm\node_modules\node-gyp\lib\configure.js:343:16)
gyp ERR! stack at ChildProcess.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:820:
12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "C:\Program Files\nodejs\node_modules\npm\node_modu
les\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\node_modules\opendds
gyp ERR! node -v v0.10.38
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the opendds package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls opendds
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nod
ejs\node_modules\npm\bin\npm-cli.js" "install" "opendds"
npm ERR! cwd C:
npm ERR! node -v v0.10.38
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0`

My npm version is 1.4.28 and my node version 0.10.38, running on windows 8 64-bit.
Read this issue #1 but it's rather unclear what i should do in order to get this to work.

Thank you,
Matei

Support for Node v16

I am interested in using node-opendds for a current project being developed using Node v16.14.2. Are you able to give an indicative timeline for the next build release of node-opendds that will provide support for this version of Node?

Implement "messenger" subscriber in Node.js

The messenger publisher and subscriber are the most common test for OpenDDS, I tried to implement a Node.js subscriber for the Publisher given in the OpenDDS installation. I have uploaded my code in this repository: https://github.com/aditya-krish/NodeJSMessenger . I am not able to match the Messenger publisher with this subscriber. What is the issue? What am I missing?

This is the relevant subscriber.js (all the files are also in the repository linked):

"use strict";

var DOMAIN_ID = 42;

var qos = {user_data: 'foo'};

function init_opendds(opendds_addon) {
    return opendds_addon.initialize('-DCPSConfigFile', 'rtps.ini');
}

var opendds_addon = require('opendds/lib/node-opendds'),
  factory = init_opendds(opendds_addon),
  library = opendds_addon.load('idl/messenger_idl_test'),
  participant = factory.create_participant(DOMAIN_ID, qos),
  reader,
  last_sample_id = 39,
  dds_inf = 0x7fffffff,
  infinite = {sec: dds_inf, nanosec: dds_inf};

function log(label, object) {
  console.log(label + ': ' + JSON.stringify(object, null, 2));
}

try {
  if (!library) {
    throw 'Failed to load shared library';
  }
    reader = participant.subscribe('topic', 'Messenger::Message', 
        qos, 
        function (dr, sinfo, sample) {
            try {
            log('Received callback', sample);
            log('Sample Info', sinfo);
            if (sample.count == last_sample_id) {
                participant.unsubscribe(reader);
            
            }
            } catch (e) {
                console.log("Error in callback: " + e);
            }
        }
    );
} catch (e) {
  console.log(e);
}

process.on('exit', function () {
  factory.delete_participant(participant); // optional
  opendds_addon.finalize(factory);
});

The publisher uses default QoS settings. It is taken as is from the $DDS_ROOT/java/tests/messenger. To implement said subscriber clone https://github.com/aditya-krish/MessengerTest and follow the README.md

build fails on ubuntu

Please see below log

> [email protected] install
> node-gyp rebuild

gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info find Python using Python version 3.10.6 found at "/usr/bin/python3"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/ubuntu/source/node-opendds/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/ubuntu/.cache/node-gyp/16.18.1/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/ubuntu/.cache/node-gyp/16.18.1',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/ubuntu/.cache/node-gyp/16.18.1/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/ubuntu/source/node-opendds',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/ubuntu/source/node-opendds/build'
  CXX(target) Release/obj.target/node_opendds/src/node-opendds.o
In file included from /home/ubuntu/source/OpenDDS-3.22/dds/DCPS/DataReaderImpl.h:20,
                 from ../src/NodeDRListener.h:11,
                 from ../src/node-opendds.cpp:1:
/home/ubuntu/source/OpenDDS-3.22/dds/DCPS/DomainParticipantImpl.h:34:12: fatal error: dds/DdsDcpsCoreTypeSupportC.h: No such file or directory
   34 | #  include <dds/DdsDcpsCoreTypeSupportC.h>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [node_opendds.target.mk:130: Release/obj.target/node_opendds/src/node-opendds.o] Error 1
make: Leaving directory '/home/ubuntu/source/node-opendds/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:201:23)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
gyp ERR! System Linux 5.15.0-1019-aws
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ubuntu/source/node-opendds
gyp ERR! node -v v16.18.1
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok 
npm ERR! code 1
npm ERR! path /home/ubuntu/source/node-opendds
npm ERR! command failed
npm ERR! command sh -c -- node-gyp rebuild

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/...-debug-0.log

I used setenv.sh in the OpenDDS-3.22 folder

node-gyp error: Undefined variable lib_suffix

Hello,

I am a student at Rowan University in Glassboro New Jersey. I am enrolled in a Software Engineering course in which the semester long project involves my team and I using OpenDDS to create a pub/sub client facing program in c++ in which the publisher can requests queries via the Yelp Fusion API to be returned to the publisher and all subscribers listening.

I wanted to see if I can utilize this package to interface with my express JS server which will be interacting with the Yelp API.
I am having trouble running "npm i opendds" and am receiving similar errors that folks in other issues posted here are having.

I am running Windows 10 64 Pro, NPM 6.14.12, Node v14.16.1.
Attached is a screen cap of my issue. Any advice, in any regard to the state of this repo would be appreciated.

opendds issue

Thank you
-Kyle

Error while running tests

I had built OpenDDS a few weeks back, and I only later discovered the NodeJS binding. I created a Node project and installed node-opendds for the project. I wanted to run the tests so I set the V8_ROOT and NAN_ROOT environment variables appropriately, and ran the perl script. Can you help me find out what the issue is based on the errors?

THE RESULT OF RUNNING perl run_tests.pl node2node

Received callback: {
  "id": 23,
  "data": "Hello, world\n",
  "enu": "two",
  "enu2": "<<invalid>>",
  "bt": {
    "o": 254,
    "us": 65500,
    "s": 32700,
    "ul": 3000000000,
    "l": 100000,
    "ull": "12379813738877118345",
    "ll": "5000000000",
    "f": 2.1700000762939453,
    "d": 3.14,
    "ld": 1.4142136,
    "b": true,
    "c": "x",
    "str": "z012",
    "wstr": "abcde"
  },
  "seq1": [
    0,
    45,
    90,
    135,
    180
  ],
  "seq2": [
    32,
    33,
    34
  ],
  "ns": [
    [
      "string1",
      "string2",
      "string3",
      "string4"
    ],
    [
      "string5"
    ]
  ],
  "mu": {
    "_d": "one",
    "a": 6
  },
  "ca": [
    "n",
    "i",
    "n",
    "j",
    "a",
    "s"
  ],
  "sa": [
    "north",
    "east",
    "south",
    "west"
  ]
}
Sample Info: {
  "sample_state": 2,
  "view_state": 1,
  "instance_state": 1,
  "source_timestamp": {
    "sec": 1608111522,
    "nanosec": 180812000
  },
  "instance_handle": 9,
  "publication_handle": 8,
  "disposed_generation_count": 0,
  "no_writers_generation_count": 0,
  "sample_rank": 0,
  "generation_rank": 0,
  "absolute_generation_rank": 0,
  "valid_data": true
}
Received callback: undefined
Sample Info: {
  "sample_state": 2,
  "view_state": 2,
  "instance_state": 2,
  "source_timestamp": {
    "sec": 1608111522,
    "nanosec": 182509000
  },
  "instance_handle": 9,
  "publication_handle": 8,
  "disposed_generation_count": 0,
  "no_writers_generation_count": 0,
  "sample_rank": 0,
  "generation_rank": 0,
  "absolute_generation_rank": 0,
  "valid_data": false
}
Received callback: {
  "id": 24,
  "data": "Hello, world\n",
  "enu": "two",
  "enu2": "<<invalid>>",
  "bt": {
    "o": 254,
    "us": 65500,
    "s": 32700,
    "ul": 3000000000,
    "l": 100000,
    "ull": "12379813738877118345",
    "ll": "5000000000",
    "f": 2.1700000762939453,
    "d": 3.14,
    "ld": 1.4142136,
    "b": true,
    "c": "x",
    "str": "z012",
    "wstr": "abcde"
  },
  "seq1": [
    0,
    45,
    90,
    135,
    180
  ],
  "seq2": [
    32,
    33,
    34
  ],
  "ns": [
    [
      "string1",
      "string2",
      "string3",
      "string4"
    ],
    [
      "string5"
    ]
  ],
  "mu": {
    "_d": "four",
    "s": [
      [
        "string1",
        "string2",
        "string3",
        "string4"
      ],
      [
        "string5"
      ]
    ]
  },
  "ca": [
    "n",
    "i",
    "n",
    "j",
    "a",
    "s"
  ],
  "sa": [
    "north",
    "east",
    "south",
    "west"
  ]
}
Sample Info: {
  "sample_state": 2,
  "view_state": 1,
  "instance_state": 1,
  "source_timestamp": {
    "sec": 1608111522,
    "nanosec": 181690000
  },
  "instance_handle": 10,
  "publication_handle": 8,
  "disposed_generation_count": 0,
  "no_writers_generation_count": 0,
  "sample_rank": 0,
  "generation_rank": 0,
  "absolute_generation_rank": 0,
  "valid_data": true
}
(10063|10088) WARNING: Problem with data link detected: receive_bytes: Connection reset by peer.
(10063|10088) we did not try to re-establish connection on transport: _OPENDDS_InfoRepoBITTCPTransportInst to 127.0.1.1:29109.
ERROR: </usr/bin/node> exited with coredump from signal 11 : SEGV
ERROR: /usr/bin/node returned 255
INFO: /home/agilehealth_ai/DDS/OpenDDS-3.14.1/bin/DCPSInfoRepo being killed.
InfoRepo_Shutdown: shutting down on signal 15
(10063|10069) ERROR: DCPS_IR_Domain::remove_dead_participants () Removing dead participant 0xa54c1c80 id 01030000.28931b82.00000002.000001c1(1533483f)
(10063|10069) ERROR: WriteDataContainer::dispose, The instance(handle=2) is not registered yet.
(10063|10069) ERROR: DataWriterImpl::dispose: dispose failed.
(10063|10069) ERROR: DCPS_IR_Domain::dispose_participant_bit Unable to dispose for participant 01030000.28931b82.00000002.000001c1(1533483f) handle 2.
(10063|10063) WARNING: DataLink[0x55f4a54c4500]::~DataLink() - link still in use by 4 entities when deleted!

'Make' using install tree

Hi,
So when I try to make the project with setenv.sh, it built and tested successfully. However, when I try to set it to installedOpenDDS/share/dds (from dds-devel.sh), it does not build, the error was:

NodeJSTest will not be built due to the following missing library: OpenDDS_Dcps

GNUmakefile: /home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test/idl/GNUmakefile.NodeJSTest MAKEFLAGS=w

make[1]: Leaving directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test/idl'
make[1]: Entering directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/tools/v8stubs'

GNUmakefile: /home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/tools/v8stubs/GNUmakefile.v8stubs MAKEFLAGS=w

make[1]: Leaving directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/tools/v8stubs'
make[1]: Entering directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test'
test_publisher will not be built due to the following missing library: OpenDDS_Tcp OpenDDS_InfoRepoDiscovery OpenDDS_Dcps

GNUmakefile: /home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test/GNUmakefile.test_publisher MAKEFLAGS=w

make[1]: Leaving directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test'
make[1]: Entering directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test'
test_subscriber will not be built due to the following missing library: OpenDDS_Tcp OpenDDS_InfoRepoDiscovery OpenDDS_Dcps

GNUmakefile: /home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test/GNUmakefile.test_subscriber MAKEFLAGS=w

make[1]: Leaving directory '/home/laccc/Projects/demoCycloneOpenDDS-JS/node-opendds/test'```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.