File transfer fields

The filetransfer fields are used for reading and writing static content to and from the hardware. It is used for both the media pool and the macro pool.

Lock management

class pyatem.field.LockStateField(raw)

Data from the LKST. This updates the state of the locks.

Offset

Size

Type

Descriptions

0

2

u16

Store id

2

1

bool

State

3

1

?

unknown

After parsing: :ivar store: Store index :ivar state: True if a lock is held

class pyatem.field.LockObtainedField(raw)

Data from the LKOB. This signals that a datastore lock has been successfully obtained for a specific datastore index. Used for data transfers.

Offset

Size

Type

Descriptions

0

2

u16

Store id

2

2

?

Unknown

After parsing: :ivar store: Store index

Data transfer

class pyatem.field.FileTransferDataField(raw)

Data from the FTDa. This is an incoming chunk of data for a running file transfer.

Offset

Size

Type

Descriptions

0

2

u16

Transfer id

2

2

u16

Data length

?

?

bytes

The rest of the packet contains [Data length] bytes of data

After parsing: :ivar transfer: Transfer index :ivar size: Length of the transfer chunk :ivar data: Contents of the transfer chunk

class pyatem.field.FileTransferDataCompleteField(raw)

Data from the FTDC. Sent after pushing a file.

Offset

Size

Type

Descriptions

0

2

u16

Transfer id

2

1

u8

? (always 1)

3

1

u8

? (always 2 or 6)

After parsing: :ivar transfer: Transfer index that has completed

class pyatem.field.FileTransferErrorField(raw)

Data from the FTDE. Something went wrong with a file transfer and it has been aborted.

Offset

Size

Type

Descriptions

0

2

u16

Transfer id

2

1

u8

Error code

3

1

?

unknown

Error code

Description

1

try-again, Try the transfer again

2

not-found, The requested store/slot index doesn’t contain data

5

no-lock, You didn’t obtain the lock before doing the transfer

After parsing: :ivar transfer: Transfer index :ivar status: Status id from the enum above

class pyatem.field.FileTransferContinueDataField(raw)

Data from the FTCD. This is an field telling the client what chunk size to use to continue the upload of data to the hardware.

Offset

Size

Type

Descriptions

0

2

u16

Transfer id

2

4

?

unknown

6

2

u16

Chunk size

8

2

u16

Chunk count

10

2

?

unknown

After parsing: :ivar transfer: Transfer index :ivar size: Length of the transfer chunk :ivar count: Contents of the transfer chunk

Pool settings

class pyatem.field.MediaplayerFileInfoField(raw)

Data from the MPfe. This is the metadata about a single frame slot in the mediaplayer

Offset

Size

Type

Description

0

1

u8

type

1

1

?

unknown

2

2

u16

index

4

1

bool

is used

5

16

char[]

hash

21

2

?

unknown

23

?

string

name of the slot, first byte is number of characters

After parsing:

Variables:
  • index – Slot index

  • type – Slot type, 0=still

  • is_used – Slot contains data

  • hash – 16-byte md5 hash of the slot data

  • name – Name of the content in the slot

class pyatem.field.MacroPropertiesField(raw)

Data from the MPrp. This is the metadata about a stored macro

Offset

Size

Type

Description

0

2

u16

Macro slot index

2

1

bool

is used

3

1

bool

has invalid commands

4

2

u16

Name length

6

2

u16

Description length

8

?

char[]

Name

?

?

char[]

Description

After parsing:

Variables:
  • index – Macro slot index

  • is_used – Slot contains data

  • is_invalid – Slot contains invalid data

  • name – Name of the macro

  • description – Description of the macro