# US 10,120,662 B1 · Protocol compiler to generate flight code and routing tables

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,662 B1
- Document ID: US10120662B1
- Status: Granted
- Kind: B1
- Application number: 15/908,573
- Filed: 2018-02-28
- Granted: 2018-11-06
- Earliest claimed: 2018-02-28
- Assignees: Kitty Hawk Corporation
- Applicants: Kitty Hawk Corporation
- Inventors: Scott Furman; Chad Smith; Brian Robert Viele; Patrick Kim; Allen H. Ibara; Dejapong Suwaratana; Matthew Walker; Gary Stempler
- Web page: https://patentgrep.com/patent/US10120662B1

## CPC

- G06F 8/427: {Parsing}
- G06F 8/41: Compilation
- G06F 8/73: Program documentation
- B64C 13/00: Control systems or transmitting systems for actuating flying-control surfaces, lift-increasing flaps, air brakes, or spoilers
- B64F 5/60: Testing or inspecting aircraft components or systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- B64C: AEROPLANES; HELICOPTERS
- B64F: GROUND OR AIRCRAFT-CARRIER-DECK INSTALLATIONS SPECIALLY ADAPTED FOR USE IN CONNECTION WITH AIRCRAFT; DESIGNING, MANUFACTURING, ASSEMBLING, CLEANING, MAINTAINING OR REPAIRING AIRCRAFT, NOT OTHERWISE PROVIDED FOR; HANDLING, TRANSPORTING, TESTING OR INSPECTING AIRCRAFT COMPONENTS, NOT OTHERWISE PROVIDED FOR

## Abstract

A protocol compiler to generate flight code and routing tables is disclosed. In various embodiments, one or more definition files are received. The one or more definition files are parsed to extract flight control system definition data. A communication topology comprising a set of entities of the flight control system and communication links between said entities is determined based on the flight control system definition data. A set of one or more routing tables is generated programmatically based at least in part on the communication topology and message type definition data. Flight code to implement a flight control system defined at least in part by said flight control system definition data is generating programmatically, based at least in part on the flight control system definition data, including code to route messages according to said one or more routing tables.

## Claims

### Claim 1

A system, comprising:
a memory configured to store one or more definition files; and a processor coupled to the memory and configured to:
parse the one or more definition files to extract flight control system definition data;
determined based on the flight control system definition data a communication topology comprising a set of entities of the flight control system and communication links between said entities;
generate programmatically based at least in part on the communication topology and message type definition data included in the extracted flight control system definition data a set of one or more routing tables including for each of a plurality of message types routing data to route a message of that message type; and
generate programmatically, based at least in part on the flight control system definition data, flight code to implement a flight control system defined at least in part by said flight control system definition data, said flight code including code to route messages according to said one or more routing tables, wherein the flight code compresses the data at least in part by dividing a difference between an actual value and an associated minimum value by an associated resolution.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more definition files comprise one or more markup files.

### Claim 3 (depends on 1)

The system of claim 1, wherein the one or more definition files comprise one or more YAML files.

### Claim 4 (depends on 1)

The system of claim 1, wherein the flight code comprises C code.

### Claim 5 (depends on 1)

The system of claim 1, wherein the flight code includes flight computer code.

### Claim 6 (depends on 1)

The system of claim 1, wherein the flight code includes software code to be implemented by a comprising a serial switch.

### Claim 7 (depends on 1)

The system of claim 1, wherein the processor is further configured to aggregate message type identifiers across definition files and to identify any duplicate message type identifiers.

### Claim 8 (depends on 1)

The system of claim 1, wherein the one or more routing tables include for each of at least a subset of message types an entry indexed by ingress link and message identifier.

### Claim 9 (depends on 8)

The system of claim 8, wherein for a given entry indexed by ingress link and message identifier the one or more routing tables indicate an egress link on which an associated received message is to be forwarded.

### Claim 10 (depends on 1)

The system of claim 1, wherein the flight control system definition data includes for a message type one or both of a minimum value and a maximum value.

### Claim 11 (depends on 10)

The system of claim 10, wherein the processor is further configured to generate message metadata reflecting said one or both of a minimum value and a maximum value.

### Claim 12 (depends on 11)

The system of claim 11, wherein the processor is further configured to generate flight code configured to detect that an instance of a message of the message type includes a data value that falls outside of a range of expected values indicated by said one or both of a minimum value and a maximum value.

### Claim 13 (depends on 1)

The system of claim 1, wherein the flight control system definition data includes for a message type data indicating an expected rate at which messages of the message type will be communicated.

### Claim 14 (depends on 13)

The system of claim 13, wherein the processor is further configured to generate flight code to take responsive action in the event message of message type are communicated other than at the expected rate.

### Claim 15 (depends on 14)

The system of claim 14, wherein the processor is configured to generate flight code to drop messages of the message type that exceed the expected rate.

### Claim 16 (depends on 14)

The system of claim 14, wherein the processor is configured to generate flight code to provide an alert if messages of the message type are observed to arrive at less than the expected rate.

### Claim 17 (depends on 1)

The system of claim 1, wherein the processor is configured to generate flight code to compress and decompress message data to be transmitted via communication links defined in the flight control system definition data, based at least in part on one or more of maximum value, minimum value, and resolution data indicated in the flight control system definition data.

### Claim 18 (depends on 1)

The system of claim 1, wherein the flight control system definition data includes for each of a plurality of messages to be sent over a communication link data indicating a bandwidth required to send the message over the communication link, and wherein the processor is further configured to use said flight control system definition data to determine whether an aggregate bandwidth required by said plurality of messages exceeds an actual capacity of the communication link, as defined in the flight control system definition data.

### Claim 19 (depends on 1)

The system of claim 1, wherein the processor is further configured to generate programmatically based on the flight control system definition data a set of human readable documentation.

### Claim 20 (depends on 1)

The system of claim 1, wherein the processor is further configured to generate programmatically based on the flight control system definition data a self-describing information associated with a data type defined in the flight control system definition data.

### Claim 21

A method, comprising:
receiving one or more definition files;
parsing the one or more definition files to extract flight control system definition data;
determining based on the flight control system definition data a communication topology comprising a set of entities of the flight control system and communication links between said entities;
generating programmatically based at least in part on the communication topology and message type definition data included in the extracted flight control system definition data a set of one or more routing tables including for each of a plurality of message types routing data to route a message of that message type; and
generating programmatically, based at least in part on the flight control system definition data, flight code to implement a flight control system defined at least in part by said flight control system definition data, said flight code including code to route messages according to said one or more routing tables, wherein the flight code compresses the data at least in part by dividing a difference between an actual value and an associated minimum value by an associated resolution.

### Claim 22

A computer program product embodied in a non-transitory computer readable medium, comprising computer instructions for:
receiving one or more definition files;
parsing the one or more definition files to extract flight control system definition data;
determining based on the flight control system definition data a communication topology comprising a set of entities of the flight control system and communication links between said entities;
generating programmatically based at least in part on the communication topology and message type definition data included in the extracted flight control system definition data a set of one or more routing tables including for each of a plurality of message types routing data to route a message of that message type; and
generating programmatically, based at least in part on the flight control system definition data, flight code to implement a flight control system defined at least in part by said flight control system definition data, said flight code including code to route messages according to said one or more routing tables, wherein the flight code compresses the data at least in part by dividing a difference between an actual value and an associated minimum value by an associated resolution.
