Search NASA⌕ Search

SEARCH · Search NASA

Results for “C# Programming Language”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 109 records · Page 6

Improved Real-Time Monitoring Using Multiple Expert Systems

Monitor/Analyzer of Real-Time Voyager Engineering Link (MARVEL) computer program implements combination of techniques of both conventional automation and artificial intelligence to improve monitoring of complicated engineering system. Designed to support ground-based operations of Voyager spacecraft, also adapted to other systems. Enables more-accurate monitoring and analysis of telemetry, enhances productivity of monitoring personnel, reduces required number of such personnel by performing routine monitoring tasks, and helps ensure consistency in face of turnover of personnel. Programmed in C language and includes commercial expert-system software shell also written in C.

Schwuttke, Ursula M.↗

Open Loop Simulation

My project is designing a flight control program utilizing 'C' language. It consists of paths made up of fixed radius arcs and straight lines. Arcs will be defined by a center, a radius and turn angle. Straight lines will be defined by an end way point and an inbound course. Way points will be pre-defined such that the location of the end of each leg accurately matches the beginning of the next leg. The simulation paths will closely match paths normally flown by the Transport System Research Vehicle (TSRV), but will necessarily be defined identically in terms of type and number of way points.

Thomas, Tamera L.↗

How Difficult is it to Add 1? A Pedagogical Example of How Theory of Computing May be Useful

We show that while adding two generic b-bit integers requires = b bit operations, adding 1 to an integer requires, on average, only 2 bit operations. This fact explains why the operation of adding 1 is often separately hardware supported, and why this operation is often separately described in high-level programming languages like C++. This result shows that theoretical analysis can help in deciding which operations must be hardware supported, and thus, hopefully, will help in designing faster computers.

Hampton, Michael↗

Automating Traceability for Generated Software Artifacts

Program synthesis automatically derives programs from specifications of their behavior. One advantage of program synthesis, as opposed to manual coding, is that there is a direct link between the specification and the derived program. This link is, however, not very fine-grained: it can be best characterized as Program is-derived- from Specification. When the generated program needs to be understood or modified, more $ne-grained linking is useful. In this paper, we present a novel technique for automatically deriving traceability relations between parts of a specification and parts of the synthesized program. The technique is very lightweight and works -- with varying degrees of success - for any process in which one artifact is automatically derived from another. We illustrate the generality of the technique by applying it to two kinds of automatic generation: synthesis of Kalman Filter programs from speci3cations using the Aut- oFilter program synthesis system, and generation of assembly language programs from C source code using the GCC C compilel: We evaluate the effectiveness of the technique in the latter application.

Richardson, Julian↗

Converting EOS Data from HDF-EOS to netCDF

A C-language computer program accepts, as input, a set of scientific data and metadata from an Earth Observing System (EOS) satellite and converts the set from (1) the format in which it was created and delivered to (2) another format for processing and exchange of data on Earth.

Ullman, Richard↗

Conversion Between Osculating and Mean Orbital Elements

Osculating/Mean Orbital Element Conversion (C version) (OSMEANC) is a C-language computer program that performs precise conversions between osculating and mean classical orbital elements. OSMEANC can be used for precise design of spacecraft missions and maneuvers and precise calculation of planetary orbits. The program accounts for the full complexity of gravitational fields, including aspherical and third-body effects.

Guinn, Joseph↗

Analyzing Spacecraft Telecommunication Systems

Multi-Mission Telecom Analysis Tool (MMTAT) is a C-language computer program for analyzing proposed spacecraft telecommunication systems. MMTAT utilizes parameterized input and computational models that can be run on standard desktop computers to perform fast and accurate analyses of telecommunication links. MMTAT is easy to use and can easily be integrated with other software applications and run as part of almost any computational simulation. It is distributed as either a stand-alone application program with a graphical user interface or a linkable library with a well-defined set of application programming interface (API) calls. As a stand-alone program, MMTAT provides both textual and graphical output. The graphs make it possible to understand, quickly and easily, how telecommunication performance varies with variations in input parameters. A delimited text file that can be read by any spreadsheet program is generated at the end of each run. The API in the linkable-library form of MMTAT enables the user to control simulation software and to change parameters during a simulation run. Results can be retrieved either at the end of a run or by use of a function call at any time step.

