Embedded Target Communications with TCF Martin Oberhuber Michael Scharf Wind River Tutorial Themes How we’re going to run this: • Practical • Interactive • Workspace Take-away 2 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 The Stick • • • • All-in-one Eclipse ZIP QEMU/mini.zip Workspace.zip Compilers – OPTIONAL - For the adventurous – We provide pre-built executables – If you want to build yourself, install the compiler EXE’s • Tools – Ingredients of the all-in-one. Install if you want your own Eclipse. • Tcf_source – patches 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Agenda • TCF Overview • Building and running TCF native – Workspace Setup – Command-line tools – Protocol Basics • Building and running embedded – Source structure, Removing a Service – Proxy Setup • Adding a Service or Value-add – The C side (client and server) – The Java side (client) 4 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 System Debug: the Big Picture Eclipse 3rd party SW CPU Debugger 3rd party SW DSP Debugger 5 SoC (Model) TCF TCF Target Description IP-XACT, XML Target Server(s) TCF CPU HW IP TCF TCF TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents This slide © SPRINT and Infineon 2008. All rights reserved. except logos and trademarks made2007, available under the EPL v1.0 DSP Today: Separate Communications per tool Tool A Tool B Tool C Tool D UI P2 Host P1 Value Add B Value Add C P3 Agent A Agent B Hardware C Target 6 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Bad for the User ? Tool A ? ? Tool B Tool C Tool D UI P2 Host P1 Value Add B Value Add C P3 Agent A Agent B Agent C Target 7 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Bad Design! Tool A Tool B Tool C Tool D UI Host Agent A Value Add B Value Add C Agent B Agent C Target 8 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Limited eco system • • • • Too many different tools agents and protocols Add-on providers need to provide multiple integrations Huge effort putting it all together end-to-end Lock-in to single vendor for end-to-end solution – No best-of-breed mashup solutions 9 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Design Goals of TCF • Protocol Framework provides common infrastructure – communication protocol – Agent: “Service container” – Proxying • Same protocol on all layers supporting value-add – Support pass-through • Tools can use services in uniform way • Service implementers can focus on functionality 10 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF vs. ECF • TCF – Target Communication (Protocol) Framework – – – – Protocol, independent of API API in multiple languages (C, Java, Perl, …) One extendable Protocol (though supports multiple transports) Typically point-to-point only • ECF – Eclipse Communication Framework – API independent of Protocol – API in Java - abstract specification of concepts: • Message, Channel, Container, ID • Datashare, Filetransfer, Directory Listing – ONE API for multiple protocols (e.g. Files; FTP, HTTP, EFS, …) – Very flexible one-to-many communications • TCF and ECF are similar, but ECF is on a higher layer 11 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF - Core Design Ideas • Use the same extendable protocol end-to-end – allow value-adding servers to intercept select services • Extension: Abstract Services as building blocks – Same tool for multiple targets (e.g. agent, OCD, simulator) – Avoid tools specific agents – Bridge gap with specific services to configure common ones • Data-driven by target – Service knows best how to represent the system – If not possible, put the knowledge in the lowest possible layer and data drive the layers above • Support high latency communication links 12 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF: Common agent and protocol UI Host Tool B Tool A Tool C Service 4 Value Add Service 5 TCF Agent Target 13 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Tool D Peer is a Communication endpoint UI Host Tool B Tool A Tool C Service 4 Value Add Service 5 TCF Agent Target 14 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Tool D Service UI Host Tool B Tool A Tool C Service 4 Value Add Service 5 TCF Agent Target 15 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Tool D Message Channel UI Tool B Tool A Tool C Tool D TCF Channel Host Service 4 Value Add Service 5 TCF Channel TCF Agent Target 16 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Channels and Messages • Communication between peers use channels • Channels abstract/hide the transport layer – Currently TCP – Possible: RS232, JTAG, USB etc • Channels transmit Messages 17 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF Communication Protocol • Message – A packet of data – Transmitted over communication channel • Multiple channels per peer • Proxying/Tunneling – – – – 18 Message forwarding “Decorator” can intercept communication “Value-add” services (e.g. debug info) No protocol conversion needed TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 The TCF Message Types • Command (send) – Request some action on remote peer • Progress – Long running commands may send “progress ticks” • Result (reply) – Remote peer sends one result for each command! • Event – Notify a change • Flow control – prevent congestion 19 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Command • Command is a message • Sent to remote peer • Remote peer must send one Result for each Command! 20 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Result • Result is a message – Data, Errors • Sent as a response to a command • Remote peer sends one Result per Command! 21 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Commands are Asynchronous • Sender of a command returns immediately – Fast on high latency connections • Sender receives results – asynchronously 22 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Event • Event is a message • Notification about state changes 23 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Message order guaranteed on channel • Keep state of remote peer • Without message ordering no consistent state • Ordering per channel and direction Command X=1 Result X=1 Event X=2 Command X=3 Event X=4 Result X=3 Event X=5 24 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Flow Control • Prevent congestion 25 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF: Layered View UI Host Tool B Tool A Tool C Service 4 Value Add Service 5 TCF Agent Target 26 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Tool D Communication Layers Services Messages Channel Transport Layer (e.g. TCP/IP) 27 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Transport Layer: Byte Stream Services Messages Channel ????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 28 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Channel: Message Stream Services Messages Channel ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 29 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Messages: Command Result Event Flow Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 30 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Message Type Message Type Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 31 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Token Token: Channel Unique To identify Result Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 32 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Service Id Service id Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 33 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Command Name Command name Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 34 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Arguments (byte array) Arguments (byte array) Services Messages Channel C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 35 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Argument Representation: e.g. JSON Marshalling: JSON Services C 17 SysMonitor getChildren [“p123”] Messages C 17 SysMonitor getChildren ?????? Channel ?????????????????????????????????????????? ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP) 36 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 The 5 TCF Messages Command C • <token> • <service> • <command> • <arguments> Progress P • <token> • <progress_data> Result R • <token> • <result_data> Event E • <service> • <event> • <event_data> Flow F • <traffic_congestion_level> • 37 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF and the OSI Layers 7 Application Layer Services 6 Presentation Layer JSON 5 Session Layer Channel + Messages 4 Transport Layer 3 Network Layer 2 Data Link Layer 1 Physical Layer 38 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF as Layer 3 and 4 7 Application Layer Services 6 Presentation Layer JSON 5 Session Layer Channel + Messages 4 Transport Layer 3 Network Layer 2 Data Link Layer 1 Physical Layer 39 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Prototype implementation • Lightweight C-based agent – Minimal agent has < 4000 lines of C code – Minimal impact on the target • Eclipse plug-ins – Java TCF implementation to access service 40 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Getting Real: Development Tools • Eclipse-TCF-Preinstalled.zip – – – – – Eclipse SDK 3.5m6 CDT 6.0m6 RSE 3.1m6 Optional: Subclipse with GEF or Subversive Target Emulator • QEMU-arm-tcf.zip with mini Linux + ssh • Compilers: *.exe with installer – Cygwin, or MinGW 5.1.4+MSYS (with Wascana), or VS Express – CodeSourcery g++ Lite for ARM 41 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Workspace Setup and Build • Import into Workspace: tcf.zip – Import > General > Existing Projects > Archive – Or import SVN Team Project Set • Build TCF Agent native / cross – User-defined build (hand written Makefile) – external shell • Type “make” on host • Type “make ARCH=ARM” for target ARM – Visual Studio (Express): open agent.sln and build • Need VS for Windows Debugging • Need external dbghelp.dll for bug fixes – CQ 2553 42 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF Sample Session • Open Command prompt 1 for agent: Logging to stdout – cd org.eclipse.tm.tcf.agent/Cygwin/i686/Debug – ./agent -L- • Open Command prompt 2 for client: – – – – – – – – 43 ./client -Lhelp peers connect tcp:127.0.0.1:1534 tcf FileSystem roots tcf FileSystem opendir "/root" tcf FileSystem readdir "FS0" tcf <serviceName> <command> <JSONargs> Agent is auto-detected Shortcut: connect TCP:: TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 JSON messages Using an ID Auto Discovery • Discovers Peers and Services • Simplifies setup – Client UI can easily find peers and discover services • TCF comes with a simple UDP auto discovery – Other mechanisms possible and optional 44 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 How Discovery works • First agent binds UDP::1534 to listen – If port is not available, somebody else is master already • Become slave: periodically send “Hello” to UDP::1534 • Master responds with list of known peers • Master listens for new slaves announcing themselves – Keep list of known slaves, broadcast to all when asked • When master dies, a slave will get no response on poll – After timeout on poll, slave becomes new master – It has the full list of known peers already at this time • Across networks: fixed master – tcfreg program • Other implementations of Protocol / API are possible 45 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Cross-compiling for QEMU ARM • Define OPSYS, ARCH in the Makefile • Not all Services may be supported on target Platform – Use config.h to disable unwanted services • Look at SVN diffs in your Workspace • Once built, use RSE “SSH Only” to drag & drop executables into the remote. Don’t forget chmod +x 46 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Agent Structure 47 Services: filesystem, sysmon, processes; runctrl, memory, breakpoints, registers; expressions, stacktrace, symbols Core services proxy, discovery*, streams Core handlers / event dispatch protocol, channel*, streams, event, inputbuf, ip_ifc tcf.h Infra: cmdline, errors, exceptions, asyncreq json / base64, mdep, myalloc, trace TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 context, dwarf*, linen., memorymap, windbg main*, test, config, diag. • Documented on TCF Agent Prototype docs Agent Structure (2) • Main and config configures and instantiates framework and services („hook up“) – #define SERVICE_xxx • Event loop sends request into service, service responds immediately or asynchronously • One event Thread only • Service protocol spec relates to functions in code: – command_roots, event_context_created, ... • Client cmdline is just another source of events 48 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Advanced: connecting into QEMU • This is in run.bat, to redirect SSH (2222) and port 7000: – qemu.exe –redir tcp:2222::22 -redir tcp:7000::7000 • Start run.bat – Login with “root : root” -sURL Server socket on port 7000 • Or ssh localhost –p 2222 –l root – ./agent –L- -sTCP::7000 • RSE: New TCF connection to localhost:7000 – Show QEMU Linux processes 49 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Connecting QEMU from outside • This is in puppy_redir.bat: – start puppy.exe -redir tcp:1534::1534 • 1534 is the TCF default port for discovery. QEMU forwards it from the client to the host in both directions • From Eclipse, launch RSE+TCF – – – – – Run > Debug Configurations > Eclipse App Open RSE Perspective New Connection : TCF Files Subsystem Properties : Port : 7000 Expand Processes / All Processes Shows QEMU Linux Processes 50 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 RSE sample • Process service • File service 51 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Multiplexing: Tunnel into QEMU • QEMU is not discoverable because it cannot talk to UDP::1534 – since that port is not shared – Use a remote value-add for dispatching multiple channels • Inside QEMU: – Stop agent.exe – Shell 1: ./valueadd –L- -sTCP::7000 – Shell 2: ./agent –L- -sTCP::7010 Multiplexer on port 7000 Peer on 7010 is autodetected • Using default port • On local commandline – – – – – 52 ./client –Lconnect TCP::7000 peers tcf Locator redirect TCP::7010 tcf FileSystem roots value-add supports multiple clients/channels TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 More on command-line tools • Tcfreg: dumbed-down agent as UDP discovery registry only • Tcflog: no service itself: forwards requests and logs them • Valueadd: provides Locator.redirect service only • Code mostly common, in main_*.c – l<num> : log level – L<file> : log to file – s<url> : for servers (agent, tcflog, valueadd): Port to expose e.g. TCP:localhost:1534, default just TCP: • Additional client option: – S<scriptfile> : replay a script • Additional agent options: – i : interactive, -d : daemon, -t : test 53 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 The Java side • org.eclipse.tm.tcf – Plain Java, no dependency to Eclipse – Protocol binding only – Asynchronous, callbacks 54 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Java: TCF Service Implementation • Asynchronous: DoneMkDir is the Callback • Commands go into a queue to run on Command Thread Callback 55 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 More about Services • Protocol Specification / Docs can be viewed locally – org.eclipse.tm.tcf.docs project • C Impl: Each has a macro define to enable/disable – FileSearch “#if SERVICE_” to find impl. – Common init function to register commands – Common naming pattern • Java Impl: Each service is an interface – Extends Iservice – Implemented by a Proxies – Async callback mechanism 56 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Required service: Locator • Used to discover peers • Peer lifecycle events • When connected peers can list its services 57 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF Services • • • • Run Control Service Breakpoints Service Memory Service Registers Service • • • • Processes Service Stack Trace Service System Monitor Service File System Service 58 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Value-add UI Host Tool B Tool A Tool C Service 4 Value Add Service 5 TCF Agent Target 59 Service 1 Service 2 Service 3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Tool D Use Case: SimpleJtagDevice • Protocol – TCP/IP • Services – Service Manager (returns fixed list of services) – Debug (run-control, breakpoint, memory access) – Possibly Others (flash programming, download, etc) • • • • 60 No Dynamic Addition or Removal of Services No Multiplexing (single client) No Forwarding No Dynamic Discovery TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 60 Use Case: TestExceutionAgent • Protocol – Depends on OS configuration and board • Services – – – – • • • • 61 Service Manager (returns fixed list of services) Process launch and kill Standard I/O redirection File system access No Dynamic Addition or Removal of Services No Multiplexing (multiple clients) No Forwarding No Dynamic Discovery TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 61 Use Case: LinuxUserModeAgent • Protocol – Typically TCP/IP, but depends on OS configuration and hardware • Services – – – – – – • • • • 62 Service Manager Debug (run-control, breakpoint, memory access) OS Awareness (process/thread list, CPU utilization, etc) Process launch and kill Standard I/O redirection File system access Possibly Dynamic Addition or Removal of Services Possibly Multiplexing (multiple clients) Possibly Forwarding Possibly Dynamic Discovery TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 62 TCF Plugins • • • • • • Org.eclipse.tm.tcf – Core Java framework Org.eclipse.tm.tcf.agent – The agent (plain C) Org.eclipse.tm.tcf.debug.* - Debug Integration Org.eclipse.tm.tcf.docs – Org.eclipse.tm.tcf.dsf.* - DSF integration Org.eclipse.tm.tcf.examples.daytime.* - How to create a custom Service (both agent and client) • Org.eclpise.tm.tcf.rse – RSE Files and Processes 63 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Debugging • Run > Debug Configurations > TCF – – – – Select connection (auto-discovered) Program: /root/helloworld/helloworld Args: “tcf is cool” Debug • Switch to “Debug Perspective” • Show View “TCF Trace” • Suspend / Resume, Registers 64 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF Debugging example 65 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 TCF: Next Steps • A large number of adopters today – “TCF Round Table” – Mostly “whitebox adoption” today – Conversion from TCF to legacy proprietary • Protocol conversion agent (like valueadd) • TCF C Agent binding to legacy implementation • Core Protocol spec is frozen, working on Services – Version / maturity / status info to be added to docs • Getting involved: – mailto:dsdp-tcf-dev@eclipse.org – Bugzilla, Newsgroup, Wiki 66 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Specification Status • Review of current and specification of additional services in power.org and Eclipse • Transport Channel • Current Services – Run Control, Memory, Register, Breakpoint, Processes, Stack Trace, File System, System Monitoring 67 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Links • TCF Homepage has all the pointers – http://wiki.eclipse.org/DSDP/TM/TCF – SVN Team Project Sets, ViewSVN – Documentation • • • • 68 Getting Started (less than what we did) Protocol Specification (messages, events, JSON) Services description Agent description TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 68 Questions? 69 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0 Credits • Idea: – Felix Burton (Wind River), – Eugene Tarassov (Wind River) • Original implementation – Eugene Tarassov 70 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0