File transfer commands

These are the commands to manage storage locking and file uploads and downloads

Locking

class pyatem.command.LockCommand(store, state)

Implementation of the LOCK command. This requests a new lock, used for data transfers.

Offset

Size

Type

Description

0

1

u16

Store index

2

1

bool

Lock state

3

1

?

unknown

__init__(store, state)
Parameters:
  • store – Store number to get the lock for

  • state – True to request the lock, False to release it

class pyatem.command.PartialLockCommand(store, slot)

Implementation of the PLCK command. This requests a new lock, used for data transfers.

Offset

Size

Type

Description

0

1

u16

Store index

2

2

u16

Slot

4

4

?

unknown

__init__(store, slot)
Parameters:
  • store – Store number to request a lock for

  • slot – Slot number inside the store to get the partial lock for

Transfer

class pyatem.command.TransferDownloadRequestCommand(transfer, store, slot)

Implementation of the FTSU command. This requests download from the switcher to the client.

Offset

Size

Type

Description

0

2

u16

Tranfer id

2

2

u16

Store

4

2

u16

Slot

8

4

u32

unknown

__init__(transfer, store, slot)
Parameters:
  • transfer – Unique transfer number

  • store – Store index

  • slot – Slot index

class pyatem.command.TransferUploadRequestCommand(transfer, store, slot, length, mode)

Implementation of the FTSD command. This requests an upload from the client to the switcher.

Offset

Size

Type

Description

0

2

u16

Tranfer id

2

2

u16

Store

4

2

?

unknown

6

2

u16

Slot

8

2

u32

Data length

12

2

u16

Mode bitfield

14

2

?

unknown

bit

Mode

0

Unknown

1

Write RLE

2

Clear

256

Write uncompressed

512

Pre-erase

__init__(transfer, store, slot, length, mode)
Parameters:
  • transfer – Unique transfer number

  • store – Store index

  • slot – Slot index

  • length

  • mode

class pyatem.command.TransferDataCommand(transfer, data)

Implementation of the FTDa command. This is a chunk of data being sent from the client to the hardware.

Offset

Size

Type

Description

0

2

u16

Tranfer id

2

2

u16

Size

4

?

u8[]

Chunk of data

__init__(transfer, data)
Parameters:
  • transfer – Unique transfer number

  • data – Chunk of data to send

class pyatem.command.TransferAckCommand(transfer, slot)

Implementation of the FTUA command. This is an acknowledgement for FTDa packets.

Offset

Size

Type

Description

0

2

u16

Tranfer id

2

2

u16

Slot

__init__(transfer, slot)
Parameters:
  • transfer – Unique transfer number

  • slot – Slot index

class pyatem.command.TransferFileDataCommand(transfer, hash, name=None, description=None)

Implementation of the FTFD command. This is the file metadata for the uploaded file and should be sent to the hardware after all the FTDa commands have been sent. It contains the name and MD5 hash of the uploaded data.

Offset

Size

Type

Description

0

2

u16

Tranfer id

2

64

str

Name

66

128

str

Description

194

16

u8[]

MD5 hash

210

2

?

unknown

__init__(transfer, hash, name=None, description=None)
Parameters:
  • transfer – Unique transfer number

  • hash – Data MD5 hash

  • name – Filename

  • description – File description