[Css-csts] Comparison old and new Version of the CSTS-FW for the TD Prototype

Sylvain Gully Sylvain.Gully at dlr.de
Wed Mar 1 15:54:39 UTC 2017


Hello together,

we decided in our last teleconference to find out if it could be 
possible to use the CSTS-FW ESA API (from 2015) in the CSTS-TD prototype 
with the new version of the TD book. Now I found some time to make the 
comparison of the ASN1 between following CSTS-FW versions:
- 921x1r2_20150708 (version for CSTS-FW ESA API)
- 921x1r2_20160901 (actual version)

I had only time to check the FW ASN1 that is used by the TD service, but 
not yet the state machines. I found some differences.
Perhaps somebody with a better understanding for the framework than I 
can have a look at these 4 differences and make a commitment if this 
could be a show stopper for our idea?

1) Differences found in BindInvocation / serviceInstanceIdentifier
------------------------------------------------------------------
Old version of serviceInstanceIdentifier:
ServiceInstanceIdentifier    ::=    SEQUENCE
{    spacecraftId            PublishedIdentifier
,    facilityId            PublishedIdentifier
,    serviceType            FunctionalResourceType
,    serviceInstanceNumber        FunctionalResourceInstanceNumber
}

New version of serviceInstanceIdentifier:
ServiceInstanceIdentifier    ::=    SEQUENCE
{    spacecraftId            PublishedIdentifier
,    facilityId            PublishedIdentifier
,    serviceType            PublishedIdentifier
,    serviceInstanceNumber        IntUnsigned
}

Differences:
1.a :) serviceType was in old version from type 'FunctionalResourceType' 
and is in new version from type "PublishedIdentifier"
    This is not a problem because 'FunctionalResourceType' ::= 
'PublishedIdentifier'
1.b :( serviceInstanceNumber was in old version from type 
'FunctionalResourceInstanceNumber' and is in new version from type 
"IntUnsigned"
    This could be a problem because of the following:
    FunctionalResourceInstanceNumber ::= IntPos ::= INTEGER (1 .. 
4294967295)
    IntUnsigned ::= INTEGER (0 .. 4294967295)


2) Differences found in ReturnBuffer / notifyInvocation / eventValue / 
qualifiedValues / valid / typeAndValue (or SEQUENCE OF TypeAndValue) (or 
SET OF TypeAndValue)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Old version of TypeAndValue:
TypeAndValue                    ::=    CHOICE
{    integer                    [0]    SEQUENCE OF INTEGER
,    integerPositive                [1]    SEQUENCE OF IntPos
,    intUnsigned                [2]    SEQUENCE OF IntUnsigned
,    duration                [3]    SEQUENCE OF Duration
,    characterString                [4]    SEQUENCE OF VisibleString
,    boolean                    [5]    SEQUENCE OF BOOLEAN
,    octetString                [6]    SEQUENCE OF OCTET STRING
,    float                    [7]    SEQUENCE OF REAL
,    time                    [8]    SEQUENCE OF Time
,    enumerated                [9]    SEQUENCE OF Enumerated
,    objectIdentifier            [10]    SEQUENCE OF OBJECT IDENTIFIER
,    typeAndValueExtension            [100]    Embedded
}

New version of TypeAndValue:
TypeAndValue                    ::=    CHOICE
{    integer                    [0]    SEQUENCE OF INTEGER
,    integerPositive                [1]    SEQUENCE OF IntPos
,    intUnsigned                [2]    SEQUENCE OF IntUnsigned
,    duration                [3]    SEQUENCE OF Duration
,    characterString                [4]    SEQUENCE OF VisibleString
,    boolean                    [5]    SEQUENCE OF BOOLEAN
,    octetString                [6]    SEQUENCE OF OCTET STRING
,    float                    [7]    SEQUENCE OF REAL
,    time                    [8]    SEQUENCE OF Time
,    enumerated                [9]    SEQUENCE OF INTEGER
,    objectIdentifier            [10]    SEQUENCE OF OBJECT IDENTIFIER
,    publishedIdentifier            [11]    SEQUENCE OF PublishedIdentifier
,    typeAndValueExtension            [100]    Embedded
}

Differences:
2.a :) enumerated was in old version from type 'SEQUENCE OF Enumerated' 
and is in new version from type "SEQUENCE OF INTEGER"
    This should not be a problem because in the old version Enumerated 
::= IntUnsigned ::= INTEGER (0 .. 4294967295) and in the new version it 
is defined as INTEGER, but it is an enumeration so the range of value 
should be enough. I don't know if it could make a difference in the 
encoding/decoding?
2.b :( In the old version the choice [11] has not existed. So if we use 
an event that has a refence to an OBJECT INDENTIFER in the new version, 
this could be a big problem with the old framework!!!

Best Regards,
Sylvain

PS: next week I will have a look at the state machine differences 
between both versions of the CSTS-FW








More information about the CSS-CSTS mailing list