Satellite Operations Language Metamodel Avatar
  1. OMG Specification

Satellite Operations Language Metamodel — Closed Issues

  • Acronym: SOLM
  • Issues Count: 18
  • Description: Issues resolved by a task force and approved by Board
Closed All
Issues resolved by a task force and approved by Board

Issues Summary

Key Issue Reported Fixed Disposition Status
SOLM12-36 Outstanding edits SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-28 SpacePython SpecificTime and waitUtil() has timezone issues SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-1 Parameter value query missing some attributes SOLM 1.0 SOLM 1.2b1 Resolved closed
SOLM12-2 Specification should not be tied to XTCE and GEMS terms SOLM 1.0 SOLM 1.2b1 Resolved closed
SOLM12-5 SpacePython UI and data backing implementations are coupled together SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-4 SpacePython unable to support concurrent implementations SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-6 SOLM and SpacePython should support spacecraft as a sensor SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-18 TimeInterval output string formatter has incorrect formatting SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-15 Remove section 6.7 SOLM 1.1b1 SOLM 1.2b1 Resolved closed
SOLM12-20 Remove Comet Control Language PSM SOLM 1.1 SOLM 1.2b1 Resolved closed
SOLM12-8 SpacePython missing functions: Get current status/flags SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-9 SpacePython missing functions: Command Lock/Unlock SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-7 SpacePython missing functions: Telemetry and limit checks SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-11 SpacePython missing functions: Directive/commanding metadata SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-10 SpacePython missing functions: Fire a ground system event SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-12 SpacePython missing functions: Database parameter information SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-13 OperatorQuery is loosely defined SOLM 1.1 SOLM 1.2b1 Deferred closed
SOLM12-14 SpacePython does not utilize standard time functionality SOLM 1.1 SOLM 1.2b1 Deferred closed

Issues Descriptions

Outstanding edits

  • Key: SOLM12-36
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    Several small edits were not included in previous updates.

  • Reported: SOLM 1.1 — Tue, 11 Feb 2025 17:31 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Make small edits detailed in revised section.

    See small changes in the revised section.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython SpecificTime and waitUtil() has timezone issues

  • Key: SOLM12-28
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpecificTime class should support providing a timezone and the waitUntil() function should support timezones that have a timezone.

  • Reported: SOLM 1.1 — Tue, 4 Feb 2025 21:32 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Update SpacePython to support timezone being specified in SpecificTime class

    SpecificTime should allow providing time strings that have a timezone.
    waitUntil() function should respect the timezone of the field provided.
    waitUntil() is also being updated to work with SpecificTime or the underlying timedate type.

    Line 49: Change to:
    t = datetime.datetime.now(tz)

    Line 51: Change to:
    t.second, t.microsecond, tz)

    Line 56 (added after Line 55):
    May optionally end with a timezone indicator, such as Z.

    Lines 62-68 replaced with:
    t = datetime.datetime.fromisoformat(strval)

    Line 70 replaced with:
    t.second, t.microsecond, t.tzinfo)

    Line 186 replaced with:
    def waitUntil(specificTime:datetime.datetime) -> None: #Normative

    Line 192 replaced with:

    1. use same timezone for now as the provided datetime
      now = SpecificTime.now(specificTime.tzinfo)

    Complete changes are in the attached patch file against the changes as a result of SOLM12-6.

  • Updated: Tue, 1 Jul 2025 15:03 GMT
  • Attachments:

Parameter value query missing some attributes

  • Key: SOLM12-1
  • Status: closed  
  • Source: Boeing ( Mr. David Overeem)
  • Summary:

    ... While doing this we think we’ve identified an omission in the mapping table.

    If you look at the SOLM you’ll see this model for the Parameter. Note the highlighted aggregate object. If we go to the table for the mapping we see:

    Parameter.value()
    Parameter.raw()

    Of course raw() doesn’t exist in the model, but there’s a description (note uncal doesn’t exist). But the but is there’s no mapping item to get the timestamp. However in the reference implementation in a section that should be normative there’s the report method that returns the time and the value (effectively a tuple that represents the InstantValue – see the 6.4.6 description).

    In my book this should be a bug report to add a Parameter.report() that returns the InstantValue data as a tuple of value, timestamp. So can we report this as a bug?

  • Reported: SOLM 1.0 — Wed, 22 Mar 2023 14:52 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Replace with sample() function

    Replace SpacePython report() function with a new function sample() that returns a dictionary including the time, value, and raw values for a single sample. The change for this function is included in the work for issue #6.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

Specification should not be tied to XTCE and GEMS terms

  • Key: SOLM12-2
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    The terms XTCE and GEMS should not be part of the SOLM meta models or functions that are projected from it (like SpacePython).

    The specification should talk about Parameters that are being queried (possibly as Spacecraft or Ground Parameters), though the transport/method should be decoupled since there are multiple interfaces that could be used (direct integration with an end product, via GEMS, via SNMP, via a message bus/C2MS, or perhaps via a database).

  • Reported: SOLM 1.0 — Wed, 22 Mar 2023 15:09 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Addressing references to the PSM of SpacePython at this time

    The updated section of SpacePython (section 8) is being replaced with new content as part of issue #6. The updated version addresses this issue for the single PSM that remains as part of SOLM.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython UI and data backing implementations are coupled together

  • Key: SOLM12-5
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    The user interface (operatorQuery) function is embedded in the middle of the SpacePython implementation and is not able to be separately implemented.

    The method of prompting for a value may vary (such as for a web user interface versus a desktop application) and this variance is independence of the implementing provider for the SOLM language module.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 18:54 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Implementing as part of changes to issue #6

    Issue #6 includes updates to the SpacePython library to allow for a pluggable interface for different implementations of the language. The plug-in can have different implementations for the UI and data backing.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython unable to support concurrent implementations

  • Key: SOLM12-4
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython 1.1 requires that the reference implementation is modified/tailored by an implementing project/customer. As such, it does not have a loosely coupled implementation where the interface and implementation are separate.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 18:52 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Implementing as part of changes to issue #6

    Issue #6 includes updates to the SpacePython library to allow for a pluggable interface for different implementations of the language.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SOLM and SpacePython should support spacecraft as a sensor

  • Key: SOLM12-6
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    The data model should harmonize spacecraft and ground assets and therefore the language model should simplify/make this consistent as much as possible.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 18:56 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Update to align with modern language

    See changes in the Revised Text.

    Patch file for this change is attached to this issue.

  • Updated: Tue, 1 Jul 2025 15:03 GMT
  • Attachments:

