Coder Social home page Coder Social logo

boschrexroth / ctrlx-automation-sdk Goto Github PK

View Code? Open in Web Editor NEW
56.0 56.0 21.0 30.7 MB

ctrlX AUTOMATION Software Development Kit

Home Page: https://boschrexroth.github.io/ctrlx-automation-sdk/

License: MIT License

CMake 5.27% C++ 21.92% Go 6.57% HTML 0.67% Python 28.21% Shell 10.27% C# 16.17% CSS 0.12% JavaScript 4.68% Batchfile 1.30% TypeScript 4.68% SCSS 0.15%
boschrexroth ctrlxautomation sdk

ctrlx-automation-sdk's People

Contributors

albrecht-j avatar doncamillo72 avatar guidfort avatar zmrzjfudsdir4qi5801f 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  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  avatar  avatar  avatar

Watchers

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

ctrlx-automation-sdk's Issues

libc.so.6: version 'GLIBC_2.32/2.33/2.34' not found

I want upgrade the node and npm lib version.
Now, the node version is: 18.19.0 ,npm version is 10.2.3
but the samples-node samples can not build success.

environment:
sdk: [Release SDK-V-0120]
ctrlx-works-1.20.5

try to fix it.
install glibc_3.36 manully, not success, tips: missing some library.

issues:
image

target:
can use node version 18.XXX

Python Datalayer - Float_Array: problems with decimal numbers

Hi ,
I would like to create a node of type float_array64 on the datalayer and have run into a problem.
The node is created and is also listed and callable in the datalayer via the webinterface of my virtual-core. In my Python script I initialise my node with the values [30.3,180.4,40.5,0.1,0.3,0.2], which are taken over. However, if I now want to change the value of the array via the web interface and execute the write function of the node, all decimal places of my input are ignored or deleted. If I want to change the first value 30.3 to 30.45 and press write, the array looks like this: [30,180,40,0,0,0].

To create the nodes, I created a high-level class based on the python datalayer.calc example: basic_arithmetic_operations.py. For debugging, I printed the value of the variable "data" (via the method get_array_float64) in the "NodeCallback-method": "__on_write". Here, the comma numbers also seem to be ignored: [30.0, 180.0, 40.0, 0.0, 0.0, 0.0].

However, if I use the object "Node" in my Python script, which in my case is the instance of the class variant() for the corresponding node, via the method Node.set_array_float64([30.45, 180.0, 40.0, 0.0, 0.0, 0.0]) the value is taken over correctly and also displayed on the datalayer.

I use the 1.14.0 SDK ['ctrlx-datalayer==2.1.0', 'ctrlx-fbs==1.2.0'] in conjunction with Python 3.8.10.
Virtual Core Version: 1.14.1

If needed, I can also upload my script.

Defect link references.md

In file ctrlx-automation-sdk/blob/main/doc/references.md the Api reference (doxygen generated) link for c/c++ leads to an 404 error .
Concerns: main branch / release SDK-V-0118

ctrlX-DataLayer Nuget package does not exist

