remote_controlboard has a network server (wrapper) assigned, and RGBDSensorClient is a wrapper #1837
Replies: 8 comments 1 reply
-
I had the same idea years ago and asked clarification. I was replied it was done on purpose, for the following reason: The default wrapper is used only by the Although personally think this is one of the many hidden and never used features yarp has, still it may be considered as a feature. It may also be used as a quick way to setup a local repeater. Not all clients can work this way because some wrappers have mandatory parameters that cannot be guessed with default values. This was just to summarize the story and explain why it is not a bug. That said, I'm not against this change. The only difference I see is that, in case a user wants to setup a repeater, it has to change the command from: I proposed the same thing years ago and it was rejected, maybe now times are changed, but I think we need a shared strong agreement before removing a feature. |
Beta Was this translation helpful? Give feedback.
-
For consistency, I see 2 options:
I would not like to see the issue marked as |
Beta Was this translation helpful? Give feedback.
-
I agree many things are not intuitive, but imho that's not enough to remove them.
This is to distinguish between devices that deal with the hardware (therefore needs to be wrapped by something else) and devices that only deal with yarp messages over the network. Many devices have this information missing or not correct and could be updated, but it is not clear to me if we are talking about adding/removing the feature of creating the wrapper or the |
Beta Was this translation helpful? Give feedback.
-
What about documenting rather than removing? 😉 Also, consider that there exist plenty of devices not included within YARP. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your comments! Great to have this documented. I am rather confused on something now, I guess the following should be defined before deciding whether if the default should be set or not: A.
B. ...does anybody have a clear opinion? |
Beta Was this translation helpful? Give feedback.
-
That's my point. It looks that we are discussing about words rather than about features (which is good anyway). None of both citation in A states that the client is not a wrapper. They simply state the the devices are wrapped by wrappers. Clients are devices, and they may be wrapped by another network wrapper as well. It is not explixitly said that the client is a wrapper either. Usually we refer to clients and servers as Network wrappers because their business logic is to handle network communication, they do not have any computation and do not generated or modify the data they handle. The HW device on the contrary produce/consume data and do not have any ports and don't care where the data goes/comes from (a device can be used without wrappers). You can find more details about this idea in this presentation https://github.com/easy-peasy-robotics/easy-peasy-robotics.github.io/blob/master/editions/cpi18/yarp.pptx So a client is a network wrapper which can, in turn, wrapped again (and again and again 😄 ) in case this is found useful. |
Beta Was this translation helpful? Give feedback.
-
Understood and agreed. 👍 Ok to PR as described above (mark PS: Both a small comment and a pointer to this issue in the commit could reference the possibility of wrapping the client in a server for implementing a repeater-like functionallity. |
Beta Was this translation helpful? Give feedback.
-
I personally always though that just servers (and not clients) were considered "network wrappers", for the following reasons:
Indeed in #1692 I separated the two groups (server and clients) from the original |
Beta Was this translation helpful? Give feedback.
-
Describe the bug
remote_controlboard
andRGBDSensorClient
are client devices, yet have network servers (wrappers) assigned:remote_controlboard
hascontrolboardwrapper2
defined here.RGBDSensorClient
hasRGBDSensorClient
defined here (edit: well, this actually means it is saying it is a wrapper).I understand that this is conceptually wrong and can lead to misunderstandings and wrong code in the future due to copy+paste (issues on documenting this are on the way at time of writing, see #1707). Note that this should not affect run-time: proof is they have been there for a very long time.
To Reproduce
See code, or run
yarpdev --list
and see wrappers.Expected behavior
Client devices, from my understanding, should have no wrapper (wrappers are for server sides).
Additional context
Switching the mentioned source code to empty quotes
""
should suffice.Beta Was this translation helpful? Give feedback.
All reactions