Hi, On 13.10.2016 13:50, Jakob Schwendner wrote: > Hey, > > One thing, which was on the back of my mind for a while was that at the > moment, the task model that is given by orogen is not completely explicit. > This is because of the dynamic ports. Effectively, because of the ability to > generate dynamic ports at any time, a task has an implicit model, which in > my opinion breaks with the general design principle of Rock for having > explicit models. The dynamic_output_port statement tries to put some order > in it, but is not really sufficient. > Currently, the shape (e.g. the input/output ports) of a task depends on the > configuration (and I guess even sometimes on operations that are called), > but in a way that is only known to the component. To use the model in e.g. > syskit or orocos.cpp, this behavior has to be mirrored on the model level. > I was employing the idea of model templates for a while, but this would be > fairly involved to implement. > > Thomas had a good idea, which would be very simple, and would make > everything explicit. > - You are not allowed to generate dynamic ports on your own in a task > - If either dynamic_output_port or dynamic_input_port exist, a property > called dynamic_ports is created > - This property includes a list of name/type pairs This list would be given in the configuration file, right?
What if the number of ports is dynamic? I don't know of an existing case. A potential one would be to communicate with an unpredefined number of tasks instances, each through its own port. Short of a server with unpredefined number of clients that can connect to it and assigning a port to each client. Raúl > - The orogen generated code would generate the ports from the dynamic_ports > property in the configure phase. > > In this way, the complete model would be known already at modelling time, in > a generic way that needs no specific handling of certain tasks. > > Please let me know of some negative examples, where this would not work. > > Cheers, > > Jakob > > _______________________________________________ > Rock-dev mailing list > Rock-dev@dfki.de > http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev -- Raúl Domínguez (M.Sc.) Space Robotics Besuchsadresse der Nebengeschäftsstelle: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 5 28359 Bremen, Germany Postadresse der Hauptgeschäftsstelle Standort Bremen: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 1 28359 Bremen, Germany Tel.: +49 421 178 45-6617 Zentrale: +49 421 178 45-0 Fax: +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen) E-Mail: raul.doming...@dfki.de Weitere Informationen: http://www.dfki.de/robotik ----------------------------------------------------------------------- Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vorsitzender) Dr. Walter Olthoff Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes Amtsgericht Kaiserslautern, HRB 2313 Sitz der Gesellschaft: Kaiserslautern (HRB 2313) USt-Id.Nr.: DE 148646973 Steuernummer: 19/673/0060/3 _______________________________________________ Rock-dev mailing list Rock-dev@dfki.de http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev