|
|
|
Distributed or remote access |
System software architecture for a passenger entertainment system, method and article of manufacture6782392
Abstract
A passenger entertainment system is configured and operated using system software to route and process passenger transactions from requesting computer processors and dispatch appropriate resources to fulfill the transactions. To achieve this, passenger transactions are transmitted to a message processor, which decodes them and generates a request in a predetermined format. The request is transmitted to a transaction dispatcher that routes the request to a passenger entertainment service manager. The passenger entertainment service manager generates a response to the request message by querying files in a database. Appropriate resources are dispatched to service the passenger transactions that are defined in the response to the query.
Claims
Having thus described our invention, what we claim as new, and desire to secure by Letters Patent is:
1. A method of enabling a computer having a display to control a passenger entertainment system having a plurality of line replaceable units, comprising the steps of:
transmitting a message to a message processor from one of said line replaceable units;
receiving the message in the message processor;
decoding the received message into a common format message;
creating a virtual line replaceable unit (VLRU) within a network addressable unit when a line replaceable unit transmits a message;
routing the common format message through the virtual line replaceable unit to a transaction dispatcher.
2. The method as recited in claim 1, wherein the computer comprises a primary access terminal said method further comprising the steps of:
controlling the passenger entertainment system with a graphical user interface (GUI) that generates and receives GUI format messages; and
providing an interface between the graphical user interface and the transaction dispatcher with a cabin applications interface library that transfers GUI format messages and common format messages.
3. The method as recited in claim 2 further comprising the steps of:
receiving operator requests from the graphical user interface through the cabin applications programming interface library;
providing the operator requests to a services function;
communicating the operator request to a database server;
retrieving information relating to services from a database; and
generating an appropriate response to the operator request.
4. The method as recited in claim 2 wherein the GUI further performs the step of communicating with the line replaceable units through a GUI monitor VLRU within the network addressable unit.
5. The method as recited in claim 1, wherein the computer comprises a cabin file server said method further comprising the steps of:
receiving a common format message that is a passenger transaction that originates at a passenger seat from the transaction dispatcher;
providing the passenger transaction to a services function;
communicating the passenger transaction to a database server;
retrieving information relating to services from a database; and
generating an appropriate response to the passenger transaction.
6. The method as recited in claim 5 further comprising the step of creating a seat VLRU in the network addressable unit when the passenger seat originates the passenger transaction.
7. The method as recited in claim 1 further comprising communicating between the plurality of line replaceable units and the computer with one or more drivers.
8. A system for controlling a passenger entertainment system, including a computer with one or more components for controlling one or more line replaceable units of the passenger entertainment system, comprising:
a message processor that receives and transmits messages between the one or more line replaceable units and decodes the received messages to generate common format messages and encodes common format messages in a format for the one or more line replaceable units;
one or more network addressable units corresponding to the one or more line replaceable units wherein when a line replaceable unit (LRU) communicates with the computer a virtual LRU (VLRU) is created for said LRU within a network addressable unit wherein said VLRU routes common format messages from the LRU and to the LRU; and
a transaction dispatcher that routes the common format messages to and from the message processor through a VLRU within a network addressable unit.
9. A system as recited in claim 8 wherein the computer comprises a primary access terminal said primary access terminal further comprising:
a graphical user interface (GUI) for controlling the system and generating and receiving GUI format messages; and
a cabin applications programming interface (CAPI) library that provides an interface between the graphical user interface and the transaction dispatcher for transferring GUI format messages and common format messages.
10. A system as recited in claim 9 wherein the CAPI library receives operator requests from the graphical user interface and Provides the request to a services function.
11. A system as recited in claim 9 wherein the GUI communicates through a GUI monitor VLRU within the one or more network addressable units.
12. A system as recited in claim 8 wherein the computer comprises a cabin file server said cabin file server further comprising:
a database server having a database containing information relating to each of the components of the system that allow communication with and/or control of these components and information relating to services offered by the system; and
a services function that communicates queries from the transaction dispatcher relating to the services offered by the system to the database server to retrieve information defining the selected product or service and generating an appropriate response to requests from passenger seats.
13. A system as recited in claim 12 wherein the passenger seats communicate through a seat VLRU within one of the network addressable units.
14. A system as recited in claim 8 further comprising one or more drivers for communicating between the one or more line replaceable units and the computer.
15. The system as recited in claim 12, wherein the services include passenger entertainment system control services, movie cycle services, video services, video announcement services, game rental services, movie sales services, catalog sales services, drink sales services, duty free sales services, landscape camera services, media server services, Internet services, and video teleconferencing services.
16. A passenger entertainment system comprising a plurality of line replaceable units for performing entertainment and passenger and operator control functions, a primary access terminal for providing an operator interface to the passenger entertainment systems, and a cabin file server for processing passenger transactions said primary access terminal and said cabin file server each having a control center common executive said control center common executive further comprising:
a message processor for moving messages to and from the line replaceable units and for putting messages from the line replaceable units in a common format;
one or more network addressable units connected to the message processor for routing common format messages wherein each line replaceable unit in the plurality of line replaceable units that communicates with the control center common executive has a corresponding network addressable unit; and
a transaction dispatcher connected to the one or more network addressable units wherein said transaction dispatcher moves common format message between the one or more network addressable units and applications services.
17. The passenger entertainment system of claim 16 wherein when a line replaceable unit communicates with the control center common executive a virtual line replaceable unit is created within said one or more network addressable units.
18. The passenger entertainment system of claim 17 wherein said primary access terminal control center common executive one or more network addressable units further comprise:
an audio tuner virtual line replaceable unit for controlling audio selections;
a card reader virtual line replaceable unit for collecting and forwarding data from a credit card reader;
a graphical user interface virtual line replaceable unit to start and end a graphical user interface;
a primary access terminal virtual line replaceable unit for built-in testing; and
a printer virtual line replaceable unit for querying a control center printer.
19. The passenger entertainment system of claim 17 wherein said cabin file server control center common executive one or more network addressable units further comprise a seat network addressable unit for controlling communications with passenger seats and receiving passenger transactions from said seats.
20. The passenger entertainment system of claim 19 wherein said cabin file server control center common executive one or more network addressable units further comprise:
a backbone network addressable unit for receiving and processing messages that originate from audio video units, area distribution boxes, and passenger entertainment system controller line replaceable units;
a video cassette player network addressable unit for communicating with video source line replaceable units; and
a test port network addressable unit for controlling built-in test communications.
Description
COPYRIGHT NOTIFICATION
Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, or the patent disclosure, as it appears in the Patent and Trademark Office.
FIELD OF THE INVENTION
The present invention relates to providing entertainment to passengers in a vehicle, and more specifically, to systems, methods and articles of manufacture that provide for a networked passenger entertainment system that integrates audio, video, passenger information, product ordering and service processing, communications, and maintainability features, and permits passengers to selectively order or request products and services, receive video, audio and game data for entertainment purposes, and communicate with other passengers and computers on- and off-board the aircraft, and which thereby provides for passenger selected delivery of content over a communication network.
BACKGROUND OF THE INVENTION
The assignee of the present invention manufactures in-flight aircraft passenger entertainment systems. Such systems distribute audio and video material to passengers derived from a variety of sources. For example, such systems provide passengers with audio generated from audio tape players, movies derived from video tape players, and interactive services such as games, shopping and telecommunications. A variety of inventions have been patented by the assignee of the present invention and others relating to in-flight aircraft entertainment systems and their components. Certain of these prior art systems and components are summarized below.
U.S. Pat. No. 3,795,771 entitled "Passenger Entertainment/Passenger Service and Self-Test System" discloses a time multiplexed passenger entertainment and service combined system suitable for distribution throughout compartments of super aircraft.
Common power supplies, cabling, and boxes, and hybrid microelectronics and/or medium or large scale MOSFET integrated circuit chips are employed. A main multiplexer receives passenger address or tape deck analog signals and converts them to a pulse code modulated digital bit stream which is time shared between channels. A coaxial cable transmits the bit stream to compartment submultiplexers. Each submultiplexer receives the digital bit stream, optionally inserts into the bit stream bits representing analog-to-digital converted movie audio or compartment introduced passenger address and distributes the data stream along four columns of seat group units on individual column coaxial cables. At each seat group unit a demultiplexer of a seat group demultiplexer/encoder converts the bit stream into the original analog signals, amplifiers the analog signals and drives individual seat transducers for passenger listening.
A passenger control unit provides channel and volume level selection. The passenger service system provides control functions comprising reading light, stewardess call (aisle and control panel lights and chimes). The service system comprises a section timer/decoder to generate binary logic pulses which are transmitted by cable sequentially down and up the seat columns from seat group unit to seat group unit. A similar cable connects the corresponding overhead unit containing the reading lights, etc. to the section timer/decoder. The seat encoder of each seat group demultiplex-er/encoder receives digital interrogating signals, processes them relative to switch positions determined by the passenger and sends out results to the section timer/decoder. The overhead decoder of each seat group receives the retransmitted digital signals from the section timer/decoder and performs switching functions conforming to seat encoder commands. The system incorporates a self-test subsystem comprising a test signal generator and circuits operating in conjunction with the entertainment and service system circuits.
U.S. Pat. No. 5,289,272 entitled "Combined Data, Audio and Video Distribution System in Passenger Aircraft" discloses a passenger aircraft video distribution system that distributes modulated RF carrier signals from a central signal source to be used at each passenger seat. The carriers are modulated to contain audio, video also other digital data, such as graphics, and slide shows and the like. Analog video signals from the video source are modulated on individually discrete carriers in the range of 54 to 300 megahertz. Audio information, including audio sound channels and the video audio, are digitized and combined with digital data in a combined serial bit stream that is multiplexed, and then modulated on an RF carrier having a frequency sufficiently above the frequency band of the video signals so that the resulting spectrum of the modulated audio RF carrier does not interfere with the modulated video carriers. The RF carrier signals are combined and distributed to individual seats. The modulated audio carrier is separated from the video carriers at each seat or each group of seats and then demodulated and demultiplexed for selection at each individual seat of a chosen audio channel.
U.S. Pat. No. 4,866,515 entitled "Passenger Service and Entertainment System for Supplying Frequency-Multiplexed Video, Audio, and Television Game Software Signals to Passenger Seat Terminals" discloses a service and entertainment system for transmitting video signals, audio signals and television game software signals from a central transmitting apparatus to each of a plurality of terminals mounted at respective passenger seats in an aircraft, or at respective seats in a stadium, or theater, or the like. The video signals, audio signals and television game software signals are frequency-multiplexed and then transmitted to the terminals, so that desired ones of the frequency-multiplexed signals can be selected at each terminal unit.
U.S. Pat. No. 4,647,980 entitled "Aircraft Passenger Television System" discloses a television system that provides for individualized program selection and viewing by aircraft passengers. The system comprises a plurality of compact television receivers mounted in front of each airline passenger in a rearwardly facing position within the passenger seat immediately in front of each passenger. Each television receiver is provided as a lightweight module adapted for rapid, removable installation into a mounting bracket opening rearwardly on the rear side of a passenger seat, with a viewing screen set at a tilt angle accommodating an average reclined position of the seat. Exposed controls permit channel and volume selection by the individual passenger, and an audio headset is provided for plug-in connection to the module. A broadcast station on the aircraft provides prerecorded and/or locally received programs on different channels to each television module for individual passenger selection.
U.S. Pat. No. 4,630,821 entitled "Video Game Apparatus Integral with Aircraft Passenger Seat Tray" discloses a video game apparatus employed by a passenger of an aircraft. The apparatus includes a tray that is mounted on the rear of an aircraft seat. The tray has an internal hollow with a rectangular aperture on a top surface which surface faces the passenger when the tray is placed in a usable position. Located in the rectangular aperture is a TV display screen. Located in the internal hollow of the tray is a video game apparatus that operates to provide a video game display on the surface of said TV display screen. The surface of the tray containing the TV display screen also includes a plurality of control elements that are coupled to the video game apparatus to enable the passenger to operate the game. To energize the game, the tray contains a cable coupling assembly whereby when a cable is inserted into the assembly, the video game is energized to provide a display of a game selected by means of a selector switch also mounted on the top surface of the tray.
U.S. Pat. No. 4,352,200 entitled "Wireless Aircraft Passenger Audio Entertainment System" discloses that audio information in several audio channels is supplied via head sets to passengers seated aboard an aircraft in rows of seats including armrests and being distributed along an elongate passenger section inside a metallic fuselage. An antenna is run along the elongate passenger section of the aircraft for radio transmission inside such elongate passenger section. Individual antennas are provided for the passenger seats for receiving the latter radio transmission. These receiving antennas are distributed among predetermined armrests of the passenger seats. The audio information to be transmitted is provided in radio frequency channels in a band between 72 and 73 MHz. The distributed receiving antennas are coupled via seated passengers to the transmitting antenna. The radio frequency channels are transmitted in the mentioned band via the transmitting antenna, seated passengers and distributed receiving antennas to the predetermined armrests. Audio information is derived in the audio channels from the transmitted radio frequency channels also in the predetermined armrests. Passengers are individually enabled to select audio information from among the derived audio information in the audio channels. The selected audio information is applied individually to the headsets.
U.S. Pat. Nos. 5,965,647 and 5,617,331 entitled "Integrated Video and Audio Signal Distribution System and Method for use on Commercial Aircraft and Other Vehicles" disclose passenger entertainment systems employing an improved digital audio signal distribution system and method for use on commercial aircraft and other vehicles. A plurality of digital audio signal sources are provided for generating a plurality of compressed digital audio signals. The compressed digital audio signals are provided to a multiplexer that domain multiplexes the signals to produce a single composite digital audio data signal. The composite digital audio data signal is provided to a demultiplexer which is capable of selecting a desired channel from the composite digital audio data signal. The selected channel is provided to a decompression circuit, where it is expanded to produce a decompressed digital output signal. The decompressed digital output signal is then provided to a digital-to-analog converter and converted to an analog audio signal. The analog audio signal is provided to an audio transducer.
While the above patents disclose various aspects of passenger entertainment systems and components used therein, none of these prior art references disclose a fully integrated networked passenger entertainment system that integrates audio, video, product ordering and service processing, networked communications, and maintainability features. Accordingly, it is an objective of the present invention to provide for systems and methods that implement an integrated networked passenger entertainment and communication system that provides for passenger selected delivery of content over a communication network. It is a further objective of the present invention to provide for systems and methods that permit passengers to selectively order or request products or services, receive audio, video and game data, that permits communication of information to passengers from aircraft personnel, and that permits passengers to communicate with other passengers and computers located on- and off-board an aircraft.
SUMMARY OF THE INVENTION
The foregoing problems are overcome in an illustrative embodiment of the invention in which system software is used to enable a passenger entertainment system on a vehicle. The passenger entertainment system is configured and operated using the system software to provide passenger entertainment services including audio and video on-demand, information dissemination, product and service order processing, video teleconferencing and data communication services between passengers on-board the vehicle using a local networks, and between passengers and people and computers off-board the vehicle using a communications link.
The passenger entertainment system includes a system server and a network for supporting a plurality of computer processors that are each coupled to a video camera, a microphone, a video display, an audio reproducing device, and an input device located proximal to a plurality of seats. The computer processors and the system server comprise application software that selectively controls telephony applications and network services. The system server has a plurality of interfaces that interface to components of the passenger entertainment system.
The system software is used to route and process passenger transactions from requesting computer processors and dispatch appropriate resources to fulfill the transactions. To achieve this, passenger transactions are transmitted to a message processor, which decodes them and generates a request in a predetermined format. The request is transmitted to a transaction dispatcher that routes the request to a passenger entertainment service manager. The passenger entertainment service manager generates a response to the request message by querying files in a database. Appropriate resources are dispatched to service the passenger transactions that are defined in the response to the query.
BRIEF DESCRIPTION OF THE DRAWINGS
The various features and advantages of the present invention may be more readily understood with reference to the following detailed description taken in conjunction with the accompanying drawings, and in which:
FIG. 1 illustrates an operational environment depicting a total entertainment system in accordance with a preferred embodiment;
FIG. 2 is an exemplary block diagram of an embodiment of the total entertainment system;
FIG. 3 shows a detailed block diagram of the total entertainment system of FIG. 2;
FIG. 4 shows a diagram illustrating a typical hardware configuration of a workstation employed in accordance with a preferred embodiment;
FIG. 5 is a diagram illustrating head end equipment in accordance with a preferred embodiment;
FIG. 5a is a diagram illustrating distribution of QAM digital audio in accordance with in accordance with a preferred embodiment;
FIG. 6 is a block diagram of area distribution equipment in accordance with a preferred embodiment;
FIG. 7 is a block diagram of seat group equipment in accordance with a preferred embodiment;
FIG. 7a is a block diagram of the seat controller card of the seat group equipment in accordance with a preferred embodiment;
FIG. 7b illustrates a typical fixed passenger control unit;
FIG. 8 is a block diagram of overhead equipment in accordance with a preferred embodiment;
FIG. 9 is a block diagram of an Airplane Configuration System (ACS) tool used in accordance with a preferred embodiment;
FIG. 10 is a block diagram of the software architecture in accordance with a preferred embodiment;
FIG. 11 illustrates message processor function and data paths;
FIG. 12 illustrates operational flow of an ARCNET driver;
FIG. 13 illustrates primary access terminal network addressable unit function and data paths;
FIG. 14 illustrates transaction dispatcher function and data paths;
FIG. 15 illustrates system monitor function and data paths;
FIG. 16 illustrates primary access terminal RPC client.DLL function and data paths
FIG. 17 illustrates backbone network addressable unit function and data paths;
FIG. 18 illustrates seat network addressable unit function and data paths;
FIG. 19 illustrates VCP network addressable unit function and data paths;
FIG. 20 illustrates Test Port network addressable unit function and data paths; and
FIG. 21 illustrates Services function and data paths.
DETAILED DESCRIPTION
System Overview
FIG. 1 illustrates an operational environment depicting an exemplary total entertainment system 100 in accordance with a preferred embodiment. The operational environment shown in FIG. 1 depicts a flight of an aircraft 111 employing the total entertainment system 100. The total entertainment system 100 comprises an integrated networked passenger entertainment and communication system 100 that provides for in-flight passenger entertainment and information dissemination, service and product order processing, video teleconferencing and data communication between passengers on-board the aircraft 111, and video teleconferencing, voice and data communication between passengers 117 on-board the aircraft 111 and people and computers on the ground using local networks and the Internet 113. The present invention thus provides for a level of capabilities and services heretofore unavailable in any airborne passenger entertainment system.
The system 100 is comprised of four main functional areas including head end equipment 200, area distribution equipment 210, seat group equipment 220, and overhead equipment 230. The head end equipment 200 provides an interface to external hardware and operators. The area distribution equipment 210 routes signals to and/or from the head end equipment 200, the seat group equipment 220, and the overhead equipment 230, depending upon the type of service provided to or requested by the passengers. The seat group equipment 220 contains passenger control units (PCU) 121 and screen displays 122 for use by the passengers 117. The overhead equipment 230 includes video monitors and/or projectors and bulkhead screens or displays for displaying movies and other information. The system 100 thus routes or otherwise displays information to the passengers either under control of the flight attendants or passengers 117.
Video conferencing data and computer data derived from ground based computers 112 connected to the Internet 113 are transferred over the Internet 113 to a satellite ground station 114 and are uplinked to a communications satellite 115a orbiting the Earth. The communications satellite 115a downlinks the video conferencing and/or computer data to the aircraft 111 which is received by way of an antenna 116 that is part of a satellite communications system employed in the head end equipment 200 of the system 100. In a similar manner, video conferencing data and/or computer data derived from passengers 117 on-board the aircraft 111 is uplinked to the satellite 115a by way of the satellite communications system and antenna 116 to the satellite 115a, and from there is downlinked by way of the satellite ground station 114 and Internet 113 to the ground based computer 112.
One or more satellites 115a and 115b, which may be the same as or different from the satellites 115a and 115b used for Internet communication, transmit television signals to the aircraft 111. One currently deployed satellite television broadcast system is the DIRECTV system that has orbiting satellites 115a and 115b that may be used to transmit television programs to the aircraft 111, in a manner similar to ground-based systems used in homes and businesses. In the present system 100, however, a steerable antenna 116 is used to track the position of the satellite 115a that transmits the signals so that the antenna 116 remains locked onto the transmitted signal.
Handheld or fixed passenger control units 121 and seatback screen displays 122 (seat displays 122) are provided at each passenger seat 123 that permit the passengers 117 to interface to the system 100. The passenger control units 121 are used to control downloading of movies for viewing, select audio channels for listening, initiate service calls to flight attendants, order products and services, and control lighting. The passenger control units 121 are also used to control game programs that are downloaded and played at the passenger seat 123. In addition, the passenger control units 121 are also used to initiate video conferencing and computer data transfer sessions either within the aircraft or with ground based computers 112.
The present system 100 thus provides for an integrated and networked passenger entertainment and communication system 100 that in essence functions as an airborne intranet that provides a level of passenger selected and controlled entertainment and communications services, passenger services and product ordering services that has heretofore not been provided to aircraft passengers.
FIG. 2 is an exemplary block diagram of an embodiment of a total entertainment system 100 that is employed on the aircraft 111, and illustrates inputs, outputs and interfaces of the system 100. The system 100 comprises the head end equipment 200, the area distribution equipment 210, the seat group equipment 220, and the overhead equipment 230. The head end equipment 200 and the seat group equipment 220 include a variety of computer processors and operating software that communicate over various networks to control and distribute data throughout the aircraft 111 and send data to and receive data from sources external to the aircraft 111. A detailed embodiment of the total entertainment system 100 is shown in FIG. 3, which will be described after discussing a representative hardware environment that is useful in understanding the system 100 and its operation that is presented in FIG. 4.
An embodiment of the system 100 is practiced in the context of a personal computer such as the IBM PS/2, Apple Macintosh computer or UNIX based workstation. A representative hardware environment is depicted in FIG. 4, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 310, such as a microprocessor, and a number of other units interconnected via a system bus 312. The workstation shown in FIG. 4 includes a random access memory (RAM) 314, read only memory (ROM) 316, an I/O adapter 318 for connecting peripheral devices such as disk storage units 320 to the bus 312, a user interface adapter 322 for connecting a keyboard 324, a mouse 326, a speaker 328, a microphone 332, and/or other user interface devices such as a touch screen (not shown) to the bus 312, communication adapter 334 for connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 336 for connecting the bus 312 to a display device 338. The workstation typically has resident thereon an operating system such as the Microsoft Windows NT or Windows/95 operating system (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. Those skilled in the art will appreciate that the present invention may also be implemented on platforms and operating systems other than those mentioned.
Detailed System Description
The in-flight entertainment system 100 in accordance with a preferred embodiment is a complex system with many components and that forms a total entertainment system (TES) 100. To assist the reader in making and utilizing the invention without undue experimentation, the following is a detailed description that discusses some of the components and a typical system configuration. The system 100 in accordance with a preferred embodiment is a configurable and scaleable in-flight entertainment system 100 that provides a wide range of passenger entertainment, communications, passenger service, and cabin management services. A fully capable system 100 provides passengers with audio entertainment, video entertainment, video games, and other interactive and communications services.
The system 100 shown in FIG. 1 and 2 has four main functional areas comprising: 1) head end equipment 200, 2) area distribution equipment 210, 3) seat group equipment 220, and 4) overhead equipment 230. FIG. 3 shows the four functional areas and the line replaceable units (LRU) that comprise a typical passenger entertainment system 100. An overview of the LRUs in each of the functional areas is described in the following paragraphs.
The head end equipment 200 is the prime interface between external hardware and operators (purser and flight attendants). The head end equipment 200 includes an operator interface, an aircraft interface, a maintenance interface, and an interface for downloading configuration data to the system 100 and for downloading reports from the system.
The head end equipment 200 shown in FIG. 3 comprises a primary access terminal (PAT) 225 and a cabin file server (CFS) 268 that are used to control the system 100. The cabin file server 268 is a system controller that controls many of the system functions, such as interactive functions, and stores the system configuration database and the application software. The cabin file server 268 communicates with other components within the head end equipment 200 via an ARCNET interface 216. The cabin file server may be a computer terminal as shown in FIG. 4 that includes a hard disk drive and a database that stores the system 100 configuration and other system 100 information.
The cabin file server 268 is coupled to the primary access terminal 225 and to a printer 226 by way of an Ethernet network 228, such as a 100 Base-T Ethernet network, for example. Flight attendant workstations 225a are also coupled to the cabin file server 268 by way of the Ethernet network 228. A media file server 211 is controlled from the cabin file server 268 by way of an ARINC 485 (RS-485) network 229 coupled therebetween. The cabin file server 268 is optionally coupled to a BIT/BITE tester 221 that is used to perform built in testing operations on the system 100.
The cabin file server 268 provides the following functions: processes and stores transaction information from passengers; stores passenger usage statistics for movies, games, and shopping; stores passenger survey responses; stores flight attendant usage statistics for login/logout; provides flight attendant access control; controls the video reproducers; controls the landscape camera; controls the PVIS line replaceable unit; stores seat application software and game software; distributes seat application and game software via the RF distribution system; provides power backup sufficient to allow orderly automatic shutdown of the cabin file server 268 operating system when primary power is removed; provides indicators representing power, operational status, and communication status; downloads databases via the RF distribution system; provides the ability to print reports; and provides connectors for a keyboard, monitor, and mouse.
The primary access terminal 225 shown in FIG. 3 provides an operator interface to the system 100, enabling an operator to centrally control a video reproducer 227 and the media server 211, start BITE, control the landscape cameras 213, and other functions provided in the system 100. The primary access terminal 225 may also be a computer terminal as shown in FIG. 2 that may include a hard disk drive and a display 338 for graphical user interface (GUI) by a flight attendant to the system 100. The display may be a touch screen display to access the system 100. A keyboard (not shown) may also be provided to access the system 100. The primary access terminal 225 is used to configure the system 100 to set up the entertainment options that are available to passengers 117. The flight attendant workstations 225a are distributed throughout the aircraft 111 and allow flight attendants to respond to passenger service requests and to process orders and monetary transactions.
The primary access terminal 225 provides the following functions: a flight attendant interface to the cabin sales capability, a flight attendant interface to the video entertainment capability, a flight attendant interface to the report and receipt printing capability, monitoring of video and audio output from the video reproducer, maintenance personnel interface to system diagnostics and status reports, power backup sufficient to allow an orderly shutdown of the primary access terminal operating system when primary power is removed, indicators representing power, operational status, and communication status, single and dual plug stereo audio jack, magnetic card reader, and floppy disk drive.
The head end equipment 200 comprises the media server 211 that is coupled to a first video modulator 212a. The media server 211 may be one manufactured by Formation, for example. The media server 211 supplies 30 independent streams of video, and stores about 54 hour of video. The first video modulator 212a may be one manufactured by Olsen Technologies, for example. The video reproducer 227 (or video cassette player 227), such as a triple deck player manufactured by TEAC, for example, is also coupled to the first video modulator 212a. The video cassette player 227 may be three 8-mm Hi-8 video cassette players that output three video programs on three video channels under control of a flight attendant.
The video reproducer 227 (or video cassette player 227) outputs an NTSC video (and audio) streams corresponding to a first plurality of prerecorded video channels. The media server 211 stores and outputs a plurality of quadrature amplitude modulated MPEG-compressed video transport streams corresponding to a second plurality of prerecorded video channels. The first video modulator 212a modulates both the NTSC video streams from the video reproducer 227 and the quadrature amplitude modulated MPEG-compressed video streams from the media server 211 to produce modulated RF signals that are distributed to passenger seats 123 of the aircraft 111.
The head end equipment 200 also comprises one or more landscape cameras 213 and a passenger video information system (PVIS) 214 that are coupled to a second video modulator 212b. The landscape cameras 213 may be cameras manufactured by Sexton, or Puritan Bennett, for example. The second video modulator 212b may also be one manufactured by Olsen Technologies, for example. The passenger video information system 214 may be a unit manufactured by Airshow, for example.
The head end equipment 200 comprises first and second passenger entertainment system controllers (PESC-A, PESC-V) 224a, 224b, that comprise video, audio and telephone processors. Although only one unit is shown in FIG. 3, in certain configurations, primary and secondary PESC-A controllers 224a may be used. The second video modulator 212b routes RF signals through the first video modulator 212a, and the outputs of both video modulators 212a, 212b are routed through the second passenger entertainment system controller (PESC-V) 224b to the first passenger entertainment system controller (PESC-A) 224a. The first passenger entertainment system controller (PESC-A) 224a is used to distribute video and data by way of an RF cable 215 and an ARCNET network 216, to area distribution equipment 210 that routes the video and data to the passenger seats 123. The ARCNET network 216 is used to send control signals between components of the head end equipment and the components of the seat group equipment 220. The PESC-A 224a also provides an interface to the overhead equipment 230.
The first passenger entertainment system controller (PESC-A) 224a is coupled to the cabin file server 268 by way of the ARCNET network 216, and is coupled to the primary access terminal (PAT) 225 and the second passenger entertainment system controller (PESC-V) 224b by way of the ARCNET network 216. The first passenger entertainment system controller (PESC-A) 224a is also coupled to a public address (PA) system 222, to an audio tape reproducer (ATR) 223, and to a cabin telephone system (CTS) 239. The audio tape reproducer 223 may be one manufactured by Sony or Matsushita, for example. The cabin telephone system 239 may be systems manufactured by AT&T or GTE, for example. Signals associated with the cabin telephone system 239 are routed through the system 100 by means of a CEPT-E1 network 219.
The passenger entertainment system audio controller (PESC-A) 224a and the passenger entertainment system video controller (PESC-V) 224b are similarly designed and have similar capabilities. However, some features are implemented only in the PESC-A 224a or only in the PESC-V 224b. The passenger entertainment system controller software implements specific features particular to the PESC-A 224a or PESC-V 224b.
The passenger entertainment system controller performs the following functions: digitizes up to 32 audio inputs from entertainment and video audio sources, RF modulates the digital data, mixes the RF digital audio data with the RF input from a VMOD or another passenger entertainment system controller, outputs the combined RF video carrier and RF digital audio information to the RF distribution system, inputs up to five analog inputs, and multiplex in any combination to a maximum of five analog outputs, provides programmable volume control of the five analog outputs, provides RS-232, RS-485, ARINC-429, and ARCNET communications interfaces, provides input discretes for the control and distribution of PA audio to the seats, provides input and output discretes for the control and distribution of video announcement audio to the overhead PA system of the aircraft 111, provides input discretes for passenger entertainment system controller type and address information, provides input discrete for aircraft status (in air/on ground), amplifies output RF, software monitorable and controllable, provides an external test/diagnostic communication port, provides indicators representing power, operation status, and communication status, provides telephone control and distribution (PESC-A 224a only), and provides a fault depository for BIT data (PESC-A primary 224a only).
Referring now to FIG. 5, it shows a simplified diagram of the system 100 and illustrates distribution of video signals from the video cassette player 227 and media server 211 to the seat displays 122. To implement video on demand in accordance with a preferred embodiment, the media server 211 outputs 30 digital MPEG-compressed video transport streams on three video channels (ten streams each), while the video cassette player 227 outputs three video streams on three video channels.
To gain extra throughput, the 30 digital MPEG compressed video streams output by the media server 211 are 64-value quadrature amplitude modulated (QAM). However, it is to be understood, however, that by using 256-value QAM encoding, for example, the number of video programs delivered in each video channel may be further increased. Consequently, the present system 100 is not limited to any specific QAM encoding value.
The video streams from the video cassette player 227 and the quadrature amplitude modulated MPEG compressed video transport streams from the media server 211 are then modulated by the first video modulator 212a for transmission over the RF cables 215b, 215c, and 215d to an audio-video distribution unit 231 at each of the passenger seats 123 and RF cable 215a to overhead equipment 230. To provide first class passengers 117, for example, with true video on demand, the streams are controlled by the passengers 117, with one stream assigned to each passenger that requests video services.
The simultaneous transfer of video streams derived from both the video cassette player 227 and the media server 211 in an aircraft entertainment system is considered unique. In particular, conventional systems either process analog (NTSC) video signals or digital video signals, but do not process both simultaneously. However, in the present system 100, NTSC and quadrature amplitude modulated MPEG-compressed digital video signals are processed simultaneously through the first video modulator 212a and distributed to passenger seats 123 for display.
The first passenger entertainment system controller (PESC-A) 224a is coupled to a plurality of area distribution boxes 217 by way of the RF cable 215d and the ARCNET network 216. The area distribution boxes 217 are used to distribute digital and analog video streams to the audio-video distribution units 231 at the passenger seats 123.
FIG. 5a is a diagram illustrating the passenger entertainment system controller (PESC-A) 224a and a cooperative audio-video unit 231 that provide for distribution of quadrature amplitude modulated (QAM) digital audio signals to passenger seats 123 throughout the aircraft 111. The passenger entertainment system controller 224a comprises a plurality of analog to digital converters (A/D) 351 that digitize audio input signals from input sources, such as one or more audio tape reproducers 223, the public address system 222 and a passenger service system 275. The digitized signals from these sources are multiplexed in a multiplexer (MUX) 352 that is controlled by a controller 353 and microprocessor (.mu.P) 355 having a programmable memory 354. The programmable memory 354 stores code for use by the microprocessor 355 in multiplexing the signals.
The output of the multiplexer 352 is input to a first-in first-out (FIFO) buffer 356 and output signals therefrom are quadrature amplitude modulated using a quadrature amplitude modulator (QAM) 357. The format of the output signals from the FIFO buffer 356 is shown and includes a start frame set of bits (header) followed by each of the respective audio channels (CH1 . . . CHn). The output of the quadrature amplitude modulator 357 is modulated onto a carrier by an RF modulator 358 that transmits the QAM and RF modulated signal over the RF cable 215 to the audio-video units 231 at each of the passenger seats 123.
The audio-video units 231 each comprise a RF tuner 235 that demodulates the RF modulated signal transmitted over the RF cable 215 that is coupled to a QAM demodulator 237 that demodulates the quadrature amplitude modulated signals. The output of the QAM demodulator 237 is converted to an analog signal by a digital to analog converter (D/A) 363 and sent to the headphones 132. Selection of a particular channel to be listened to by a passenger 117 is made using the tuner 235 that demodulates the signal associated with the selected channel.
The improved quadrature amplitude modulated (QAM) digital audio distribution provided by this aspect of the present invention provides for a greater number of audio channels to be communicated over the RF cable 215. This is similar to the quadrature amplitude modulation of the video streams discussed above with reference to FIG. 5. The quadrature amplitude modulation provides for a plurality of states (not compression) that increases the usage of the bandwidth of the RF cable 215. Any type of analog input signal may be processed, including signals from the audio tape reproducers 223, passenger address system 222, passenger service system 275 or other analog audio source.
The area distribution equipment 210 distributes information from the head end equipment 200 to the seat group equipment 220. The area distribution equipment 210 also provides power to the seat group equipment 220. FIG. 6 is a block diagram showing the area distribution equipment 210 in accordance with a preferred embodiment.
The area distribution equipment 210 distributes data throughout the communications network formed between the head end equipment 200 and the seat group equipment 220. The area distribution equipment 210 comprises the plurality of area distribution boxes 217 that are each coupled to a plurality of floor junction boxes 232 that are individually coupled to respective audio-video seat distribution units 231 in the seat group equipment 220 of respective columns of passenger seats 123.
In a basic system, the area distribution box (ADB) 217 provides for interfacing the first passenger entertainment system controller (PESC-A) 224a to audio-video units 231 either directly or via floor unction boxes 232. The area distribution boxes 217 interface to the audio-video seat distribution units 231 by way of the junction boxes 232 using full-duplex RS-485 interfaces 218 and RF cables 215. The RS-485 interfaces 218 provide control and data links between the seat group equipment 220 and the head end equipment 200. The RF cables 215 couple audio and video data to headphones 132 and seat displays 122 for listening and viewing by the passengers 117. The area distribution box 217 acts as a connection box to facilitate the distribution of system power, combined audio/video signals and service data for up to five columns of audio-video units 231, and relay of service data and combined audio/video signals to the next area distribution box 217. The area distribution box 217 has an RS-232 serial diagnostic port to allow verification of functionality.
The area distribution box 217 removes power from a seat column in which either a short circuit or ground fault condition is identified. The area distribution box 217 restores power to a seat column from which power had been removed without requiring physical access to the area distribution box 217. When power is reapplied to such a column, the short circuit protection circuit functions normally and removes power from the column if the short circuit condition persists. An area distribution box 217 processor monitors the status of the AC power output to each individual AVU column for BIT/BITE purposes.
The area distribution box 217 provides the means to adjust the RF level in order to ensure that the proper RF levels for the video and modulated audio signals are supplied to the AVU tuners and demodulators in the presence of changing system configurations and operational conditions. This RF leveling is accomplished by the local processor/s in the area distribution box 217 by controlling a variable attenuator.
The area distribution box 217 provides for interfacing voice data, originating at passenger telephones 121c, to the first passenger entertainment system controller 224a. The telephone interface provides for input data from each AVU column to be combined with input data from another area distribution box 217 and retransmitted to the first passenger entertainment system controller 224a or the next area distribution box 217.
FIG. 7 is a block diagram of exemplary seat group equipment 220 in accordance with a preferred embodiment. The seat group equipment 220 allows individual passengers 117 to interact with the system 100 to view movies, listen to audio, select languages, play games, video conference with others on and off the aircraft 111, and interface with other interactive services.
The seat group equipment 220 includes a passenger control unit 121, a seat display 122, headphones 132, interface 128a for a personal video player 128 (in certain zones), an audio-video unit 231 with a plurality of seat controller cards (SCC) 269 one for each seat 123 in a row to interface with the area distribution equipment 210, a video camera 267 and a microphone 268 for use in video conferencing, and a telephone card 271 that interfaces to the passenger control unit 121 when it includes the telephone 121c and/or credit card reader 121d. One audio-video unit 231 is provided for each seat 123 and controls distribution of video, audio and data to the headset or headphones 132, the seat display 122, and the passenger control unit 121.
Referring to FIG. 3, in certain zones of the aircraft 111, a personal computer interface 129a is provided which allows the passenger 117 to power a personal computer (not shown) and to interface to the system 100 through the audio-video unit 231. Alternatively, a keyboard 129b may be provided that allows the passenger 117 to interface to the system 100. The use of the personal computer 129a or keyboard 129b provides a means for uploading and downloading data by way of the satellite communications system 241 and the Internet.
The major functional requirements of the audio-video unit 231 are that it drives one to three seat display units 122 with or without touch screens, provides touch screen and display controls, provides two audio jacks per seat, provides two passenger control unit interfaces per seat 123, interfaces to a parallel telephone system, provides discrete signal interface, a parallel laptop power supply system, demodulates and tunes NTSC and QAM from the RF signal, provides PC type video games, provides an RS-485 interface for ADB-AVU or AVU-AVU communications, provides an interface for personal video players, and provides a PSS interface to an external parallel passenger service system (PSS), provides hardware and software interfaces that provide for video teleconferencing and Internet communications.
Referring to FIG. 7, one seat controller card 269 is dedicated to a passenger seat. Therefore, three seat controller cards 269 are required for a three-wide audio-video unit. Two seat controller cards 269 are required for a two-wide audio-video unit 231. A power supply module (PSM) 233 supplies power for the three seat controller cards 269, an audio card 234, the displays 122, and PCUs 121. The audio card 234 electrical circuits comprise RF demodulators to supply audio outputs. An interconnect card (not shown) connects the three seat controller cards 269, the audio card 234, the power supply module 233, and external connectors within the AVU 231.
The seat controller card (SCC) 269 provides many functions for a single passenger 117. Some of the functions that the seat controller card 269 provides include analog video and audio demodulation, graphics overlay capability, and Motion Picture Experts Group (MPEG) video and audio decompression. The seat controller card 269 provides the ability to demodulate the existing analog video signals as well as MPEG encoded signals delivered by the media server 211 that comprises a video-on-demand (VOD) server.
The seat controller cards 269 in FIGS. 7 and 7a in each audio-video seat distribution unit 231 contain a tuner 235 that downconverts the modulated RF signals to produce intermediate frequency signals containing the NTSC video streams and the quadrature amplitude modulated (QAM) MPEG compressed video streams. A QAM demodulator 237 and an MPEG decoder 238 are used to demodulate and decompress the quadrature amplitude modulated and compressed MPEG compressed video streams to produce MPEG NTSC video and audio signals for display.
An analog (video) demodulator 236 demodulates the NTSC video signals that are then passed to a video multiplexer 235a where an external NTSC video signal may be added. The NTSC signals are then digitized in a video A/D converter 235b and are passed to the MPEG decoder 238. The format of the digital channels after QAM demodulation is MPEG-2 transport streams. The MPEG-2 transport streams may contain many streams of video, audio and data information. The MPEG decoder 238 (demultiplexer) may also receive data information to be sent to the SCC processor group 272. In the MPEG transport group, the capability exists to add text overlay with the digital video data. The digital data is converted to analog NTSC format using an NTSC encoder 238a for the display 122.
Each of the seat controller cards 269 includes a microprocessor (mP) 272 that controls the tuner. The microprocessor 272 is used to address the seat controller card 269 as a node on the network. A database is set up in the cabin file server 268 that includes entries for each of the microprocessors (i.e., each seat 123). The addressability feature permits programming of each seat to receive certain types of data. Thus, each audio-video unit 231 may be programmed to selectively receive certain videos or groups of video selections, or audio selections from selected audio reproducers. The addressability aspect of the present system 100 allows the airline to put together entertainment "packages" for distribution to different zones or groups of seats. Also, each seat (or seats in different zones) may be programmed to be able to play games, use the telephones 121c and credit card reader 121d, use a personal video player or computer, have the ability to engage in video teleconferencing and computer data interchange, or gain access to the Internet. Furthermore, the addressability associated with each seat permits order processing and tracking, and control over menus that are available to passengers at respective seats, for example. The addressability feature also permits dynamic reconfiguration of the total entertainment system 100.
To provide control from passenger seats 123, the microprocessor 272 in the audio-video unit 231 includes software that performs substantially the same functions as those in the primary access terminal 225. This may be achieved by selectively downloading a software module to the microprocessor 269 in the audio-video unit 231 when the passenger 117 requests this service. The downloaded software module operates in the same manner as the software on the primary access terminal 225. However, the RS-485 interface is used to send commands to the cabin file server 268 that control the ARINC-485 driver. Alternatively, and preferably, use of an Ethernet network 228 to interconnect the audio-video units 231 provides a readily implemented control path directly to the primary access terminal 225 and cabin file server 268, since they are normally connected by way of the Ethernet network 228.
The audio card 234 in FIG. 7 provides several functions. It demodulates the RF signal to provide audio. It has a multiplexer with audio inputs from the seat controller card 269, demodulated RF signal audio, and external audio. It routes the 115 VAC power to the power supply module and routes the DC power from the power supply module 233 to the interconnect card.
FIG. 7b illustrates a typical fixed passenger control unit 121. The passenger control unit (PCU) 121 interfaces with the system 100 via the audio-video unit (AVU) 231 and provides a passenger interface having input controls 381 and display 389. The passenger control unit 121 communicates with the audio-video unit 231 for PCU/AVU data, AVU/PCU data, and power.
The passenger control unit 121 may be either side mounted or top mounted onto a seat 123 arm rest. The passenger control unit 121 has a four character alphanumeric display 389. Brightness of the LED display 389 is controllable, as a minimum, to two levels of brightness. The passenger control unit display 389 is controlled by the audio-video unit 231 to inform the passenger of current mode status and video functions.
The passenger control unit 121 also comprises depressible buttons that permit selection of items displayed on the seat display 122 and turn on call lights and overhead lights, and electronics. In designated sections or seats, the passengers also control selection of movies and games that are to be played, control the landscape cameras, and activate video conferencing and data communications. In selected sections (business and first class) of the aircraft 111, the telephone 121c and credit card reader 121d are integrated into the passenger control unit 121, while in other sections (such as coach class) these components are not provided.
A reading light on/off function key 382a turns on/off an overhead reading light. Call light on and call cancel function keys 382b, 382c permit calling a flight attendant. A volume control (increase/decrease volume) key 383 is provided. A select function key 384 allows the passenger to make a selection. Screen navigation function keys 385 provide a means for a passenger 117 to navigate through menus displayed on the display 122 or seat display unit (SDU) 122a. A channel up/down function key 386 provides for channel control (increase/decrease channel selection). A TV/OFF function key 387 turns the seat display unit backlight on. Pressing a mode function key 388 allows the passenger to have picture adjustment control of the seat video display through menus displayed on the seat display unit 122a.
The passenger control unit 121 interfaces to the credit card reader 121d. The credit card reader 121d reads three magnetically encoded tracks from credit cards that are encoded in accordance with ISO standards 7810 and 7811. Data content is read in accordance with the VisaNet Standards Manual and contain at least: major industry identifier, issuer identifier, primary account number, surname, first name, middle initial, expiration date, service code, and PIN verification data.
FIG. 8 is a block diagram of exemplary overhead equipment 230 in accordance with a preferred embodiment. The overhead equipment 230 comprises a plurality of tapping units 261 coupled to the overhead and bulkhead displays 263 and video projectors 262. The overhead equipment 230 uses RF video distribution, wherein the RF signal is distributed from the head end equipment 200 to the overhead equipment 230 via the plurality of tapping units 261 which are connected in series. The tapping units 261 contain tuners 235 to select and demodulate the RF signal providing video for the monitors 263 and projectors 262 coupled thereto. Control is provided to the overhead equipment 230 using an RS-485 interface 264 coupled to the first passenger entertainment system controller (PESC-A) 224a. The information on the RS-485 interface 218 between the first passenger entertainment system controller (PESC-A) 224a and the tapping units 261 is controlled via operator input and protocol software running on the cabin file server 268.
In order to efficiently implement video teleconferencing, the use of a higher speed, larger bandwidth communication network may be provided to permit many simultaneous uses. This is achieved using a high speed network, such as the 100 Base-T Ethernet network 228 that is currently employed in the head end equipment 200. Interconnection of each of the audio-video seat distribution units 231 by way of a 100 Base-T Ethernet network 228 in addition to, or which replaces the lower bandwidth RS-485 network 218, provides substantial bandwidth to implement video teleconferencing.
Interconnection of the audio-video seat distribution units 231 using the 100 Base-T Ethernet network 228 also permits data communications between personal computers located at the seats 123 and remote computers 112. This is achieved by interfacing the 100 Base-T Ethernet network 228 to the satellite communications system 241. Inter-computer telecommunications may be readily achieved using a Web browser running on portable computers connected to the audio-video seat distribution units 231, or by integrating a Web browser into the audio-video seat distribution units 231. This is readily achieved by running the Web browser on the microprocessor 272 used in each audio-video seat distribution unit 231. Messages may be drafted using a keyboard 129b connected to the audio-video seat distribution units 231. Touchscreen seat displays 122 may be also readily programmed to initiate actions necessary to initiate videoconferencing, initiate communications, transfer messages, and other required actions.
Certain line replaceable unit types require the assignment of a unique address within the system 100. This is referred to as line replaceable unit addressing. Line replaceable units that require unique addresses are the PESC-A primary/secondary 224a, PESC-V 224b, video reproducers 227, area distribution box 217, tapping unit 261, and primary access terminal 225. Each of these line replaceable unit types is assigned a unique address during system installation.
Referring again to FIG. 2, it depicts the architecture of the system 100, and its operation will now be described with reference to this figure. The architecture of the system 100 is centered on RF signal distribution of video, audio, and data from the head end equipment 200 to the seat group equipment 220. Video and audio information is modulated onto an RF carrier in the head end equipment 200 via the video modulator 212a and passenger entertainment system controllers 224a, 224b respectively prior to distribution throughout the aircraft 111. Referring again to FIG. 5, it shows a functional block diagram of the signal flow to and from the head end equipment 200.
The source of video may be from video cassette players 227, landscape cameras 213, and the TV video output by the media server 211, or the passenger video information system 214. The source of audio information may be from audio reproducers 223, audio from video cassette players 227, or audio from the passenger address system 222.
The system 100 uses the RF network 215 to distribute all audio and video programming from the head end equipment 200 to the seats 123. The RF network 215 is also used to support downloading of video games and other applications to the seats 123.
The RF network 215 operates over a nominal frequency range from 44 to 550 MHz. The system 100 provides up to 48 6-MHz wide channels for distribution of video information. One of these channels may be used for the distribution of video games and other application software to the seats 123. The video channels are allocated to a bandwidth from 61.25 through 242.6 MHz (nominal). The frequency range from 108 to 137 MHz (nominal) remains unused.
The frequency range from 300 to 550 MHz is used for distribution of audio information to the seats 123. One embodiment of the system 100 uses pulse code modulation to transmit the audio data over the allocated frequency range. This supports a maximum of 88 mono audio channels (83 entertainment and five PA). The allocation of these channels to audio reproducers 223 (entertainment audio), video reproducers 227 (movie audio tracks) and to passenger address lines (PA audio) is database configurable and may be defined by the user. It is also possible to read and set RF levels for the passenger entertainment system controllers 224a, 224b and area distribution box 217 by means of an off-line maintenance program.
The system 100 uses the ARCNET network 216 as the major data communications path between major components. The ARCNET network 216 interconnects the following components: cabin file server 268, primary access terminal 225, PESC-A (primary) 224a, PESC-A (secondary) 224a, PESC-V 224b, and all the area distribution boxes 217.
The ARCNET network 216 is implemented as two physical networks, with the primary PESC-A 224a serving as a bridge/router between the two. Any device on ARCNET 1 216 is addressable by any device on ARCNET 2 216 and vice versa. In addition to the primary PESC-A 224a, ARCNET 1 216 connects the following components: cabin file server 268, and a maximum of eight area distribution boxes 217. In addition to the primary PESC-A 224a, ARCNET 2 224b connects the following components: a maximum of one PESC-V 224b, primary access terminal 225, and the secondary PESC-A 224a. Both ARCNET subnetworks (ARCNET 1, ARCNET 2) 216 operate at a data transmission speed of 1.25 Mbps.
System Operation
A preferred embodiment of the in-flight entertainment system 100 operates in three possible states. These states include 1) a configuration state, 2) a ground maintenance state, and 3) an entertainment state. In the configuration state, aircraft-installation-unique parameters are initialized and modified. The configuration state is initiated by an operator. The configuration state is entered and exited without the use of additional or modified system hardware. In the ground maintenance state, the system 100 performs self-diagnostics to determine system failures. The ground maintenance state is initiated by an operator. The ground maintenance state is entered and exited without the use of additional or modified system hardware. The entertainment state is the primary state of the system 100 and is initiated by the operator. The system 100 provides several entertainment modes as defined below. The system 100 is modular in design so any one or all modes may exist simultaneously depending on the configuration of the system 100. The system 100 is configurable so that each zone (first class, business class, coach class, for example) of the aircraft 111 can operate in a different entertainment mode. In the entertainment state, the passenger address functions and passenger service functions are independent of the mode of operation.
The entertainment modes include an overhead video mode, a distributed video mode, and an interactive video mode. In the overhead video mode, video is displayed in the aircraft 111 on the overhead monitors 263. Different video entertainment is possible for different sections of the aircraft. In the distributed video mode, multiple video programs are distributed to the individual passengers of the aircraft at their seat. The passenger selects the video program to view. The quantity of programs available depends upon system configuration. In the interactive video mode, the system 100 provides a selection of features in a graphical user interface (GUI) presentation to the passenger. Depending on the system configuration, the features may include language selection, audio selection, movie selection, video game selection, surveys, and display settings.
The system 100 provides audio programming to the passengers. When in the interactive audio mode of operation, the system 100 displays a list of audio programs available to the passenger on the seat display 122. This list is configurable via an off-line database. The system 100 may be configured to allow selection of an audio program using either the seat display 122 or controls on the passenger control unit 121 depending on the system 100 requirements. The selected audio program is routed to the corresponding passenger headphone 132.
The system 100 provides video programming to all passengers 117. When in the interactive video mode of operation, the system 100 displays a list of video programs available to the passenger on the screen of the seat display unit 122a. This list is specified via an off-line database. The system 100 may be configured to allow selection of a video program using either the seat display 122 or controls on the passenger control unit 121 depending on the system requirements. The selected video program is routed to the corresponding seat display unit 122.
When in the interactive mode of operation, the system 100 provides video games to the passengers 117. The system 100 displays a list of up to 10 video games available to the passenger on the seat display 122. This list is specified via an off-line database. The system 100 may be configured to allow selection of a video game using either the seat display unit 122a or controls on the passenger control unit 121 depending on the system requirements. The selected video game is downloaded to the corresponding passenger seat 123 for viewing on the seat display 122.
The system 100 supports entertainment packaging. An entertainment package is a predetermined set of one or more movie titles and/or game titles with a predetermined amount of game play time. The content of each entertainment package is specified via an off-line database. The system 100 requires payment for entertainment packages according to a unit price and a price policy. The system 100 displays a list of available packages on the screen the seat display unit 122a. Each package in this list must have an associated date range that specifies when the package is available. Up to four packages per date range are specified via an off-line database. The displayed list only contains those packages where the date of the current flight falls within the date range specified for that particular package.
As is shown in FIG. 7, for example, if configured with a personal video player 128 that interfaces to the audio-video unit 231 by way of a personal video player interface 128a, the system 100 controls the personal video player 128 via controls at the seat display 122. The system 100 provides commands to the personal video player 128 to play, rewind, fast forward, pause, stop and eject a tape.
The system 100 provides the ability to place telephone calls from each passenger seat 123. In certain configurations, the telephone handset is integrated into the passenger control unit 121. The handset includes a telephone button pad, a microphone, and a speaker. The system 100 prompts for payment when using the telephone service. Payment must be made via a credit card. The system 100 provides the capability to enter the phone number via controls on the passenger control unit 121. The system 100 also displays phone call status on the screen of the seat display 122.
The system 100 provides the ability for passengers 117 to select items from an electronic catalog displayed on the screen of the seat display 122. The catalog may be divided into categories. The system 100 provides the capability to configure the categories and the items via an off-line database tool.
The system 100 provides the capability to display on the screen of the seat display 122 a running tabulation of all expenses, excluding telephone charges, incurred at a seat during the current flight.
The system 100 is configured to allow the flight attendants to display flight information at the primary access terminal 225 from the off-line database or retrieved from other equipment on-board the aircraft 111. If this information is not available, the system 100 is configured to allow information to be entered manually at the operator console as detailed below. Flight information may include the following: aircraft registration number, flight number, departure airport, arrival airport, flight duration, and route type.
System Software
The system 100 employs a software architecture that integrates processing performed by each of the subsystems. The software and firmware comprising the software architecture controls the system, manages the flow of analog and digital audio and video data to passenger consoles and displays, manages the flow of communications data, and manages service and order processing. Various subsystems also have their own software architectures that are integrated into the overall system software architecture.
The system software is designed in a layered fashion, and an application programming interface (API) layer is defined and documented for the primary access terminal 225 and seat display 122. These application programming interfaces are used as the foundation upon which to implement the graphical user interfaces (GUIs). The GUIs are thus implemented in a manner that facilitates rapid prototyping and GUI modification within the constraints of the services provided by the application programming interfaces. The system 100 has a flight attendant GUI at the primary access terminal 225 and passenger GUIs at the seat 123 (seat display unit 122a). Each of these GUIs have the following properties: graphic orientation, clear and directly selectable functions (no "hidden" functions), consistency in screen layout and flow (look and feel), and "lexical" feedback (i.e., visible change on the display) for every user action.
Many of the line replaceable units in the system 100 are software loadable in that the contents of the line replaceable unit's memory can be overwritten from a source external to the line replaceable unit. The system 100 provides a facility for loading software into all line replaceable units. The software loading facility ensures that any attempt to load software into a line replaceable unit is appropriate for that type of line replaceable unit. The software loading function indicates when a line replaceable unit can and can not be loaded, the status of software load attempts as either successful or unsuccessful, and an estimate of the time required to load the software into the line replaceable unit. The software load facility employs a high speed download link to the line replaceable units, when appropriate, in order to minimize the time required to load software into a line replaceable unit. The software loading facility precludes load attempts when the aircraft 111 is in flight.
Software and firmware employed in the present invention permits credit card processing, data collection processing, Internet processing for each passenger, gambling for each passenger, duty free ordering, intra-cabin audio communication between passengers, and display of flight information. The system software includes parallel telephone system software, landscape camera management software, PESC system software, passenger address override software, passenger address emergency software, monetary transaction processing software, language support software, built-in-test software, user request processing software, database management software using a distributed configuration database, software for implementing interactive access, software for processing passenger orders, software for updating inventories, application software, media file encryption software, area distribution box software, audio-video unit programming software, telephone operation software, gatelink node and software, product service pricing software, passenger survey software, transaction reporting software, automatic seat availability reporting software, and video conferencing and data communications software.
Object oriented programming (OOP) is employed in the software and firmware used in the system 100. A preferred embodiment of the software used in the system 100 is written using JAVA, C, or the C++ language and utilizes object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be,applied to a passenger entertainment system such that a set of OOP classes and objects for the messaging interface can be provided.
The system 100 is constructed in a modular framework, and is designed to expand to support various aircraft 111 configurations. System configuration information is defined in an off-line configurable database. System configuration support tools provide the capability to generate database information, which is downloaded to the appropriate system line replaceable units. The line replaceable units store database information in non-volatile memory, and revert to default database information when they detect newly downloaded data inconsistent with the physical aircraft configuration, or when a database download is unsuccessful.
Aircraft configuration data requires modification only when the aircraft configuration changes, or when the line replaceable unit in which it resides has been replaced or corrupted. Aircraft configuration data at a minimum includes the following fields: Aircraft type, ACS database configuration ID, Overhead system type, Seat configuration, tapping unit and Overhead monitor assignments, Reading/Call light assignment, Master call lamps/attendant chimes data, RF level gain values, Internal ARCNET termination, PA/VA headphone, APAX-140-to-TES interface assignments, PESC audio channel assignments, VMOD video channel assignments, ADB phone capability, ADB discretes, PA zone, display controller, configuration of passenger entertainment system controllers 224, interactive/distributed video only (DVO), PAT/CFS options, and movie preview.
The entertainment system data define specific parameters for the available system features. It is necessary to reload the database whenever it is determined the associated features are to be changed. Entertainment system data, at a minimum, includes the following fields: Entertainment system data configuration ID, Video games, Movies, Pay/Free entertainment per zone, Passenger surveys per zone, General service/Duty free zones, seat display unit entertainment titles per route type, Currency exchange rates, primary access terminal display currency, Airline name, flight number, arrival/departure city, flight duration, and route type, Movie cycle attributes, Video announcements, video reproducer entertainment assignments, Product data, Credit card data, and Entertainment package details.
FIG. 9 is a block diagram of the ACS tool and shows its functionality. The ACS tool provides hardware, user, software, and database interfaces as described below. The ACS tool supports the following hardware interfaces. The ACS tool supports a standard 101 key PC keyboard for the PC application and the primary access terminal standard keyboard. The ACS tool supports a standard Microsoft mouse, or equivalent, for the PC application. The off-line configuration database tools support generation of all downloadable configuration data. Airplane Configuration System (ACS) tools are used to generate aircraft configuration system data. The ACS tool is executable on an IBM-compatible 486 PC running Microsoft Windows 3.1 or a later version. The ACS tool produces downloadable data file on media that may be directly input via the primary access terminal 225 or a maintenance PC connected to a test port.
The ACS tool provides the following user interfaces. In general, the graphical user interface includes a series of screens with buttons and other controls and indicators. Screens, buttons, other controls, and indicators follow the general conventions for Windows screens as described in The Windows Interface Guidelines for Software Design. The GUI provides user access to the ACS tool's functions via keyboard and mouse inputs.
The ACS tool provides the functionality to maintain multiple configurations for all the aircraft types the TES 100 and APAX-150 systems support. The ACS tool is a single executable, regardless of aircraft type. This single executable utilizes a configuration file for pre-initialization of aircraft configuration data (.CFG). It also utilizes a Windows .INI file for ACS tool-specific parameter definition.
The ACS tool generates configuration data files that can be distributed to the TES line replaceable units. The applicable data files may be downloaded upon operator request via the MAINT Utility.
The ACS tool provides the ability to create and change an aircraft configuration by the use of menus, list boxes, data entry screens, utilities, error messages and help functions. An aircraft configuration defines what TES devices are installed on the aircraft, where those devices are located and what functions those devices perform. The PESC-A 224a, PESC-V 224b, area distribution box 217, ADB local area controller (ALAC) (not shown), AVU/SEB 231, and overhead electronic box (not shown) line replaceable units, as well as the primary access terminal 225 and cabin file server 268, the MAINT and Config/Status utilities all require knowledge of the aircraft configuration. The database created by the ACS tool that can be downloaded into the PESC-A 224a and contains the configuration data needed by the PESC-A 224a, PESC-V 224b, area distribution boxes 217, ALACs, AVUs/SEBs 231, tapping units 261, and overhead electronics boxes. The ACS tool has the capability to create separate configuration data files for the primary access terminal 225 and cabin file server 268 and the MAINT and Config/Status Utilities.
The ACS tool also has the capability to create downloadable data files that can be loaded directly into the area distribution boxes 217. The data files that the ACS tool creates for the primary access terminal 225 and cabin file server 268 are able to be imported by the primary access terminal 225 and cabin file server 268 into its database. These files provide information about the aircraft 111 so that interactive services can be provided to the passengers.
The ACS tool creates a downloadable data file (.INT File) that is able to be used by the MAINT and Config/Status Utilities to determine system-wide LRU status, software configuration, and diagnostic information. These utilities require system configuration definition data.
The ACS tool provides a configuration editor function that allows the user to modify an existing aircraft configuration or generate a new aircraft configuration by entering values into displayed data fields or by selecting values from drop-down menus, if applicable. The configuration editor allows the user to import, or copy, selected aircraft configuration data from one configuration to another. "cut" and "paste" operations are provided so that similar or identical configuration entries may be copied from one configuration to another. The configuration editor validates the value entered for each data field. The ACS tool generates error messages when the user enters invalid data in dialog boxes. The configuration editor provides the capability to save a configuration to disk. The ACS tool provides the capability to initiate a configuration validation test. If the validation test finds errors with the data, a detailed error report is displayed. The ACS tool allows a configuration that is INVALID to be saved to disk (.CFG), but the ACS tool does not allow a downloadable database to be built from a configuration that is INVALID.
A configuration data builder function of the ACS tool System provides the capability to generate downloadable configuration data files for use with the system 100 and peripherals. When the user attempts to create the downloadable data files, the ACS tool performs a validation check and tests for limits.
A reports generator function of the ACS tool provides the capability to generate, for a specified configuration, a validation report and a configuration report. A validation report contains information defining the validity of a specified configuration, including appropriate messages for entries in the configuration which are currently invalid. A validation report may be generated upon user request or upon request to generate download files. The configuration report provides a detailed report which describes the current configuration. The configuration report is generated only when a request to generate download files is made and the current configuration is determined to be valid.
A create floppy disk function of the ACS tool provides the capability to generate a disk that contains all files generated by the ACS tool. These downloadable configuration files are loaded to the various line replaceable units in the system. The diskette also contains a setup utility that can be run from the primary access terminal 225 to reinitialize the database on the cabin file server 268 with a new configuration.
Each line replaceable unit that uses the database contains electrically erasable programmable read-only memory (EEPROM) which are "downloaded" with the database. This means that the database which contains information about the airplane configuration can be passed to each controller (i.e., downloaded). These controllers include the PESC-A 224a, PESC-V 224b, area distribution boxes 217, ALACs, SEBs (AVUs) and overhead electronic boxes.
Many different configurations can be stored for an aircraft 111. Each contains slightly different options, such as the seating configuration. The ACS tool enables the different configurations, after established, to be recalled season after season by allowing the user to select an existing configuration to edit when a change is made to the aircraft 111 during re-configuration. The ACS tool allows the user to create a new configuration that can subsequently be saved.
Presented below is software design information for a set of programs common to the cabin file server 268 and primary access terminal 225 LRUs of the system 100. The software forms the fundamental mechanism of moving application information through the system 100. The following description will be readily understood to those familiar with C++ and the Windows NT development environment. Reference is made to FIG. 10, which illustrates a block diagram of the software architecture in accordance with a preferred embodiment. The architecture facilitates a control center runtime that is implemented in C++ for the primary access terminal 225 and the cabin file server 268 of an in-flight entertainment system 100.
As for the primary access terminal 225, an uninterruptable power supply 400 is used to provide power to the primary access terminal 225 and is in communication with the programs in the software architecture using a serial NT driver 401. A PI board 402 provides a communication port for the magnetic card reader and video tuner and interfaces to the serial NT driver 401. The tuner 235 in the audio-video unit 231 also interfaces to the serial NT driver 401. The video camera 267 coupled to the audio-video unit 231 is also coupled to the serial NT driver 401. The serial NT driver 401 also interfaces with the PESC-V 224b. An ARCNET driver 408 interfaces to the ARCNET network 216.
The serial NT driver 401 and ARCNET driver 408 interface to an I/O handler 403 to provide selective communications between a message processor 404 and the various communications devices (400, 402, 235, and 267). The message processor 404 is responsible for processing messages and putting them into a common format for use by a transaction dispatcher 421. A pipe processor 405 is utilized to move common format messages from the message processor 404 through a primary access terminal network addressing unit (NAU) program 409 and through another pipe processor 420 into the transaction dispatcher 421. The message processor 404 also interfaces to a system monitor 412 that is coupled to a watch dog driver 410 that is used to automatically reset the primary access terminal 225 if no activity is detected in a given time interval, and a power down module 414 that performs graceful power down of the primary access terminal 225. The transaction dispatcher 421 interfaces with a cabin application programming interface (CAPI) library DLL 427 by means of a CAPI message service handler 422.
A touch panel NT driver 424 interfaces with runtime utilities 425 and a graphical user interface (GUI) 426 to provide operator control over the software. The runtime utilities 425 and graphical user interface 426 interface to the CAPI library DLL 427, a Reports DLL 429 and a video driver DLL and system (SYS) 430.
The Ethernet network 228 is used for messaging between the primary access terminal 225 and the cabin file server 268. The Ethernet network 228 interfaces to the primary access terminal network addressing unit 409, the transaction dispatcher 421, the CAPI Library DLL 427, and the Reports DLL 429.
As for the cabin file server 268, an uninterruptible power supply 440 is used to provide power to the cabin file server 268 and is in communication with the programs in the software architecture using a serial NT driver 447. The serial NT driver 447 is also coupled to an auxiliary port 441 and the video reproducers 227. An ARINC-429 NT driver 448 is coupled to the satellite broadcast receiver 240 and the satellite communication system 241. An ARCNET driver 450 interfaces to the ARCNET network 216. A high-speed data link (HSDL) NT driver 449 interfaces to the video modulator 212a.
The serial NT driver 447, ARCNET driver 450 and ARINC-429 NT driver 448 interface to an I/O handler 451 to provide selective communications between a message processor 452 and the various communications devices (440, 441, 227, 216, 212a). The message processor 452 is responsible for processing messages and putting them into a common format for use by a transaction dispatcher 473. A pipe processor 456 is utilized to move common format messages from the message processor 452 through various network addressing units 461-465 and through another pipe processor 470 into the transaction dispatcher 473. The network addressing units 461-465 include a test port NAU program 461, a.VCP NAU program 462, a backbone NAU program 463, an ARINC-485 NAU program 464 and a seat NAU program 465.
The message processor 452 also interfaces to a system monitor 454 that is coupled to a watch dog driver 446 that is used to automatically reset the cabin file server 268 if no activity is detected in a given time interval, and a power down module 455 that performs graceful power down of the cabin file server 268. Each of the network addressing units 461-465 is coupled to the system monitor 454. The system monitor 454 is also coupled to the transaction dispatcher 473. The transaction dispatcher 473 interfaces with CAPI services 477 that are called from the CAPI message service handler 422 in the primary access terminal 225. The transaction dispatcher 473 also interfaces to the primary access terminal 225 by way of the Ethernet network 228.
Cabin Application Programming Interface (CAPI) calls 476 are used to communicate information (as shown by arrow 475) between various cabin services 477 and the primary access terminal 225 via the Ethernet network 228 and various service interfaces. The separate communication link for the crystal reports DLL 429 is enabled through object oriented data base calls 434 to the Standard Query Language (SQL) server 492. The cabin services 477 include CAPI calls 476 with predefined formats for various services. The services include in-flight entertainment (IFE) control 478, movie cycle 479,video services 480, video announcement 481, game rental 482, movie sales 483, catalog sales 484, drink sales 485, duty-free sales 486, landscape camera 487, media server 488, Internet 489 and teleconferencing 490. Each of these services are controlled by way of the SQL server 492 which is coupled to a relational database 493 and are configured by means of runtime database utilities 491. The various services 478-490 are routed by way of the pipe processor 474 to the transaction dispatcher 473, through the associated NAU program 461-465, the message processor 452, and the relevant driver 447, 448, 449, 450, to the appropriate device 440, 441, 227, 240, 241, 216, 212b.
More specifically, the cabin file server 268 and primary access terminal 225 software comprises a control center common executive that includes the message processors 404 and 452, transaction dispatchers 421 and 473, and network addressable unit (NAU) programs 409, 461-465 that together manage communications flow among line replaceable units and applications, and record or log system irregularities for subsequent analysis. The control center common executive efficiently moves information from source to destination with a minimum of system resources, provides real-time expense or over-handling, provides a means to allow communications to originate at any source, including periodic status messages such as those to the primary access terminal 225 from the video players 227, and provides a consistent method of handling existing line replaceable units while allowing for additional line replaceable units. In addition, the common executive stores drivers that are not already part of the operating system. The system monitors 412 and 454 are provided to launch all application programs and shut them down as needed.
Each line replaceable unit type that communicates with the control center common executive has a corresponding network addressable unit (NAU) program 461-465. For example, any seat 123 that must communicate routes to the seat NAU program 465, any video cassette player 227 routes to the VCP NAU program 461, etc. Each time a line replaceable unit communicates with an NAU program 461-465, a virtual LRU is used to maintain cohesion between the application (service) and the device (driver). The virtual LRU is a state machine, one for each physical device associated to this NAU type. For example, if two seats "001A" and "021J" are communicating with the control center common executive, two virtual seat LRUs exist within the seat NAU program 465. It is within this state machine that the actual conversion between IFE-message and native messages takes place. Status and other information regarding each line replaceable unit are maintained in the VLRU.
In addition to the device-initiated VLRUs, several VLRUs are provided whose function is to maintain the status of related devices. For example, the primary access terminal 225 must constantly monitor the status of the printer, so a VLRU for the printer is used in primary access terminal NAU program 409. Similarly, the seats must be kept apprised of changes to the states of the system, so a VLRU for broadcasting this information is created in the seat NAU program 465.
Primary Access Terminal
The primary access terminal executive extension set of routines that, together with the common executive software, form the generic application for the primary access terminal 225.
The message processor 404 is shown in FIG. 11, which illustrates the message processor function and data paths. The message processor 404 interfaces a plurality of device drivers 531, including an ARCNET driver 531a and a serial NT driver 531b. The device drivers 531 are coupled to a plurality of device handlers 532. The device handlers 532 include MessageFromDrivers( ) 532a and MessageToDrivers( ) 532b. The MessageToDrivers( ) 532b associated with the serial NT driver 531b is coupled to a ToDriverQueue 532c, and the MessageToDrivers( ) 532b associated with the serial NT driver 531a is coupled to an ArcnetHandler FIFO 532d.
A NAU server 535 is provided that includes two named pipes (or communication lines) having a plurality of InPipeProcessors( ) 535a and OutPipeProcessors( ) 535b. The InPipeProcessors( ) 535a and OutPipeProcessors( ) 535b are coupled by way of a plurality of pipes 537a to NAU clients 533. The respective InPipeProcessors( ) 535a are coupled to a corresponding plurality of NAU out FIFO queues 538.
A plurality of routers 537 coupled the device handlers 532 to the NAU server 535. The plurality of routers 537 include the AddMessageToPipeProcessor( ) 536, an AddMessageToOutQueue( ) 539a, and a MessageToHander( ) 539b. The MessageFromDrivers( ) 532a of the device handlers 532 are coupled to the MessageToPipeProcessor( ) 536. The InPipeProcessors( ) 535a are coupled to the MessageToHander( ) 539b. The AddMessageToPipeProcessor( ) 536 and the MessageToHander( ) 539b are coupled to the LRU table 534.
The primary duty of the message processor 404 is to move communications between various I/O devices and their appropriate logical devices, the network addressable unit (NAU) 533. This duty is assigned to the message processor 404 instead of residing with the NAUs 533 because there is no one-to-one correspondence between the NAUs 533 and the device drivers 531. For example, several devices' communications may arrive via an ARCNET driver 531a (i.e., passenger entertainment system controller 224, seat 123, area distribution box 217, and AVU/SEB 231).
To support this duty, the message processor 404 includes the following sub-functions. Using an I/O handler 532, the message processor 404 receives messages from the device drivers 531. Each message, regardless of original format must contain a destination or network address for routing purposes. Using this network address coupled with the device type (i.e., ARCNET, RS-232, etc.) the network address determines the appropriate NAU via a look-up table 534 and routes the message to that NAU. Since communications from the devices employ a variety of protocols, they are bundled into an IFE-message upon receipt from the physical device, and unbundled after receipt from the application services (via the NAUs). In this way, the message processor 404 acts as a system translator. Using named pipes 535a and 535b, the message processor 404 receives messages from the NAUs. The message processor 404 determines the appropriate device driver 531 and network address and routes the message to the device. As NAUs demand, the message processor 404 creates two named pipes 535a (input) and 535b (output) for each NAU, maintaining the table 534 of pipe names (or handles) and their corresponding NAU IDs. The message processor 404 logs invalid destination address errors. The message processor 404 registers with the system monitor 412 for coordinated system operation.
The detailed design of the Message Processor 404 will now be discussed. MP.EXE is the Message Processor and comprises the following files:
ARCNTCLS.CPP The ARCNET interface Class
ARCSMCLS.CPP The ARCNET Simulator Class for testing
DVCHNDLR.CPP The Device Handler Class
MSSGPRCS.CPP The Message Processor Class and Main( )
PPPRCSSR.CPP The Pipe Processor Class
SRLCLASS.CPP The Serial Driver Class
WNRTTLCL.CPP The WinRTUtil Class
ARCNTDRV.RT The ARCNET User-side Driver
A Main( ) function used in the message processor 404 initializes its processing threads using StartHandlers( ) and PipeProcessorClass::StartNAUThread( ) functions. These threads operate continuously to move data from source to destination. Main( ) also registers its existence with the system monitor 412 program (using MessageProcessorClass:Register( ) and waits for a shutdown signal from the system monitor 412, after which it performs an orderly shutdown of all its threads.
For each device driver 531, a Device Handler Class member is created. ArcnetClass defines Device Handler routines for the ARCNET driver 531a. The ARCNET driver 531a is a user side driver that performs the actual I/O with the ARCNET hardware. Because it is loaded along with the rest of the message processor 404, its interface is via Queue::Put( ) and Queue::Get( ) functions. SerialIOClass defines the Device Handler routines 532 for a serial device driver 531b. The serial driver 531b is a standard Windows NT Serial Device Driver. ReadFile( ) and WRiteFile( ) are the functions used to communicate with it. All Device Handlers 532 in the Message Processor 404 provide the following capability. Two Input-Driven threads are provided to control I/O. The names vary from handler to handler, but these functions launch the infinitely looping threads that constantly wait for data to move between the device (or queue) and the Message Processor 404.
Handler Launch Function Name Thread Function
Serial Device SerialInputInterface( ) MessageFromDriver( )
SerialOutputInterface( ) MessageToDriver( )
ARCNET MessageToHandlerThreadProc( ) MessageFromDriver( )
Device MessageFromHandlerThreadProc( ) MessageToDriver( )
To receive data from the device drivers 531, MessageFromDriver( ) 532a reads a message from its associated driver 531a or 531b using Get( ) or ReadFile( ) functions. It converts the input to a valid IFE Message using functions from the IFE_Message Class or ARCNET_Message Classes. It then calls MessageProcessorClass::MessageToPipeProcessor( ) to add the message to the NAU Output Queue 538.
To put data to an Output Queue 538, PutToHandler( ) puts a valid message at the end of the output queue 538 of its associated driver. It does not perform any data conversion.
To output queued qata to a device driver 531, MessageToDriver( ) 532b reads the output FIFO queue 538 and issues the appropriate driver output command. It does not perform any data conversion.
To start the handler to open communications to I/O ports, StartHandler( ) performs the necessary initialization to get queues, pointers and driver connections ready. It then starts-up the two I/O threads (InPipeProcessor( ) 535a and OutPipeProcessor( ) 535b).
The term NAU Server means the set of routines that comprise a "server" for the Network Addressable Unit processes. They are kept in the PipeProcessorClass. Two threads, NAUInThread( ) and NAUOutThread( ) are used to launch the set of I/O threads (InPipeProcessor( ) 535a and OutPipeProcessor( ) 535b) for an as yet unknown NAU process. The first message received from any NAU registers it to this set of threads, causing NAUInThread( ) and NAUOutThread( ) to launch another set, getting ready for the next NAU to speak. In this way, the Message Processor 404 is dynamic and can support different numbers of NAUs as needed.
As for incoming messages, NAUInThread( ) launches the InPipeProcessor( ) thread 535a which continuously receives a message from its input pipe 537b. If the message is meant to be routed to a driver 531, it gets sent to MessageToHandler( ) 539b which places it on the appropriate driver's output queue 532c. If the message is meant to be routed back to an NAU, it is sent instead to AddMessageToOutQueue( ) 539a which performs this routing.
As for outgoing messages, NAUOutThread( ) launches the OutPipeProcessor( ) thread 535b which continuously reads a message from the NAU Out Queue 538 and sends it to its associated NAU process via its named pipe 537a.
Routers 537 are routines that use the LRU table 534 to determine which processing thread needs to process the message. One router 537 is a From-NAU Router. Upon demand, MessageProcessorClass::MessageToHandler( ) 539b moves the message to the appropriate handler. If necessary, it converts the message to the appropriate `native` syntax using functions from IFE_Message Class or ARCNET_Message Class. It calls appropriate PutToHandler( ) function to move the converted message to the handler's output queue 532c. Another router 537 is a From-Device Router. Upon demand, PipeProcessorClass::AddMessageToOutQueue( ) 539a calls the appropriate PutData( ) function to move the message to the NAU's output queue 538.
The LRU table 534 is an internal memory structure which contains an entry for each device in the system 100. It contains sufficient information to translate message addresses from NAU-to-Driver and Driver-to-NAU. Specifically, it contains a physical name, which is the name of each device (e.g., 001A for seat 1A); NAU Type, which is the NAU that processes message (e.g., 7 corresponds to SeatNAU); Network Address (e.g., 4F040552 for seat 1A's seat display unit 122); and Device Handler that indicates which device driver 531 to use (e.g., 0 for ARCNET). This information is kept in a SQL database table which is read during the Message Processor Main( ) initialization via CreateLRUTable( ).
As NAU processes register with the Message Processor 404, their identities are updated in this table via PipeProcessorClass::AddQueueInfoToLookUpTable( ), PipeProcessorClass::AddThreadPointerToLookUpTable( ) and PipeProcessorClass::AddPipeHandleToLookUpTable( ) functions, which include Pipe Handle, Thread Class, Registeree, Queue Class, and Queue Semaphore.
ARCNET is the token-passing network that provides the primary communication link between the Control Center and the backbone of the system 100. The ARCNET driver 408 and 450 is software that provides the interface between the message processor 404 and 452 and the physical ARCNET device interface in the cabin file server 268 or the primary access terminal 225. The desription below is for the primary access terminal 225.
For development efficiency, the ARCNET driver 408 has been attached to the message processor 404. The ARCNET driver 408 performs the following. The ARCNET driver 408 obtains a network address of this line replaceable unit. The ARCNET driver 408 understands network addresses for up to 8 cabin file servers 268 and up to 8 primary access terminals 225, to provide for future growth. The ARCNET driver 408 initializes the ARCNET device to proper configuration. The ARCNET driver 408 signs-on to the network. The ARCNET driver 408 handles network reconfigurations and builds up network map to obtain information for routing messages across multiple ARCNET networks. The ARCNET driver 408 deals with transmit handshaking exceptions that may occur.
The ARCNET device is an SMC COM20020 Universal Local Area Network Controller, the same device as used in all backbone line replaceable units. The network speed is 1.25 Mbps. The 256-byte ARCNET packet (short packet format) is employed. A 2KB internal device RAM is divided into two 256-byte pages: 1 receive buffer and 1 transmit buffer. The rest is currently not used. The line replaceable units are arranged in 2 ARCNET networks 216, one each supported by the primary access terminal 225 and the cabin file servers 268. The ARCNET driver 408 supports this variability.
FIG. 12 illustrates the operational flow of the ARCNET Driver 408. The ARCNET driver 408 is part of MP.EXE and comprises the following source file: ARCNTDRV.RT the ARCNET Driver Source. This file is pre-processed using WinRT (see the make file) to incorporate the necessary additional functionality.
To use the ARCNET driver 408, a user first calls ArcnetDriverClass::StartDriver( ) 601 to initialize this driver and its device and establish queues 607, 606 to be used to transmit and receive data.
FIG. 12 illustrates the operational flow of the ARCNET Driver 408, where StartDriver( ) 601 launches I/O (receive, transmit) threads 604, 605 and an interrupt handler 603, and StopDriver( ) 602 shuts them all down.
A discussion follows regarding the Network Addressable Units (NAU) that reside on the primary access terminal 225. The primary access terminal 225 Network Addressable Unit program 409 function and data paths are shown in FIG. 13. The primary access terminal NAU 409 provides the interface between the PAT GUI 426 or the Application Services and the unique devices attached to the Primary Access Terminal 225. Each of these devices is controlled via its own Virtual LRU (VLRU) set of functions. In addition, most of these devices communicate via the same I/O channel, the PI Mux 402. The VLRUs are listed below.
Audio Tuner VLRU The Audio Tuner VLRU allows control of audio
channel selections for flight attendant previewing
via the PAT GUI.
Card Reader VLRU The Card Reader VLRU collects and forwards data
from the card reader, to be used by the Access
Functions and Sales Services' Functions.
GUI Monitor VLRU No LRU is actually associated with this VLRU. The
GUI Monitor VLRU's duty is to start the GUI and
end the GUI as appropriate.
PAT VLRU The PAT VLRU responds to loopback messages
from the CFS TestPort NAU via Ethernet for BIT
functionality. It logs communication failures
between the PAT and the CFS. It controls the BITE
and COMM LEDs on the front of the PAT, lighting
them to indicate failures.
Printer VLRU The Printer VLRU periodically queries the Control
Center Printer for its status and provide this status
as an unsolicited message to the PAT GUI.
PAT.EXE contains the primary access terminal NAU program 409. In general, a network addressable unit program must first construct a NAUDispatch object and then construct one or more NAU objects, one for each virtual LRU (VLRU) that it supports. Certain VLRU-specific functions (such as NAU::StartItUp( )) must be created for each VLRU type. The primary access terminal NAU program 409 includes the following primary components:
PAT.CPP The Main( ) Program
PDSPATCH.CPP The NAU Dispatcher
GUMNITOR.CPP The GUI Monitor VLRU Class
CRDRDRVL.CPP The Card Reader VLRU Class
TUNRVLRU.CPP The Audio Tuner VLRU Class
PATVLRU.CPP The PAT main VLRU Class
PRNTRVLR.CPP The Printer VLRU Class
PRNTRSTT.CPP The Printer VLRU's Status Sub-Class
PIMUX.CPP The PI MUX VLRU Class
PINTRFCE.CPP The base class for the Tuner VLRU, Card
Reader VLRU and PAT VLRUs
Main( ) registers with the System Monitor 412 and launches a PIDispatch object to open up communications between the message processor 404 and the transaction dispatcher 421. It calls PIDispatch::startItUp( ) 518 to initialize the VLRUs, one each. It also launches the Session( ) threads 507. Main( ) waits to die, either by receiving a ProcessStop command from System Monitor 412, or else it sleeps forever until interrupted. It calls shutItDown( ) 518a to close all the VLRUs down with a SubProcessStop command and exit gracefully.
Referring to FIG. 13, the message processor (MP) 404 and the transaction dispatcher (TD) 421 communicate by way of a Network Addressable Unit (NAU) dispatcher 500 that comprises NAUDispatch. NAUDispatch is a base class that contains the code necessary to open a framework for a new Network Addressable Unit. It contains the following global objects:
Qpair MP_Fifos Qpair MP_Fifos keep track of traffic between the NAU and the Message Processor. The NAU Object Ids are stored in these two queues.
Qpair TD_Fifos Qpair TD_Fifos keep track of traffic between the NAU and the Transaction Dispatcher. The NAU Object Ids are stored in these two queues.
Queue RunImmediateFifo The Queue RunImmediateFifo keeps track of NAUs which require immediate attention, regardless of outside messages.
Queue TimedOutFifo The Queue TimedOutFifo allows an NAU VLRU to time out, thus giving processing over to others until the time out occurs.
Queue DestructFifo The Queue DestructFifo is used by shutItDown( ) to cause each VLRU to shut down.
Queue AuxFifo The Queue AuxFifo is used in Session.cpp of Seat.exe only.
Only the first constructor call per program uses InitNAUDispatch( ) to start all session threads 507 (one for each VLRU plus 2 up to a maximum of 14) for the NAU. It opens Named Pipes 519a and 519b between the message processor 404 and the transaction dispatcher 421 Fifos 501, 502 and the session threads 507 to manage I/O between them. It then initiates threads 511-514 that manage input and output between the message processor 404 and the transaction dispatcher 421 (MPLeft( ) 511, MPRight( ) 512, TDLeft( ) 513 and TDRight( ) 514). Once these initialization steps have been accomplished, the main program constructs NAU state machine objects 510 (also called VLRUs).
In addition, this class contains the following utility functions:
AddNAU( ) This routine adds a VLRU object ID to an array for later lookup (to send it a message or shut it down, for example).
AddNAUMap( ) This routine adds a VLRU object ID and its text name to an array for later lookup.
FindNAU( ) Returns the VLRU object ID based on the text name passed to it.
GetNthNAU( ) Returns the VLRU object ID in the `nth` position in the array.
GetNumberOfNAUs( ) Returns the number of VLRU object Ids in the array.
RemoveNAUFromMap( ) This routine removes a VLRU object ID and its text name from the array.
SendToAllVLRUs( ) This routine sends the same message to all VLRUs via their MPRight.queue, as if it was sent via the MP. It uses MP logic as a short-cut, rather than developing more routines for intra-process communication.
SendToOneVLRU( ) This routine sends a message to a single VLRU via its MPRight.queue, as if it was sent via the MP. It uses MP logic as a short-cut, rather than developing more routines for intra-process communication.
shutItdown( ) This routine is used to turn off all VLRUs, typically called because a message was sent by the System Monitor to the main( ) routine to do so.
startItUp( ) The startItUp( ) routine is used to start up all VLRUs.
The MPRight( ) Thread routine 512 continuously waits for incoming messages from the Message Processor 404 via the Named Pipe 519a. The term `right` indicates that the data moves from left-to-right in FIG. 13.
The MPRight( ) Thread 512 uses the IFE Message Class routines to deal with the data received. Once a message is received using IFE_Message::GetData( ), it looks up the appropriate VLRU name (IFE_Message::GetAddress( )) and uses it to look up the appropriate NAU object ID (FindNAU( )). Then it stores the incoming message in that NAU's MPQueue.Right queue 516a and places the NAU's ID into the Dispatcher's MP_Fifos.Right queue (MPPutNAU( )) 501. This ID is then used by the Session threads 507 that are constantly running to decide which VLRU needs to be processed.
A "hook" function pointer is provided with this thread to allow applications to pre-process the message prior to MPRight( )'s storage. If no hook function is defined, this is ignored.
The MPLeft( ) Thread routine 511 continuously waits for outgoing messages for the Message Processor 404. The term "left" indicates that the data moves from right-to-left in FIG. 13. It uses the IFE Message Class routines to deal with received data.
Using Queue::Get( ) it reads the NAU ID from the MP_Fifos.Left queue 501 then uses that NAU's MPGetNAU( ) function to read the data from its MPQueue.Left 517a, and uses IFE_message::PutData( ) to output the message via the Named Pipe 519b.
The TDLeft( ) Thread 513 behaves like MPRight( ) 512, except that the input comes from the transaction dispatcher 421. The TDRight( ) Thread 514 behaves like MPLeft( ) 511, except that the output goes to the transaction dispatcher 421.
It is sometimes impractical for all VLRUs to be running at once (for example, the seat NAU can contain more than 500 VLRUs), so a maximum number of processing threads has been established as 14. These threads 511-514 each execute a Session( ) function 507 which waits for an event such as input from any source (message processor 404, transaction dispatcher 421, TimeOut, etc.), then determines which VLRU state machine needs to be run to process the message and executes it via the VLRU's StartItUp( ) function 518 called by NAU::EntryPt( ). When EntryPt( ) returns, the message is fully processed, and Session( ) 507 loops to get another one.
The NAU class contains foundation routines and data for any VLRU. It is derived from the timed Callback class and Cobject class (from a C++ Foundation Class Library). The NAU constructor makes an object that has TDQueue and MPQueue, two Qpair objects. These queues are used to store the actual data or IFE_Message needed by the VLRU state machine. The NAU constructor also creates three Event Semaphores, including a RunImmediateEvent semaphore, a TimeOutEvent semaphore and an AuxEvent semaphore, which allow it to control processing via the related Queues in the NAU dispatcher 500. Finally, the NAU constructor creates one mutex, DispatchMutex which coordinates which Session thread can access the data for a given VLRU (in case two threads try to handle messages for the same VLRU).
The StartItUp( ) function 518 (not the same as NAUDispatch:startItUp( )) is called by NAUDispatch::Session( ) when a message is ready to be processed by the VLRU. The StartItUp( ) function 518 typically varies per VLRU, but it's job is to fully process one message received from any source. That may simply mean passing the message on, say from message processor 404 to transaction dispatcher 421 or vice-versa.
Data Movement Functions will now be discussed. The NAU class contains the following members used to move data to and from the message processor 404 and the transaction dispatcher 421:
MPGetNAU( ) Moves data from MPQueue.Left for output to the MP.
MPPutNAU( ) Moves data from input from MP to MPQueue.Right.
NAUGetMP( ) Moves data from MPQueue.Right into StartItUp( ) for processing.
NAUGetTD( ) Moves data from TDQueue.Left into StartItUp( ) for processing.
NAUPutMP( ) Moves data from StartItUp( ) into MPQueue.Left for later output.
NAUPutTD( ) Moves data from StartItUp( ) into TDQueue.Right for later output.
TDGetNAU( ) Moves data from TDQueue.Right for output to the TD.
TDPutNAU( ) Moves data from input from the TD to TDQueue.Left.
Other generic NAU functions include:
bOKToRun( ) Reports to NAU Dispatch whether a VLRU is ready to run. The base version of this always returns TRUE.
EntryPt( ) This launches the VLRU's own StartItUp( ) function.
get_hTimeOutEvent( ) Returns the value of the Time Out Event handle.
get_hVLRUEvents( ) Returns a pointer to all the Event Handles used by this session to get Input.
get_NAUState( ) Returns the current state of the VLRU. If "Active", the VLRU is capable of processing information. If "Inactive", it can't take any messages. For example, if the system is not currently allowing game play, the HSDL VLRU would be "Inactive".
GetBITEStatus( ) This function varies from VLRU to VLRU and is only a placeholder in the base class.
GetMPQPair( ) Returns a pointer to the MP Queues--lets the user bypass the entire message traffic philosophy.
GetName( ) Returns the text name of the current NAU VLRU.
GetTDQPair( ) Returns a pointer to the TD Queues--lets the user bypass the entire message traffic philosophy.
GetUseMessageCounter( ) Retrieves a flag set with SetUseMessageCounter( ).
set_NAUState( ) Used to control the state of the VLRU state machine. Currently, the two states used are "Active" and "Inactive".
SetUseMessageCounter( ) Sets a flag used by NAUDispatch::Session( ). If TRUE, Session( )counts messages for the VLRU.
As discussed above, each of the devices (402, 235, 224, 216) attached to the primary access terminal 225 is controlled via its own virtual LRU (VLRU) or NAU state machine objects 510 functions discussed in conjunction with FIG. 13. Most of these devices communicate via the same I/O channel, a PI Mux.
The tuner VLRU allows control of audio channel selections for flight attendant previewing via the PAT GUI 426. The TunerVLRU class is also a PIInterface class child. Its StartItUp( ) routine handles the SubProcessStart and SubProcessStop commands the same as the others, and then waits for I/O from either the PI Mux or the transaction dispatcher 421. If a message is received from the PI Mux, it forwards it to the transaction dispatcher 421 using NAU::NAUPutTD( ). If a message is received from the message processor 404, it forwards it to the PI Mux using ToMuxPut( ).
The card reader VLRU collects and forwards data from the card reader 121d, to be used by the access functions and sales services' functions. Based on the PIInterface class, the CardReaderVLRU class is the first actual VLRU created for this NAU. It creates an event called StartEvent which is used by PIMux to coordinate all the other PIInterface VLRUs. Its StartItUp( ) 518 routine loops forever retaining its Session( ) thread. It looks for a SubProcessStart command from the message processor 404 (which is issued by NAUDispatch::startItUp( )) and then waits for StartEvent to trigger before processing any other messages. Once StartEvent has occurred, it can continue processing. If it receives a SubProcessStop message, it terminates. It reads and ignores all other messages from the message processor 404 and the transaction dispatcher 421. Instead, it looks for input via its FromMux semaphore event, which tells when it has received data from the PI Mux. If the PI Mux sends a CardRead command, this VLRU calls MagCardData( ) to process this message. All other messages are returned to the Mux via the ToMux queue. MagCardData( ) converts the data into ASCII and forwards it to the primary access terminal application via the transaction dispatcher 421. Optionally for testing, the Register can be set with the value "DisplayMagCardData" to cause all the card data to be printed to a window at the primary access terminal 225 via stdout.
The GUI Monitor VLRU starts the GUI and ends the GUI as appropriate. No LRU is actually associated with this VLRU. When the GUI_Monitor object is created, it creates an extra event called ServiceAlive. This event is set via ServiceMonitor( ) and tested in StartItUp( ) 518 to know whether Cabin Service is communicating to this NAU. The StartItUp( ) routine is called as soon as all the VLRUs are created via the PIDispatch::startItUp( ) it launches another thread called ServiceMonitor( ) which continuously tries to receive messages from the Cabin Services program via a mail slot. It then uses this as a `heart beat` to know if the application is still alive. If this heart beat fails to occur after having been established, the GUI Monitor terminates the GUI process. If this heart beat is never established, ServiceMonitor( ) simulates one, for test purposes. StartItUp( ) 518 continuously loops and waits for the SubProcessStart command from the message processor 404 (from the PIDispatch::startItUp( ) routine), and then it waits for PIDispatch( ) to tell whether it connected to the database successfully by triggering the ConnectedToService event. Then it attempts to start the CGUI.EXE program. If StartItUp( ) detects that the GUI terminated, it attempts to restart it. StartItUp( ) ignores messages from the transaction dispatcher 421, and only processes the SubProcessStart and Stop commands from the message processor 404.
The Card Reader, Tuner, PI Mux, pri |