Вы находитесь на странице: 1из 88

Building Reliability and Scalability Into Your Next Embedded Project

QNX Strategic Corporate Direction

Who we are

QNX at a Glance
QNX/(CUE-nix) > Provider of realtime operating system (RTOS) software, development tools, and services for embedded and mission critical applications Over 25 years of real-time embedded experience Millions of installations worldwide Global technology provider > Headquarters in Ottawa, Canada > Offices in Germany, France, UK, Japan, and the USA > Products distributed in over 100 countries Broad embedded ecosystem with vertical focus Known for leading technical innovation and excellent customer support

Global Coverage

Silicon Valley

Detroit

Ottawa
Boston Philadelphia

UK France

Germany Tokyo

Irvine

Dallas

Headquarters Offices Distributors

QNX Markets and Customers


Networking Automotive Medical Industrial Automation Military Consumer

Cisco Huawei Juniper Networks Motorola Trapeze Tekelec Nokia

Siemens VDO DENSO Cummins Delphi Hyundai Autonet Visteon

Siemens Dupont Burdick Intralase GE Medical Toshiba

G.E. Alstom ECIL Texaco BARC BHEL

RCI R&DE Boeing Lockheed Martin LRDE

IGT Gaming Logitech VISA Epson Request Multimedia Pixelworks

Bharat KPIT Cummins Electronics Siemens CAIR

Proven OS Platform
One reliable RTOS core Multiple critical environments

Nuclear Reactor Control

Carrier-grade networks

Cancer diagnostics

Financial transactions

In-car telematics

Military/airport security

QNX Strengths
Standards based OS
> POSIX permits application portability > Leverage Linux and Unix knowledge and developers without IP risks > OpenGL ES, Open VG, etc.

Standards Based Tools


> Eclipse brings 3rd party tools vendors into Momentics suite. > Large software projects require favorite tools to enhance engineers productivity.

Reliable
> MMU and QNX Microkernel architecture permits reliable design > Reliability is key for customers that have products with 10+ -year intended lifespan

QNX Strengths
Scalable > Same OS used in Nuclear Control In-car Navigation High End Core Routers. > Leveraging a core platform of software and hardware through a product family is easy using the QNX Microkernel Architecture and other innovative technologies from QNX Clean IP > No viral GPL or other licensing restrictions. > Mitigates risk of IP infringement lawsuits > Maintains customer confidence in products

QNX in India SPA Computers Ltd.


QNX has had a presence in India for over 15 years through distribution partner SPA Computers Ltd., is a long serving distributor with a large and sophisticated customer base QNX distribution partners have secured some of the largest, most well known and prestigious QNX customers The India territory is experiencing a healthy 10% annual revenue growth per year Existing, strong markets for QNX in India, such as industrial automation, process control, medical and military are further developed by SPA Computers, our full-service distributor QNX is very fortunate to have a strong industry partner network both with technology and distribution partners in the region An exciting future lies ahead for QNX in India

Summary

QNX provides an ultra-reliable product for embedded customers worldwide The QNX presence, via SPA Computers, in the Indian market is solid and we continue to strengthen our awareness in this geography QNX will continues to support and build upon the measured success that has been achieved to-date

QNX Neutrino RTOS: The Most Reliable Realtime Operating System Technical Overview

QNX Momentics Suite at a glance

Architecture Realtime Executive

In a traditional Real-Time Executive:


User Interface Scheduler Memory Allocator Network Stack Application Application Serial Driver Disk Driver File System

All modules share the same address space and are effectively one big program.

Architecture Monolithic Kernel

Application

User Interface
Serial Driver

Application

Scheduler Memory Manager

Disk Driver Network Stack File System

Monolithic Kernel

The kernel contains the OS kernel functionality and all drivers, so driver development is complex and debugging can be painful. Applications are processes in protected memory space, so the kernel is protected from applications and applications are protected from each other.

The OS as a team of processes


