IP Library Granted Patent US 10,503,485
Granted Patent B2
US 10,503,485 · App. 15/827,234 · Granted Dec 10, 2019

Method and system for generating program code

Inventors: Andreas Hoffmann (Paderborn, DE); Wolfgang Trautmann (Paderborn, DE); Frank Luenstroth (Delbrueck, DE); Volker Straetgen (Bad Wuennenberg, DE)
Assignee: dSPACE digital signal processing and control engineering GmbH
G06F8/35G06F8/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,503,485
App. No.
15/827,234
Granted
Dec 10, 2019
Kind
B2
Abstract

A method for generating program code based on one or more blocks of a block diagram in a technical computing environment, an identifier being assigned to at least one, preferably each, of the one or more blocks of the block diagram. A processor opens the block diagram in the model editor, converts the block diagram to an intermediate representation using the code generator, wherein the conversion comprises checking if a replacement condition is fulfilled for a current block in the block diagram. Checking the replacement condition includes verifying that a predefined functional code unit is assigned to the identifier of the current block, in that case changing the block to a placeholder containing input/output-definitions but no functionality. The processor then converts the intermediate representation to program code, the conversion comprising adding a predefined functional code unit from the data definition tool to the definition code corresponding to the placeholder block.

Claims (22)

1. A method for generating program code based on one or more blocks of a block diagram in a technical computing environment, an identifier being assigned to at least one or each of the one or more blocks of the block diagram, the technical computing environment comprising a model editor, a data definition tool and a code generator, the data definition tool comprising at least one functional code unit and a corresponding identifier, the technical computing environment being executed by at least one processor of a host computer, the method comprising:

opening the block diagram in the model editor;

converting the block diagram to an intermediate representation using the code generator;

checking if a replacement condition is fulfilled for a current block in the block diagram, the checking of the replacement condition comprising verifying that a functional code unit is assigned to the identifier of the current block;

replacing the current block by a placeholder containing input/output-definitions but no functionality when the replacement condition is fulfilled; and

converting the intermediate representation to program code and adding the functional code unit assigned to the identifier of the current block from the data definition tool to a definition code that corresponds to the placeholder.

2. The method of claim 1 , wherein the step of checking if a replacement condition is fulfilled additionally comprises determining that a particular operation mode of the code generator is selected.

3. The method of claim 1 , wherein the step of checking if a replacement condition is fulfilled additionally comprises determining that the current block is a block of a predefined type.

4. The method of claim 1 , wherein each block of the one or more blocks being the basis for the generation of program code is subsequently treated as current block for which the replacement condition is checked.

5. The method of claim 1 , wherein the step of opening the block diagram in the model editor comprises adapting the block diagram based on at least one block adaption rule, wherein applying the block adaption rule to a first block comprises replacing the first block by a predefined second block in the block diagram and/or setting at least one property of the first block to a new value.

6. The method of claim 1 , wherein at least one block used in the block diagram is part of a block library, wherein the block library comprises a replacement description, the replacement description comprising a functional code definition assigned to the block and a corresponding interface definition, wherein, prior to generating code, a replacement condition is determined based on the replacement description and a functional code unit is determined based on the functional code definition, and wherein at least the functional code unit is stored in the data definition tool.

7. A method for generating program code based on one or more blocks of a block diagram in a technical computing environment, an identifier being assigned to at least one or each of the one or more blocks of the block diagram, the technical computing environment comprising a model editor, a data definition tool and a code generator, the data definition tool comprising at least one functional code unit and a corresponding identifier, the technical computing environment being executed by at least one processor of a host computer, the method comprising:

opening the block diagram in the model editor;

converting the block diagram to an intermediate representation using the code generator and

checking if an enhancement condition is fulfilled for a current block in the block diagram, wherein checking if the enhancement condition is fulfilled comprises verifying that a functional code unit is assigned to the identifier of the current block;

adding input/output-definitions to the parts of the intermediate representation corresponding to the current block when the enhancement condition is fulfilled; and

converting the intermediate representation to program code and adding the functional code unit from the data definition tool to a definition code corresponding to the input/output-definitions, the definition code being generated in addition to code corresponding to the block functionality.

8. The method of claim 7 , wherein the step of checking if an enhancement condition is fulfilled additionally comprises determining that a particular operation mode of the code generator is selected.

9. The method of claim 7 , wherein the step of checking if an enhancement condition is fulfilled additionally comprises determining that the current block is a block of a predefined type.

10. The method of claim 7 , wherein each block of the one or more blocks being the basis for the generation of program code is subsequently treated as current block for which the enhancement condition is checked.

11. A computer system, comprising: a host computer; and an electronic control unit, the electronic control unit comprising a microcontroller and a nonvolatile memory, the electronic control unit being connected to the host computer via a network interface, the host computer comprising a microprocessor, a random access memory, a graphics controller connected to a display, a serial interface connected to at least one human input device, and a nonvolatile memory, a hard disk, or solid state disk, the nonvolatile memory comprising instructions that, when executed by the microprocessor, cause the host computer to carry out a method according to claim 1 .

12. A non-transitory computer readable medium containing instructions that, when executed by a microprocessor of a computer system, cause the computer system to carry out the method according to claim 1 .

Assignments (2)
CHANGE OF NAME Recorded Jun 7, 2022
From: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GMBH
To: DSPACE GMBH
Reel/Frame 060301/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: HOFFMANN, ANDREAS; TRAUTMANN, WOLFGANG; LUENSTROTH, FRANK; STRAETGEN, VOLKER
To: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GMBH
Reel/Frame 045199/0276 →
Continuity (1)
Related Publication 20190163452A1 · May 30, 2019