An Apogee CCD Instrument Module for Chimera Cid Meyers, Earl Bellinger, Adam Biesenbach, Joshua Brown, Joshua Primrose, Dennis Quill, Antonio Kanaan, Paulo.

Slides:



Advertisements
Similar presentations
Introduction to Linux Recap Installing programs Introduction to Video Editing with Linux.
Advertisements

Configuration management
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Mr. D. J. Patel, AITS, Rajkot 1 Operating Systems, by Dhananjay Dhamdhere1 Static and Dynamic Memory Allocation Memory allocation is an aspect of a more.
R Mohammed Wahaj. What is R R is a programming language which is geared towards using a statistical approach and graphics Statisticians and data miners.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Joshua J. Brown, Adam Biesenbach, Earl Bellinger, Michael Meyers, Joshua Primrose, Dennis Quill, Paulo Henrique de Silva3, Prof. Antonio Kanaan 1, Prof.
Chapter 13 Embedded Systems
Common System Components
1 Software, Programmings. 2 Types of Software Figure 9.1 Shakeel Ahmad.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Operating Systems.
Installing software on personal computer
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
1 CHAPTER 4 LANGUAGE/SOFTWARE Hardware Hardware is the machine itself and its various individual equipment. It includes all mechanical, electronic.
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Introduction to Java Tonga Institute of Higher Education.
Program development & programming languages Chapter 13.
Learning Objectives Data and Information Six Basic Operations Computer Operations Programs and Programming What is Programming? Types of Languages Levels.
Progress in Multi-platform Software Deployment (Linux and Windows) Tim Kwiatkowski Welcome Consortium Members November 29,
CSE 303 – Software Design and Architecture
SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Language(s) We plan to develop CALCOS using Python and C Another programming language?
CHAPTER FOUR COMPUTER SOFTWARE.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Configuration Management (CM)
PERVASIVE COMPUTING MIDDLEWARE BY SCHIELE, HANDTE, AND BECKER A Presentation by Nancy Shah.
Software program: Series of statements or instructions to the computerSoftware program: Series of statements or instructions to the computer System software:
SE: CHAPTER 7 Writing The Program
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
In the Labs… X-Bot 2003 by Overtech Technologies.
Chapter One An Introduction to Programming and Visual Basic.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Lesson 8: The OOP concepts of Polymorphism and Interfaces.
Operating System Structure. OS Design Considerations: How are the responsibilities of the OS divided among various modules? When and where are various.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
CS533 Concepts of Operating Systems Jonathan Walpole.
Compilers and Interpreters
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
The information systems lifecycle Far more boring than you ever dreamed possible!
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
Chapter 4. CONCEPT OF THE OPERATING SYSTEM MANAGING ESSENTIAL FILE OPERATIONS.
Topic 2: Hardware and Software
pycuda Jin Kwon Kim May 25, 2017 Hi my name is jin kwon kim.
A451 Theory – 7 Programming 7A, B - Algorithms.
TRANSLATORS AND IDEs Key Revision Points.
Teaching Computing to GCSE
Chapter 2: System Structures
Chapter 2: The Linux System Part 1
Porting LCG to IA64 Andreas Unterkircher CERN openlab May 2004
Chapter One: An Introduction to Programming and Visual Basic
Chapter 2: Operating-System Structures
Outline Chapter 2 (cont) OS Design OS structure
Chap 4. Programming Fundamentals
Chapter 2: Operating-System Structures
Programming language translators
Presentation transcript:

An Apogee CCD Instrument Module for Chimera Cid Meyers, Earl Bellinger, Adam Biesenbach, Joshua Brown, Joshua Primrose, Dennis Quill, Antonio Kanaan, Paulo Henrique de Silva, Dr Shashi M Kanbur One of the specific goals of the IRES 2010 project was to provide proof-of- concept for the modular system by creating such an instrument module for the Apogee ALTA CCD. The Apogee camera represents a substantial upgrade to the currently-installed SBIG camera; the CCD surface is much larger and capable of considerably higher-resolution images, and the camera’s ancillary systems (cooling, image buffering, etc) are considerably more advanced. Overall, the process of creating the wrapper module was relatively straightforward. The Apogee camera driver relies on TCL, which was not initially present on the test system; however, once that dependency was provided, the wrapper compiled smoothly, allowing for control of the camera from the Python command line. The process of creating the CHIMERA instrument module was also a success, though a qualified one; though the Apogee camera’s fans and cooling can currently be controlled from within the CHIMERA system, the process of actually taking an image is quite complicated, and time on the project ran out before the exact procedure could be discerned and programmed. It seems certain, however, that working out the exposure process would be quite possible given a little more time. Even though the Apogee camera is not fully functional within CHIMERA, it is apparent that the concept is sound, demonstrating the flexibility and versatility of the CHIMERA system’s modular approach. With thanks to the NSF, through award NSF OISE One of the great strengths of the CHIMERA control software is its adaptibility to different hardware. Because of its modular control structure, CHIMERA is able to handle virtually any conceivable configuration of telescope, CCD, dome, etc. that can be controlled by computer. In addition, upgrades to existing installations are quite straightforward, requiring only that the software driver for the upgraded hardware be rewritten, rather than the entire software package. The strength of CHIMERA’s modular flexibility is derived from the interoperability of the Python language and the C or C++ that most hardware drivers are written in. Through the use of special header files and a program called SWIG, it is possible to create an interpreter that can translate the CHIMERA core calls into lower-level commands. This interpreter, or “wrapper,” can be compiled directly into the C driver module, providing an interface which CHIMERA can use to control the hardware. There are four links in the control chain: the hardware driver, or kernel module; the Python module that interfaces with the driver; the CHIMERA “instrument” module, which relays commands from CHIMERA to the Python interface; and the CHIMERA core itself. The only part of the chain that has to be completely re-coded for each new instrument is the instrument module. The driver is provided by the instrument manufacturer, though it has to be recompiled using the special Python header files, the Python interface module is automatically generated by SWIG, and the CHIMERA core remains the same between instruments. The instrument module, however, has to be able to correctly translate CHIMERA’s function calls into something the Python interpreter will understand. In order to facilitate this, the instrument module inherits functionality from CHIMERA’s generic instrument modules, such as camera.py. All of the functions provided by the camera.py interface have to be implemented in the instrument module so that the functionality the core module expects is preserved. This is accomplished, essentially, through trial and error, working from the list of functions provided by the CHIMERA interfaces and manually translating them to the functions that exist in the hardware driver. The process is time-consuming, but unavoidable, as no standardisation with regard to driver calls exists amongst hardware manufacturers. Still, as long as the manufacturer’s code is sane and their documentation adequate, it is considerably easier and faster to work out the translations than it would be to write an entirely new driver for the device.