> The QNX Neutrino OS consists of a small microkernel managing a group of cooperating processes. > QNX Neutrino acts as a kind of "software bus" that lets us dynamically plug in/out OS modules whenever they're needed.

Microkernel Architecture Benefits


Realtime Executive
> No MMU and no protection > Applications, drivers, and protocols are all in Kernel space

Application Device Drivers

Application TCP/IP Stack

Kernel space
File-system

System wide corruption

Monolithic Kernel
(NT / Unix / etc)
> MMU with partial protection > Applications are protected

Application

Application (re-startable)

Contained

User Space Kernel space

System wideStack Device Drivers TCP/IP corruptionFile-system

TRUE Microkernel
(QNX Neutrino)
> MMU with full protection > Applications, drivers, and protocols are protected

Application (re-startable)

Contained

File-system

Micro Kernel

Device Drivers
(re-startable)

Contained

TCP/IP Stack

Microkernel Architecture Benefits


Development and Testing
> Immediate Isolation of Bugs > Faster Develop Test Cycle > Allows for Parallel Debugging with Limited Targets > Memory Protection Forces Use of APIs (Cleaner & Better Code) > POSIX Programming Through Out System, Even in Drivers > High Code Reuse > Easier Driver Level Development > Regression of Component as Completed

Release and Management


> Immediate Fault Recognition and Recovery > High Availability Falls Out of Architecture > Makes System Upgrades and Patches Easy to Deliver > Upgrades and Patches can be done Live, Without Downtime > System Can Scale With Out Software Re-Architecture

Hard Realtime Performance


Multiple concurrent scheduling algorithms
FIFO, Round Robin, Sporadic

Prioritized pre-emptable threads


256 priority levels Fully pre-emptable and deterministic kernel

Thread C Thread B Thread A

Priority 50 Priority 18 Priority 12 Thread B

Prioritized and nested interrupts


Interrupt handlers can schedule a user thread or run custom interrupt code

Thread A
IRQ x

Handler x
IRQ y (higher)

Handler y

Thread B scheduled

Inter-Process Communication
Processes communicate by sending messages

/dev/tcpip

/dev/ser1

Process Manager

Flash File System

Network Driver

Graphics Driver

Audio Driver

File System

Microkernel Application

Message-Passing Bus

Shared Memory Large data sets and hardware access

Application

Using messages cleanly decouples processes POSIX calls built on messages


fd = open(/dev/tcpip, ,,,) read, write, stat, devctl, close

Other POSIX calls as well


> > > > > realtime signals pipes and POSIX mqueues mutexs, condvars, semaphores barriers, sleepon reader/writer locks

Scalability

Symmetric Multiprocessing
Route Manager
Thread A Thread B

File System
Thread C Thread D

Ethernet Driver
Thread E

Multiple processors sharing common hardware


> Common memory bus and address space > Access to all peripheral devices and interrupts > OS manages tasks running on processors true concurrency

QNX Neutrino Realtime Scheduler (OS)


Thread A Thread B Thread C Thread D Thread E

Priority
Thread B

Transparent to application programs


Future CPU
Cache

CPU

CPU

Future CPU
Cache

No application software changes needed Automatic thread (~) scheduling across all CPUs

Cache

Cache

High-Bandwidth CPU Bus

Memory

Transparent Distributed Processing


Internet

Message Bridge (Ethernet, fabric, interconnect)

Networking Stack

Message Queues

Flash File System

Microkernel

Message-Passing Bus

Application

Database

Flash File System

Applications/servers can be network-distributed without special code


> Message queues > File systems > Services

Microkernel

Application

> Databases >

fd = open(/net/$HOSTNAME/etc/log_file.dat,); fd = open(/etc/log_file.dat,); write(fd, ); write(fd, );

High Availability

What is High Availability?

Availability = The probability that a system or subsystem


will perform its intended function at a given instant of time.

MTBF AVAILABILITY = MTBF + MTTR


