NEP+ middleware documentation
Cross-disciplinary, cross-platform, multi-language, and human-centered middleware framework for busy practitioners, researchers, and newcomers
Last updated
Cross-disciplinary, cross-platform, multi-language, and human-centered middleware framework for busy practitioners, researchers, and newcomers
Last updated
NEP+ middleware is a software framework that acts as an intermediary between different applications, systems, or components, facilitating communication and data exchange between them. In simple words, NEP+ middleware allows different software components to interact with each other seamlessly, making it easier to develop complex software systems.
NEP+ stands out as middleware for several reasons:
Human-Centered Design: NEP+ is specifically designed with human-centered principles in mind, focusing on simplicity, ease of use, and accessibility. This makes it particularly suitable for developers and users who may not have extensive technical expertise.
Cross-Platform Compatibility: NEP+ is designed to seamlessly operate across various operating systems, including Windows, macOS, Linux, and Android. This broad compatibility ensures that NEP+ can be easily integrated into diverse software environments.
Multi-Language Support: NEP+ facilitates communication between components developed in different programming languages. This means that developers can leverage their preferred languages while still achieving interoperability within their applications.
Versatility: NEP+ offers a range of options, tools, and interfaces tailored for various applications in Human-Robot Interaction (HRI) and Human-Machine Interaction (HMI) domains. This versatility enables developers to create a wide range of interactive applications, from robotics systems to digital twins.
Empowering Developers: NEP+ aims to empower both novice and experienced developers by providing intuitive tools and interfaces for integrating human-machine interaction applications. This focus on empowerment makes NEP+ accessible to a broader audience, fostering innovation and collaboration in the development community.
NEP libraries, NEP+ App and NEP CLI were designed to empower ZeroMQ message libraries, enabling and
Are you tired of the boring 'hello world' example that requires learning new concepts and installing numerous dependencies by writing commands in a terminal, sometimes leading to failures in achieving the intended results? Let's begin with a zero-code, zero-command-line, fully interactive 'hello world' example that uses your webcam and artificial intelligence to display your skeleton. I hope this example can provide a more enjoyable introduction for you in three simple steps:
Soon ...
Here is the traditional 'hello world' in four simple steps:
Requirements:
1.-Install the NEP CLI using npm and the nep Python library using pip
2.- Run the NEP master server using the next line:
3.- Run the following Python script for sending messages:
4.- Run the following Python script for reading and displaying messages:
In this example, we will run the NEP master on computer B. Therefore, for programs on computer A that need to send and receive messages from computer B, it is necessary to specify the IP address of computer B.
Requirements computer A (do not require installation of NEP-CLI):
1.- Install nep library
Requirements computer B ( require installation of NEP-CLI):
2.-Install the NEP CLI using npm and the nep Python library using pip
3.- Run the NEP master server using the next line:
4.- Figure out the IP address of computer B (in the network connected to computer A). For that, you can use some of the next commands in computer B:
You will see something like this:
In this case, computer B can be connected to other computers in the network using Ethernet over the IP = 192.168.0.1 or Wi-Fi over the IP = 192.168.0.2
In this second example Ethernet connection is not available, therefore you must check your cable connection or networking configuration:
5.- In computer A using the IP address obtained in computer B run the next code:
Note: Update the IP value in line 8 with the correct address obtained in step 4. If communication is unsuccessful, ensure that the entered IP address is accurate
6.- Run the following Python script for reading and displaying messages:
NEP+ supports a wide range of modern and popular programming languages, and installing them is as simple as a few command lines using official package managers.
Install the nep library for Python using pip
Previous versions of NEP implemented in Python, C#, Java, and JavaScript were connected to NEP-CLI and NEP+ App using a client-server pattern over port 7000. However, this port was also utilized by AirPlay in Apple devices, thereby limiting cross-platform capabilities. In the new versions of NEP+ tools, port 50000 is used instead.
Solution: update NEP libraries, NEP-CLI, and NEP+ App to the latest versions.
Example of applications:
Integrating Sensors with IA algorithms and Robots: NEP+ can help connect sensors like cameras to state-of-the-art AI algorithms and different types of robots, enabling them to perceive and interact with their environment.
Controlling Robots from a Smartphone: With NEP+, users can develop applications to control robots remotely using their smartphones, making it easy to operate robots from a distance.
Visualizing Robot Data: NEP+ can be used to create interfaces that display real-time data from robots, such as their current position or sensor readings, in a user-friendly format.
For users of pycharm just search the nep package, following instructions.
NEP libraries
Comprise a collection of high-level communication libraries available for modern and widely-used programming languages. They empower the exchange of messages between programs executed on a single computer or across multiple computers using TCP sockets
NEP+ App
A graphical interface (GUI) designed for managing message routing between components and monitoring their communication flow. No expertise is necessary to use this interface, as it comes pre-installed as a ready-to-use application for Windows, Mac, and Ubuntu operating systems
NEP CLI
A command-line interface (CLI) for managing message routing between components and monitoring their communication flow. Tailored for command line enthusiasts seeking enhanced productivity, as well as for advanced or more traditional developers