open62541 | Open source implementation of OPC UA

 by   open62541 C Version: v1.3.5 License: MPL-2.0

kandi X-RAY | open62541 Summary

kandi X-RAY | open62541 Summary

open62541 is a C library typically used in Embedded System, Nodejs applications. open62541 has no bugs, it has no vulnerabilities, it has a Weak Copyleft License and it has medium support. You can download it from GitHub.

open62541 (is an open source and free implementation of OPC UA (OPC Unified Architecture) written in the common subset of the C99 and C++98 languages. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. open62541 library is platform independent. All platform-specific functionality is implemented via exchangeable plugins. Plugin implementations are provided for the major operating systems. open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published. The library is available in standard source and binary form. In addition, the single-file source distribution merges the entire library into a single .c and .h file that can be easily added to existing projects. Example server and client implementations can be found in the /examples directory or further down on this page.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              open62541 has a medium active ecosystem.
              It has 2123 star(s) with 1071 fork(s). There are 173 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 718 open issues and 1956 have been closed. On average issues are closed in 68 days. There are 92 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of open62541 is v1.3.5

            kandi-Quality Quality

              open62541 has 0 bugs and 0 code smells.

            kandi-Security Security

              open62541 has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              open62541 code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              open62541 is licensed under the MPL-2.0 License. This license is Weak Copyleft.
              Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.

            kandi-Reuse Reuse

              open62541 releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 16815 lines of code, 277 functions and 36 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of open62541
            Get all kandi verified functions for this library.

            open62541 Key Features

            No Key Features are available at this moment for open62541.

            open62541 Examples and Code Snippets

            No Code Snippets are available at this moment for open62541.

            Community Discussions

            QUESTION

            The OPC UA open62541 historical data reading client is not compiled
            Asked 2021-Dec-08 at 14:10

            On the library's website, the documentation provides options for functions for accessing historical data reading. There is also an example of using historical data reading in the repository. I've simplified this example from the repository a bit, but I still can't compile it.

            ...

            ANSWER

            Answered 2021-Dec-08 at 14:10

            In order for the mechanism of reading historical data to work, it is necessary to enable the UA_ENABLE_HISTORIZING parameter WHEN BUILDING THE LIBRARY, which is not specified in the official documentation for the library.

            Source https://stackoverflow.com/questions/70267562

            QUESTION

            Failure to build open62541 with CMake on Windows
            Asked 2021-Oct-19 at 13:22

            I am trying to build the library on Windows with CMake. The whole process is new to me, so please excuse this basic question. I followed the instructions under 2.1.2 of the current open62541 manual (Release 1.2.0-rc2-45-gf4270ceb). After executing cmake.exe, I got the following error:

            ...

            ANSWER

            Answered 2021-Oct-19 at 13:22

            To run Visual Studio on an .sln file means to open it in VS, then click on Build in the menu bar and then on Build solution. This was new for me, thanks everyone for hinting me in the right direction.

            Source https://stackoverflow.com/questions/69476941

            QUESTION

            OPC UA Global Discovery Server (GDS)
            Asked 2021-Sep-05 at 08:15

            What is the best way to implement Global Discovery Server and Certificate Management? Does open62541 support these services or is there some better library that could be used (not necessarily open source)?

            ...

            ANSWER

            Answered 2021-Sep-05 at 08:15

            There is a sample code for a GDS from the OPC Foundation here. But it is only community maintained and managing devices via Pull and Push can be quite cumbersome with the GDS Client application. But it was used for a while in IOP Workshops and for V1.04 operation with RSA certs should still work according to standards. There are some commercial GDS offerings in the pipeline by different vendors, given security is in the play I recommend use rather commercial ones. For implementing and testing the GDS Pull/Push services for a UA server the sample server should be sufficient.

            Source https://stackoverflow.com/questions/68688220

            QUESTION

            Convert Linux Debian gcc command to CMakeLists.txt
            Asked 2021-Mar-09 at 16:22

            I hope the question is not too trivial, but I am trying to convert a gcc command into a CMakeLists.txt. Unfortunately I am failing at understanding the basics and I hope you can help me. My main reason for wanting to do this is that I'm building the whole thing on a Raspberry and it has quite a few performance problems. So it takes a good 90min to build the whole thing. With cmake I hope that the build process is done faster when changes are made. Which should be theoretically possible.

            Here is the my gcc command

            ...

            ANSWER

            Answered 2021-Mar-08 at 18:40

            You can use SET() to set the compiler flags. Check the CMake documentation

            You can set the CMAKE_CXX_FLAGS to the flags you want to pass to the compiler

            Source https://stackoverflow.com/questions/66534771

            QUESTION

            What's the correct way to let the static member function call a non-static member std::function in c++?
            Asked 2020-Sep-29 at 02:34

            I'm using an open62541 library who's functions are almost all static. I have to write some callback functions in the open62541's functions, the callback functions are binding to some non-static function.

            so the problem is how do I make the:

            static function of class A call a std::function, which is bind to non-static function of class B ?

            to make the question simpler I make the example:

            ...

            ANSWER

            Answered 2020-Sep-29 at 02:34
            #include 
            using namespace std;
            
            class A
            {
            public:
                void Knock_knock() {
                    std::cout<<"who's there?"<Knock_knock();
                }
            
            private:
                static A *m_A;
            };
            
            A* B::m_A = nullptr;
            
            int main()
            {
                A m_A;
                m_A.Knock_knock();
            
                B::setA( &m_A );
                B::talkTheJoke();
                return 0;
            }
            

            Source https://stackoverflow.com/questions/64098157

            QUESTION

            How do i analyse a complex project like open62541?
            Asked 2020-Apr-21 at 15:38

            I am a student and currently trying to analyse the reference implementation for the OPC Ua protocol in C with cppcheck and frama-c. My goal is not to do very dedicated testing but more some general/basic tests to see if there are some obvious issues with the code.

            The project can be found here

            I am running a VM with Ubuntu 19.10 and Frama-C version 20.0 (Calcium).

            The steps i performed are as follows:

            ...

            ANSWER

            Answered 2020-Apr-21 at 15:38

            Do i need to do my analysis on all files separately or is it possible to throw in the whole project like with cppcheck?

            Frama-C can actually analyze the entire project in one go provided multiple files do not define the same symbols. See http://blog.frama-c.com/index.php?post/2018/01/25/Analysis-scripts%3A-helping-automate-case-studies, paragraph "Setting sources and testing parsing":

            The list of source files to be given to Frama-C can be obtained from the compile_commands.json file. However, it is often the case that the software under analysis contains several binaries, each requiring a different set of sources. The JSON compilation database does not map the sources used to produce each binary, so it is not always possible to entirely automate the process.

            The key point in your case is that the compilation_commands.json instructs Frama-C on how to parse each file, but you must still supply the files you want to see parsed yourself. With your current command-line, Frama-C tries to interpret /path/to/open62541/src/ as a file (and fails), and has no other file to parse. This is why you get the error User Error: cannot find entry point 'main'.

            Thus, you must specify the files you want to parse on the command-line. This can be done in two ways:

            I used the first approach, but I suggest you use the second, as frama-c-script is very helpful to start a first analysis.

            Once you have done this listing step, you will encounter at least three more problems:

            • Frama-C will choke on # include , because this file is not present in the standard C library bundled with Frama-C. Either remove this include in the source files, or add an empty sys/param.h somewhere
            • some .c files refer to generated headers that are not present in the git repo of open62541. So you will need to compile the repo to get those headers before launching Frama-C.
            • Frama-C will also choke on the definition of the macro UA_STATIC_ASSERT in architecture_definitions.h. I did not investigate whether one of the definitions was accepted, and I simply defined it to the empty macro.

            After all this, you should be good to go.

            Source https://stackoverflow.com/questions/61320735

            QUESTION

            open62541 Client is disconnect from OPC-UA Server
            Asked 2020-Feb-13 at 01:57

            first thanks to read this question

            I have some problem about open62541 disconnect issue

            I checked that the connection is lost every same cycle.

            cycle time is 12min 40sec.

            I checked connect status from this code

            ...

            ANSWER

            Answered 2020-Feb-13 at 01:57

            I solve this problem myself

            I tested other open62541 version.

            It is work. Just changed open62541

            Source https://stackoverflow.com/questions/60160762

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install open62541

            For every release, we provide some pre-packed release packages which you can directly use in your compile infrastructure. Have a look at the release page and the corresponding attached assets. A more detailed explanation on how to install the open62541 SDK is given in our documentation.
            Recommended: Use any of the prepared packages attached to every release or in the package repository of your distro (if available). Please check the install guide for more info.
            Download a .zip package of special pack/ branches. These pack branches are up-to-date with the corresponding base branches, but already have the submodules in-place and the version string set correctly. Here are some direct download links for the current pack branches: pack/master.zip pack/1.0.zip
            Clone this repository and initialize all the submodules using git submodule update --init --recursive. Then either use make install or setup your CMake project correspondingly.

            Support

            A general introduction to OPC UA and the open62541 documentation can be found at http://open62541.org/doc/current. Past releases of the library can be downloaded at https://github.com/open62541/open62541/releases. To use the latest improvements, download a nightly build of the single-file distribution (the entire library merged into a single source and header file) from http://open62541.org/releases. Nightly builds of MSVC binaries of the library are available here.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/open62541/open62541.git

          • CLI

            gh repo clone open62541/open62541

          • sshUrl

            git@github.com:open62541/open62541.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link