99.999% Availability = Fewer than 5.25 minutes of Annual Downtime As MTTR approaches 0, Availability reaches 100%
MTBF: mean time between failure MTTR: mean time to repair

Critical Process Monitor

Critical Process Monitor (HAM) monitors components and sends notification of component failure Heartbeat services detect component hang Core file on crash can be created for debugging and analysis Recovery from crash can be:
> Controlled shutdown or system restart > Restart of only the failed subsystem (driver)

System Upgrades

Sample Flash Layout

BOOT BOOT BOOT IMAGE 1 IMAGE 2 IMAGE


Boot Image

FLASH FILESYSTEM FLASH FILESYSTEM

IPL IPL

> Contains Kernel > Requires only Flash Filesystem to be in Image

Flash Filesystem
> Fault Tolerant POSIX Compliant Filesystem > Once Filesystem is Loaded Everything Else Can be Loaded from the Filesystem, Even Drivers

IPL (Initial Program Loader)


> Sets Up Board and Loads Boot Image > Sits at Reset Vector

System Upgrade

Process Manager

Flash File System

Network Driver

Graphics Driver

Microkernel Application 1 Server Application 2 Application 1.1

Add New Features or Processes on the Fly


> Download New Binary into Filesystem or Ram > Load New Binary into RAM

Replace Existing Processes Without Reboot


>Download New Binary to Filesystem >Remove Process Running in RAM >Load New Binary From the Filesystem

Zero Down Time Upgrade

Client

Server V1.0

/dev/service
Server V1.1

New Client

/dev/service

New version of the server attaches to the same name New clients connect to new server Old server exits when all old clients are gone

QNX Momentics: The Most Productive Tools

QNX Product Overview

QNX4

Wavemaker Talk

Momentics is Built on Eclipse


www.eclipse.org

QNX sits on the Board and leads the C/C++ project.

QNX Momentics Tool Suite Highlights


Other Tools and Kits
Command Line GCC Tools (GCC v3.3.1) Board Support Packages (Binary)

IDE Tools
C, C++ Code Developer Source Debugger

Choose your host


Windows, Linux, Solaris, QNX Neutrino

Choose your target


ARM, MIPS, PPC, SH4, XScale, x86

Target System Tools

Choose your language


C, C++, Java

Memory Analysis Driver Development Kits

Choose your BSPs


Application Profiler System Builder BSPs for many popular boards and reference platforms

Application Builder

System Profiler Code Coverage

Choose command line or IDE


IDE and command line tools interoperate

Choose 3rd party tools


Growing ecosystem of tools vendors supporting Eclipse

Development Host OS:


Windows, Linux, Solaris, QNX Neutrino

QNX Momentics Plug-ins


Code Development Tools
> > > > > C, C++, Embedded C++ Power wizards Code editors Source navigator Local history > > > > Source control tools Makefile structures Build tools Launch configuration wizard

Code Coverage
> > > Use coverage data to validate test plan Multi-run coverage amalgamation Runtime launch integration into IDE

Source Debugger
> Concurrently debug multiple C and C++ applications

Target System Tools


> > > > Target navigation view System builder Target agent > Target system information tool Detailed information on all processes and threads

Application Builder
> > Create QNX Photon microGUI applications Drag and drop widgets

QNX Momentics Plug-ins - Continued


Performance Optimization Tools
> Application Profiler Statistical sampling Call counting and call pair tracking
Visual call graph

Shared-library aware > Memory Analysis Detect double free, non-initialized use Overrun/underrun and memory leaks Kill/freeze/debug/ignore on error > System Profiler Software logic analyzer Analyze events from instrumented kernel

Code Editors
Identify keywords, syntax, and matching brackets at a glance

Insert bookmarks and to-dos

Use the outline view to jump to any point in your source file

Set breakpoints before you compile Identify compile errors and warnings at a glance Track all errors and todos from a central task list