TimeInterval output string formatter has incorrect formatting

  • Key: SOLM12-18
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    Within SpacePython times.py TimeInterval _str_() function, the following lines are faulty:

    hours = seconds / 3600
    minutes = (seconds % 3600) / 60

    Both of these variables should be integers (not floating point values)

    These instead should be:
    hours = int(seconds / 3600)
    minutes = int((seconds % 3600) / 60)

  • Reported: SOLM 1.1 — Wed, 13 Nov 2024 00:34 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Update hours and minutes calculations

    In times.py, change:
    hours = seconds / 3600
    To:
    hours = int(seconds / 3600)

    And:
    minutes = (seconds % 3600) / 60
    To:
    minutes = int((seconds % 3600) / 60)

  • Updated: Tue, 1 Jul 2025 15:03 GMT

Remove section 6.7

  • Key: SOLM12-15
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    Section 6.7 represents compliance between the SOLM spec and the original RFP requirements. This likely should have been part of section 0 and removed during FTF. As such, this section should now be removed.

  • Reported: SOLM 1.1b1 — Wed, 13 Nov 2024 00:20 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Remove section 6.7

    Remove 6.7 in its entirety.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

Remove Comet Control Language PSM

  • Key: SOLM12-20
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    The Comet Control Language is a vendor-specific language that is not maintained by the SOLM RTF or any active member of the Space Domain Task Force. As such, it is unable to be maintained by the SOLM RTF maintainers. In addition, we do not see value in maintaining it due to lack of awareness of it being implemented/used in conjunction with SOLM.

  • Reported: SOLM 1.1 — Wed, 27 Nov 2024 22:42 GMT
  • Disposition: Resolved — SOLM 1.2b1
  • Disposition Summary:

    Remove mentions of Comet Control Language

    See Revised Text

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Get current status/flags

  • Key: SOLM12-8
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that allow determining the current status/flags of a parameter (including the severity) are not available in the language at this time.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:00 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Defer to future SpacePython version. Can be re-evaluated in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Command Lock/Unlock

  • Key: SOLM12-9
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that enabling the establishment and release of command locks are missing from the language.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:03 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Defer to future SpacePython version. Can be re-evaluated in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Telemetry and limit checks

  • Key: SOLM12-7
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that perform telemetry and limit checks are missing from the language at this time.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 18:59 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Defer to future SpacePython version. Can be re-evaluated in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Directive/commanding metadata

  • Key: SOLM12-11
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that allow retrieval of metadata from a previous directive/command that was issued do not exist in the language.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:06 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Defer to future SpacePython version. Can be re-evaluated in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Fire a ground system event

  • Key: SOLM12-10
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that create ground system events do not currently exist in the language.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:05 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Defer to future SpacePython version. Can be re-evaluated in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython missing functions: Database parameter information

  • Key: SOLM12-12
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython is missing critical functions to be able to perform vital capability required for a real-time command and control system.

    Functions that provide parameter and type information are lacking or insufficient in the language.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:07 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Can be re-evaulated in the future

  • Updated: Tue, 1 Jul 2025 15:03 GMT

OperatorQuery is loosely defined

  • Key: SOLM12-13
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    operatorQuery allows for any number of inputs of any type to be provided. An implementation is very difficult to provide a friendly experience.

    Would be valuable if guidance is provided for common usage patterns, including:

    • Yes/No prompt
    • Confirmation prompt (Message Box)
    • Pick from a list (enum/dropdown/picklist)
    • Input string, number, arrays
    • Considerations for rich dialogs
    • Password/credential prompts
  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:12 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Defer to future SpacePython version

    Existing OperatorQuery function only supports string parameter input (for zero or more strings). Consider extending the Query class to have additional methods for other usage patterns in the future.

  • Updated: Tue, 1 Jul 2025 15:03 GMT

SpacePython does not utilize standard time functionality

  • Key: SOLM12-14
  • Status: closed  
  • Source: Kratos RT Logic, Inc. ( Mr. Justin Boss)
  • Summary:

    SpacePython defines its own time object. It should instead utilize native time/date functionality. This would make procedures be easier to author and better integrate with existing and third-party libraries.

  • Reported: SOLM 1.1 — Wed, 11 Sep 2024 19:14 GMT
  • Disposition: Deferred — SOLM 1.2b1
  • Disposition Summary:

    Native Python DateTime class does not support nanoseconds

    The current custom class adds support for nanoseconds. It is an extended class on top of the native type though.

    Deferring this issue to re-evaluate if Python gains improved time precision.

  • Updated: Tue, 1 Jul 2025 15:03 GMT