Kordon, Mark↗

Customer Avionics Interface Development and Analysis (CAIDA) Lab DEWESoft Display Creation

The Customer Avionics Interface Development and Analysis (CAIDA) Lab supports the testing of the Launch Control System (LCS), NASA's command and control system for the Space Launch System (SLS), Orion Multi-Purpose Crew Vehicle (MPCV), and ground support equipment. The objectives of the year-long internship were to support day-to-day operations of the CAIDA Lab, create prelaunch and tracking displays for Orion's Exploration Flight Test 1 (EFT-1), and create a program to automate the creation of displays for SLS and MPCV to be used by CAIDA and the Record and Playback Subsystem (RPS).

DEWESoft↗

Firing Room Remote Application Software Development & Swamp Works Laboratory Robot Software Development

The National Aeronautics and Space Administration (NASA) is creating a way to send humans beyond low Earth orbit, and later to Mars. Kennedy Space Center (KSC) is working to make this possible by developing a Spaceport Command and Control System (SCCS) which will allow the launch of Space Launch System (SLS). This paper's focus is on the work performed by the author in her first and second part of the internship as a remote application software developer. During the first part of her internship, the author worked on the SCCS's software application layer by assisting multiple ground subsystems teams including Launch Accessories (LACC) and Environmental Control System (ECS) on the design, development, integration, and testing of remote control software applications. Then, on the second part of the internship, the author worked on the development of robot software at the Swamp Works Laboratory which is a research and technology development group which focuses on inventing new technology to help future In-Situ Resource Utilization (ISRU) missions.

Gazebo (Robot simulator)↗

Adding intelligent services to an object oriented system

As today's software becomes increasingly complex, the need grows for intelligence of one sort or another to becomes part of the application, often an intelligence that does not readily fit the paradigm of one's software development. There are many methods of developing software, but at this time, the most promising is the object oriented (OO) method. This method involves an analysis to abstract the problem into separate 'objects' that are unique in the data that describe them and the behavior that they exhibit, and eventually to convert this analysis into computer code using a programming language that was designed (or retrofitted) for OO implementation. This paper discusses the creation of three different applications that are analyzed, designed, and programmed using the Shlaer/Mellor method of OO development and C++ as the programming language. All three, however, require the use of an expert system to provide an intelligence that C++ (or any other 'traditional' language) is not directly suited to supply. The flexibility of CLIPS permitted us to make modifications to it that allow seamless integration with any of our applications that require an expert system. We illustrate this integration with the following applications: (1) an after action review (AAR) station that assists a reviewer in watching a simulated tank battle and developing an AAR to critique the performance of the participants in the battle; (2) an embedded training system and over-the-shoulder coach for howitzer crewmen; and (3) a system to identify various chemical compounds from their infrared absorption spectra.

Robideaux, Bret R.↗

Valve- And Switch-Monitoring Computer Program

Human operators freed from tedious, repetitive monitoring tasks. Computer program applies techniques of artificial intelligence to monitoring positions of many switches and valves. Uses combination of procedural and declarative programming techniques. NASA's C Language Integrated Production System (CLIPS) provides rule-processing capabilities. Host program, written in C, acquires necessary data and applies valuation algorithm to generate knowledge-based propositions. Written to assist human flight controllers in comparing actual with expected configuration of switches and valves in Space Shuttle; underlying programming concept applicable to other complicated systems as chemical-processing plants, power-plants, and automated assembly lines. Program works with present monitoring equipment and computers.

Barry, Matthew R.↗

C Namelist Facility

C Namelist Facility (CNL) is a package of software that supports the development of data-driven programs that utilize relatively free-form input files (e.g., text files) to control complex operations. The only comparable prior namelist facility is built into Fortran and does not support arrays or records. Newer computing languages, including C and Pascal, do not include built-in namelist facilities. A namelist facility enables a program to utilize relatively free-form input files that contain assignment statements that give values to variables. Variables to which values are not assigned in input files remain unchanged; therefore, it becomes possible to have default values set by static or dynamic initialization of values prior to namelist input and updating of values is optional. Because it is not required to include values of variables in namelist input files, new parameters can be added to evolving programs without rendering old namelist input files obsolete -- provided that the new parameters have useful default values. It should be possible to execute CNL in any operating system that supports the ANSI C programming language. It has been executed in several variants of Unix and in VxWorks.

