object

# `ccsds_aos_frames(FrameLength,InsertZoneLength,HasOCF,HasFECF)`

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

- `InsertZoneLength` - Length in octets of the optional insert zone when present.

- `HasOCF` - Boolean indicating if frames include the operational control field.

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

CCSDS advanced orbiting systems 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

### `virtual_channel_frame_count/2`

Extracts the virtual channel frame count.

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

### `signaling_field/2`

Extracts the signaling field term.

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

### `insert_zone/2`

Extracts the optional insert zone. Returns `none` when absent.

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

### `update_fecf/2`

Computes the correct AOS 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 AOS transfer frame term:
`domain_error(ccsds_frame_term,Frame)`

### `verify_fecf/1`

True if the AOS 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)