Simply double-click to build for any target Hover over any function to view its arguments and required headers. Hover over any variable to view its type

Source Debugger
Use the debug toolbar to start, stop, or restart processes, and to define breakpoints Track each thread independently or trace control from thread to thread Edit source directly from the debugger view

Click here to view breakpoints, variables, watch points, memory, registers, etc.

Jump directly to any point in your source

Simply doubleclick to set breakpoints

Hover over any variable to view its contents

Code Coverage
Runtime launch integration into the IDE

Track launched processes

View a graphical annotation of source whats been covered, what has not

See live results of binary coverage down to the function level

Get quick results on your session properties

System Builder
Display files in image and file system layout

Use the item browser to quickly select components for your target image

View the options and properties for any component

Extract information about QNX binaries (build, usage info)

Target System Information Tool

Display system information and memory usage

Monitor memory usage per process

Inspect each process for heap and CPU usage

Set and examine threads by various attributes

View blocking relationships at a glance

Application Profiler

Utilize call pairing to highlight your programs execution structure, then use the information to make your code more efficient Identify at a glance which functions need optimization

View results by total time, percentage of total time, call count, etc.

Pinpoint which source lines consume the most CPU time

Memory Analysis

Detect invalid pointer references and jump directly to the source

Identify the location and nature of any memory error View memory leaks and allocations as they occur

Inspect a call stack trace leading back to the origin of the error

Instrumented Kernel
The instrumented kernel logs events which are filtered and stored into buffers which are captured and analyzed.
System calls

Process/thread creation

Interrupts On/Off filters Static event filters User defined filters Events

Microkernel
State changes Event buffers E1 E2 E3 E4 E5 E6

System Profiler
Network Capture File

System Profiler

Annotate log files with custom bookmarks

Zoom in on a time range, select processes of interest, and create custom views

Search for specific event types, and jump directly to any event View event details at a glance, including owner, type, and event data

Examine summary statistics of thread states, including duration

QNX Networking Solutions Update

Market Requirements

Customer Demands
Service Availability

OEM Requirement
System Reliability

OS Benefits
Nuclear Grade OS

Scalability

Architecture

Distributed/ Multi-processing

Service Velocity

Develop and Deploy Services Quickly

Modularity

Customers Demand Service Availability


Service Availability
With QNX Software our customers can deploy new services without restarting Supporting more than 5 nines with the following key features: Microkernel Architecture
Memory Protection Everything in user space Kernel is the only trusted element

Critical Process Manager


Everything breaks fact of life what matters is how the system recovers Neutrino enables self-healing systems Stops and restarts process Cleans up resources after failure

Hard Realtime
Deterministic Predictable

Customers Demand Scalability

Scalability

With QNX Software our customers can eliminate significant development investment & costs of forklift upgrades
Support for Scaling
Performance Port count Features New services

Transparent Distributed Processing


On the card Within the box Across multiple boxes Across the network

Symmetric Multi-Processing
Scale to multiple processors Supports next generation integrated multi-core architectures

Customers Demand Service Velocity


Service Velocity
Development
QNX Software supports rapid development and deployment of new services and upgrades
Microkernel Architecture
Modularity simplifies design New features can be introduced as processes
Customers experience 30% savings with faster development Minimized requirements for regression testing Reducing costs Reducing time Reducing risk

Development

Standards Compliance
Eclipse Compliant CDT
Seamless integration of 3rd party tools

POSIX Compliant
Large pool of supporting source code Portability

NetBSD based TCP/IP stack


Standard BSD Socket interface for portability

Deployment

Microkernel Architecture
Deploy new services dynamically without restarting Reduced cost/penalty in deploying fixes and upgrades

QNX for Networking

QNX Momentics IDE

GNU Compiler SSH MPLS IKE RIPng ARP 802.11 Optical NAT SNMP v1/v2/v3 ATM IP Filtering RADIUS SCTP

Tools

Partner
Transparent Distributed Processing