Bon, Bruce↗

An Expanded Role for Python in Expediting System Simulation Development

The Python programming language has traditionally been used as a “scripting” language and is not generally recognized as a language for building system simulations, where C++, Java, and other compiled languages are typically used. While very powerful and gaining favor for a large set of programming tasks, Python is generally regarded as not having the speed to directly do the extensive numeric computations required in large-scale simulation. This paper aims to present an approach, supported by case studies, to re-think this assertion. Directly using Python in this new role has the potential to expedite an agile, spiral cycle of development of design-test-modify for systems simulation.

programming language↗

Developing CORBA-Based Distributed Scientific Applications from Legacy Fortran Programs

Recent progress in distributed object technology has enabled software applications to be developed and deployed easily such that objects or components can work together across the boundaries of the network, different operating systems, and different languages. A distributed object is not necessarily a complete application but rather a reusable, self-contained piece of software that co-operates with other objects in a plug-and-play fashion via a well-defined interface. The Common Object Request Broker Architecture (CORBA), a middleware standard defined by the Object Management Group (OMG), uses the Interface Definition Language (IDL) to specify such an interface for transparent communication between distributed objects. Since IDL can be mapped to any programming language, such as C++, Java, Smalltalk, etc., existing applications can be integrated into a new application and hence the tasks of code re-writing and software maintenance can be reduced. Many scientific applications in aerodynamics and solid mechanics are written in Fortran. Refitting these legacy Fortran codes with CORBA objects can increase the codes reusability. For example, scientists could link their scientific applications to vintage Fortran programs such as Partial Differential Equation(PDE) solvers in a plug-and-play fashion. Unfortunately, CORBA IDL to Fortran mapping has not been proposed and there seems to be no direct method of generating CORBA objects from Fortran without having to resort to manually writing C/C++ wrappers. In this paper, we present an efficient methodology to integrate Fortran legacy programs into a distributed object framework. Issues and strategies regarding the conversion and decomposition of Fortran codes into CORBA objects are discussed. The following diagram shows the conversion and decomposition mechanism we proposed. Our goal is to keep the Fortran codes unmodified. The conversion- aided tool takes the Fortran application program as input and helps programmers generate C/C++ header file and IDL file for wrapping the Fortran code. Programmers need to determine by themselves how to decompose the legacy application into several reusable components based on the cohesion and coupling factors among the functions and subroutines. However, programming effort still can be greatly reduced because function headings and types have been converted to C++ and IDL styles. Most Fortran applications use the COMMON block to facilitate the transfer of large amount of variables among several functions. The COMMON block plays the similar role of global variables used in C. In the CORBA-compliant programming environment, global variables can not be used to pass values between objects. One approach to dealing with this problem is to put the COMMON variables into the parameter list. We do not adopt this approach because it requires modification of the Fortran source code which violates our design consideration. Our approach is to extract the COMMON blocks and convert them into a structure-typed attribute in C++. Through attributes, each component can initialize the variables and return the computation result back to the client. We have tested successfully the proposed conversion methodology based on the f2c converter. Since f2c only translates Fortran to C, we still needed to edit the converted code to meet the C++ and IDL syntax. For example, C++/IDL requires a tag in the structure type, while C does not. In this paper, we identify the necessary changes to the f2c converter in order to directly generate the C++ header and the IDL file. Our future work is to add GUI interface to ease the decomposition task by simply dragging and dropping icons.

Sang, Janche↗

An Automated Method for Identifying Inconsistencies within Diagrammatic Software Requirements Specifications

