Please enable JavaScript to view this site.

The live command table (LIVECMDS) consists of a number of contiguous definitions (LIVECMD), each of which contains all the information about a specific live command.

The location (relative to the file) and size of the table are specified by the LIVEHEADER.ITEMSOFF and LIVEHEADER.ITEMSSIZE fields, respectively.

Live changes command definition

Live commands (LIVECMD) have a common initial part, then a specific data area for each type of element. The common part is as follows:

Name

Offset

Type

Description

CODE

+0

U16

Command code

SIZE

+2

U32

Full size of the command (all fields).

DATA

+6

...

Command-specific data (optional).

The commands currently provided are:

Command 0x0001 - Circuit insertion

Command 0x0002 - Edit circuit

Command 0x0003 - Remove circuit

Command 0x0008 - Structure insertion

Command 0x0009 - Variable insertion

Command 0x0001 - Circuit Insertion

This command allows a circuit to be inserted into a given block, at a certain position. The data of the command, are as follows:

Name

Offset

Type

Description

CODE

+0

U16

0x0001

SIZE

+2

U32

32 + ITEMSSIZE

BLOCKID

+6

U32

container block ID

RUNGID

+10

U32

ID of the affected circuit (goes into Inserting state)

REFID

+14

U32

ID of reference circuit (only for insertion locations #1, otherwise 0)

IFLAGS

+18

U16

Insertion settings:

0x000F = Insertion location:

0x0 = Before the circuit with REFID ID (#1)

0x1 = After the circuit with REFID ID (#1)

0x2 = As the first circuit of the block

0x3 = As the last circuit of the block

FLAGS

+20

U16

Circuit settings:

0x0001 (ignored in live changes)

ITEMSOFF

+22

U32

Offset of the circuit element table (relative to the file)

ITEMSSIZE

+26

U32

Size of the circuit element table

TEXT

+30

U32

Offset circuit description (relative to strings)

WARNING: the circuit element table must still be appended to the live command itself.

Command 0x0002 - Edit Circuit

This command allows to insert a modified circuit, removing the old one, in a given block. The data of the command, are as follows:

Name

Offset

Type

Description

CODE

+0

U16

0x0002

SIZE

+2

U32

32 + ITEMSSIZE

BLOCKID

+6

U32

container block ID

RUNGID

+10

U32

ID of the affected circuit (goes into Inserting state)

REFID

+14

U32

ID of previous circuit to be removed (goes into Dropping state)

 

+18

U16

(reserved)

FLAGS

+20

U16

Circuit settings:

0x0001 (ignored in live changes)

ITEMSOFF

+22

U32

Offset of the circuit element table (relative to the file)

ITEMSSIZE

+26

U32

Size of the circuit element table

TEXT

+30

U32

Offset circuit description (related to strings)

Command 0x0003 - Circuit Removal.

This command allows to remove an existing circuit. The data of the command, are as follows:

Name

Offset

Type

Description

CODE

+0

U16

0x0003

SIZE

+2

U32

14

BLOCKID

+6

U32

Container block ID

RUNGID

+10

U32

ID of the circuit to be removed (goes into Deleting state)

Command 0x0008 - Structure Insertion

This command allows you to create a new structure. The data of the command, are as follows:

Name

Offset

Type

Description

CODE

+0

U16

0x0008

SIZE

+2

U32

68 + (VARSCNT * sizeof(VAR))

TYPEID

+6

U32

User structure type ID

Note: only values 0x0001000-0xFFFFFE; values 0 and 0xFFFFFF are special meaning IDs.

FLAGS

+10

U16

Structure settings:

0x0001 (ignored in live edits)

0x0002 (ignored in live edits)

NAME

+12

U32

Offset structure name (relative to strings).

TEXT

+16

U32

Offset description of structure (relative to strings).

VARSOFF

+20

U32

Variable table offset (file related) (#1).

VARSCNT

+24

U32

Variable table size

SIZE

+28

U32

Size of the structure [bytes].

OBCID

+32

U32

Reference OB class ID (0=none).(#2,#3)

ATTRIB

+36

U32

Structure attributes:

0x000001 Structure referred to OB class (AREFOBC)(#2)

0x000002 Main structure OB class (AISOBC)(#2,#3)

0x000004 Structure with external name (AEXTNAME)

MODIFIER

+40

U32

Offset modifiers of structure (relative to strings).

REFID

+44

U32

Structure type reference ID (#4).

EXTNAME

+48

U32

Offset external structure name (relative to strings).

 

+52

U8[16]

(reserved)

(#1) The structure definition uses a normal variable definition table to define its elements. In this case, variable IDs are meaningless and should always be 0.

(#2) At equal non-0 OBCID value with AREFOBC attribute, there can be only one structure with AISOBC flag, while there can be 0 or more structures without AISOBC attribute.

(#3) A structure is called an "orphan" structure if it is in the condition of AREFOBC attribute set and OBCID field = 0: this condition happens when updating/removing an OB class, there are still variables (or other) referencing it.

(#4) In case of AREFOBC attribute, the REFID field contains the ID of the structure as defined of the source OBB file (0 in case of AISOBC attribute).

Command 0x0009 - Variable insertion.

This command allows you to create a new variable with an initialization value. The data of the command, are as follows:

Name

Offset

Type

Description

CODE

+0

U16

0x0009

SIZE

+2

U32

76

VARID

+6

U32

Unique ID of the user variable.

Note: only values 0x0001000-0xFFFFFE; values 0 and 0xFFFFFF are special meaning IDs.

TYPEID

+10

U32

ID variable data type

Note: can be a default or user-defined type.

FLAGS

+14

U16

Variable settings:

0x0001 (ignored in live edits)

0x0002 (ignored in live edits)

0x0004 (ignored in live edits)

NAME

+16

U32

Offset variable name (relative to strings).

TEXT

+20

U32

Offset description of variable (relative to strings).

BITTEXT

+24

U32

Offset variable bit descriptions, i.e., sequence of strings related to each individual bit separated by the ascii character 0xFF (related to strings).

DIM0

+28

U32

1st array size (0=unspecified)(#1) or index 0 for Alias.

DIM1

+32

U32

2nd array size (0=unspecified)(#1) or index 1 for Alias.

DIM2

+36

U32

3rd array size (0=unspecified)(#1) or index 2 for Alias.

ALIASID

+40

U16

Alias type ID

ALIASBIT

+42

U16

No. of bits per alias (depends on the type of alias ID)

SIZE

+44

U32

Size of variable. If Alias, the size is 0.

VALUE

+48

U32

Offset initial value of variable (relative to strings, 0=no value).

ATTRIB

+52

U32

Variable attributes:

0x000001 Variable can be written (WRITE)

0x000002 The variable can be read (READ)

0x000004 The variable can be forced (FORCE)

0x000008 The variable can be released (RELEASE)

0x000010 The variable is constant (CONST)

0x000020 The variable has no bit access (NOBITS)

MODIFIER

+56

U32

Variable modifier offsets (relative to strings).

DIM0L

+60

U32

Offset label 1st array size (related to strings). (#2)

DIM1L

+64

U32

Offset label 2nd array size (relative to strings). (#2)

DIM2L

+68

U32

Offset label 3rd array size (relative to strings). (#2)

 

+72

U8[16]

(reserved)

(#1) Although ARRAYn fields are 32bit, in the current version of SW the maximum size should still be considered only 16bit (i.e., maximum index 0xFFFF).

(#2) Label means either a variable name (constant value) or the ascii representation of a numeric value, i.e., an offset to the string table .

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC