100 likes | 222 Views
ACS Training. Using the Python Error System. Getting Started. At the console, type: cvs co ACS/LGPL/CommonSoftware/acscourse This gives you the source code from the slides. What’s Available in Python?. Everything available in C++ including Completion helper
E N D
ACS Training Using the Python Error System
Getting Started At the console, type: cvs co ACS/LGPL/CommonSoftware/acscourse This gives you the source code from the slides. ACS Training
What’s Available in Python? Everything available in C++ including Completion helper class support, but it’s much simpler to use. ACS Training
Example (XML) <?xml version="1.0" encoding="UTF-8"?> <Type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ACSError.xsd" name="ACSErrTypeACSCourse" type="9005" _prefix="alma"> <Code name="Pointing" shortDescription="Pointing" description="Pointing in progress"/> <ErrorCode name="TargetNotFound" shortDescription="Target Not Found" description="Target Couldn't be found"/> </Type> ACS Training
Example (IDL) #ifndef _ACSCOURSE_MOUNT_IDL_ #define _ACSCOURSE_MOUNT_IDL_ #include <baci.idl> /* <acscomponent.idl> */ #include <ACSErrTypeACSCourse.idl> #pragma prefix "alma" module ACSCOURSE_MOUNT { interface Mount1 : ACS::ACSComponent { /* (Pre)sets a new non-moving position for the antenna. * @param az position azimuth (degree) * @param elev position elevation (degree) */ void objfix (in double az, in double elev) raises (ACSErrTypeACSCourse::TargetNotFoundEx); }; }; #endif IDL ACS Training
Example (Python) import ACSCOURSE_MOUNT__POA #--ACS Imports---------------------------------------------------------- from Acspy.Servants.ContainerServices import ContainerServices from Acspy.Servants.ComponentLifecycle import ComponentLifecycle from Acspy.Servants.ACSComponent import ACSComponent import ACSErrTypeACSCourseImpl class Mount1(ACSCOURSE_MOUNT__POA.Mount1, #CORBA stubs for IDL interface ACSComponent, #Base IDL interface ContainerServices, #Developer niceties ComponentLifecycle): #HLA stuff '''Simple component impl provided as a reference for developers.''' def __init__(self): ACSComponent.__init__(self) ContainerServices.__init__(self) return Corresponds to Error Type ACS Training
Example (Python) #-------------------------------------------------------------------------- def objfix(self, az, el): '''Python implementation of IDL method.''' if el>90: self.getLogger().logInfo("objfix called with az="+str(az)+ " and el="+str(el)) else: self.getLogger().logCritical("Wrong value for el "+str(el)) raise ACSErrTypeACSCourseImpl.TargetNotFoundExImpl() Corresponds to Error Type Corresponds to ErrorCode ACS Training
What methods do exception/completion helper classes generated by the ACS Error System have? As usual, look at the Pydoc! ACS Training
Questions about the Python Error System? ACS Training
Demo ACS Training