Compare commits

...

20 Commits

Author SHA1 Message Date
07b13c153d Merge pull request 'tmtccmd v7.0.0' (#254) from bump_tmtccmd_dependency into main
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
Reviewed-on: #254
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-13 11:14:46 +01:00
aad725a4e5 Merge branch 'main' into bump_tmtccmd_dependency
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-11-13 09:07:50 +01:00
fd714a118d Merge pull request 'Auto Switch Enable / Disable' (#246) from auto-switch-image-feature into main
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
Reviewed-on: #246
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-13 09:06:13 +01:00
4446e471d9 CFDP fixes
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-11-13 09:05:34 +01:00
6a8f48c493 moved high level handler from tmtccmd to EIVE
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-11-10 19:37:03 +01:00
0f6e7eb159 thats a lot of import fixes 2023-11-10 19:23:06 +01:00
92fe9d92de Merge remote-tracking branch 'origin/main' into auto-switch-image-feature
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-10-30 14:45:08 +01:00
99c6c8bbd0 v5.10.1
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-10-27 15:02:25 +02:00
26552ebeca Merge pull request 'more cleaning' (#252) from str-cleaning into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #252
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:37:00 +02:00
76e80c259c Merge branch 'main' into str-cleaning
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-10-27 14:36:50 +02:00
f59c2b9a9e Merge pull request 'improve supv reset cmd' (#251) from improve-supv-reset-cmd into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #251
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:36:22 +02:00
bf3565f497 Merge branch 'main' into improve-supv-reset-cmd
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-10-27 14:36:17 +02:00
7f119f36d2 Merge pull request 're-run generators' (#250) from update-events into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #250
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:35:48 +02:00
18728731ed Merge branch 'main' into str-cleaning
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-10-27 14:26:16 +02:00
14334dae92 re-run generators
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-10-27 14:24:31 +02:00
b08f9d9af6 more cleaning
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-10-27 12:28:55 +02:00
84f50bab83 improve supv reset cmd
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-10-26 11:18:30 +02:00
728b7c647c changelog
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-10-19 15:02:50 +02:00
a5e38a6856 missing log printout 2023-10-19 15:02:24 +02:00
f400dea799 done
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-10-19 15:01:23 +02:00
64 changed files with 557 additions and 293 deletions

View File

@ -10,6 +10,14 @@ list yields a list of all related PRs for each release.
# [unreleased]
## Added
- Core controller auto switch enable and disable command.
# [v5.10.1] 2023-10-27
- Minor improvements, update event translation.
# [v5.10.0] 2023-10-27
- Added new STR commands to allow more debugging.

259
eive_tmtc/cfdp/handler.py Normal file
View File

@ -0,0 +1,259 @@
from dataclasses import dataclass
from typing import Optional, Tuple
import deprecation
from spacepackets import PacketType, SpacePacket, SpacePacketHeader
from spacepackets.cfdp import GenericPduPacket, PduFactory
from spacepackets.cfdp.pdu import PduHolder
from tmtccmd.cfdp import (
CfdpUserBase,
LocalEntityCfg,
RemoteEntityCfgTable,
)
from tmtccmd.cfdp.defs import CfdpState
from tmtccmd.cfdp.handler import (
DestHandler,
DestStateWrapper,
SourceHandler,
SourceStateWrapper,
)
from tmtccmd.cfdp.handler.common import PacketDestination, get_packet_destination
from tmtccmd.cfdp.mib import CheckTimerProvider
from tmtccmd.cfdp.request import PutRequest
from tmtccmd.util import ProvidesSeqCount
from tmtccmd.version import get_version
@dataclass
class StateWrapper:
source_handler_state = SourceStateWrapper()
dest_handler_state = DestStateWrapper()
class CfdpHandler:
"""Wrapper class which wraps both the :py:class:`tmtccmd.cfdp.handler.source.SourceHandler` and
:py:class:`tmtccmd.cfdp.handler.dest.DestHandler` in a sensible way.
If you have special requirements, for example you want to spawn a new destination handler
for each file copy transfer to allow multiple consecutive file transfers, it might be a good
idea to write a custom wrapper."""
def __init__(
self,
cfg: LocalEntityCfg,
user: CfdpUserBase,
seq_cnt_provider: ProvidesSeqCount,
remote_cfg_table: RemoteEntityCfgTable,
check_timer_provider: CheckTimerProvider,
):
self.remote_cfg_table = remote_cfg_table
self.dest_handler = DestHandler(
cfg=cfg,
user=user,
remote_cfg_table=remote_cfg_table,
check_timer_provider=check_timer_provider,
)
self.source_handler = SourceHandler(
cfg=cfg,
seq_num_provider=seq_cnt_provider,
user=user,
remote_cfg_table=remote_cfg_table,
check_timer_provider=check_timer_provider,
)
def put_request(self, request: PutRequest):
if not self.remote_cfg_table.get_cfg(request.destination_id):
raise ValueError(
f"No remote CFDP config found for entity ID {request.destination_id}"
)
self.source_handler.put_request(
request, self.remote_cfg_table.get_cfg(request.destination_id) # type: ignore
)
def pull_next_source_packet(self) -> Optional[PduHolder]:
res = self.source_handler.state_machine()
if res.states.num_packets_ready:
return self.source_handler.get_next_packet()
return None
def pull_next_dest_packet(self) -> Optional[PduHolder]:
res = self.dest_handler.state_machine()
if res.states.packets_ready:
return self.dest_handler.get_next_packet()
return None
def __iter__(self):
return self
def __next__(self) -> Tuple[Optional[PduHolder], Optional[PduHolder]]:
"""The iterator for this class will returns a tuple of optional PDUs wrapped b a
:py:class:`PduHolder`.
:return: Can be a tuple where the first entry can hold a source packet and the second entry
can be a destination packet. If both packets are None, a StopIteration will be raised.
"""
next_source_packet = self.pull_next_source_packet()
next_dest_packet = self.pull_next_dest_packet()
if not next_dest_packet and not next_source_packet:
raise StopIteration
return next_source_packet, next_dest_packet
def put_request_pending(self) -> bool:
return self.source_handler.states.state != CfdpState.IDLE
@deprecation.deprecated(
deprecated_in="6.0.0rc0",
current_version=get_version(),
details="Use insert_packet instead",
)
def pass_packet(self, packet: GenericPduPacket):
self.insert_packet(packet)
def insert_packet(self, packet: GenericPduPacket):
"""This function routes the packets based on PDU type and directive type if applicable.
The routing is based on section 4.5 of the CFDP standard which specifies the PDU forwarding
procedure."""
if get_packet_destination(packet) == PacketDestination.DEST_HANDLER:
self.dest_handler.insert_packet(packet)
elif get_packet_destination(packet) == PacketDestination.SOURCE_HANDLER:
self.source_handler.insert_packet(packet) # type: ignore
class CfdpInCcsdsHandler:
"""Wrapper helper type used to wrap PDU packets into CCSDS packets and to extract PDU
packets from CCSDS packets.
:param cfg: Local CFDP entity configuration.
:param user: User wrapper. This contains the indication callback implementations and the
virtual filestore implementation.
:param cfdp_seq_cnt_provider: Every CFDP file transfer has a transaction sequence number.
This provider is used to retrieve that sequence number.
:param ccsds_seq_cnt_provider: Each CFDP PDU is wrapped into a CCSDS space packet, and each
space packet has a dedicated sequence count. This provider is used to retrieve the
sequence count.
:param ccsds_apid: APID to use for the CCSDS space packet header wrapped around each PDU.
This is important so that the OBSW can distinguish between regular PUS packets and
CFDP packets."""
def __init__(
self,
cfg: LocalEntityCfg,
user: CfdpUserBase,
remote_cfg_table: RemoteEntityCfgTable,
ccsds_apid: int,
cfdp_seq_cnt_provider: ProvidesSeqCount,
ccsds_seq_cnt_provider: ProvidesSeqCount,
check_timer_provider: CheckTimerProvider,
):
self.cfdp_handler = CfdpHandler(
cfg=cfg,
user=user,
seq_cnt_provider=cfdp_seq_cnt_provider,
remote_cfg_table=remote_cfg_table,
check_timer_provider=check_timer_provider,
)
self.ccsds_seq_cnt_provider = ccsds_seq_cnt_provider
self.ccsds_apid = ccsds_apid
def put_request_pending(self):
return self.cfdp_handler.put_request_pending()
def state_machine(self):
self.source_handler.state_machine()
self.dest_handler.state_machine()
@deprecation.deprecated(
deprecated_in="6.0.0rc1",
current_version=get_version(),
details="Use state_machine instead",
)
def fsm(self):
self.state_machine()
@property
def source_handler(self):
return self.cfdp_handler.source_handler
@property
def dest_handler(self):
return self.cfdp_handler.dest_handler
def pull_next_source_packet(self) -> Optional[Tuple[PduHolder, SpacePacket]]:
"""Retrieves the next PDU to send and wraps it into a space packet"""
next_packet = self.cfdp_handler.pull_next_source_packet()
if next_packet is None:
return next_packet
sp_header = SpacePacketHeader(
packet_type=PacketType.TC,
apid=self.ccsds_apid,
seq_count=self.ccsds_seq_cnt_provider.get_and_increment(),
data_len=next_packet.packet_len - 1,
)
return next_packet, SpacePacket(sp_header, None, next_packet.pack())
def pull_next_dest_packet(self) -> Optional[Tuple[PduHolder, SpacePacket]]:
"""Retrieves the next PDU to send and wraps it into a space packet"""
next_packet = self.cfdp_handler.pull_next_dest_packet()
if next_packet is None:
return next_packet
sp_header = SpacePacketHeader(
packet_type=PacketType.TC,
apid=self.ccsds_apid,
seq_count=self.ccsds_seq_cnt_provider.get_and_increment(),
data_len=next_packet.packet_len - 1,
)
return next_packet, SpacePacket(sp_header, None, next_packet.pack())
@deprecation.deprecated(
deprecated_in="6.0.0rc1",
current_version=get_version(),
details="Use insert_space_packet instead",
)
def pass_space_packet(self, space_packet: SpacePacket):
self.insert_space_packet(space_packet)
def insert_space_packet(self, space_packet: SpacePacket) -> bool:
if space_packet.user_data is None:
raise ValueError(
"space packet is empty, expected packet containing a CFDP PDU"
)
# Unwrap the user data and pass it to the handler
pdu_raw = space_packet.user_data
pdu_base = PduFactory.from_raw(pdu_raw)
if pdu_base:
self.insert_pdu_packet(pdu_base)
return True
return False
def insert_pdu_packet(self, pdu: GenericPduPacket):
self.cfdp_handler.insert_packet(pdu)
@deprecation.deprecated(
deprecated_in="6.0.0rc1",
current_version=get_version(),
details="Use insert_pdu_packet instead",
)
def pass_pdu_packet(self, pdu_base: GenericPduPacket):
self.insert_pdu_packet(pdu_base)
def __iter__(self):
return self
def __next__(
self,
) -> Tuple[
Optional[Tuple[PduHolder, SpacePacket]],
Optional[Tuple[PduHolder, SpacePacket]],
]:
"""The iterator for this class will returns a tuple of optional PDUs wrapped b a
:py:class:`PduHolder`.
:return: Can be a tuple where the first entry can hold a source packet and the second entry
can be a destination packet. If both packets are None, a StopIteration will be raised.
"""
next_source_tuple = self.pull_next_source_packet()
next_dest_tuple = self.pull_next_dest_packet()
if not next_source_tuple and not next_dest_tuple:
raise StopIteration
return next_source_tuple, next_dest_tuple

View File

@ -1,27 +1,29 @@
import logging
from typing import Any
from eive_tmtc.config.definitions import CFDP_APID
from spacepackets.ccsds import SPACE_PACKET_HEADER_SIZE
from spacepackets.cfdp import PduFactory, PduType, DirectiveType
from spacepackets.cfdp import PduFactory, PduType
from tmtccmd.cfdp.handler import CfdpInCcsdsHandler
from tmtccmd.tm import SpecificApidHandlerBase
from tmtccmd.tmtc import SpecificApidHandlerBase
_LOGGER = logging.getLogger(__name__)
class CfdpInCcsdsWrapper(SpecificApidHandlerBase):
def __init__(self, cfdp_in_ccsds_handler: CfdpInCcsdsHandler):
super().__init__(CFDP_APID, None)
self.handler = cfdp_in_ccsds_handler
super().__init__(CFDP_APID, None)
def handle_tm(self, packet: bytes, _user_args: any):
def handle_tm(self, packet: bytes, _user_args: Any):
# Ignore the space packet header. Its only purpose is to use the same protocol and
# have a seaprate APID for space packets. If this function is called, the APID is correct.
pdu = packet[SPACE_PACKET_HEADER_SIZE:]
pdu_base = PduFactory.from_raw(pdu)
if pdu_base.pdu_type == PduType.FILE_DATA:
generic_pdu = PduFactory.from_raw(pdu)
assert generic_pdu is not None
if generic_pdu.pdu_type == PduType.FILE_DATA:
_LOGGER.info("Received File Data PDU")
else:
directive_type = DirectiveType(pdu_base.directive_type)
directive_type = PduFactory.pdu_directive_type(pdu)
_LOGGER.info(f"Received File Directive PDU with type {directive_type!r}")
self.handler.insert_pdu_packet(pdu_base)
self.handler.insert_pdu_packet(generic_pdu)

View File

@ -1,7 +1,10 @@
from datetime import timedelta
import logging
from spacepackets.cfdp import ConditionCode
from spacepackets.util import UnsignedByteField
from tmtccmd.cfdp import CfdpUserBase, TransactionId
from tmtccmd.cfdp.mib import CheckTimerProvider, Countdown, EntityType
from tmtccmd.cfdp.user import (
TransactionFinishedParams,
MetadataRecvParams,
@ -11,6 +14,16 @@ from tmtccmd.cfdp.user import (
_LOGGER = logging.getLogger(__name__)
class EiveCheckTimerProvider(CheckTimerProvider):
def provide_check_timer(
self,
local_entity_id: UnsignedByteField,
remote_entity_id: UnsignedByteField,
entity_type: EntityType,
) -> Countdown:
return Countdown(timedelta(seconds=5.0))
class EiveCfdpUser(CfdpUserBase):
def transaction_indication(self, transaction_id: TransactionId):
_LOGGER.info(f"CFDP User: Start of File {transaction_id}")

View File

@ -312,5 +312,5 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14500;0x38a4;TEMPERATURE_ALL_ONES_START;MEDIUM;Detected invalid values, starting invalid message counting;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values again, resetting invalid message counter. P1: Invalid message counter.;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter.;mission/acs/SusHandler.h
14600;0x3908;FAULT_HANDLER_TRIGGERED;LOW;P1: CFDP fault handler code. P2: CFDP condition code.;mission/cfdp/defs.h

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
312 14313 0x37e9 DUMP_HK_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
313 14314 0x37ea DUMP_CFDP_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
314 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
315 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values again, resetting invalid message counter. P1: Invalid message counter. Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter. mission/acs/SusHandler.h
316 14600 0x3908 FAULT_HANDLER_TRIGGERED LOW P1: CFDP fault handler code. P2: CFDP condition code. mission/cfdp/defs.h

View File

@ -11,8 +11,8 @@ import struct
from typing import Union
from spacepackets.ecss import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.util import ObjectIdU32, ObjectIdBase

View File

@ -12,8 +12,8 @@ from eive_tmtc.tmtc.payload.scex import pack_scex_cmds
from eive_tmtc.tmtc.tcs.subsystem import pack_tcs_sys_commands
from tmtccmd import DefaultProcedureInfo, TcHandlerBase
from tmtccmd.config import CoreServiceList
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.decorator import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.tmtc.decorator import (
route_to_registered_service_handlers,
ServiceProviderParams,
)

View File

@ -1,7 +1,7 @@
from typing import Union
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode
from tmtccmd.util import ObjectIdU32, ObjectIdBase
from eive_tmtc.tmtc.common import pack_mode_cmd_with_info

View File

@ -10,7 +10,7 @@ from spacepackets.ecss import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s11_tc_sched import (
create_time_tagged_cmd,
create_enable_tc_sched_cmd,
@ -50,7 +50,7 @@ from eive_tmtc.tmtc.acs.gyros import (
L3gGyroSetId as L3gGyroSetIds_1_3,
)
from eive_tmtc.tmtc.acs.gps import SetId as GpsSetIds
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
disable_periodic_hk_command,
create_enable_periodic_hk_command_with_interval,

View File

@ -12,7 +12,7 @@ from tmtccmd.cfdp.defs import CfdpRequestType
from tmtccmd.cfdp.handler import CfdpInCcsdsHandler
from tmtccmd.logging import get_current_time_string
from tmtccmd.logging.pus import RawTmtcTimedLogWrapper
from tmtccmd.tc import (
from tmtccmd.tmtc import (
DefaultPusQueueHelper,
QueueWrapper,
FeedWrapper,

View File

@ -18,7 +18,7 @@ from eive_tmtc.tmtc.payload.ploc_mpsoc import handle_mpsoc_data_reply
from eive_tmtc.tmtc.payload.ploc_supervisor import SupvActionId
from eive_tmtc.tmtc.acs.star_tracker import handle_star_tracker_action_replies
from eive_tmtc.tmtc.power.tm import handle_get_param_data_reply
from tmtccmd.tm import Service8FsfwTm
from tmtccmd.pus.s8_fsfw_action import Service8FsfwTm
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from spacepackets.ccsds.time import CdsShortTimestamp
from tmtccmd.util import ObjectIdDictT

View File

@ -8,10 +8,10 @@ from eive_tmtc.pus_tm.defs import PrintWrapper
from eive_tmtc.pus_tm.verification_handler import generic_retval_printout
from eive_tmtc.tmtc.acs.subsystem import AcsMode
from eive_tmtc.tmtc.core import SdState, SdCardSelect
from tmtccmd.tc.pus_200_fsfw_mode import Mode
from tmtccmd.tc.pus_201_fsfw_health import FsfwHealth
from tmtccmd.pus.s200_fsfw_mode import Mode
from tmtccmd.pus.s201_fsfw_health import FsfwHealth
from tmtccmd.tm import Service5Tm
from tmtccmd.pus.s5_fsfw_event import Service5Tm
from tmtccmd.fsfw import EventInfo
from spacepackets.ccsds.time import CdsShortTimestamp

View File

@ -17,7 +17,7 @@ from eive_tmtc.tmtc.com.syrlinks_handler import handle_syrlinks_hk_data
from eive_tmtc.tmtc.tcs import handle_thermal_controller_hk_data
from eive_tmtc.tmtc.tcs.tmp1075 import handle_tmp_1075_hk_data
from spacepackets.ecss import PusTelemetry
from tmtccmd.tm.pus_3_fsfw_hk import (
from tmtccmd.pus.tm.s3_fsfw_hk import (
Service3Base,
HkContentType,
Service3FsfwTm,

View File

@ -2,24 +2,25 @@
"""
import logging
from eive_tmtc.config.object_ids import get_object_ids
from spacepackets.ccsds.time import CdsShortTimestamp
from spacepackets.ecss import PusTelemetry
from spacepackets.ecss.pus_17_test import Service17Tm
from spacepackets.util import PrintFormats
from spacepackets.ccsds.time import CdsShortTimestamp
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.logging.pus import RawTmtcTimedLogWrapper
from tmtccmd.pus import VerificationWrapper
from tmtccmd.tm import Service20FsfwTm, Service200FsfwTm
from tmtccmd.tm.pus_20_fsfw_param import Service20ParamDumpWrapper
from tmtccmd.pus.s20_fsfw_param import Service20FsfwTm, Service20ParamDumpWrapper
from tmtccmd.pus.s20_fsfw_param_defs import CustomSubservice as ParamSubservice
from tmtccmd.tm.pus_200_fsfw_mode import Subservice as ModeSubservice
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from .defs import PrintWrapper
from tmtccmd.pus.s200_fsfw_mode import Service200FsfwTm
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservice
from eive_tmtc.config.object_ids import get_object_ids
from .event_handler import handle_event_packet
from .verification_handler import handle_service_1_fsfw_packet, generic_retval_printout
from .hk_handler import handle_hk_packet, HkFilter
from .action_reply_handler import handle_action_reply
from .defs import PrintWrapper
from .event_handler import handle_event_packet
from .hk_handler import HkFilter, handle_hk_packet
from .verification_handler import generic_retval_printout, handle_service_1_fsfw_packet
_LOGGER = logging.getLogger(__name__)

View File

@ -4,7 +4,7 @@ from typing import List, Optional
from spacepackets.ccsds import CdsShortTimestamp
from spacepackets.ecss.pus_1_verification import UnpackParams, Service1Tm
from tmtccmd.pus import VerificationWrapper
from tmtccmd.tm.pus_1_verification import Service1FsfwWrapper
from tmtccmd.pus.s1_verification import Service1FsfwWrapper
from eive_tmtc.config.retvals import get_retval_dict
_LOGGER = logging.getLogger(__name__)

View File

@ -6,9 +6,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider, DefaultPusQueueHelper
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_200_fsfw_mode import Mode
from tmtccmd.tmtc import service_provider, DefaultPusQueueHelper
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import Mode
from eive_tmtc.config.object_ids import ACS_BOARD_ASS_ID
from eive_tmtc.tmtc.common import pack_mode_cmd_with_info

View File

@ -1,49 +1,47 @@
import datetime
import enum
import logging
import math
import socket
import struct
import math
from socket import AF_INET
from typing import Tuple
from tmtccmd.config.tmtc import (
OpCodeEntry,
TmtcDefinitionWrapper,
tmtc_definitions_provider,
)
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param_defs import (
create_matrix_double_parameter,
create_matrix_float_parameter,
create_scalar_double_parameter,
create_scalar_float_parameter,
create_scalar_i32_parameter,
create_scalar_u8_parameter,
create_scalar_u16_parameter,
create_vector_double_parameter,
create_vector_float_parameter,
)
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_command
from tmtccmd.pus.tc.s3_fsfw_hk import (
create_request_one_diag_command,
disable_periodic_hk_command,
enable_periodic_hk_command_with_interval,
generate_one_hk_command,
make_sid,
)
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.tmtc.queue import DefaultPusQueueHelper
from eive_tmtc.config.definitions import CustomServiceList
from eive_tmtc.config.object_ids import ACS_CONTROLLER
from eive_tmtc.pus_tm.defs import PrintWrapper
from eive_tmtc.tmtc.acs.defs import AcsMode, SafeSubmode
from tmtccmd.config.tmtc import (
tmtc_definitions_provider,
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tc.queue import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_command
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_3_fsfw_hk import (
generate_one_hk_command,
make_sid,
enable_periodic_hk_command_with_interval,
disable_periodic_hk_command,
create_request_one_diag_command,
)
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.tc.pus_20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param_defs import (
create_scalar_u8_parameter,
create_scalar_u16_parameter,
create_scalar_i32_parameter,
create_scalar_float_parameter,
create_scalar_double_parameter,
create_vector_float_parameter,
create_vector_double_parameter,
create_matrix_float_parameter,
create_matrix_double_parameter,
)
_LOGGER = logging.getLogger(__name__)

View File

@ -7,9 +7,9 @@ from eive_tmtc.config.definitions import CustomServiceList
from eive_tmtc.pus_tm.defs import PrintWrapper
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc.pus_200_fsfw_mode import create_mode_command, Mode
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.pus.s200_fsfw_mode import create_mode_command, Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
create_request_one_hk_command,
create_enable_periodic_hk_command_with_interval_with_diag,

View File

@ -3,13 +3,13 @@ import logging
import struct
from spacepackets.ecss import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_201_fsfw_health import pack_set_health_cmd_data, FsfwHealth
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s201_fsfw_health import pack_set_health_cmd_data, FsfwHealth
from tmtccmd.pus.s201_fsfw_health import Subservice
import eive_tmtc.config.object_ids as obj_ids
from tmtccmd.tc.pus_200_fsfw_mode import create_mode_command, Mode
from tmtccmd.tc.pus_3_fsfw_hk import create_request_one_hk_command, make_sid
from tmtccmd.pus.s200_fsfw_mode import create_mode_command, Mode
from tmtccmd.pus.tc.s3_fsfw_hk import create_request_one_hk_command, make_sid
from tmtccmd.config.tmtc import (
tmtc_definitions_provider,
OpCodeEntry,

View File

@ -18,8 +18,8 @@ from tmtccmd.config.tmtc import (
OpCodeEntry,
TmtcDefinitionWrapper,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
generate_one_diag_command,
generate_one_hk_command,
@ -27,7 +27,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import (
create_enable_periodic_hk_command_with_interval_with_diag,
create_disable_periodic_hk_command_with_diag,
)
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.util import ObjectIdU32
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter

View File

@ -14,8 +14,8 @@ from eive_tmtc.config.object_ids import (
from eive_tmtc.pus_tm.defs import PrintWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider, TmtcDefinitionWrapper
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import create_mode_command, Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import create_mode_command, Mode
from tmtccmd.util import ObjectIdU32

View File

@ -12,17 +12,17 @@ from eive_tmtc.pus_tm.defs import PrintWrapper
from eive_tmtc.config.object_ids import RW1_ID, RW2_ID, RW3_ID, RW4_ID
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
generate_one_hk_command,
generate_one_diag_command,
make_sid,
enable_periodic_hk_command_with_interval,
disable_periodic_hk_command,
)
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode, Subservice
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode, Subservice
from eive_tmtc.config.definitions import CustomServiceList
from tmtccmd.util import ObjectIdU32
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter

View File

@ -16,16 +16,16 @@ from eive_tmtc.utility.input_helper import InputHelper
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.pus.tc.s3_fsfw_hk import (
create_request_one_diag_command,
create_request_one_hk_command,
enable_periodic_hk_command_with_interval,
disable_periodic_hk_command,
make_sid,
)
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.util import ObjectIdU32
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from eive_tmtc.config.object_ids import STR_ASSEMBLY, STAR_TRACKER_ID
@ -116,6 +116,7 @@ class OpCodes:
READ_SECONDARY_TM_SET = "read_secondary_tm"
TAKE_IMAGE = "take_image"
UPLOAD_IMAGE = "upload_image"
DOWNLOAD_IMAGE = "download_image"
SET_IMG_PROCESSOR_MODE = "set_img_proc_mode"
FW_UPDATE = "fw_update"
SET_TIME_FROM_SYS_TIME = "set_time"
@ -128,7 +129,8 @@ class Info:
ADD_SECONDARY_TM_TO_NORMAL_MODE = "Add specific Dataset to secondary TM"
RESET_SECONDARY_TM_SET = "Reset secondary TM to Temperature Set only"
READ_SECONDARY_TM_SET = "Read list of secondary TM Sets"
UPLOAD_IMAGE = "Upload Image"
UPLOAD_IMAGE = "Upload Optical Image"
DOWNLOAD_IMAGE = "Download Optical Image"
TAKE_IMAGE = "Take Image"
SET_IMG_PROCESSOR_MODE = "Set Image Processor Mode"
FW_UPDATE = "Firmware Update"
@ -323,8 +325,8 @@ def pack_star_tracker_commands( # noqa C901
+ bytearray(image, "utf-8")
)
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
if op_code == "16":
q.add_log_cmd("Star tracker: Download image")
if op_code == OpCodes.DOWNLOAD_IMAGE:
q.add_log_cmd(f"STR: {Info.DOWNLOAD_IMAGE}")
path = input("Specify storage location (default - /mnt/sd0/startracker): ")
if not path:
path = FileDefs.download_path
@ -1154,63 +1156,17 @@ def add_str_cmds(defs: TmtcDefinitionWrapper):
oce.add(OpCodes.OFF, "Mode Off")
oce.add(OpCodes.PING, "Star Tracker: Ping")
oce.add(OpCodes.TAKE_IMAGE, "Take Image")
oce.add(OpCodes.UPLOAD_IMAGE, Info.UPLOAD_IMAGE)
oce.add(OpCodes.DOWNLOAD_IMAGE, Info.DOWNLOAD_IMAGE)
oce.add(OpCodes.ONE_SHOOT_HK, Info.ONE_SHOOT_HK)
oce.add(OpCodes.ENABLE_HK, Info.ENABLE_HK)
oce.add(OpCodes.DISABLE_HK, Info.DISABLE_HK)
oce.add(OpCodes.UPLOAD_IMAGE, Info.UPLOAD_IMAGE)
oce.add(OpCodes.SET_IMG_PROCESSOR_MODE, Info.SET_IMG_PROCESSOR_MODE)
oce.add(
OpCodes.ADD_SECONDARY_TM_TO_NORMAL_MODE, Info.ADD_SECONDARY_TM_TO_NORMAL_MODE
)
oce.add(OpCodes.READ_SECONDARY_TM_SET, Info.READ_SECONDARY_TM_SET)
oce.add(OpCodes.RESET_SECONDARY_TM_SET, Info.RESET_SECONDARY_TM_SET)
# oce.add("6", "Star Tracker: Switch to bootloader program")
# oce.add("7", "Star Tracker: Request temperature")
# oce.add("8", "Star Tracker: Request version")
# oce.add("9", "Star Tracker: Request interface")
# oce.add("10", "Star Tracker: Request power")
# oce.add("11", "Star Tracker: Set subscription parameters")
# oce.add("12", "Star Tracker: Boot image (requires bootloader mode)")
# oce.add("13", "Star Tracker: Request time")
# oce.add("14", "Star Tracker: Request solution")
# oce.add("16", "Star Tracker: Download image")
# oce.add("17", "Star Tracker: Set limit parameters")
# oce.add("17", "Star Tracker: Set limit parameters")
# oce.add("18", "Star Tracker: Set tracking parameters")
# oce.add("19", "Star Tracker: Set mounting parameters")
# oce.add("20", "Star Tracker: Set camera parameters")
# oce.add("22", "Star Tracker: Set centroiding parameters")
# oce.add("23", "Star Tracker: Set LISA parameters")
# oce.add("24", "Star Tracker: Set matching parameters")
# oce.add("25", "Star Tracker: Set validation parameters")
# oce.add("26", "Star Tracker: Set algo parameters")
# oce.add("28", "Star Tracker: Stop str helper")
# oce.add("30", "Star Tracker: Set name of download image")
# oce.add("31", "Star Tracker: Request histogram")
# oce.add("32", "Star Tracker: Request contrast")
# oce.add("33", "Star Tracker: Set json filename")
# oce.add("35", "Star Tracker: Flash read")
# oce.add("36", "Star Tracker: Set flash read filename")
# oce.add("37", "Star Tracker: Get checksum")
# oce.add("49", "Star Tracker: Request camera parameter")
# oce.add("50", "Star Tracker: Request limits")
# oce.add("52", "Star Tracker: (EGSE only) Load camera ground config")
# oce.add("53", "Star Tracker: (EGSE only) Load camera flight config")
# oce.add("54", "Star Tracker: Request log level parameters")
# oce.add("55", "Star Tracker: Request mounting parameters")
# oce.add("56", "Star Tracker: Request image processor parameters")
# oce.add("57", "Star Tracker: Request centroiding parameters")
# oce.add("58", "Star Tracker: Request lisa parameters")
# oce.add("59", "Star Tracker: Request matching parameters")
# oce.add("60", "Star Tracker: Request tracking parameters")
# oce.add("61", "Star Tracker: Request validation parameters")
# oce.add("62", "Star Tracker: Request algo parameters")
# oce.add("63", "Star Tracker: Request subscription parameters")
# oce.add("64", "Star Tracker: Request log subscription parameters")
# oce.add("65", "Star Tracker: Request debug camera parameters")
# oce.add("66", "Star Tracker: Set log level parameters")
# oce.add("67", "Star Tracker: Set log subscription parameters")
# oce.add("68", "Star Tracker: Set debug camera parameters")
oce.add(OpCodes.FW_UPDATE, Info.FW_UPDATE)
oce.add(OpCodes.SET_TIME_FROM_SYS_TIME, Info.SET_TIME_FROM_SYS_TIME)
defs.add_service(CustomServiceList.STAR_TRACKER.value, "Star Tracker", oce)

View File

@ -12,7 +12,7 @@
import struct
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util import ObjectIdU32

View File

@ -11,9 +11,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservices
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservices
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
class OpCode(str, enum.Enum):

View File

@ -7,9 +7,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider, DefaultPusQueueHelper
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_200_fsfw_mode import Mode
from tmtccmd.tmtc import service_provider, DefaultPusQueueHelper
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import Mode
class SusOpCode:

View File

@ -15,8 +15,8 @@ from tmtccmd.config.tmtc import (
OpCodeEntry,
TmtcDefinitionWrapper,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import create_mode_command, Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import create_mode_command, Mode
from tmtccmd.util import ObjectIdU32

View File

@ -8,10 +8,10 @@
import enum
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.tc.pus_20_fsfw_param import create_load_param_cmd
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.pus.s20_fsfw_param_defs import create_scalar_u8_parameter
from tmtccmd.config.tmtc import (

View File

@ -12,15 +12,15 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_200_fsfw_mode import (
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import (
create_mode_command,
create_read_mode_command,
create_announce_mode_command,
create_announce_mode_recursive_command,
)
from tmtccmd.tc.pus_20_fsfw_param import (
from tmtccmd.pus.s20_fsfw_param import (
create_load_param_cmd,
)

View File

@ -17,8 +17,8 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
create_request_one_diag_command,
create_request_one_hk_command,
@ -26,7 +26,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import (
create_disable_periodic_hk_command_with_diag,
)
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc.pus_200_fsfw_mode import Mode, create_mode_command
from tmtccmd.pus.s200_fsfw_mode import Mode, create_mode_command
from eive_tmtc.config.object_ids import SYRLINKS_HANDLER_ID
import struct

View File

@ -1,8 +1,8 @@
from typing import Union
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode, Subservice
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode, Subservice
from tmtccmd.util import ObjectIdU32

View File

@ -3,6 +3,7 @@ import logging
import os
import struct
from pathlib import Path
from typing import Tuple
from eive_tmtc.pus_tm.defs import PrintWrapper
@ -10,10 +11,10 @@ from eive_tmtc.config.definitions import CustomServiceList
from spacepackets.ecss import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc.pus_3_fsfw_hk import make_sid, generate_one_hk_command
from tmtccmd.tc.pus_20_fsfw_param import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.pus.tc.s3_fsfw_hk import make_sid, generate_one_hk_command
from tmtccmd.pus.s20_fsfw_param import (
create_scalar_u8_parameter,
create_load_param_cmd,
)
@ -52,6 +53,8 @@ class ActionId(enum.IntEnum):
SWITCH_TO_SD_0 = 16
SWITCH_TO_SD_1 = 17
SWITCH_TO_BOTH_SD_CARDS = 18
AUTO_SWITCH_ENABLE = 19
AUTO_SWITCH_DISABLE = 20
XSC_REBOOT = 32
FULL_REBOOT = 34
EXECUTE_SHELL_CMD_BLOCKING = 40
@ -110,6 +113,8 @@ class OpCode:
RWD_RESET_REBOOT_COUNTER_10 = "rwd_reset_10"
RWD_RESET_REBOOT_COUNTER_11 = "rwd_reset_11"
RWD_SET_MAX_REBOOT_CNT = "rwd_max_cnt"
AUTO_SWITCH_ENABLE = "auto_switch_enable"
AUTO_SWITCH_DISABLE = "auto_switch_disable"
class Info:
@ -135,6 +140,8 @@ class Info:
MV_HELPER = "Filesystem Move Helper"
RM_HELPER = "Filesystem Removal Helper"
MKDIR_HELPER = "Filesystem Directory Creation Helper"
AUTO_SWITCH_ENABLE = "Enable Auto-Switch Feature with a specific target image"
AUTO_SWITCH_DISABLE = "Disable Auto-Switch Feature"
class Chip(enum.IntEnum):
@ -176,6 +183,8 @@ def add_core_controller_definitions(defs: TmtcDefinitionWrapper):
oce.add(keys=OpCode.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP)
oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0)
oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1)
oce.add(keys=OpCode.AUTO_SWITCH_ENABLE, info=Info.AUTO_SWITCH_ENABLE)
oce.add(keys=OpCode.AUTO_SWITCH_DISABLE, info=Info.AUTO_SWITCH_DISABLE)
oce.add(keys=OpCode.SYSTEMCTL_CMD_EXECUTOR, info=Info.SYSTEMCTL_CMD_EXECUTOR)
oce.add(
keys=OpCode.EXECUTE_SHELL_CMD_BLOCKING, info=Info.EXECUTE_SHELL_CMD_BLOCKING
@ -381,6 +390,20 @@ def pack_core_commands( # noqa C901
elif op_code in OpCode.OBSW_UPDATE_FROM_TMP:
q.add_log_cmd(Info.OBSW_UPDATE_FROM_TMP)
q.add_pus_tc(pack_obsw_update_cmd(ActionId.UPDATE_OBSW_FROM_TMP))
elif op_code in OpCode.AUTO_SWITCH_ENABLE:
q.add_log_cmd(Info.AUTO_SWITCH_ENABLE)
chip, copy = determine_chip_and_copy()
user_data = bytes([chip, copy])
q.add_pus_tc(
create_action_cmd(
CORE_CONTROLLER_ID, ActionId.AUTO_SWITCH_ENABLE, user_data
)
)
elif op_code in OpCode.AUTO_SWITCH_DISABLE:
q.add_log_cmd(Info.AUTO_SWITCH_DISABLE)
q.add_pus_tc(
create_action_cmd(CORE_CONTROLLER_ID, ActionId.AUTO_SWITCH_DISABLE)
)
elif op_code in OpCode.SWITCH_TO_SD_0:
q.add_log_cmd(Info.SWITCH_TO_SD_0)
q.add_pus_tc(
@ -551,18 +574,17 @@ def create_full_reboot_cmds() -> PusTelecommand:
)
def determine_reboot_params() -> (bool, Chip, Copy):
chip_select = -1
copy_select = -1
def determine_reboot_params() -> Tuple[bool, Chip, Copy]:
reboot_self = input("Reboot self? [y/n]: ")
if reboot_self in ["y", "yes", "1"]:
_LOGGER.info("Rebooting currently running image")
return True, chip_select, copy_select
return True, Chip.NONE, Copy.NONE
_LOGGER.info("Rebooting image specified by chip and copy")
return False, determine_chip_and_copy()
chip, copy = determine_chip_and_copy()
return False, chip, copy
def determine_chip_and_copy() -> (int, int):
def determine_chip_and_copy() -> Tuple[Chip, Copy]:
while True:
chip_select = input("Chip select [0/1]: ")
if chip_select in ["0", "1"]:

View File

@ -6,9 +6,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tmtc import service_provider
from tmtccmd.pus.s201_fsfw_health import Subservice, FsfwHealth
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc.decorator import ServiceProviderParams
class OpCode:

View File

@ -6,8 +6,8 @@
@date 02.05.2020
"""
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from eive_tmtc.config.object_ids import TEST_DEVICE_ID
TEST_DEVICE_OBJ_ID = TEST_DEVICE_ID

View File

@ -12,7 +12,7 @@ from eive_tmtc.config.definitions import CustomServiceList
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util import ObjectIdU32

View File

@ -20,11 +20,11 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
)
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from eive_tmtc.utility.input_helper import InputHelper
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
_LOGGER = logging.getLogger(__name__)

View File

@ -14,13 +14,13 @@ from eive_tmtc.config.object_ids import PLOC_SUPV_ID, get_object_ids
from eive_tmtc.config.definitions import CustomServiceList
from eive_tmtc.pus_tm.defs import PrintWrapper
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.pus.tc.s3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.config import TmtcDefinitionWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from eive_tmtc.utility.input_helper import InputHelper
@ -151,6 +151,7 @@ class OpCodes:
PERFORM_UPDATE = ["update"]
FACTORY_RESET = ["factory_reset"]
MEM_CHECK = ["mem_check"]
RESET_MPSOC = "reset_mpsoc"
class Info(str, enum.Enum):
@ -168,6 +169,7 @@ class Info(str, enum.Enum):
REQ_BOOT_STATUS_REPORT = "Request boot status report and HK"
MEM_CHECK = "Memory Check"
SEL_NVM = "Select NVM"
RESET_MPSOC = "Reset MPSoC"
@tmtc_definitions_provider
@ -183,8 +185,8 @@ def add_ploc_supv_cmds(defs: TmtcDefinitionWrapper):
oce.add(OpCodes.SEL_NVM, Info.SEL_NVM)
oce.add(OpCodes.SET_TIME_REF, Info.SET_TIME_REF)
oce.add(OpCodes.FACTORY_RESET, Info.FACTORY_RESET)
oce.add(OpCodes.RESET_MPSOC, Info.RESET_MPSOC)
oce.add("8", "PLOC Supervisor: Set max restart tries")
oce.add("9", "PLOC Supervisor: Reset MPSoC")
oce.add("11", "PLOC Supervisor: Set boot timeout")
oce.add("12", "PLOC Supervisor: Disable Hk")
oce.add(OpCodes.REQ_BOOT_STATUS_REPORT, Info.REQ_BOOT_STATUS_REPORT)
@ -268,7 +270,6 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): # noqa C901
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
if op_code in OpCodes.FACTORY_RESET:
q.add_log_cmd(f"{prefix}: {Info.FACTORY_RESET}")
key = -1
while True:
print("Please select the key for a factory reset operation")
for key, val in FACTORY_RESET_OPS.items():
@ -293,8 +294,8 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): # noqa C901
+ struct.pack("!B", restart_tries)
)
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
if op_code == "9":
q.add_log_cmd("PLOC Supervisor: Reset MPSoC")
if op_code == OpCodes.RESET_MPSOC:
q.add_log_cmd(Info.RESET_MPSOC)
command = object_id.as_bytes + struct.pack("!I", SupvActionId.RESET_MPSOC)
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
if op_code in OpCodes.SET_TIME_REF:

View File

@ -9,20 +9,19 @@ from eive_tmtc.pus_tm.defs import PrintWrapper
from tmtccmd.config import TmtcDefinitionWrapper
from tmtccmd.config.tmtc import OpCodeEntry, tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
generate_one_diag_command,
enable_periodic_hk_command_with_interval,
disable_periodic_hk_command,
)
from tmtccmd.tc.pus_11_tc_sched import (
from tmtccmd.pus.s11_tc_sched import (
create_enable_tc_sched_cmd,
create_time_tagged_cmd,
)
from tmtccmd.pus.s200_fsfw_mode import Subservice
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.tc.pus_20_fsfw_param import (
from tmtccmd.pus.s200_fsfw_mode import Subservice, pack_mode_data, Mode
from tmtccmd.pus.s20_fsfw_param import (
create_scalar_double_parameter,
create_load_param_cmd,
create_scalar_boolean_parameter,

View File

@ -14,9 +14,9 @@ from eive_tmtc.pus_tm.defs import PrintWrapper
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_data
from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data
from tmtccmd.pus.tc.s3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.util import ObjectIdU32
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter

View File

@ -5,10 +5,10 @@ from spacepackets.ecss import PusTelecommand
from eive_tmtc.config.definitions import CustomServiceList
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_data, Subservice
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.config import OpCodeEntry, TmtcDefinitionWrapper
from eive_tmtc.config.object_ids import SCEX_HANDLER_ID

View File

@ -7,9 +7,9 @@ from spacepackets.ecss import PusTelecommand
from eive_tmtc.tmtc.common import pack_mode_cmd_with_info
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservice
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservice
class ModeId(enum.IntEnum):

View File

@ -19,7 +19,7 @@ from eive_tmtc.tmtc.power.common_power import (
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
import eive_tmtc.gomspace.gomspace_common as gs
from eive_tmtc.config.object_ids import ACU_HANDLER_ID
from tmtccmd.util import ObjectIdU32

View File

@ -11,12 +11,12 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservices
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.pus.tc.s3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservices
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter

View File

@ -16,15 +16,15 @@ from eive_tmtc.gomspace.gomspace_common import (
from eive_tmtc.gomspace.gomspace_pdu_definitions import OUT_ENABLE_LIST
from spacepackets.ecss import PusTelecommand
from tmtccmd.config import OpCodeEntry
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
generate_one_diag_command,
generate_one_hk_command,
enable_periodic_hk_command_with_interval,
disable_periodic_hk_command,
)
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.util import ObjectIdU32, ObjectIdBase

View File

@ -11,7 +11,7 @@ from eive_tmtc.tmtc.power.common_power import (
pack_common_power_cmds,
SetId,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from eive_tmtc.gomspace.gomspace_common import (
TableEntry,
Channel,

View File

@ -32,7 +32,7 @@ from spacepackets.ecss import PusTelecommand
from tmtccmd.config import OpCodeEntry, TmtcDefinitionWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util import ObjectIdU32

View File

@ -34,7 +34,7 @@ from eive_tmtc.tmtc.power.common_power import (
from spacepackets.ecss import PusTelecommand
from tmtccmd.config import OpCodeEntry, TmtcDefinitionWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util import ObjectIdU32

View File

@ -32,12 +32,12 @@ from eive_tmtc.config.object_ids import PCDU_HANDLER_ID
from eive_tmtc.tmtc.power.p60dock import P60OpCode, P60Info, p60_dock_req_hk_cmds
from eive_tmtc.tmtc.power.acu import add_acu_cmds, acu_req_hk_cmds
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.pus.tc.s3_fsfw_hk import (
create_request_one_diag_command,
make_sid,
)
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
class SetId(enum.IntEnum):

View File

@ -11,11 +11,11 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tc.queue import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_command
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.queue import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_command
from tmtccmd.tmtc.decorator import ServiceProviderParams
from tmtccmd.pus.tc.s3_fsfw_hk import (
generate_one_hk_command,
make_sid,
enable_periodic_hk_command_with_interval,
@ -23,7 +23,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import (
)
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.tc.pus_20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param_defs import (
create_scalar_float_parameter,

View File

@ -10,9 +10,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservices, Mode
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservices, Mode
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
class OpCode(str, enum.Enum):

View File

@ -17,9 +17,9 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider, DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider, DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.tmtc.decorator import ServiceProviderParams
class OpCode:

View File

@ -7,14 +7,14 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tmtc import service_provider
from eive_tmtc.config.object_ids import EIVE_SYSTEM_ID
from tmtccmd.tc.pus_200_fsfw_mode import (
from tmtccmd.pus.s200_fsfw_mode import (
create_mode_command,
create_announce_mode_recursive_command,
)
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.tmtc.decorator import ServiceProviderParams
class SystemMode:

View File

@ -6,8 +6,8 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode
class InfoAssy:

View File

@ -7,8 +7,8 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_3_fsfw_hk import (
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.tc.s3_fsfw_hk import (
make_sid,
generate_one_hk_command,
create_request_one_diag_command,

View File

@ -10,14 +10,14 @@ from eive_tmtc.config.object_ids import get_object_ids
from eive_tmtc.tmtc.tcs.defs import Heater
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util.obj_id import ObjectIdU32
from tmtccmd.pus.s201_fsfw_health import (
pack_set_health_cmd_data,
FsfwHealth,
Subservice,
)
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from spacepackets.ecss.tc import PusTelecommand

View File

@ -8,9 +8,9 @@ from spacepackets.ecss import PusTelecommand
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
from tmtccmd.config.tmtc import tmtc_definitions_provider
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.util import ObjectIdU32
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_data, Subservice
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice
import eive_tmtc.config.object_ids as oids
from eive_tmtc.config.object_ids import get_object_ids
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter

View File

@ -7,8 +7,8 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
OpCodeEntry,
)
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode, create_announce_mode_recursive_command
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, create_announce_mode_recursive_command
class OpCode:

View File

@ -17,9 +17,9 @@ from tmtccmd.config.tmtc import (
OpCodeEntry,
)
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.tc.pus_200_fsfw_mode import Mode, pack_mode_data
from tmtccmd.tc.pus_3_fsfw_hk import create_request_one_hk_command, make_sid
from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data
from tmtccmd.pus.tc.s3_fsfw_hk import create_request_one_hk_command, make_sid
from tmtccmd.util import ObjectIdU32

View File

@ -6,8 +6,8 @@ from tmtccmd.config.tmtc import (
OpCodeEntry,
)
from tmtccmd.pus.s17_test import create_service_17_ping_command
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
class OpCodes:

View File

@ -10,8 +10,8 @@ from tmtccmd.config.tmtc import (
OpCodeEntry,
)
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
class Subservice(enum.IntEnum):

View File

@ -15,8 +15,8 @@ from eive_tmtc.config.object_ids import (
from eive_tmtc.config.definitions import CustomServiceList
from tmtccmd.config import TmtcDefinitionWrapper
from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry
from tmtccmd.tc import service_provider
from tmtccmd.tc.decorator import ServiceProviderParams
from tmtccmd.tmtc import service_provider
from tmtccmd.tmtc.decorator import ServiceProviderParams
from dateutil.parser import parse
from spacepackets.ecss import PusService # noqa

View File

@ -4,8 +4,8 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper,
tmtc_definitions_provider,
)
from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd
from tmtccmd.tc import DefaultPusQueueHelper
from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.tmtc import DefaultPusQueueHelper
from eive_tmtc.config.definitions import CustomServiceList
from eive_tmtc.config.object_ids import XIPHOS_WDT_ID

View File

@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
name = "eive-tmtc"
description = "TMTC Commander EIVE"
readme = "README.md"
version = "5.10.0"
version = "5.10.1"
requires-python = ">=3.10"
license = {text = "Apache-2.0"}
authors = [
@ -29,7 +29,7 @@ classifiers = [
"Topic :: Scientific/Engineering"
]
dependencies = [
"tmtccmd ~= 6.0",
"tmtccmd ~= 7.0",
"python-dateutil ~= 2.8",
# "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main"
]

View File

@ -2,59 +2,60 @@
import logging
import sys
import time
from importlib.metadata import version
from pathlib import Path
from typing import Tuple
import tmtccmd
from eive_tmtc.cfdp.fault_handler import EiveCfdpFaultHandler
from eive_tmtc.cfdp.tm import CfdpInCcsdsWrapper
from eive_tmtc.cfdp.user import EiveCfdpUser
from spacepackets.ecss import PusVerificator
from spacepackets.version import get_version as get_sp_version
from spacepackets.cfdp import (
ChecksumType,
TransmissionMode,
)
from eive_tmtc.pus_tc.tc_handler import TcHandler
from eive_tmtc.pus_tm.hk_handler import HkFilter
from tmtccmd.logging import add_colorlog_console_logger
from tmtccmd.cfdp.handler import CfdpInCcsdsHandler
from spacepackets.ecss import PusVerificator
from spacepackets.version import get_version as get_sp_version
from tmtccmd import BackendBase
from tmtccmd.cfdp.handler import RemoteEntityCfgTable
from eive_tmtc.cfdp.handler import CfdpInCcsdsHandler
from tmtccmd.cfdp.mib import (
LocalEntityCfg,
IndicationCfg,
LocalEntityCfg,
RemoteEntityCfg,
)
from tmtccmd import BackendBase
from tmtccmd.util import FileSeqCountProvider, PusFileSeqCountProvider
from tmtccmd.config import (
SetupWrapper,
default_json_path,
params_to_procedure_conversion,
)
from tmtccmd.config.args import (
PreArgsParsingWrapper,
ProcedureParamsWrapper,
SetupParams,
)
from tmtccmd.core import BackendRequest
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.logging import add_colorlog_console_logger
from tmtccmd.logging.pus import (
RawTmtcTimedLogWrapper,
RegularTmtcLogWrapper,
TimedLogWhen,
)
from tmtccmd.pus import VerificationWrapper
from tmtccmd.tm import SpecificApidHandlerBase, GenericApidHandlerBase, CcsdsTmHandler
from tmtccmd.core import BackendRequest
from tmtccmd.config import (
default_json_path,
SetupWrapper,
params_to_procedure_conversion,
)
from tmtccmd.config.args import (
SetupParams,
PreArgsParsingWrapper,
ProcedureParamsWrapper,
)
from tmtccmd.tmtc import CcsdsTmHandler, GenericApidHandlerBase, SpecificApidHandlerBase
from tmtccmd.util import FileSeqCountProvider, PusFileSeqCountProvider
from eive_tmtc import APP_LOGGER
from importlib.metadata import version
from eive_tmtc.cfdp.fault_handler import EiveCfdpFaultHandler
from eive_tmtc.cfdp.tm import CfdpInCcsdsWrapper
from eive_tmtc.cfdp.user import EiveCfdpUser, EiveCheckTimerProvider
from eive_tmtc.config.definitions import (
PUS_APID,
CFDP_APID,
CFDP_LOCAL_ENTITY_ID,
CFDP_REMOTE_ENTITY_ID,
PUS_APID,
)
from eive_tmtc.config.hook import EiveHookObject
from eive_tmtc.pus_tc.tc_handler import TcHandler
from eive_tmtc.pus_tm.hk_handler import HkFilter
from eive_tmtc.pus_tm.pus_demux import pus_factory_hook
_LOGGER = APP_LOGGER
@ -106,7 +107,7 @@ class CustomCcsdsTmHandler(CcsdsTmHandler):
_LOGGER.debug(f"Received packet {packet.hex(sep=',')} with APID {apid}")
def setup_params() -> (SetupWrapper, int):
def setup_params() -> Tuple[SetupWrapper, int]:
hook_obj = EiveHookObject(default_json_path())
params = SetupParams()
parser_wrapper = PreArgsParsingWrapper()
@ -152,7 +153,8 @@ def setup_cfdp_handler() -> CfdpInCcsdsWrapper:
closure_requested=False,
entity_id=CFDP_LOCAL_ENTITY_ID,
max_file_segment_len=990,
check_limit=None,
max_packet_len=1024,
check_limit=5,
crc_on_transmission=False,
crc_type=ChecksumType.CRC_32,
default_transmission_mode=TransmissionMode.UNACKNOWLEDGED,
@ -161,11 +163,13 @@ def setup_cfdp_handler() -> CfdpInCcsdsWrapper:
closure_requested=False,
entity_id=CFDP_REMOTE_ENTITY_ID,
max_file_segment_len=990,
check_limit=None,
max_packet_len=1024,
check_limit=5,
crc_on_transmission=False,
crc_type=ChecksumType.CRC_32,
default_transmission_mode=TransmissionMode.UNACKNOWLEDGED,
)
check_timer_provider = EiveCheckTimerProvider()
cfdp_seq_count_provider = FileSeqCountProvider(
max_bit_width=16, file_name=Path("seqcnt_cfdp_transaction.txt")
)
@ -175,7 +179,8 @@ def setup_cfdp_handler() -> CfdpInCcsdsWrapper:
cfdp_user = EiveCfdpUser()
cfdp_in_ccsds_handler = CfdpInCcsdsHandler(
cfg=cfdp_cfg,
remote_cfgs=[remote_cfg, self_as_remote],
check_timer_provider=check_timer_provider,
remote_cfg_table=RemoteEntityCfgTable([remote_cfg, self_as_remote]),
ccsds_apid=CFDP_APID,
ccsds_seq_cnt_provider=cfdp_ccsds_seq_count_provider,
cfdp_seq_cnt_provider=cfdp_seq_count_provider,
@ -190,7 +195,7 @@ def setup_tmtc_handlers(
raw_logger: RawTmtcTimedLogWrapper,
gui: bool,
hk_level: int,
) -> (CcsdsTmHandler, TcHandler):
) -> Tuple[CcsdsTmHandler, TcHandler]:
cfdp_in_ccsds_wrapper = setup_cfdp_handler()
verification_wrapper = VerificationWrapper(
verificator, _LOGGER, printer.file_logger