120 likes | 288 Views
New attribute classes in ATKCore New viewers in ATKWidget ATKCore ported to Tango Events Use of Tango Events in the future releases ATK synoptic : new features ATK current release Demonstration. New attribute classes in ATKCore.
E N D
New attribute classes in ATKCore • New viewers in ATKWidget • ATKCore ported to Tango Events • Use of Tango Events in the future releases • ATK synoptic : new features • ATK current release • Demonstration
New attribute classes in ATKCore • BooleanScalar (+ BooleanScalarHelper, BooleanScalarEvent, IBooleanScalarListener, IBooleanScalar) • BooleanSpectrum (+ BooleanSpectrumHelper, BooleanSpectrumEvent, IBooleanSpectrumListener, IBooleanSpectrum) • BooleanImage (+ BooleanImageHelper, BooleanImageEvent, IBooleanImageListener, IBooleanImage) • DevStateScalar (+ DevStateScalarHelper, DevStateScalarEvent, IDevStateScalarListener, IDevStateScalar)
New viewers in ATKWidget fr.esrf.tangoatk.widget.attribute. StateViewer fr.esrf.tangoatk.widget.attribute. StatusViewer fr.esrf.tangoatk.widget.attribute.BooleanScalarCheckBoxViewer • In fr.esrf.tangoatk.widget.attribute. ScalarListViewer : • Added BooleanScalar attributes • New ComboBox setters for both string and number scalar attributes fr.esrf.tangoatk.widget.command. ConfirmCommandViewer
ATKCore ported to Tango Events ATTRIBUTE REFRESHING • Attributes were refreshed by refresher threads associated to attribute lists • Attribute list refresher threads were reading periodically the attribute values from Tango polling cash With Tango Events Before Events • if the device IDL version is < 3 ATK refresher thread will poll the attribute as before (no change) • if the device IDL version is >= 3 ATK tries to subscribe to a Tango ChangeEvent for the attribute : • If the subscription fails ATK refresher thread will poll the attribute as before (no retry for subscription) • If the subscription succeeds ATK listens to ChangeEvents and does not poll this attribute at all.
ATKCore ported to Tango Events DEVICE STATE/STATUS REFRESHING • Device states and status were refreshed by one single refresher thread for the whole JVM • State/Status refresher thread was executing periodically the commands State and Status on all devices used in JVM. With Tango Events Before Events • No change for the device state and status refresher thread. • If the application programmer uses State and Status attributes instead of the old “Device” object • They are refreshed by events or by refresher thread depending on the event subscription success / or failure • New applications should use state and status viewers in widget.attribute sub-package instead of the state and status viewers in widget.device sub-package.
Use of Tango Events in the future releases Today’s situation • Mix between refresher polling and event method (depending on subscription success) • For each individual attribute it’s difficult to know which method is used • It’s difficult to understand why and debug if an attribute is not refreshed • A diagnostic window has been added into ATK for this purpose.To display this window simply call the static method: fr.esrf.tangoatk.widget.util.ATKDiagnostic.showDiagnostic();
Use of Tango Events in the future releases Current release Future releases • Device state and status refresher thread is running and executes periodically State and Status commands for all Devices (IDL 2, 3) • if the device IDL version is < 3 ATK refresher thread will poll the attribute as before (no use of Tango Events) • if the device IDL version is >= 3 ATK tries only once to subscribe for a Tango ChangeEvent for the attribute : • If the subscription fails ATK refresher thread will poll the attribute as before (no retry for subscription) • If the subscription succeeds ATK listens to changeEvents and does not poll this attribute at all • Device state and status refresher thread will be running and executes periodically State and Status commands only for Devices (IDL < 3). • For IDL >= 3 devices the State and Status attributes should be used. • if the device IDL version is < 3 ATK refresher thread will poll the attribute as before (no use of Tango Events) • if the device IDL version is >= 3 ATK tries to subscribe for a Tango ChangeEvent for the attribute : • If the subscription fails ATK will not refresh that attribute butperiodically retries to subscribe for a change event until success • If the subscription succeeds ATK listens to changeEvents and does not poll this attribute at all
ATK Synoptic : new features • The TangoSynopticHandler has been ported from Jloox (commercial product) to Jdraw (Esrf package) • The Synoptic package based on Jloox has been frozen and kept for backward compatibilities : • package name : fr.esrf.tangoatk.widget.jloox • The new package name based on Jdraw : • fr.esrf.tangoatk.widget.jdraw
ATK synoptic : new features • New objects in jdraw : JDBar, JDAxis, JDSlider, Some ATK attribute viewers
ATK synoptic : new features • A simple generic synoptic application added into ATK. • java –DTANGO_HOST=… fr.esrf.tangoatk.widget.jdraw.SimpleSynopticAppli myFileName
ATK current release • The current release is : 2.1.19 and available at : • ftp://ftp.esrf.fr/pub/cs/tango/Atk/ATKCore-2.1.19.jar • ftp://ftp.esrf.fr/pub/cs/tango/Atk/ATKWidget-2.1.19.jar
Demonstration • atkpanel • SimpleSynopticAppli • (included in fr.esrf.tangoatk.widget.jdraw package). • jlinac application