I have encountered and resolved a number of questions on proxy ports today, but the solution to this one has eluded me.
Within a Domain (Domain1) a Client (system E1) sends a command (operation C1) to a Controller (system E2). Quite fundamental.
This much executes fine in simulation. E1 owns an Activity (Send C1) with a Call Operation Action specifying the output port in the On Port property. The target receives the command and executes an operation (prints "Received C1"). Great!
The next step seems incremental, but I have not been able to make it work. In practice, the command to send in practice should belong to a subsystem (and ultimately each subsystem will be in its own project, so it should not reference anything in the larger framework). 1) If I simply add a Subsystem block (E1Sbsys1), move the operation to it, and add a part typed by this subsystem to E1, the simulation still executes perfectly. (The On Port property still points to the port owned by E1,however, which is not consistent with the requirement just stated.) 2) If, on the other hand, I copy the port to E1Sbsys1, select this new port for the value of the On Port property on the Call Operation Action), and connect the new proxy port to the previous one, the message does not go anywhere in the simulation. (There are no relevant validation errors.)
I have puzzled over this (and variations of it) for a while now, but I have not come up with a reason why it should not work. What am I missing?
Thoughts?