Transcript Python

Atacama
Large
Millimeter
Array
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.
NRAO, July 2004
ACS Training
2
What’s Available in Python?
Everything available in C++ including Completion helper
class support, but it’s much simpler to use.
NRAO, July 2004
ACS Training
3
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>
NRAO, July 2004
ACS Training
4
Example (IDL)
#ifndef _ACSCOURSE_MOUNT_IDL_
#define _ACSCOURSE_MOUNT_IDL_
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
NRAO, July 2004
ACS Training
5
Example (Python)
import ACSCOURSE_MOUNT__POA
#--ACS Imports---------------------------------------------------------from Acspy.Servants.ContainerServices import ContainerServices
from Acspy.Servants.ComponentLifecycle import ComponentLifecycle
Corresponds
from Acspy.Servants.ACSComponent
import
ACSComponent
to Error Type
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
NRAO, July 2004
ACS Training
6
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
NRAO, July 2004
Corresponds
to ErrorCode
ACS Training
7
What methods do exception/completion helper classes
generated by the ACS Error System have?
As usual, look at the Pydoc!
NRAO, July 2004
ACS Training
8
Questions about the Python Error
System?
NRAO, July 2004
ACS Training
9
Demo
NRAO, July 2004
ACS Training
10