object

# `ccsds_tc_frames(FrameLength,SegmentHeaderLength,HasFECF)`

- `FrameLength` - Fixed telecommand transfer frame length in octets.

- `SegmentHeaderLength` - Length in octets of the optional segment header when present.

- `HasFECF` - Boolean indicating if frames include the frame error control field.

CCSDS telecommand transfer frame parser and generator.

Availability:
`logtalk_load(ccsds_frames(loader))`
Author: Paulo Moura
Version: 1:0:2
Date: 2026-06-24
Compilation flags:
`static, context_switching_calls`
Implements:
`public` ccsds_frame_protocol
Uses:
list
reader
type
Remarks:
(none)
Inherited public predicates:
data_field/2 fecf/2 frame_type/2 generate/2 generate/3 ocf/2 parse/2 spacecraft_id/2 valid/1 version/2 virtual_channel_id/2

## Public predicates

### `bypass_flag/2`

Extracts the bypass flag value.

Compilation flags:
`static`
Template:
`bypass_flag(Frame,Flag)`
Mode and number of proofs:
`bypass_flag(+compound,-integer)` - `one`

### `control_command_flag/2`

Extracts the control command flag value.

Compilation flags:
`static`
Template:
`control_command_flag(Frame,Flag)`
Mode and number of proofs:
`control_command_flag(+compound,-integer)` - `one`

### `sequence_number/2`

Extracts the frame sequence number.

Compilation flags:
`static`
Template:
`sequence_number(Frame,SequenceNumber)`
Mode and number of proofs:
`sequence_number(+compound,-integer)` - `one`

### `segment_header/2`

Extracts the optional segment header. Returns `none` when absent.

Compilation flags:
`static`
Template:
`segment_header(Frame,SegmentHeader)`
Mode and number of proofs:
`segment_header(+compound,-compound)` - `one`

### `update_fecf/2`

Computes the correct telecommand transfer frame FECF for the selected object configuration and returns the corresponding updated frame term.

Compilation flags:
`static`
Template:
`update_fecf(Frame,UpdatedFrame)`
Mode and number of proofs:
`update_fecf(+compound,-compound)` - `one_or_error`
Exceptions:
`Frame` is a variable:
`instantiation_error`
`Frame` is neither a variable nor a valid telecommand transfer frame term:
`domain_error(ccsds_frame_term,Frame)`

### `verify_fecf/1`

True if the telecommand transfer frame term contains the correct FECF for the selected object configuration.

Compilation flags:
`static`
Template:
`verify_fecf(Frame)`
Mode and number of proofs:
`verify_fecf(@compound)` - `zero_or_one`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)