eclipse-basyx / basyx-cpp-sdk

cpp-sdk
Eclipse Public License 2.0
12 stars 9 forks source link

Doability of porting to Zephyr OS #14

Open vChavezB opened 1 year ago

vChavezB commented 1 year ago

Hello dev team,

I am interested in testing the basyx framework with microcontrollers, hence the generation of this issue.

Correct me if I am wrong but with this sdk is it possible to develop a TCP server that can recieve requests over the VAB? (such as in this image?

If this is the case would it be doable to port this to embedded devices with the Zephyr OS? What I see so far is that the implementation for unix is located here and could be used as a starting point. Would it be enough to change the implementation or are there other considerations?

Also, I would like to know if as part of this project do you intend to have the sdk work with the Asset Admin. spec REST API independent of the VAB. My use case for this would be to develop small embedded devices that contain their own Asset description and can have the Asset Admin. Shell TCP API interface with Zephyr OS.

Best regards Victor

IESE-T3 commented 1 year ago

Hello Victor,

sorry for the late reply.

Yeah, that's right, the current SDK is based on the VAB implementation as seen in that image. Porting it to Zephyr OS should be possible by either using BSD Sockets directly or implementing your own Socket layer.

There is also a new version of the SDK on the way, which will implement the v3.0 of the official AAS specification and will also include its own REST server implementation. A prototype of this implementation should be available later this month, so feel free to keep an eye out for that.

Best regards, Thomas

vChavezB commented 1 year ago

Hi thanks for the Update Thomas. I will definitely have a look on this new implementation as I am planning to test it on some ESP32s and NRF52 boards.

vChavezB commented 1 year ago

@IESE-T3 I just saw that there is an update on the development branch. I was reading the history of commits and it seems that at first the HTTP interface was implemented in this project and then it was removed https://github.com/eclipse-basyx/basyx-cpp-sdk/commit/29ad0d5c0fd557d651f904f44fb62c687749971d, so now this library just parses the AAS model (???).

  1. Would my question regarding porting the library to an Embedded System with Zephyr OS still apply?

  2. What would be the steps to use this library now as I see that the HTTP server is not implemented anymore.

I might need to read more in detail the source-code but some docs would be nice to have an overview of what can be done with the library now.

Final note, it seems that the Java SDK has higher development priority but it would be nice to have more support for CPP for us embedded folks :)

IESE-T3 commented 1 year ago

Hello, yes, things have been moving rather slowly on the CPP front, but we are still planning to provide full functionality for the new AAS V3 Metamodel.

The HTTP Server is still going to be a part of the BaSyx CPP SDK, but it will moved to a different part of the repository (basyx-cpp-components), so we will have a clear split between metamodel and other functionality (like HTTP server), so people who just want to use the metamodel can do so without having to pull in all the other dependencies.

We hope to provide some more updates in the coming weeks!

Final note, it seems that the Java SDK has higher development priority but it would be nice to have more support for CPP for us embedded folks :)

I agree :)