# Interface: com.pnfsoftware.jeb.core.units.code.simatic.IS7Block

Interface for S7 blocks. Implementations of this interface are private. They represent different concrete implementations of a PLC block. 

 Currently, two implementations exist:
 \- binary format 1 \(little\-endian\): used by Step 7 internally
 \- binary format 2 \(big\-endian\): used during networks communication between a PLC and the Programming Station \(header starts with 'pp'\)

## Method: generateNativeHeaderType
- parameter: `typeman`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.ITypeManager`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`


## Method: generateNativeTrailerType
- parameter: `typeman`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.ITypeManager`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`


## Method: getBlockByte
- parameter: `offset`, type: `int`
- return type: `int`


## Method: getBlockBytes
- return type: `byte[]`


## Method: getBlockFormatVersion
- return type: `int`

Description: Retrieve the block format version.
return: an opaque 16\-bit version number \(for the block format, not the block itself\)

## Method: getBlockSize
- return type: `int`


## Method: getCrc
- return type: `int`


## Method: getInterfaceBytes
- return type: `byte[]`


## Method: getInterfaceModificationTimestamp
- return type: `long`

Description: 
return: in ms since the epoch \(1970/01/01\)

## Method: getInterfaceOffset
- return type: `int`


## Method: getInterfaceSize
- return type: `int`


## Method: getKey
- return type: `int`


## Method: getMetadataAuthorName
- return type: `java.lang.String`


## Method: getMetadataBlockName
- return type: `java.lang.String`


## Method: getMetadataFamilyName
- return type: `java.lang.String`


## Method: getModificationTimestamp
- return type: `long`

Description: 
return: in ms since the epoch \(1970/01/01\)

## Method: getName
- return type: `java.lang.String`

Description: Generate this block's normal name, that is `<BLOCK_TYPE><BLOCK_NUMBER>`. Examples: `OB1`, `FB5`, `DB10`.
return: the normal name

## Method: getNumber
- return type: `int`


## Method: getOtherBytes
- return type: `byte[]`


## Method: getOtherOffset
- return type: `int`


## Method: getOtherSize
- return type: `int`


## Method: getPayloadBytes
- return type: `byte[]`

Description: Retrieve the block's payload. 

 For a logic block, the payload bytes are the MC7 bytecode of the function. For a data block, the payload bytes are the current values of the interface elements \(which may differ from the initial values, if any\).
return: 

## Method: getPayloadOffset
- return type: `int`

Description: Get the payload offset within the block bytes.
return: 

## Method: getPayloadSize
- return type: `int`

Description: Get the payload size in bytes.
return: 

## Method: getSourceLanguage
- return type: `com.pnfsoftware.jeb.core.units.code.simatic.S7.LangType`


## Method: getSourceLanguageId
- return type: `int`


## Method: getTrailerOffset
- return type: `int`

Description: 
return: optional trailer offset, \-1 if there is no trailer

## Method: getType
- return type: `com.pnfsoftware.jeb.core.units.code.simatic.S7.BlockType`


## Method: getTypeId
- return type: `int`


## Method: getVersion
- return type: `int[]`

Description: 
return: two\-element array: {major version \(0..15\), minor version \(0..15\)}

## Method: isInstanceDataBlock
- return type: `boolean`

Description: Determine whether this block is an instance data block. The block type may be `DB` or `DI`.
return: 