Web Services VoIP Embedded Transaction Filesystem DOS Filesystem QNX Filesystem Network Filesystem Flash Filesystem QNX Neutrino RTOS USB Training

Critical Process Monitor IP Routing IPSec RIP v1/v2 DVMRP IPv4 Routing Stack VLAN PPP Instrumentation

Platform and TDK Base Networking Extended Networking Hardware Services

Runtime

IPv6 Routing Stack ML-PPP 802.1p

Symmetric Multiprocessing

Network Reference Platform Integration Design/Architecture Consulting SMP Optimization OS Porting

Services

Networking Customers

STOKE

Networking Ecosystem

Key Technologies for Networking


QNX New Product Initiatives

QNX Multi-core Edition


Multi-core devices
> > > > > > Broadcom BCM1255/1280/1455/1480 Freescale MPC8641D Intel Dual Core Processors Raza Microelectronics XLR Processors PA Semi PWRficient Processors Cavium Octeon

Primary focus for multi-core processors is the netcom market We have an unparalleled multi-core story QNX Multi-core Edition offers comprehensive support for multi-core processors Extremely successful product launch
> Over 500 people pre-registered for QNX Multi-core Webinar > Over 20 feature articles on QNX Multi-core Edition > Many speaking engagements done and going forward

QNX Enables Multi-core Migration


The QNX provides complete solution:
Proven OS support for any multi-core processing model Full suite of development tools to characterize and optimize multi-core applications Expert professional services and support Market leading multi-core board support packages Professional Training
Symmetric Multiprocessing
Multi-core optimized applications Transparent scaling beyond dual core

Asymmetric Multiprocessing
Support existing software base, non-optimized uni-processor approach Mixed OS environment

Design Needs

Bound Multiprocessing
Migrate existing software base Mix existing applications with multicore optimized applications Transparent scaling beyond dual core

Adaptive Partitioning

Secure.
> Build secure compartments around your applications to protect them from external threats

Real Time.
> Build high performance real time systems > No CPU cycles are wasted

Guaranteed.
> Ensure availability by guaranteeing CPU cycles for critical system functions

Adaptive Partitioning in a Nutshell


What is Adaptive Partitioning?
> QNX Neutrino RTOS extension that enforces secure compartments or partitions around a set of applications or threads > Enforces system resource guarantees for applications, controlled through easy to use budgets

Why is it Adaptive?
> Provides minimum resource guarantees, but free resources can be reallocated if not in use to accommodate spikes in demand > Patent-pending design ensures that no CPU cycles are wasted when processing power is required

Easy to get started


> No code changes are required to implement partitions > Does not change how designers work today Same, familiar design, programming & debugging techniques

Adaptive Partitioning
File System Networking Application

QNX Neutrino Microkernel

Device Driver

Application

Application

QNX Neutrino RTOS provides the basic structure


> Application and OS service encapsulation with message passing > Hardware memory protection for security and reliability

Adaptive partitioning extends the Neutrino micro-kernel to provide secure partitions and guaranteed CPU time
> A collection of processes and threads make up a partition > A partition is assigned a percentage of CPU time, averaged over a time window > Overlays on existing thread scheduling

Maximum Realtime Performance


10% I/O Partition QNX Neutrino Microkernel
File System Device Drivers

70% Application Partition


Core Application Core Application

20% Untrusted Partition


Add-On

Networking

Core Application

Add-On

CPU guarantees for partitions at full system load Dynamic allocation of CPU cycles when not fully loaded

Partitions Enforced

No idle time

Free time use idle cycles

Idle time available

0%

50%

100%

CPU Utilization

Microkernel Architecture for Security

QNX Neutrino Microkernel

Disk

Graphics

Audio

Network

Serial

Application

Application

Application

ARM, MIPS, SH4, PowerPC, Xscale, x86

Applications and Drivers Are processes which plug into a message bus Reside in their own memory-protected address space Cannot corrupt other software components or kernel Can be started, stopped and upgraded on the fly Failures in drivers do not require system restarts

Security Threats
Almost all embedded systems are becoming network connected > Untrusted network interfaces and threats > Untrusted, add on software If appropriate measures are not included by design, your products security and availability can be compromised Rogue software can launch denial of service (DOS) attack and starve core applications of CPU time > Need to ensure untrusted, add-on software can be contained to guard against attacks Distributed DOS attacks can busy your system with network processing QNX Neutrino Microkernel

File System

Device Drivers

Core Core Rogue add-on stealing CPU time Application Application

Add-On

Core Networking Networking Stack hogging CPU time Application

Add-On

Partitioning to Contain Threats


Create OS enforced partitions to ensure critical system resources are protected > Ensure CPU available for core functions > Partition inheritance ensures applications get CPU time for OS services (such as drivers, file systems, networking) Contain threats and protect core applications > Limit impact of rogue applications > Contain denial of service attacks

QNX Neutrino micro-kernel

Network Remote Monitoring Attacked Denial of Service Networking Attack Stack Contained

File System

Core Application

Add-On

Rogue add-on thwarted


Device Drivers Core Application Add-On

Adaptive Partitioning CPU Time Guarantees

20%

5%

50%

25%

QNX is Innovation
QNX is a Thought Leader in the Embedded Market QNX works closely with the embedded market to deliver industry leading technology
> QNX Neutrino is still the only high performance, commercial microkernel RTOS in the world > QNX Critical Process Monitor provides a comprehensive software HA framework > Adaptive Partitioning > Comprehensive multi-processing support > Distributed processing > Transaction File System

QNX Customer Success Stories


Inspire Innovation

QNX Case Study Submarine Robots

What is an Independent Submersible Robot?

Independent Submersible Robot (ISR) is an automatic self-propelled vehicle carrying research instrumentation and able to:

Submerge at a specific oceanic location to large depths Move along a specified trajectory Perform intended tasks Independently return to the mother ship or coast station

Mission examples

Surveillance and exploratory missions at large depths and in rugged submarine topography Under-ice missions Fiber-optic cabling works Exploring water-filled tunnels Search and rescue operations Water environmental monitoring operations

On-board equipment

Environment measuring instruments Photo and video facilities Surveillance sonar Geophysical equipment (magnetometer, acoustic surface analyzer, gravimeter) Computer vision system Magnetometric and electromagnetic sensing units

Requirements for on-board systems

The motion control system must ensure stable control of course, speed, depth (or height above bottom level). The navigation system must be capable of keeping up a required track, approaching a specified object, and determining the location with an accuracy of several meters. The computer vision system must ensure recognition of specified objects and their orientation. The behavior planning system must ensure the ISR's ability to keep up a specified track and to perform required maneuvering operations in the vicinity of a specified object.

Control system functions


Maintain coordinated operation of on-board units and systems according to a specified mission Control the state of on-board equipment and the ISR's body, as well as monitor the environment conditions to ensure safety Perform data gathering and storing Perform pre-start checkouts of on-board equipment and the loaded mission program Interact with the remote control system at the mother ship's control station

Computer System

The on-board electronics, such as processors and controllers, are enclosed in firm containers that are made 15 cm in diameter to fit in the ISR's limited internal space. The ISR carries on board one to several processors combined in a LAN. On-board Ethernet Serial line RS-485.

On-board computers
Requirements:
Compact size Low power consumption Ability to work in duty-heavy surrounding conditions Independency Reliability and maintainability

Choice:
-104/104+ single-board computers Lippert Cool RoadRunner, Cool SpaceRunner, and Cool EcoRunner

Distributed Control System

Requirements: Minimal system overhead on CPU resources Distributed processing support LAN modifiability support System timers and priority mechanism support System reliability and predictability Simple implementation and wide applicability QNX 4.25 users historically Deployed new products withQNX 6 Development tools: Momentics GUI: Photon

