protocol

ccsds_time_code_protocol

CCSDS time code parser and generator protocol.

Availability:
logtalk_load(ccsds_time_codes(loader))
Author: Paulo Moura
Version: 1:0:0
Date: 2026-05-08
Compilation flags:
static
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

Public predicates

parse/2

Parses a CCSDS time code from a source term. Supported source terms are file(File), stream(Stream), and bytes(Bytes).

Compilation flags:
static
Template:
parse(Source,TimeCode)
Mode and number of proofs:
parse(+compound,-compound) - one_or_error
Exceptions:
Source is a variable:
instantiation_error
Source is neither a variable nor a valid source:
domain_error(ccsds_time_code_source,Source)
Source contents are not a valid encoding for the selected time code object:
domain_error(ccsds_time_code_byte_sequence,Bytes)

generate/2

Generates a CCSDS time code to a sink term. Supported sink terms are file(File), stream(Stream), and bytes(Bytes).

Compilation flags:
static
Template:
generate(Sink,TimeCode)
Mode and number of proofs:
generate(+compound,+compound) - one_or_error
Exceptions:
Sink is a variable:
instantiation_error
Sink is neither a variable nor a valid sink:
domain_error(ccsds_time_code_sink,Sink)
TimeCode is neither a variable nor a valid time code term for the selected object:
domain_error(ccsds_time_code_term,TimeCode)

generate/3

Generates a list of bytes from a CCSDS time code term with an open tail. Mainly used when generating arbitrary values.

Compilation flags:
static
Template:
generate(TimeCode,Bytes,Tail)
Mode and number of proofs:
generate(+compound,-list(byte),--variable) - one_or_error
Exceptions:
TimeCode is a variable:
instantiation_error
TimeCode is neither a variable nor a valid time code term for the selected object:
domain_error(ccsds_time_code_term,TimeCode)

valid/1

True if the argument is a valid time code term for the selected object.

Compilation flags:
static
Template:
valid(TimeCode)
Mode and number of proofs:
valid(@compound) - zero_or_one

format/1

Returns the CCSDS time code format handled by the object.

Compilation flags:
static
Template:
format(Format)
Mode and number of proofs:
format(-atom) - one

epoch/1

Returns the epoch used by the object.

Compilation flags:
static
Template:
epoch(Epoch)
Mode and number of proofs:
epoch(-atom) - one

unix_seconds/2

Converts a time code term into a Unix timestamp in seconds.

Compilation flags:
static
Template:
unix_seconds(TimeCode,Seconds)
Mode and number of proofs:
unix_seconds(+compound,-number) - one_or_error
Exceptions:
TimeCode is a variable:
instantiation_error
TimeCode is neither a variable nor a valid time code term for the selected object:
domain_error(ccsds_time_code_term,TimeCode)

from_unix_seconds/2

Converts a Unix timestamp in seconds into a time code term for the selected object.

Compilation flags:
static
Template:
from_unix_seconds(Seconds,TimeCode)
Mode and number of proofs:
from_unix_seconds(+number,-compound) - one_or_error
Exceptions:
Seconds is a variable:
instantiation_error
Seconds cannot be represented using the selected object:
domain_error(ccsds_time_code_unix_seconds,Seconds)

Protected predicates

(none)

Private predicates

(none)

Operators

(none)