130 likes | 253 Views
TINE Workshop II. The client side. Reminders. If you’re logging in again … Subst L: %TINE_ROOT%. Lessons learned. Better to have several smaller workshops LabView Java C, C++ Administrators (setting up the ENS, CAS, Archive, etc.)
E N D
TINE Workshop II The client side
Reminders • If you’re logging in again … • Subst L: %TINE_ROOT%
Lessons learned • Better to have several smaller workshops • LabView • Java • C, C++ • Administrators (setting up the ENS, CAS, Archive, etc.) • Need more setup tools that work on non-Windows machines (java ?)
Some loose ends … • Network Globals … • sendNetGlobal() • recvNetGLobal() • Most servers are ‘standard servers’ • LabView and MatLab ‘must’ use buffered API • Buffered API is much easier but less flexible (but we can easily test features such as “device-oriented server”, “property scheduling”, “redirection”, etc.) • “user-defined” structures (see http://tine.desy.de/tineTypes.html) < nobody else offers this! • Synchronization and data timestamps
Client Applications • Rich versus Primitive clients • Primitive • Just connect data to displayers • No programming possible • Easy (intuitive?) • Rich • Can also connect data to displayers • Programming not only possible, but some programming is necessary • Not as easy, maybe not as intuitive • The finished application can do a lot more!
Generic client applications • Instant Client • Archive viewer • Multi-Channel Analyzer • Trend Chart Viewer • Etc. • Command line tools
Client Development Tools • Acop (ActiveX, Java beans, … .NET) • MatLab • LabView • Frameworks: CSS, jddd, GumTree, JoiMint • Python (PyQt) • IDE: VB, Visual Studio, eclipse (qt, Delphi, Kylix, Lazarus, .NET)
Basic TINE client API • All based on the low level calls • ExecLink() – synchronous • AttachLink() – asynchronous • CM_SINGLE • CM_TIMER (alias CM_POLL) • CM_DATACHANGE (alias CM_REFRESH) • CM_EVENT • recvNetGlobal() - asynchronous
ACOP (advanced component oriented programming) • Rich-Client Tool! • Data acquisition plus data rendition (connecting data to a displayer) • ActiveX (legacy). Mostly used in VB (also in VC++, Excel, HPVee, LabView). • Java • .NET (there is a prototype! ready next year?)
Visual Basic Demo • For old time’s sake …
Today’s Schedule pre-lunch (10:00 -> 12:00) : The TINE Repeater Server groups Using the full server API - advantages of full server vs. buffered server. - A typical server example - Property signals post-lunch (13:00 - 16:00?): Client programs - using the Instant client - using the Trend Chart Viewer - using command line calls Client API - EZTINE API, C API - java, LabView, MatLab ?, .NET (c#, VB.NET) (once again, we'll start with C, but you can switch to your favorite) Fine points: - callback groups - queues, sync notify - CM_DATACHANGE/CM_EVENT - CM_WAIT - notification tolerance - data stamps Steering client from the server with Property registration
Reminders • If you’re logging in again … • Subst L: %TINE_ROOT% • Browse to S:\services\ControlSystem\xApps\controls • Run ‘fixvbproblem.bat’ • (OR re-install the TINE windows 7 setup) • (wrong variant of the tinemt.dll was distributed!)