Distributed Control System

Examples: -98

Was designed to work at depths of as much as 6,000m and in rugged submarine topography. Its control system consists of several computers intended for different tasks and combined in an Ethernet local area network. The LAN is operated by QNX OS.

Examples: Solar ISR

Unmanned submarine vehicle designed to perform oceanographic measurements for an extended duration (e.g. multiple days).

On-board computer controlled by QNX.

The interaction between the submersible's on-board computer and the operator's computer is implemented via a radio-modem or acoustic modem, with the submersible's on-board computer working as a remote node of the QNX network.

Examples: Independent tethered submersible "TSL"

Designed to perform surveillance and exploratory work on shelves at depths of as much as 200 meters, and to execute visual exploration of underwater parts of docks, bottom structures, sunk objects, large water-filled tunnels or containers, and underwater pipelines. Control system is distributed and consists of an on-board autopilot computer and the operator's remote control. The operator's remote control and the on-board computers are combined in a QNX-based network. The interprocessor data exchange is performed based on the QNX built-in message passing.

Summary

Institute of Marine Technology of the Far Eastern Branch of the Russian Academy of Sciences, Vladivostok, Russia and have used QNX since 1994. The QNX OS allows them to build robust and compact systems. No failures of QNX-based ISR control systems at all. The Institute is planning to deploy QNX for future products. Migration from QNX 4.25 to QNX 6.3 - advantage of MIPS, PowerPC, SH-4, XScale, and ARM architectures in building compact submersibles.

QNX Customer Success Stories

Automotive & Transportation

Cogent Helicopter Navigation System Delcan Urban Traffic Control System SAM Electronics Ocean Liners Navigate With QNX BCI In-vehicle Navigation System EBIM Chunnel-train Simulators JVC In-car infotainment device

Communications

WorldSpace Digital Satellite Broadcasting British Telecom Web-enabled Payphones MC Europe Digital Radio Broadcast System Visara Network Computers Wavetek Wandel Goltermann Cell-phone Test Equipment T-Netix Telephone Security and Monitoring Systems

Consumer Electronics and Residential

Epson Web-based Thin Client International Gaming Technology Inter-Casino Gaming Machines Loewe Opta GmbH Multimedia Television Sets Teligent Web-Enabled Payphones ReQuest Multimedia CD Jukebox

Defense and Security


Neptec Design Group Advanced Space Vision Systems Pacific Northwest National Laboratory Nuclear Weapon Watchdog University of Michigan, National Science Foundation, NASA Radiometer for Advanced Understanding of Global Warming Lockheed Martin Autonomous Underwater Robot Senstar-Stellar Security Control System OPAL-RT Space Simulators T-Netix Telephone Security and Monitoring Systems Neptec Customer Spotlight QNX-based vision system puts focus on shuttle safety

Industrial Automation and Control


Aquila Control Systems for Surface Mines Cogent and Cadbury Chocolate Process Control System ICE Felix SCADA System for Hydroelectric Plants Insight Control Closure Inspection Systems Motorola SPC System for Semiconductor Manufacturing Saab Marine Electronics Marine Tank Gauging Systems U.S. Postal Service High-Speed Barcode Sorters Precitech Machining Systems Digital Semiconductor Validation Environment for VLSI Components Patrick Technology & Systems Automated Straddle Carrier Siderar Blast Furnace Control Yashio Supply monitoring and administration for the power industry PromTransAvtomatika Automated Drawbridge System Gets a Lift from QNX

Medical Devices

Burdick Electrocardiograph Stress Test Equipment Qualicon DNA Fingerprinting System Siemens Medical Solutions Angiography System IntraLase Corp. Laser Vision Correction System Physiometrix Anesthesia Monitor Biospace - Body Composition Analyzer InBody 4.0- helps treat obesity

Thank You

SPA Computers Ltd Surpassing Expectations www.spacomp.com

Вам также может понравиться