Using command dotnet add package ctrlX-DataLayer --version 3.0.3 nor searching on nuget, [https://www.nuget.org/packages?q=ctrlX-DataLayer] finds a package.

additionally a version-less search yields the same issue:
dotnet add package ctrlX-DataLayer

Determining projects to restore...
Writing /tmp/tmpTZyZL0.tmp
info : X.509 certificate chain validation will use the fallback certificate bundle at  '/usr/share/dotnet/sdk/7.0.203/trustedroots/codesignctl.pem'.
info : X.509 certificate chain validation will use the fallback certificate bundle at  '/usr/share/dotnet/sdk/7.0.203/trustedroots/timestampctl.pem'.
info : Adding PackageReference for package 'ctrlX-DataLayer' into project '<my_path>'.
info :   GET https://api.nuget.org/v3/registration5-gz-semver2/ctrlx-datalayer/index.json
info :   NotFound https://api.nuget.org/v3/registration5-gz-semver2/ctrlx-datalayer/index.json 195ms
info :   GET https://api.nuget.org/v3/registration5-gz-semver2/ctrlx-datalayer/index.json
info :   NotFound https://api.nuget.org/v3/registration5-gz-semver2/ctrlx-datalayer/index.json 245ms
error: There are no versions available for the package 'ctrlX-DataLayer'.```

DatalayerClientSub segmentation fault

Hello,

I have a datalayerClientSub that was running fine and was written based on the sample code provided. However, I had to reinstall my OS and reinstall all libraries including the debian package ctrlx-datalayer and since then there is a specific line causing a segmentation fault.

The segmentation fault happens in the constructor of the datalayerClientSub:

DataLayerClientSub::DataLayerClientSub(const comm::datalayer::DatalayerSystem &datalayerSystem, const std::string &connectionClient)
{
  _datalayerSystem = datalayerSystem;
  _connectionClient = connectionClient;
}

It happens when assigning _datalayerSystem the value of datalayerSystem which is passed when the object is created in main:

auto dataLayerClientSub = new DataLayerClientSub(datalayerSystem, connectionString);

I am not sure what is causing the problem exactly since it was working fine before and I guess assigning the datalayerSystem to the private object _datalayerSystem should be fine.

I also tried to adapt my code to the updated sample, the same problem occurs which is assigning the passed object to the private object.

Thanks,
Osama

NodeJs examples are not building

Last few lines when building any of the examples on two different virtual build environments (ctrlx works) is the following:

+ npm install -g --prefix /home/boschrexroth/ctrlx-automation-sdk/samples-node/datalayer.client.browse/parts/app/install datalayer-client-browse-1.0.0.tgz --only=prod --production --no-fund
npm WARN config only Use `--omit=dev` to omit dev dependencies from the install.
npm WARN config production Use `--omit=dev` instead.

added 100 packages, and audited 101 packages in 15s

found 0 vulnerabilities
++ npm -s run env echo '$npm_package_name'
+ package_name='$npm_package_name'
+ prebuilds_location='/home/boschrexroth/ctrlx-automation-sdk/samples-node/datalayer.client.browse/parts/app/install/lib/node_modules/$npm_package_name/node_modules/ctrlx-datalayer/prebuilds'
+ find '/home/boschrexroth/ctrlx-automation-sdk/samples-node/datalayer.client.browse/parts/app/install/lib/node_modules/$npm_package_name/node_modules/ctrlx-datalayer/prebuilds' -type f -not -ipath '*/linux-x64*' -delete
find: β€˜/home/boschrexroth/ctrlx-automation-sdk/samples-node/datalayer.client.browse/parts/app/install/lib/node_modules/$npm_package_name/node_modules/ctrlx-datalayer/prebuilds’: No such file or directory
Failed to run 'override-build': Exit code was 1.

The ++ npm -s run env echo '$npm_package_name' seems to be the line that is returning '$npm_package_name' instead of npm which is the directory name

Samples for IClient3 interface

There are currently no examples included in the sdk of using the methods within the IClient3 interface of datalayer.h

As an example, it would be nice to see browseBulkSync used within datalayerclient.cpp

void DataLayerClient::browseBulk()
{
  m_data.setValue("");

  comm::datalayer::BulkRequest req1 = {"/framework/metrics/process",m_data};
  comm::datalayer::BulkRequest req2 = {"/framework/metrics/system",m_data};
  const comm::datalayer::VecBulkRequest vec_req = std::vector<comm::datalayer::BulkRequest> {req1, req2};

  std::vector<comm::datalayer::BulkResponse> vec_res;
  std::string token = m_client3->getAuthToken();
  std::cout<< token << std::endl;
  
  comm::datalayer::BulkResponse res1 = comm::datalayer::BulkResponse();
  m_result = m_client3->browseBulkSync(vec_req, vec_res, token);

  for(auto& res : vec_res){
    if(res.result == comm::datalayer::DlResult::DL_OK){
      printStringList(res.data);
    }
  }
}

Clone-install.sh script not working

This is the error command: curl -s https://raw.githubusercontent.com/boschrexroth/ctrlx-automation-sdk/main/scripts/clone-install-sdk.sh | bash
Command found here: https://github.com/boschrexroth/ctrlx-automation-sdk/blob/2.4.3/README.md#installation-of-the-ctrlx-automation-sdk

$ curl -s https://raw.githubusercontent.com/boschrexroth/ctrlx-automation-sdk/main/scripts/clone-install-sdk.sh | bash 

====================================================================================================
Enter the desired version of the zip archive to install (e.g. 2.4.0).
This will be used as 'Tag' for the local github repository.
----------------------------------------------------------------------------------------------------
bash: line 31: syntax error near unexpected token `fi'
bash: line 31: `fi'

I expect that a local copy of the repo would be stored but instead getting this error.
I tried also to write the tag "2.4.3" after the script but same error appeared.

build a snap app,occured build error, tips: `unsafe-perm` is not a valid npm option

node version :20.10.0
npm version:10.2.3

0 verbose cli /home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/bin/node /home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/bin/npm
1 info using [email protected]
2 info using [email protected]
3 timing npm:load:whichnode Completed in 14ms
4 timing config:load:defaults Completed in 1ms
5 timing config:load:file:/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/npmrc Completed in 1ms
6 timing config:load:builtin Completed in 1ms
7 timing config:load:cli Completed in 2ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/build/.npmrc Completed in 2ms
10 timing config:load:project Completed in 6ms
11 timing config:load:file:/home/boschrexroth/.npmrc Completed in 1ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:/home/boschrexroth/npm/etc/npmrc Completed in 1ms
14 timing config:load:global Completed in 1ms
15 timing config:load:setEnvs Completed in 1ms
16 timing config:load Completed in 13ms
17 timing npm:load:configload Completed in 13ms
18 timing config:load:flatten Completed in 2ms
19 timing npm:load:mkdirpcache Completed in 0ms
20 timing npm:load:mkdirplogs Completed in 0ms
21 verbose title npm config set unsafe-perm true
22 verbose argv "config" "set" "unsafe-perm" "true"
23 timing npm:load:setTitle Completed in 0ms
24 timing npm:load:display Completed in 1ms
25 verbose logfile logs-max:10 dir:/home/boschrexroth/.npm/_logs/2024-01-02T10_08_54_413Z-
26 verbose logfile /home/boschrexroth/.npm/_logs/2024-01-02T10_08_54_413Z-debug-0.log
27 timing npm:load:logFile Completed in 8ms
28 timing npm:load:timers Completed in 0ms
29 timing npm:load:configScope Completed in 0ms
30 timing npm:load Completed in 56ms
31 info config set "unsafe-perm" "true"
32 timing command:config Completed in 3ms
33 verbose stack Error: `unsafe-perm` is not a valid npm option
33 verbose stack     at Config.set (/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/lib/commands/config.js:156:15)
33 verbose stack     at Config.exec (/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/lib/commands/config.js:118:22)
33 verbose stack     at Config.cmdExec (/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/lib/base-command.js:142:17)
33 verbose stack     at Npm.exec (/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/lib/npm.js:136:20)
33 verbose stack     at module.exports (/home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/install/lib/node_modules/npm/lib/cli-entry.js:61:15)
34 verbose cwd /home/boschrexroth/scripts/ctrlx-automation-sdk/samples-vue-sunet/parts/sunet/build
35 verbose Linux 5.15.0-91-generic
36 verbose node v20.10.0
37 verbose npm  v10.2.3
38 error `unsafe-perm` is not a valid npm option
39 verbose exit 1
40 timing npm Completed in 90ms
41 verbose code 1
42 error A complete log of this run can be found in: /home/boschrexroth/.npm/_logs/2024-01-02T10_08_54_413Z-debug-0.log

Output: 38 error `unsafe-perm` is not a valid npm option , I tried downgrade a library version , the result is ok , but my application must use version 18.19.4 and above due to the vite library.

Importing DatalayerSystem from ctrlx-datalayer package in Node app on Windows fails

Simple app in Node.js (e.g. datalayer.client) chrashes when run on Windows with following error:

node:internal/modules/cjs/loader:1319
return process.dlopen(module, path.toNamespacedPath(filename));
^

Error: The specified module could not be found.
\?\C:\workspace\ctrlx-test\node_modules\ctrlx-datalayer\prebuilds\win32-x64\node.napi.node
at Module._extensions..node (node:internal/modules/cjs/loader:1319:18)
at Module.load (node:internal/modules/cjs/loader:1091:32)
at Module._load (node:internal/modules/cjs/loader:938:12)
at Module.require (node:internal/modules/cjs/loader:1115:19)
at require (node:internal/modules/helpers:130:18)
at load (C:\workspace\ctrlx-test\node_modules\node-gyp-build\node-gyp-build.js:22:10)
at Object. (C:\workspace\ctrlx-test\node_modules\ctrlx-datalayer\dist\addon.js:7:42)
at Module._compile (node:internal/modules/cjs/loader:1233:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
at Module.load (node:internal/modules/cjs/loader:1091:32) {
code: 'ERR_DLOPEN_FAILED'
}

Node.js v20.5.1

On Linux this library is loaded with no problems.

Wrong version of SDK in install-sdk.sh (qemu environment)

when i excute the install scripts, in my qemu, i get the newest dotnet Verison. But the dotnet examples are for .net5.

GNU nano 4.8 install-sdk.sh #!/usr/bin/env bash
sudo snap install snapcraft --classic 2>/dev/null

wget https://github.com/boschrexroth/ctrlx-automation-sdk/releases/download/1.12.0/ctrlx-automation-sdk.1.12.0.zip
unzip -XK ctrlx-automation-sdk.1.12.0.zip
rm ctrlx-automation-sdk.1.12.0.zip

sudo dpkg -i ctrlX-automation-sdk/deb/*.deb

chmod a+x ctrlX-automation-sdk/bin/oss.flatbuffers/ubuntu20-gcc-aarch64/release/flatc
chmod a+x ctrlX-automation-sdk/bin/oss.flatbuffers/ubuntu20-gcc-x64/release/flatc

That should be Fixed.

npm install not working on node sample data layer provider

I ran the two scripts install-required-packages.sh with tag 2.4.3 and clone-install-sdk.sh.
After that tried to install npm packages but got the error:

~/projects/ctrlx-automation-sdk/samples-node/datalayer.provider.simple$ npm install
npm ERR! code ETARGET
npm ERR! notarget No matching version found for ctrlx-datalayer-flatbuffers@^2.6.0.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

I it should install all npm packages so that I can build the snap package.

.net DataLayer client UnsusbscribeAll() bug

When preforming an UnsubscribeAll no further subscriptions can be made without disposing of the subscription and recreating it. using .Unsubscribe(yourAddress) works fine. This is repeatable and the object is never shown as disposed

Missing return in register_node() ./samples-python/datalayer.calc/calculations/basic_arithmetic_operations.py

Hello,
if I am not mistaken, then in the python sample "Data Layer Calculation operations" is a "return" missing.

The original:

def register_node(self, name: str):
        address = self.addressRoot + name
        print("Registering node", address, flush=True)
        self.provider.register_node(
            address, self.providerNode) 

should be fixed to:

def register_node(self, name: str):
        address = self.addressRoot + name
        print("Registering node", address, flush=True)
        return self.provider.register_node(
            address, self.providerNode) 

With this fix the result is not "none" but "ok" in:

    def register_nodes(self):
        result = self.register_node("in1")
        if result != ctrlxdatalayer.variant.Result.OK:
            return result

Thanks
Johannes

Build Apps for CtrlX3 and GLIBC 2.39

Hey,

How can I adapt this lines to build on Raspabian ? Because apt update failed to retrieve this packages.

sudo dpkg --add-architecture arm64

DIST="$(lsb_release -sc)"
sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST} main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/multiarch-libs.list
sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list
sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list
sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list

# Qualify architecture
sudo sed -i 's/deb http:/deb [arch=amd64] http:/g' /etc/apt/sources.list

Problems with the node.js packages distributed on npm.

With the latest update (1.14), I noticed that the node packages are also available on npm. Thank you, this is definitely something we would like to use.

Unfortunately, I had some issues with both ctrlx-datalayer and ctrlx-datalayer-flatbuffers.

My development environment is Ubuntu 21.10.

ctrlx-datalayer

I tried to install both versions 1.3.1 and 1.4.0. In both cases, I get the following error:

npm ERR! code 1
npm ERR! path /home/zufferey/tmp/ctrlx/node_modules/ctrlx-datalayer
npm ERR! command failed
npm ERR! command sh -c node-gyp-build
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.9.7 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/home/zufferey/tmp/ctrlx/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/zufferey/tmp/ctrlx/node_modules/ctrlx-datalayer/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/zufferey/tmp/ctrlx/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/zufferey/.cache/node-gyp/16.14.2/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/zufferey/.cache/node-gyp/16.14.2',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/home/zufferey/tmp/ctrlx/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/zufferey/.cache/node-gyp/16.14.2/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/zufferey/tmp/ctrlx/node_modules/ctrlx-datalayer',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp: binding.gyp not found (cwd: /home/zufferey/tmp/ctrlx/node_modules/ctrlx-datalayer) while trying to load binding.gyp
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (/home/zufferey/tmp/ctrlx/node_modules/node-gyp/lib/configure.js:261:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:526:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.13.0-39-generic
npm ERR! gyp ERR! command "/usr/bin/node" "/home/zufferey/tmp/ctrlx/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /home/zufferey/tmp/ctrlx/node_modules/ctrlx-datalayer
npm ERR! gyp ERR! node -v v16.14.2
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok

ctrlx-datalayer-flatbuffers

The installation goes fine but it seems that the package does not contain the dist folder which should have the sources.

After installing ctrlx-datalayer-flatbuffers, my module folder contains only:

node_modules/
└── ctrlx-datalayer-flatbuffers
    β”œβ”€β”€ CHANGELOG.md
    β”œβ”€β”€ CONTRIBUTING.md
    β”œβ”€β”€ CONTRIBUTORS.md
    β”œβ”€β”€ LICENSE.txt
    β”œβ”€β”€ package.json
    β”œβ”€β”€ README.md
    └── SECURITY.md

Workaround

In both cases, using the .tgz distributed with the release instead of npm works fine. So we are not blocked by this.

Using datalayer API is error prone (ending up with segmentation fault)

In the cpp-sample "datalayer.realtime" you can build two executables (owner, user) that exchange data via shared memory.
The 'owner' is using the datalayer API functions "createMemorySync(...)" and "deleteMemorySync(...)".
The 'user' is using the datalayer API functions "openMemory(...)" and "closeMemory(...)".
The first parameter of these functions is a reference to a std::shared_ptr (IN/OUT parameter).
The functions "createMemorySync(...)" and "openMemory(...)" setting the stored pointer of the smart pointer to a valid memory address (shared memory for data exchange).
The functions "deleteMemorySync(...)" and "closeMemory(...)" resetting the stored pointer to nullptr.
BUT from the application point of view the given std::shared_ptr to the latter functions might by a copy. This is excactly done in the 'user' and 'owner' example code. This leads to the following error situation. A copy of the std::shared_ptr has been reset, calling its destruction is perfectly fine. BUT the remaining copies still hold the pointer to shared memory. When the destructor of the last copy is called a segmentation fault occurs. Dereferencing such a smart pointer copy is also a bad idea.
These datalayer API functions ignore the main concept of smart pointers (take ownership and manage lifecycle).

Subscription - keepAliveInterval is reached

I have small issue when working with Subscription feature. I realised that after keepAliveinterval specified in SubscriptionProperties, my Subscription gets flooded by notifications even that data didn't changed...

Is it possible to turn off notifications (publishCallback()) when keepAliveinterval is reached?

I'm using the code similar to one i tutorial:

  flatbuffers::FlatBufferBuilder builder;
  auto dataChange = comm::datalayer::CreateSampling(builder, 2500);
  auto rule = comm::datalayer::CreateProperty(builder, comm::datalayer::Properties::Properties_Sampling, dataChange.Union());
  auto rules = builder.CreateVector(&rule, 1);
  auto idTmp = builder.CreateString(id);
  builder.Finish(comm::datalayer::CreateSubscriptionProperties(builder, idTmp, 60000, 1000, rules));
  comm::datalayer::Variant subscriptionProperties;
  subscriptionProperties.shareFlatbuffers(builder);

  auto result = m_datalayerClient->createSubscriptionSync(subscriptionProperties, publishCallback());

I would like to have notification only when data is changed, and in the case keepAliveInterval is reached I don't want to have any publishCallback().

Got stuck while compiling C/C++ example

Hi,

I was trying to compile the basic example but i do have a problem with the dependencies:

-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Selected BuildKit: GCC x86_64-linux-gnu
-- ######################################
-- Option: BUILD_SNAP ON
-- ######################################
CMake Error at CMakeLists.txt:88 (include):
include could not find requested file:

/home/mauro/ctrlx-automation-sdk-main/samples-cpp/datalayer.provider.all-data/../..//cmake/oss.flatbuffers.1.12/FindFlatBuffers.cmake

CMake Error at CMakeLists.txt:93 (build_flatbuffers):
Unknown CMake command "build_flatbuffers".

-- Configuring incomplete, errors occurred!
See also "/home/mauro/ctrlx-automation-sdk-main/samples-cpp/datalayer.provider.all-data/build/CMakeFiles/CMakeOutput.log".
make: *** No rule to make target 'install'. Stop.-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Selected BuildKit: GCC x86_64-linux-gnu
-- ######################################
-- Option: BUILD_SNAP ON
-- ######################################
CMake Error at CMakeLists.txt:88 (include):
include could not find requested file:

/home/mauro/ctrlx-automation-sdk-main/samples-cpp/datalayer.provider.all-data/../..//cmake/oss.flatbuffers.1.12/FindFlatBuffers.cmake

CMake Error at CMakeLists.txt:93 (build_flatbuffers):
Unknown CMake command "build_flatbuffers".

I am not able to find the right dependency missing.

Mauro

How can I add a network app to ctrlx and add a menu item to slider

enviroment

sdk: the latest version
ctrl works: ctrlX WORKS WRK-V-0120.5

node js version

node: 18.18.2
npm: 10.2.3

I added a samples-vue to the ctrlx-automation-sdk directory。
I builded the script build-snap-amd64.sh

my snapcraft.yaml config

# See https://snapcraft.io/docs/getting-started
# See https://snapcraft.io/docs/snapcraft-yaml-reference
name: vue
version: '1.0.1'
base: core20
title: vue
summary: samples-vue for ctrlX
description: |
  samples-vue apps.
grade: stable         # must be 'stable' to release into candidate/stable channels
confinement: strict   # reduced file access to selected areas, reduced

parts:
  configs:
    source: ./configs
    plugin: dump
    organize:
      'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/

  vue:
    source: .
    plugin: npm
    npm-node-version: '16.15.1'
    override-build: |
      # install node
      snapcraftctl build

      # install dependencies
      npm install

      # run vuejs build script
      npm run build

      # remove node
      rm -rf ${SNAPCRAFT_PART_INSTALL}
    organize:
      '${SNAPCRAFT_PART_BUILD}/dist/app': vue/${SNAPCRAFT_PROJECT_NAME}/

slots:
  package-assets:
    interface: content
    content: package-assets
    source:
      read:
      - $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME}
  package-run:
    interface: content
    content: package-run
    source:
      write:
        - $SNAP_DATA/package-run/${SNAPCRAFT_PROJECT_NAME}

  vue:
    interface: content
    content: vue
    source:
      read:
      - $SNAP/vue/${SNAPCRAFT_PROJECT_NAME}

my manifest.json config is:

{
  "$schema": "https://json-schema.boschrexroth.com/ctrlx-automation/ctrlx-core/apps/package-manifest/package-manifest.v1.3.schema.json",
  "version": "1.0.0",
  "id": "vue",
  "menus": {
    "sidebar": [
      {
        "id": "vue",
        "title": "vue",
        "icon": "bosch-ic-translate",
        "items": [
          {
            "id": "vue",
            "title": "ctrlX",
            "target": "_blank",
            "link": "/vue"
          }
        ]
      }
    ]
  }
}

the refs url is: https://github.com/LelandACM/ctrlx-automation-sdk/tree/main/samples-vue

I builded a snap file and upload to app store, but open the router, tips: Page 404 not found
20231229174309

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.