The development of large-scale, composite software in a geographically distributed environment is an evolutionary process. Often, in such evolving systems, striving for consistency is complicated by many factors, because development participants have various locations, skills, responsibilities, roles, opinions, languages, terminology and different degrees of abstraction they employ. This naturally leads to many partial specifications or viewpoints. These multiple views on the system being developed usually overlap. From another aspect, these multiple views give rise to the potential for inconsistency. Existing CASE tools do not efficiently manage inconsistencies in distributed development environment for a large-scale project. Based on the ViewPoints framework the WHERE (Web-Based Hypertext Environment for requirements Evolution) toolkit aims to tackle inconsistency management issues within geographically distributed software development projects. Consequently, WHERE project helps make more robust software and support software assurance process. The long term goal of WHERE tools aims to the inconsistency analysis and management in requirements specifications. A framework based on Graph Grammar theory and TCMJAVA toolkit is proposed to detect inconsistencies among viewpoints. This systematic approach uses three basic operations (UNION, DIFFERENCE, INTERSECTION) to study the static behaviors of graphic and tabular notations. From these operations, subgraphs Query, Selection, Merge, Replacement operations can be derived. This approach uses graph PRODUCTIONS (rewriting rules) to study the dynamic transformations of graphs. We discuss the feasibility of implementation these operations. Also, We present the process of porting original TCM (Toolkit for Conceptual Modeling) project from C++ to Java programming language in this thesis. A scenario based on NASA International Space Station Specification is discussed to show the applicability of our approach. Finally, conclusion and future work about inconsistency management issues in WHERE project will be summarized.

Zhang, Zhong↗

SPECTRUM - A system for the analysis of imaging spectrometer data

This paper examines several design issues related to the development of SPECTRUM, a knowledge-based system for the geological interpretation of imaging spectrometer data. SPECTRUM is implemented using a combination of the programming languages STAR and C, which are coupled both at the level of procedures - involving function calls between the two languages - and at the level of data structures - involving the formation of a hybrid knowledge base shared by the two languages. Aspects of the coupling relating to each level of the implementation are described, followed by a listing of general observations regarding the coupling of symbolic and numerical techniques as extracted from the SPECTRUM project.

Borchardt, Gary C.↗

An Axial-Torsional, Thermomechanical Fatigue Testing Technique

A technique for conducting strain-controlled, thermomechanical, axial-torsional fatigue tests on thin-walled tubular specimens was developed. Three waveforms of loading, namely, the axial strain waveform, the engineering shear strain waveform, and the temperature waveform were required in these tests. The phasing relationships between the mechanical strain waveforms and the temperature and axial strain waveforms were used to define a set of four axial-torsional, thermomechanical fatigue (AT-TMF) tests. Real-time test control (3 channels) and data acquisition (a minimum of 7 channels) were performed with a software program written in C language and executed on a personal computer. The AT-TMF testing technique was used to investigate the axial-torsional thermomechanical fatigue behavior of a cobalt-base superalloy, Haynes 188. The maximum and minimum temperatures selected for the AT-TMF tests were 760 and 316 C, respectively. Details of the testing system, calibration of the dynamic temperature profile of the thin-walled tubular specimen, thermal strain compensation technique, and test control and data acquisition schemes, are reported. The isothermal, axial, torsional, and in- and out-of-phase axial-torsional fatigue behaviors of Haynes 188 at 316 and 760 C were characterized in previous investigations. The cyclic deformation and fatigue behaviors of Haynes 188 in AT-TMF tests are compared to the previously reported isothermal axial-torsional behavior of this superalloy at the maximum and minimum temperatures.

Kalluri, Sreeramesh↗

The M-Integral for Computing Stress Intensity Factors in Generally Anisotropic Materials

The objective of this project is to develop and demonstrate a capability for computing stress intensity factors in generally anisotropic materials. These objectives have been met. The primary deliverable of this project is this report and the information it contains. In addition, we have delivered the source code for a subroutine that will compute stress intensity factors for anisotropic materials encoded in both the C and Python programming languages and made available a version of the FRANC3D program that incorporates this subroutine. Single crystal super alloys are commonly used for components in the hot sections of contemporary jet and rocket engines. Because these components have a uniform atomic lattice orientation throughout, they exhibit anisotropic material behavior. This means that stress intensity solutions developed for isotropic materials are not appropriate for the analysis of crack growth in these materials. Until now, a general numerical technique did not exist for computing stress intensity factors of cracks in anisotropic materials and cubic materials in particular. Such a capability was developed during the project and is described and demonstrated herein.

Warzynek, P. A.↗