Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tcf-dev] Adding value-add server

Hi Vladimir,

> - Why is this setup must be done in IDE? It would seem more modular if a value add-on can both
> automatically connect to some specific agent, and then IDE would notice that connection and hide,
> or deemphasize the underlying agent? In fact, why can't two value-add servers and the backend
> agent sort communication between themselves and then be presented in IDE as unified whole, by default?

The reason why it is handled by the IDE is that the user should not notice if a value-add is used or not. From user POV, this is a technical detail a user does not care about. All a user wants is "Start debug" or "Start analysis". The fact that the user needs a value add for debug and/or analysis should be hidden from the user.

I'm not very familiar with the C implementation of TCF, but I guess that you can implement a value add that would be able to listen to the discovery messages and connect to the agents himself. The are nonetheless two issue is see with that. As the redirect chain is channel based, the value-add would be required to chain incoming channels automatically with the pre-setup chain it discovered and second there is no way for a client to query the full redirection chain from a channel in order to hide the involved peers.

> - You say I can make a value-add be used only for particular peers? How do I do that in user interface? I
> don't think it's  good idea to specify specific address in plugin.xml, rather, I would want to right click on the target and
> say  'enable OS awareness for my fancy RTOS', instead.

Chaining a value-add with another value-add or agent is nothing the user will do from the user interface. There is no user action to do a "redirect". Again, using a value-add is not something the user actively care about. Binding a value-add to a peer with a defined set of properties is done via the "valueaddBindings" extension point via the "<enablement>" expression. If needed, the target agent discovery information should be extended to allow a precise binding, in example by adding the information about the OS running.

> - Can I define a value-add entirely in IDE? It seems like AbstractValueAdd might be useful, but it does not
> have any subclasses  except for AbstractExternalValueAdd.

It should be possible to write a value-add entirely in Java (or Python), but so far, the value-add's I'm aware off are all written in C and are external native applications. 

> - Suppose I want an IDE-side value-add for serial connections, so that the user can pick a target, say
> "This has serial connection", configure details for serial connection and then, so that I can right click on
> a target and open terminal (using real serial). What support TCF has for this? How can custom UI be integrated
> with the "System Management" view, and to target properties editor? I see that a target properties dialog has
> an area for custom properties, but that's not quite perfect UI.

The kind of properties you reveal of the target depends on the discovery information or custom services you write and are specific to your targets.

The "System Manager" is a common navigator based view and allows all kind of extensions to be contributed via the common navigator extension points and the standard Eclipse extension mechanism like the "org.eclipse.ui.menus" extension point. There are extension points to declare target property editor pages (o.e.tcf.te.views.editorPages) and their bindings (o.e.tcf.te.ui.view.editorPageBindings).

You can bind/contribute any sort of actions and target properties editor pages to a given set of target properties and/or available remote services. 

> - In fact, I am not sure it's good idea to merge general services framework with TCF protocol. Support I
> want to represent a target that does not have Ethernet, and can only be debugged over JTAG (and so can never
> ever run TCF agent). How would I do that?

You write an JTAG TCF agent which is running entirely on the host. There are companies who are using the TCF framework, both client and agent side, for exactly this use case.

Best regards, Uwe


> 
> Thanks,
> 
> --
> Vladimir Prus
> CodeSourcery / Mentor Graphics
> http://www.mentor.com/embedded-software/
> _______________________________________________
> tcf-dev mailing list
> tcf-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/tcf-dev


Back to the top