Issues for GEMS 1.5 Revision Task Force

To comment on any of these issues, send email to [email protected]. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to [email protected].

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Jira Issues

Issue 12755: Section 7.3.2.5.1 Jira Issue GEMS11-1
Issue 13132: The time format is closer to POSIX than UTC and does not allow for unambiguous leap second resolution Jira Issue GEMS-23
Issue 14111: Escape characters Jira Issue GEMS11-2
Issue 14112: We suggest leaving the old time type (based on POSIX) Jira Issue GEMS11-3
Issue 14113: Hex value arrays in ASCII Jira Issue GEMS11-4
Issue 14850: RFP Mandatory Requirment 6.5.1.9 Not Implemented Jira Issue GEMS11-5
Issue 15486: Need a better example for XML Get Request Jira Issue GEMS14-1
Issue 15487: ASCII Set Response description has a valid_state Jira Issue GEMS12-1
Issue 15488: Mapping of XML and ASCII versions is not consistent Jira Issue GEMS12-2
Issue 15489: Incorrect message types in ASCII GetConfigMessage/Response Jira Issue GEMS12-3
Issue 15490: No PingMessage/Response defined in XML schema Jira Issue GEMS12-4
Issue 15491: ASCII Save response has extra field in the example Jira Issue GEMS12-5
Issue 15492: GEMS does not define a message type for a generic malformed message Jira Issue GEMS12-6
Issue 15493: Defining a zero length hex_value is ambiguous Jira Issue GEMS12-7
Issue 15494: The comment regarding multiplicity in section 6.3.1.13 is no longer needed Jira Issue GEMS12-8
Issue 15495: There is no unambiguous way to tell if a value is a scalar or an array of one in the XML Jira Issue GEMS12-9
Issue 15496: The XML schema calls out an 'array' attribute (vs multiplicity) in the ParameterSet Jira Issue GEMS12-10
Issue 15497: Defining arrays of ParameterSets in GEMS-XML is unclear Jira Issue GEMS12-11
Issue 15498: Network messages containing GEMS-XML are difficult to parse without a header containing the message length Jira Issue GEMS12-12
Issue 16017: Typos Jira Issue GEMS12-13
Issue 16091: The schema dtc/11-02-02 has 6 errors found by running an XML Schema validator Jira Issue GEMS12-14
Issue 16950: GEMS-XML hex_value length Issue Jira Issue GEMS13-1
Issue 16952: GEMS-XML ParameterSet Order Jira Issue GEMS13-2
Issue 18313: clarify GEMS authentication Jira Issue GEMS13-3
Issue 18314: Extend GEMS-ASCII message length Jira Issue GEMS13-4
Issue 18315: obtained only changed parameters Jira Issue GEMS14-2
Issue 18535: GEMS-XML schema (GEMS 1.2) for MessageSequenceType does not support elements for DirectiveMessage Jira Issue GEMS13-5
Issue 18723: GEMS TCP socket close behavior is not obvious Jira Issue GEMS13-6
Issue 18733: Confusing comments Jira Issue GEMS13-7
Issue 18813: GEMS Device Definition does not include a multiplicity for ParameterSetDefType Jira Issue GEMS14-3
Issue 18814: Unbounded Lists In Device Definitions Jira Issue GEMS13-8
Issue 19513: GEMS HTTP POST example is incorrect Jira Issue GEMS14-4
Issue 19563: wrong type of quote used Jira Issue GEMS14-5
Issue 19596: Bug link URL is invalid Jira Issue GEMS14-6
Issue 19597: Numerous small errata and inconsistencies Jira Issue GEMS14-7
Issue 19615: Multiple issues with ASCII PSM examples Jira Issue GEMS14-8
Issue 19616: Figures without figure numbers Jira Issue GEMS14-9
Issue 19617: Acronym not defined correctly Jira Issue GEMS14-10
Issue 19618: Links in XML examples are broken Jira Issue GEMS14-11
Issue 19619: SetConfigResponse defined with two parameters in PIM Jira Issue GEMS14-12
Issue 19620: Arrays defined ambiguously for ASCII PSM Jira Issue GEMS14-13
Issue 19622: HTTP header on GEMS XML example malformed Jira Issue GEMS14-14
Issue 19625: Arrays of parameters sets not defined for ASCII PSM Jira Issue GEMS14-15
Issue 19626: Mixed parameter set example has extra delimiter Jira Issue GEMS14-16
Issue 19627: Extend PIM to allow "leaf" values to be referenced directly Jira Issue GEMS14-17
Issue 19629: Standard message trailer in ASCII PSM has extra pipe Jira Issue GEMS14-18
Issue 19647: Extra Attribute in GEMS 1.3 Directive Schema Jira Issue GEMS14-19
Issue 19661: Directives require arguments Jira Issue GEMS14-20
Issue 19662: DisconnectMessage doesn't have a response Jira Issue GEMS14-21
Issue 19737: Add 'Units' to Device Description parameter definitions Jira Issue GEMS14-22
Issue 19739: "Range of Values" specified for "Message Length" is incorrect Jira Issue GEMS14-23
Issue 19740: Add read-only as a parameter attribute Jira Issue GEMS14-24

Issue 12755: Section 7.3.2.5.1 (gems-rtf)

Click here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Need to describe what a GET message returns when targeted to a proxy. There is no description of what is returned when a GetMessage is sent to a proxy.  Options:  * Return information on the proxy such as an array of target names available ''behind'' the proxy.  * Return all parameters for all devices behind the proxy  * Defined standard parameters for the proxy which would then be returned

Resolution: Return a parameter with the name 'targets' that provides an array of strings, each array value represents a single target.
Revised Text: Add the following paragraph to the end of section 6.2.11.1: A GEMS proxy is considered to be a device and can be the target of messages such as the SetConfigMessage and GetConfigMessage. The specifics of any proxy parameters, directives or other behavior is left to the implementor to define. At a minimum, in the event a GetConfigMessage is sent to a proxy, the resulting GetConfigResponse will contain at least one parameter named 'targets'. That parameter is a string array listing all of the target names handled by that specific proxy instance.
Actions taken:
August 8, 2008: received issue
April 26, 2010: closed issue

Discussion:
It is suggested that this be deferred to the RTF.  Disposition:	Deferred  


Issue 13132: The time format is closer to POSIX than UTC and does not allow for unambiguous leap second resolution (gems-rtf)

Click
here for this issue's archive.
Source: Boeing (Mr. David Overeem, david.overeem(at)boeing.com)
Nature: Uncategorized Issue
Severity:
Summary:
1) The time format is closer to POSIX than UTC and does not allow for unambiguous leap second resolution.   A. This new issue was raised during the FTF.  B. Reported by David Overeem at Boeing

Resolution: Disposition: See issue 14112 for disposition
Revised Text:
Actions taken:
August 8, 2008: received issue
December 2, 2008: received issue
April 30, 2009: closed issue

Discussion:
It is suggested that this be deferred to a future RTF.


Issue 14111: Escape characters (gems-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Minor
Summary:
Escape characters: To make parsing quite a bit easier (enabling the use of string tokenizer tools found in most modern programming languages) we suggest changing the current escape character implementation with a mechanism similar to the one used for HTML / XML. This would mean identifying all special characters ('|', ',', ';' . . .) and creating character sequences for them ('&p', '&c', . . .). Doing this would simplify parsing code significantly. The initial message could then be easily split using the '|' as the token. Array members could easily be split using a ',' etc...  

Resolution: Adopt a simple escape character sequence. There are numerous standard escape sequences available, but the most common do not provide for the specific four characters needed in the GEMS ASCII PSM: | , & ; To keep the ASCII PSM simple the following table is to be used: Character Escape Sequence & &a | &b , &c ; &s Other PSMs might need a different escape sequence and will define this table differently.
Revised Text: Replace section 8.1.2 with the following text: The following words are reserved and should not be used as parameter or target names: "|GEMS" and "|END|" The following characters are special but can be escaped using the following escape sequences: Character Escape Sequence & &a | &b , &c ; &s These escape sequences were chosen for the ASCII PSM to allow for simple parsing. Notionally, implementations first tokenize on a vertical bar '|' character. Then, for messages containing parameters, split the parameter fields on the first equal sign '='. Escaped characters should only show up to the right of the equal sign in string parameters.
Actions taken:
July 11, 2009: received issue
July 27, 2009: received issue
April 26, 2010: closed issue
April 26, 2010: closed issue

Issue 14112: We suggest leaving the old time type (based on POSIX) (gems-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Significant
Summary:
UTC Time as a new type Create a new time type that uses the UTC time format. This would allow for times that are human readable and that also support leap seconds. Unfortunately the current time type cannot be replaced because the XML schema for it wouldn't easily support this new format for time. We suggest leaving the old time type (based on POSIX) which we admit is useful under many circumstances.  

Resolution: Adopt utime as a new parameter type. Updates are to be made in the PIM and PSMs. This resolution allows for backward compatibility with GEMS 1.0 since existing implementations will not utilize utime parameter types.
Revised Text: see pages 5 through 7 of dtc/2009-12-01 for details
Actions taken:
July 27, 2009: received issue
April 26, 2010: closed issue

Issue 14113: Hex value arrays in ASCII (gems-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Minor
Summary:
Hex value arrays in ASCII This was already differed as an issue during the FTF to be fixed later. Some additional feedback received was to use a format like 'FAF320/20' instead of notation like 'FAF320.20'. The later matches the notation used for the current time type but might cause too much confusion with floats.  

Resolution: Adopt the FAF320/20 format.
Revised Text: hange the hex_value row in table 8.1 to:hex_value param:hex_value=faf320/22param:hex_value=0xfaf320/22 Bit length attribute in parenthesis Change the Message example in 8.2.7 to: |GEMS|01|000122|123|CS123|111111111.222000000|FrameSync1|DIR|sendVehicleCommand|1|command:hex_value=FF1234567890ABCDFF/63|END
Actions taken:
July 27, 2009: received issue
April 26, 2010: closed issue

Issue 14850: RFP Mandatory Requirment 6.5.1.9 Not Implemented (gems-rtf)

Click
here for this issue's archive.
Source: Boeing (Mr. David Overeem, david.overeem(at)boeing.com)
Nature: Revision
Severity: Significant
Summary:
The device definition return that is specified in the original RFP at section 6.5.1.9 does not appear to be implemented in the released specification 1.0.

Resolution: Add a GEMS Device Definition description to the PIM. This description is generic in nature and defers the specifics of the description to the PSMs. Define the exact format of the GEMS Device Definition in the GEMS-XML PSM as an XML file. This file may be obtained manually (e.g. distributed directly by the GEMS vendor) or automatically by serving the file out through an HTTP GET using the following URL: http://hostname/omg/gems/DeviceDefinitions.xml
Revised Text: Change the first sentence of the paragraph following Figure 6.2 from: Typically, the device vendor defines and maintains the associated GEMS device definitions. To Typically, the device vendor defines and maintains the associated GEMS device definitions. The device definitions are either distributed manually by the vendor (e.g. incorporated in to product documentation or as a GEMS Device Definition file), or directly from the GEMS device as an electronic document. See section 6.8 for more information on Device Definitions Add a new section, 6.8, with the following content: 6.8 Device Definitions A GEMS Device may optionally provide a GEMS Device Definition to clients. The intent of the device definition is to describe the parameters and directives supported by a GEMS Device, including textual descriptions and any constraints, in a machine-readable format. The format, and mechanism for obtaining the information, is PSM specific. A GEMS Device Definition may contain more than one device if a logical grouping of devices exists within the system. The GEMS Device Definition contains the following information: A list of one or more devices, each containing: � Device Target Name � List of Parameter Definitions or Parameter Set Definitions � List of Directive Definitions The Device Target Name is the target name used in all GEMS messages when referencing the device. 6.8.1 Parameter Definitions Parameter definitions are used to define an individual parameter on a GEMS device. Parameter Definitions contain the following: � Parameter Name � Parameter Type � Description of the parameter (free text) � A list of constraints, if any, restricting values of the parameter Parameter constraints may contain one or more of the following: � maximum/minimum/fixed length (applies to strings) � pattern as a regular expression (applies to strings) � enumerated list of values (applies to strings) � inclusive maximum/minimum values (applies to numeric and time values) � exclusive maximum/minimum values (applies to numeric and time values) � maximum/minimum number of nano seconds (applies to time values) 6.8.2 Parameter Set Definitions Parameter Set definitions contain the following: � Name � Description of the parameter set (free text) � List of Parameter Definitions as defined in 6.8.1 6.8.3 Directive Definitions Directive definitions are used to define the directives supported by a GEMS Device. Parameter Definitions are used to define the arguments and return values of the directive. Each Directive Definition includes the following: � Directive Name � Description of the directive (free text) � A list of arguments (represented as a list of Parameter or Parameter Set Definitions) � A list of return values (represented as a list of Parameter or Parameter Set Definitions) Add a new section, 7.4, with the following 7.4 GEMS Device Definitions The GEMS-XML mapping of a Device Definition takes the form of an XML file. The schema for this file is defined in the normative GEMS_Device.xsd file, included as part of the GEMS-XML PSM. To avoid redundancy between documents, comments have been added in the schema file, describing the various portions of the schema. The XML Device Definition file is either distributed manually by the device vendor as part of the system delivery, or automatically using an HTTP GET request. It is expected that the HTTP GET request is handled using standard HTTP protocols on port 80. However, alternate port number may be specified by the vendor. If provided automatically using an HTTP GET request, the URL for the device definition file shall be as follows: http://<hostname>/omg/gems/DeviceDefinitions.xml where <hostname> is either the hostname or a valid IP address for the web server on the device. 7.4.1 Example Device Definition File The following XML provides a non-normative example of the GEMS-XML Device Definition File. <?xml version="1.0" encoding="UTF-8"?> <GemsDeviceDefinition gems_version="1.2" xmlns="https://www.omg.org/gems" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.omg.org/gems GEMS_Device.xsd"> <Device target="x/y/z"> <Description /> <Parameters> <!-- Generic String max length 24. No min--> <ParameterDef name="mystring" type="string"> <Description /> <Restriction> <minLength value="0" /> <maxLength value="24" /> </Restriction> </ParameterDef> <!-- Boolean Parameter --> <ParameterDef name="mybool" type="bool"> <Description /> </ParameterDef> <!-- Byte Parameter with a series of valid ranges --> <ParameterDef name="mybyte" type="byte"> <Description /> <Restriction> <minInclusive value="-3" /> <maxInclusive value="-1" /> </Restriction> <Restriction> <minInclusive value="0" /> <maxInclusive value="127" /> </Restriction> </ParameterDef> <!-- Unsigned Byte Parameter --> <ParameterDef name="myubyte" type="ubyte"> <Description /> <Restriction> <minInclusive value="0" /> <maxInclusive value="256" /> </Restriction> </ParameterDef> <!-- Unsigned Byte Parameter --> <ParameterDef name="myubyte" type="ubyte"> <Description /> <Restriction> <minInclusive value="0" /> <maxInclusive value="256" /> </Restriction> </ParameterDef> <!-- Hex Parameter --> <ParameterDef name="myhex" type="hex_value"> <Description /> <Restriction> <minLength value="0" /> <maxLength value="24" /> </Restriction> </ParameterDef> <!-- Double Parameter with this format 1234.56789123 --> <ParameterDef name="mydouble" type="double"> <Description /> <Restriction> <minInclusive value="0.1" /> <maxInclusive value="256.345699" /> </Restriction> </ParameterDef> <!-- Long Parameter --> <ParameterDef name="mylong" type="long"> <Description /> <Restriction> <minInclusive value="-2147483647" /> <maxInclusive value="2147483647" /> </Restriction> </ParameterDef> <!-- Unsigned Long Parameter --> <ParameterDef name="myulong" type="ulong"> <Description /> <Restriction> <minInclusive value="0" /> <maxInclusive value="4294967295" /> </Restriction> </ParameterDef> <!-- Integer Parameter --> <ParameterDef name="myint" type="int"> <Description /> <Restriction> <minInclusive value="-2147483647" /> <maxInclusive value="2147483647" /> </Restriction> </ParameterDef> <!-- Unsigned Integer Parameter --> <ParameterDef name="myint" type="uint"> <Description /> <Restriction> <minInclusive value="0" /> <maxInclusive value="4294967295" /> </Restriction> </ParameterDef> <!-- Short Parameter --> <ParameterDef name="myshort" type="short"> <Description /> <Restriction> <minInclusive value="-32767" /> <maxInclusive value="32767" /> </Restriction> </ParameterDef> <!-- Unsigned Short Parameter --> <ParameterDef name="myshort" type="ushort"> <Description /> <Restriction> <minInclusive value="0" /> <maxInclusive value="65535" /> </Restriction> </ParameterDef> <!-- Time Parameter --> <ParameterDef name="mytime" type="time"> <Description /> </ParameterDef> <!-- UTC Time Parameter --> <ParameterDef name="myutime" type="utime"> <Description /> </ParameterDef> <!-- Boolean Array Parameter --> <ParameterDef name="myboolarray" type="bool" multiplicity="10"> <Description /> </ParameterDef> <!-- Enumerated String --> <ParameterDef name="myenum" type="string"> <Description /> <Restriction> <enumeration value="ENUM_A" /> <enumeration value="ENUM_B" /> <enumeration value="ENUM_C" /> </Restriction> </ParameterDef> <ParameterSetDef name="mystruct"> <Description /> <!-- UTC Time Parameter --> <ParameterDef name="myutime" type="utime"> <Description /> </ParameterDef> <!-- Boolean Array Parameter --> <ParameterDef name="myboolarray" type="bool" multiplicity="10"> <Description /> </ParameterDef> <!-- Enumerated String --> <ParameterDef name="myenum" type="string"> <Description /> <Restriction> <enumeration value="ENUM_A" /> <enumeration value="ENUM_B" /> <enumeration value="ENUM_C" /> </Restriction> </ParameterDef> </ParameterSetDef> </Parameters> <Directives> <DirectiveDef name="mydirective"> <Arguments> <!-- String Argument --> <ParameterDef name="arg1name" type="string"> <Description /> <Restriction> <minLength value="0" /> <maxLength value="24" /> </Restriction> </ParameterDef> <!-- Boolean Argument --> <ParameterDef name="arg2name" type="bool"> <Description /> </ParameterDef> </Arguments> <ReturnValues> <!-- Integer return --> <ParameterDef name="return1name" type="int"> <Description /> <Restriction> <minInclusive value="-2147483647" /> <maxInclusive value="2147483647" /> </Restriction> </ParameterDef> <!-- Hex Parameter --> <ParameterDef name="return2name" type="hex_value"> <Description /> <Restriction> <minLength value="0" /> <maxLength value="24" /> </Restriction> </ParameterDef> </ReturnValues> </DirectiveDef> </Directives> </Device> </GemsDeviceDefinition> Add a new section, 8.4, with the following content: 8.4 GEMS Device Definitions The GEMS-ASCII Device Definitions utilize the GEMS-XML Device Definition file as specified in section 7.4. This file may be distributed manually by the device vendor or by using a locally hosted web server and an HTTP GET message similar to GEMS-XML.
Actions taken:
December 9, 2009: received issue
July 11, 2011: closed issue

Issue 15486: Need a better example for XML Get Request (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 7.2.6.1 only provides a simple example of a GetConfigResponse with no parameters. A better example would provide parameters possibly with multiplicity so implementers have a clearer understanding of how it should be done. Replace current example with:    <?xml version="1.0" encoding="UTF-8"?><GetConfigResponse gems_version="1.1" target="device1"	timestamp="1234.98765" token="ABCD" transaction_id="1" xmlns="https://www.omg.org/gems"    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd">    	<Result>SUCCESS</Result>	<description>Get config was successful</description>	<Parameter name="name">		<string>Device One</string>	</Parameter>    	<Parameter name="hex">		<hex_value bit_length="16">DEADBEEF</hex_value>	</Parameter></GetConfigResponse>  

Resolution: GetConfigResponse Example The existing example in the specification is insufficient. The online example provides what is needed.
Revised Text: This issue is OBE with the removal of the examples from the specification. The existing online example includes the desired parameters.
Actions taken:
September 2, 2010: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Discussion:


Issue 15487: ASCII Set Response description has a valid_state (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The valid_state was removed from the PIM however the message table in 8.1.8.2 still has a valid state field.   Proposed Resolution: Remove this from the table  

Resolution: Remove the row in table 8.10 starting with the valid_state field name from the table.
Revised Text:
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15488: Mapping of XML and ASCII versions is not consistent (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The mapping of XML to ASCII versions is inconsistent in the PSMs. GEMS-ASCII uses an integer (01, 02, 03...), and GEMS XML uses decimal numbers (1.1, 1.2 and so forth)  Proposed Resolution: Need to discuss  

Resolution: Add a simple mapping in table 8.2 that maps the versions. This section will be kept up to date as new GEMS versions are created.
Revised Text: Modify the comments cell in the GEMS Version row of table 8.2 by changing: Message Format Version To: Message Format Version Mapping 01 : 1.0 02 : 1.1 12 : 1.2 13 : 1.3 (etc.)
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15489: Incorrect message types in ASCII GetConfigMessage/Response (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The GEMS-ASCII message types are not correct in section 8.1.10.1.  Appears to be a copy-n-paste error in GetConfigListMessage, GetConfigListResponse.  

Resolution: Correct the comment cell in table 8.11 to use the correct message types.
Revised Text: Change the comment cell in the �Standard Header� row of table 8.11 from: Message Type Field = SAVE or LOAD To: Message Type Field = GETL Change the comment cell in the �Standard Header� row of table 8.12 from: Message Type Field = DIR-R To: Message Type Field = GETL-R
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15490: No PingMessage/Response defined in XML schema (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The XML PSM sections and attached schema do not define a ping response message  Proposed Resolution: Potential XML Ping & PingResponse messages      <?xml version="1.0" encoding="UTF-8"?><PingMessage gems_version="1.1" target="testDevice1" timestamp="1234.98765"    	token="ABCD" transaction_id="1" xmlns="https://www.omg.org/gems"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    	xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd" />  <?xml version="1.0" encoding="UTF-8"?><PingResponse gems_version="1.1" target="testDevice1"    	timestamp="1234.98765" token="ABCD" transaction_id="1"	xmlns="https://www.omg.org/gems" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    	xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd">	<Result>SUCCESS</Result>	<description>I'm Here!</description></PingResponse>    

Resolution: Add a section to the PIM describing the Ping message and response. Correct the XSD and add a section to the XML PSM describing the message format.
Revised Text: Add Section 6.3.3.9 with the following content: 6.3.3.9 Ping Message And Response The ping message provides a simple mechanism for determining if the GEMS device is still responding to messages. The use of this message is optional. The response to the message is a Ping Response. Insert a new Section 7.1.1.25 with the following content: The GEMS-XML mapping for the PingMessage is as follows: <xsd:complexType name="PingMessageType"> <xsd:complexContent> <xsd:extension base="MessageType"> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="PingMessage" type="PingMessageType"/> Insert Section 7.1.1.26 with the following content: The GEMS-XML mapping for the PingResponseMessage is as follows: <!�Define a PingResponse --> <xsd:complexType name="PingResponseType"> <xsd:complexContent> <xsd:extension base="ResponseMessageType"/> </xsd:complexContent> </xsd:complexType> <xsd:element name="PingResponse" type="PingResponseType"/> Add Section 7.2.7 with the following content: 7.2.7 Ping Message/Response The following is an example of the PingMessage and PingResponse 7.2.7.1 PingMessage Example <?xml version="1.0" encoding="UTF-8"?><PingMessage gems_version="1.1" target="testDevice1" timestamp="1234.98765" token="ABCD" transaction_id="1" xmlns="https://www.omg.org/gems" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd" /> 7.2.7.2 PingResponse Example <?xml version="1.0" encoding="UTF-8"?><PingResponse gems_version="1.1" target="testDevice1" timestamp="1234.98765" token="ABCD" transaction_id="1" xmlns="https://www.omg.org/gems" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd"> <Result>SUCCESS</Result> <description>I'm Here!</description> </PingResponse>
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15491: ASCII Save response has extra field in the example (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The example for the GEMS-ASCII SaveConfigResponse in section 8.2.5 contains an extra field  Proposed Resolution: Fix  

Resolution: Remove the second numerical field (the zero).
Revised Text: Replace the SaveConfigMessage response example in section 8.2.5 with: |GEMS|01|000122|123|CS123|111111111.222000000|FrameSync1|SAVE-R|SUCCESS|The SAVE request was successful.|100|END
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15492: GEMS does not define a message type for a generic malformed message (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The GEMS PIM & PSMs do not define a generic message for a response to an unreadable or completely malformed message. This can occur if the server receives a message that is either not a GEMS message (i.e. junk) or a GEMS message with a malformed header. Currently the only response messages are tied to specific message types and it is unclear what a server should return in this more general case.  Proposed Resolution: Utilize the base response message class for this. The specific type in ASCII could be UNK-R and in XML UnknownResponse.  

Resolution: Utilize the base response message class for this. Define the specific type in ASCII to be UNK-R and in XML UnknownResponse. This are simple mappings to the base response message. The response code for this message indicates the specific error and is most commonly MALFORMED_MESSAGE.
Revised Text: Split the first paragraph in section 6.3.2.2 in to two paragraphs and change to the following: All GEMS response messages contain a result code and an optional free-text description. The result code indicates the success of failure of the original message. If a failure occurs, the specific result code can be inspected programmatically and the appropriate action taken. In the event an unrecognizable message is received, a generic base response message is returned with the result code set to indicate the error. Most commonly the result code for this type of error is MALFORMED_MESSAGE. The acceptable result codes are as follows: Insert a paragraph and XML content at the end of section 7.1.1.14 that includes the following: The GEMS-XML mapping for a generic error response message is as follows: <xsd:element name="UnknownResponse" type="ResponseMessageType"/> Insert a new paragraph at the end of section 8.1.3 containing: The GEMS-ASCII mapping for a generic error response message is simply a standard response header and trailer with the message type set to UNK-R.
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15493: Defining a zero length hex_value is ambiguous (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
There is no clear example of how to define a zero length hex_value in GEMS-ASCII. Possibilities include name:hex_value=/0 or name:hex_value=0/0  Proposed Resolution: name:hex_value=0/0 to make parsing simpler.  

Resolution: Standardize on the following format: name:hex_value=0/0 This makes parsing the message easier as all valid hex_value parameters will contain content on either side of the �/�.
Revised Text: Replace the existing comment associated with the hex_value type in table 8.1 with the following: The value of the bit length attribute follows the slash (/). Specify a zero length bit field with a 0/0.
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15494: The comment regarding multiplicity in section 6.3.1.13 is no longer needed (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The way hex_value arrays are handled in GEMS 1.1 solves this problem. The comment relates to the old way of doing hex_values  Proposed Resolution: Remove the comment  

Resolution: Remove the last sentence in section 6.3.1.13: �In cases where the multiplicity is greater than one the bit_length attribute of the hex_values must all be equal.�
Revised Text: Section 6.3.1.13 should now read: Represents an ASCII representation of a hexadecimal value. The string may optionally be preceded by a �0x�.
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15495: There is no unambiguous way to tell if a value is a scalar or an array of one in the XML (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The GEMS-XML schema defines a default value for multiplicity (default of 1). The result is that parsers using the schema are unable to tell if a parameter is a scalar or an array of length one.   Proposed Resolution: Recommend removing the default multiplicity in the xml schema and the spec should state 'no multiplicity == scalar'  

Resolution: Remove the default multiplicity in the xml schema and the spec now states 'no multiplicity == scalar'.
Revised Text: Section 7.1.1.2: Add the following sentences to the initial paragraph: The multiplicity attribute is used only if the parameter is an array. The multiplicity then specifies the number of items in the array. If no multiplicity attribute is specified, the parameter is a scalar. Change the second to last line in the XML schema text from: <xsd:attribute name="multiplicity" type="xsd:int" default="1"/> to: <xsd:attribute name="multiplicity" type="xsd:int" use=�optional�/>
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15496: The XML schema calls out an 'array' attribute (vs multiplicity) in the ParameterSet (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The attribute should be multiplicity to match the PIM/PSM  Proposed Resolution: Fix  

Resolution: Correct the XML schema and the text in section 7.1.1.3
Revised Text: In section 7.1.1.3: Replace the second to last line in the XML schema text from: <xsd:attribute name="array" type="xsd:boolean" default=�false�/> To: <xsd:attribute name="multiplicity" type="xsd:int" use=�optional�/>
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 15497: Defining arrays of ParameterSets in GEMS-XML is unclear (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Unlike a normal Parameter with multiplicity greater than 1, a ParameterSet array contains ParameterSet elements. These each have a name and multiplicity with then that need to be ignored.  Proposed Resolution: Add the following comment to the XSD for a ParameterSet:          NOTE: If the multiplicity is set, then the contained ParameterSet's are entries in the                array and the name & multiplicity (if specified) are ignored.  

Resolution: The issue here is that normally an element of an array parameter does not itself have a name or multiplicity. When translating between GEMS-XML and GEMS-ASCII there is no mapping for these. However, in GEMS-XML the XML schema allows for their existence. For example, a normal parameter array is defined as follows in GEMS-XML: <Parameter name="myarray" multiplicity="2"> <long>1</long> <long>2</long> </Parameter> In contrast, a parameter set array is defined as follows in GEMS-XML: <ParameterSet multiplicity="2" name="setlist"> <ParameterSet> <Parameter name="param1"> <hex_value bit_length="2">0F</hex_value> </Parameter> <Parameter name="param2"> <string>text1</string> </Parameter> </ParameterSet> <ParameterSet> <Parameter name="param1"> <hex_value bit_length="2">1F</hex_value> </Parameter> <Parameter name="param2"> <string>text2</string> </Parameter> </ParameterSet> </ParameterSet> Per the XML schema, it is legal to add a multiplicity and name to the internal ParameterSet elements. This is effectively an extra layer of nesting that is not required in the GEMS-ASCII version and no mapping existing for the name and multiplicity. To clarify the specification a comment shall be added to section 7.1.1.3 indicating that these values will be ignored. To further help clarify this, an additional parameter set array will be added to the SetConfigMessage example in section 7.2.4.1.
Revised Text: In Section 7.1.1.3 add the following paragraph as the second paragraph in that section: If the multiplicity is set, indicating an array of ParameterSets, then the contained ParameterSet elements are entries in the array. The name and multiplicity attributes (if specified) are ignored. This is to ensure a consistent mapping with the equivalent GEMS-ASCII message. In Section 7.2.4.1, insert the following XML just before the </SetConfigMessage> line: <ParameterSet multiplicity="2" name="setlist"> <ParameterSet> <Parameter name="param1"> <hex_value bit_length="2">0F</hex_value> </Parameter> <Parameter name="param2"> <string>text1</string> </Parameter> </ParameterSet> <ParameterSet> <Parameter name="param1"> <hex_value bit_length="2">1F</hex_value> </Parameter> <Parameter name="param2"> <string>text2</string> </Parameter> </ParameterSet> </ParameterSet>
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Discussion:
  


Issue 15498: Network messages containing GEMS-XML are difficult to parse without a header containing the message length (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Parsing a GEMS-XML message as it arrives on a TCP socket is difficult since you must first parse the stream (i.e. with SAX) and then likely validate it with a DOM.   Proposed Resolution: Add a statement indicating that the if a transport protocol is used (e.g. smart sockets etc) that includes the length, then nothing needs to be done. Otherwise, if TCP sockets are used, a HTTP header is pre-pended.      

Resolution: Add a statement indicating that if a transport protocol is used (e.g. smart sockets etc) that includes the length, then nothing needs to be done. Otherwise, if TCP sockets are used, a HTTP header is pre-pended.
Revised Text: Modify the text in Section 7.3 from: Transfer of GEMS-XML messages across a network transport such as TCP/IP is done by simply writing the GEMS- XML message directly to the socket. To (includes text through the example): Transfer of GEMS-XML messages across a network transport is done by writing the XML directly to the transport layer. If the transport layer includes the message length, the XML text is all that is required. This is the case with several commercially available message oriented middleware solutions. However, if the message length is not included, as is the case with normal TCP/IP sockets, then a standard HTTP header and the standard XML encoding pseudo-attribute is added to the message. This is done to simplify processing of the message on the other side. The HTTP header format is as follows: POST /target HTTP 1.0 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: length of the included GEMS-XML request in bytes The Content-Length specifies the number of bytes to read after the HTML header and includes any formatting characters (spaces, end-of-line etc.) Example: POST /target HTTP 1.0 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: 324 <?xml version="1.0" encoding="UTF-8"?> <PingMessage gems_version="1.1" target="testDevice1" timestamp="1234.98765" token="ABCD" transaction_id="1" xmlns="https://www.omg.org/gems" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd" />
Actions taken:
September 2, 2010: received issue
July 11, 2011: closed issue

Issue 16017: Typos (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
6.3.1.4:  but -- bit  6.3.2: update supported versions  (1 becomes 1.0, 1.1 and 1.2)  6.5: 3rd sentence, change 'contents' to 'content' (there is only one token field, so I think this is the better fix)  7.1.1.1: in the Unsigned Short Integer, change fixed="time" to fixed="ushort".  (the XML schema is correct.. just a typo in the document)  8.1.2: first sentence after the escape sequence table, change 'chosed' to 'chosen'  

Resolution: Fix errors (see revised text)
Revised Text: Section 6.3.1.4: change the word but to bit. Section 6.3.2.1: Section titled �version�, change: The version field contains the version of GEMS message being used. It provides backwards compatibility. Currently only version 1 is supported. To The version field contains the version of GEMS message being used. It provides backwards compatibility. Currently only version 1.0, 1.1 and 1.2 are supported. Section 6.5: 3rd sentence, change 'contents' to 'content' Section 7.1.1.1: in the Unsigned Short Integer, change fixed="time" to fixed="ushort". Section 8.1.2: first sentence after the escape sequence table, change 'chosed' to 'chosen'
Actions taken:
February 11, 2011: received issue
July 11, 2011: closed issue

Issue 16091: The schema dtc/11-02-02 has 6 errors found by running an XML Schema validator (gems-rtf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
The schema dtc/11-02-02 has 6 errors found by running an XML Schema validator.    Various types extending MessageType give the following error: derived by restriction complex type has content while base type is empty    

Resolution: Change the restriction to an extension
Revised Text: The following is the diff between versions. =================================================================== --- GEMS_base_types.xsd (revision 12061) +++ GEMS_base_types.xsd (working copy) @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='windows-1252'?> -<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://www.omg.org/gems" xmlns="https://www.omg.org/gems" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> +<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://www.omg.org/spec/gems/20110323/basetypes" xmlns="https://www.omg.org/spec/gems/20110323/basetypes" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- GEMS Parameter Type Definitions --> @@ -190,7 +190,7 @@ --> <xsd:complexType name="MessageSequenceType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="SetConfigMessage" type="SetConfigMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="GetConfigMessage" type="GetConfigMessageType"/> @@ -200,7 +200,7 @@ <xsd:element maxOccurs="unbounded" minOccurs="0" name="LoadConfigResponse" type="LoadConfigResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="SaveConfigResponse" type="SaveConfigResponseType"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -235,12 +235,12 @@ --> <xsd:complexType name="ResponseMessageType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" name="Result" type="ResultCode"/> <xsd:element minOccurs="0" maxOccurs="1" name="description" type="xsd:string"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -277,12 +277,12 @@ --> <xsd:complexType name="SetConfigMessageType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -309,12 +309,12 @@ --> <xsd:complexType name="GetConfigMessageType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -373,11 +373,11 @@ --> <xsd:complexType name="LoadConfigMessageType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element name="name" type="StringParameter"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -513,12 +513,12 @@ <xsd:complexType name="DirectiveMessageType"> <xsd:complexContent> - <xsd:restriction base="MessageType"> + <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" name="directive_name" type="xsd:string"/> <xsd:element minOccurs="0" maxOccurs="1" name="arguments" type="ArgumentsType"/> </xsd:sequence> - </xsd:restriction> + </xsd:extension> </xsd:complexContent> </xsd:complexType> The following changes apply to the specification document: Replace all instances of xsi:schemaLocation="https://www.omg.org/gems GEMS_base_types.xsd" with xsi:schemaLocation="https://www.omg.org/spec/gems/20110323/basetypes GEMS_base_types.xsd" In section 7.2 (including changes made due to other issues in this RTF) Replace all instances of xmlns=�https://www.omg.org/gems� with xmlns="https://www.omg.org/spec/gems/20110323/basetypes" In section 7.4.1 (new as of this RTF) Replace xmlns=�https://www.omg.org/gems� with xmlns=�https://www.omg.org/spec/gems/20110323/device� In section 7.4.1 Replace all instances of xsi:schemaLocation=�https://www.omg.org/gems GEMS_Device.xsd� with xsi:scemaLocation=�https://www.omg.org/spec/gems/20110323/device GEMS_Device.xsd�
Actions taken:
March 24, 2011: received issue
July 11, 2011: closed issue

Issue 16950: GEMS-XML hex_value length Issue (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The GEMS-XML XSD bases the HexParameter on the xsd:hexBinary type. This type expects an even number of characters (two for each octet). The GEMS-XML specification should mention this and explain how it needs to be handled.      Recommend always providing an even number of hex characters and using the bit length to specify the actual length.      Example of an invalid 4 bit field:  E/4      Example of a valid 4 bit field:  E0/4  

Resolution: Pad the hex_value field to two full nibbles for the XML.
Revised Text: Modify the GEMS Specification document in section 7.1.1.1 by replacing the first paragraph after the Hex Value title with the following text: The mapping of the GEMS hex_value type is defined in the following XML Schema. The xsd:hexBinary type requires an even number of hex characters (nibbles), therefore the hex parameter must contain full bytes. Odd bit lengths may be specified by including an even number of hex characters and specifying the correct bit length. For example E0/4 represents 0xE. Any hex characters, or bits, beyond (to the right of) the specified bit length are ignored.
Actions taken:
January 10, 2012: received issue
December 23, 2013: closed issue

Issue 16952: GEMS-XML ParameterSet Order (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The current GEMS-XML schema requires that Parameters and ParameterSets are always listed in that order. (i.e. ParameterSets cannot precede Parameters). It seems that these should be order independent.      Reported to AMERGINT by Raytheon  

Resolution: Fix the schema to be order independent.
Revised Text: In line 251 of GEMS_Device.xsd, in the �Parameters� complex type, edit the line: <xsd: sequence> to <xsd: choice minOccurs=�0� maxOccurs=�unbounded�> In line 256 of GEMS_Device.xsd, edit the line: </xsd: sequence> to </xsd: choice> Perform the same changes to lines 167, 291, 323, 340, and 518 in the GEMS_base_types.xsd file. In the specification replace the XSD text in 7.1.1.3 with: <xsd:complexType name="ParameterSet"> <xsd:choice minOccurs=�0� maxOccurs=�unbounded�> <xsd:element name="Parameter" type="Parameter" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="ParameterSet" type="ParameterSet" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="optional"/> <xsd:attribute name="type" type="xsd:string" use="optional"/> <xsd:attribute name="multiplicity" type="xsd:int" use="optional"/> </xsd:complexType> In Section 7.1.1.6 replace the XSD text with: <xsd:complexType name="SetConfigMessageType"> <xsd:complexContent> <xsd:extension base="MessageType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:choice> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SetConfigMessage" type="SetConfigMessageType"/> <xsd:complexType name="GetConfigMessageType"> <xsd:complexContent> <xsd:extension base="MessageType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:choice> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="GetConfigMessage" type="GetConfigMessageType"/> In Section 7.1.1.19 replace the XSD text with: <!-- Define a GetConfigResponseType --> <xsd:complexType name="GetConfigResponseType"> <xsd:extension base=�ResponseMessageType�> <xsd:choice minOccurs=�0� maxSelector=�unbounded�> <xsd:element name="Parameter" type="Parameter" minOccurs="0" maxOccurs="unbounded"/> <!-- 0 or more Parameters --> <xsd:element name="ParameterSet" type="ParameterSet" minOccurs="0" maxOccurs="unbounded"/> <!-- 0 or more ParameterSet --> </xsd:choice> </xsd:extension> </xsd:complexType> <!-- Define a GetConfigResponse --> <xsd:element name="GetConfigResponse" type="GetConfigResponseType"/> In Section 7.1.1.22 replace the XSD text with: <!� Define a ReturnValuesType to be used by GEMS Directive Responses --> <xsd:complexType name="ReturnValuesType"> <xsd:choice minOccurs=�0� maxOccurs=�unbounded�> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:choice> </xsd:complexType>
Actions taken:
January 10, 2012: received issue
December 23, 2013: closed issue

Issue 18313: clarify GEMS authentication (gems-rtf)

Click
here for this issue's archive. Click here for this issue's attachments.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Authentication of a GEMS user is loosely defined in the specification.  This should be clarified and include a better definition of how  credentials are passed in, what is the roll (if any) of SSL and  similar transports, and how do proxies handle authentication. In  particular, how does a GEMS user grab control of a system without  creating a race condition.  

Resolution: Add a multiplicity attribute to the ParameterSetDefType declaration to the GEMS_Device file, where it was omitted.
Revised Text: GEMS_Device.xsd file: <xsd:attribute name="multiplicity" type="xsd:int" use="optional" />
Actions taken:
December 13, 2012: received issue
December 23, 2013: closed issue

Issue 18314: Extend GEMS-ASCII message length (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Currently the message length is limited to 999999 characters. This can  cause problems translating from GEMS-XML to GEMS-ASCII. It also limits  the utility of message sets  

Resolution: Extend message length to 10 characters
Revised Text: In the GEMS Specification document, in Table 8.2, change the Message Length row to: Message Length 10 0000000074 � 9999999999 Total Length of the message (in bytes), including the start of message, standard header, message body and the end of message. In section 8.2 (ASCII Examples), add four zeros at the front of the 3rd field in every example. Also update the version number field from 01 to 13. The following replacements are to be made to the ASCII examples (replacing the existing ASCII example text) Section 8.2.1 Message: | GEMS|13|0000000085|123| |111111111.222000000|FrameSync1|CON|CONTROL_AND_STATUS|END Response: |GEMS|13|0000000112|123|CS 123|111111111.222000000|FrameSync1|CON-R|SUCCESS|The CON request was successful.|END Connect message with authentication: |GEMS|13|0000000096|123|up:john:secret|111111111.222000000|FrameSync|CON|CONTROL_AND_STATUS|END Example successful authentication response with random token: |GEMS|13|0000000121|123|FA3451EDAF00023|111111111.222000000|FrameSync1|CON-R|SUCCESS|The CON request was successful.|END Example failed authentication response |GEMS|13|0000000121|123| |111111111.222000000|FrameSync1|CON-R|ACCESS_DENIED|Authentication Failed|END Section 8.2.2 | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|DISC |NORMAL_TERMINATION|END Section 8.2.3 Message: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|GET| 2|length_in_bits|sync_pattern|END Response: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|GET-R|SUCCESS|The GET request was successful. |2|length_in_bits:uint=2048| sync_pattern:hexvalue(22)=FAF320|END Section 8.2.4 Message: | GEMS|13|0000000122|123|CS123|11 1111111.222000000 |FrameSync1|SET|2|length_in_bits:uint=2048|sync_pattern:hexvalue(22)|END Response: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|SET-R|SUCCESS| The SET request was successful. |2|TRUE|END Section 8.2.5 Message: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|SAVE|Some_File_Name|END Response: | GEMS|13|0000000122|123|CS 123|111111111.222000000 |FrameSync1|SAVE-R|SUCCESS|The SAVE request was successful. |100|END Section 8.2.6 Message: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|LOAD|Some_File_Name|END Response: | GEMS|13|0000000122|123|CS123|111111111.222000000 |FrameSync1|LOAD-R|SUCCESS|The LOAD request was successful. |100 |END Section 8.2.7 Message: | GEMS|13|0000000122|123|CS123|11 1111111.222000000 |FrameSync1|DIR|sendVehicleCommand|1|command:hex_value=FF1234567890ABCDFF/63|END Response: | GEMS|13|0000000122|123|CS 123|111111111.222000000| FrameSync1|DIR-R|SUCCESS|The DIR request was successful. |sendVehicleCommand|1| accepted:bool=true|END
Actions taken:
December 13, 2012: received issue
December 23, 2013: closed issue

Issue 18315: obtained only changed parameters (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
Received a request for either an asynchronous push or a new message  type that provides changes only. This was an optional requirement in  the original RFP  

Resolution: Add AsyncStatusMessage This message is used for Asynchronous status messages. The transport mechanism or how it is set up are left for later versions of GEMS. At this point it was determined that the message definition would be sufficient for forward progress.
Revised Text: Section 6.2 Figure 6.1 Replace the figure with the new version including the Asynchronous Status use case. Add a new section 6.2.11 1.1.1 Asynchronous Status In this use case, the user obtains asynchronous status messages containing the current values of various GEMS parameters. The user configures the frequency and type of update using parameters and directives on the GEMS device. Standardization of these parameters and directives are left for later versions of GEMS. The messages are ?pushed? asynchronously and can be provided on either the current GEMS connection or an alternate out-of-band connection. Add a new section 6.5 1.1 Asynchronous Status Messages Asynchronous status messages allow users to obtain parameter values through a push mechanism. These are normally provided either periodically, or on change. The messages are structure as ResponseMessages with a result_description and a ResultCode. The purpose of this structure is to allow the GEMS Device to communicate any non-nominal conditions to the GEMS user in the event that the periodic status update fails. It also allows GEMS user software to handle the message in a similar fashion to normal response messages. The following diagram shows the sequence of an AsyncStatusMessage. The configuration of the message occurs using the SetConfigMessage. Then the GEMS device enters a polling loop in which it generates AsyncStatusMessages at the configured rate. <DIAGRAM> Figure 6.22 Asynchronous Status Message The AsyncStatusMessage contains a list of parameters. The list of parameters may be all or a subset of the parameters available on the GEMS Device. The structure of the message is similar to the GetConfigResponse. If an error occurred during the asynchronous status polling, it is reflected in the ResultCode and/or the result_description. <DIAGRAM> Figure 6.22 AsyncStatusMessage Class Add Section 7.2.1.27 1.1.1.1 AsyncStatusMessage The GEMS-XML mapping for the AsyncStatusMessage message is as follows: <xsd:complexType name="AsyncStatusMessageType"> <xsd:complexContent> <xsd:extension base="ResponseMessageType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ParameterSet" type="ParameterSet"/> </xsd:choice> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AsyncStatusMessage" type="AsyncStatusMessageType"/> Add section 8.2.12 with table (see change-bar version for table)
Actions taken:
December 13, 2012: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Discussion:
This requires more discussion. A preliminary prototype has been made, but needs to be reviewed before anything is accepted into the specification.   Disposition:	Deferred  


Issue 18535: GEMS-XML schema (GEMS 1.2) for MessageSequenceType does not support elements for DirectiveMessage (gems-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
GEMS-XML schema (GEMS 1.2) for MessageSequenceType does not support elements for DirectiveMessage, even though DirectiveMessageType shares the same base (MessageType) as the other supported elements defined in MessageSequenceType.    

Resolution: Add DirectiveMessages to the MessageSequenceType in the GEMS-XML schema. Upon analysis of this issue, it was discovered the several other message types were missing. These were not reported in the original issue, but are fixed as part of the resolution.
Revised Text: In GEMS_base_types.xsd, edit the complex type �MessageSequenceType� (line 191) by adding the following line before the <xsd: sequence> tag: <xsd:element maxOccurs="unbounded" minOccurs="0" name="DirectiveMessage type="DirectiveMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="UnknownResponse" type="ResponseMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="PingMessage" type="PingMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="PingResponse" type="PingResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="GetConfigResponse" type="GetConfigResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0� name="GetConfigListMessage" type="GetConfigListMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="GetConfigListResponse" type="GetConfigListResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="GetConfigListResponse" type="GetConfigListResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ConnectionRequestMessage" type="ConnectionRequestMessageType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ConnectionRequestResponse" type="ConnectionRequestResponseType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="DisconnectMessage" type="DisconnectMessageType"/> Update the GEMS specification document in section 7.1.1.5 to reflect these changes.
Actions taken:
March 7, 2013: received issue
December 23, 2013: closed issue

Issue 18723: GEMS TCP socket close behavior is not obvious (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
GEMS VERSION 1.2      It is not obvious what happens to a client using either GEMS-ASCII or GEMS-XML across TCP when the TCP socket is closed. If the client has successfully connected to a GEMS Device, is that GEMS connection (and resulting token) still active or does it automatically disconnect?  Section 6.5 indicates that it should be disconnected, but this is not an obvious place for this behavior to be described.        Also, GEMS-XML states that the HTTP header should be added. When using client-side HTTP libraries, the default behavior is to disconnect often. This is an internet-style approach.  The GEMS specification should state that persistent socket connection are required

Resolution: Clarify socket behavior for GEMS over a TCP connection by stating that once a TCP connection is lost, the GEMS device should disconnect
Revised Text: Add the following text at the end of section 7.3: When using client-side HTTP libraries, the GEMS connection requires a persistent socket connection. If the connection to the TCP socket is closed at some point during a connection, the GEMS device should automatically disconnect. Add the following text at the end of section 8.3: When using TCP, the GEMS connection requires a persistent socket connection. If the connection to the TCP socket is closed at some point during a connection, the GEMS device should automatically disconnect
Actions taken:
May 16, 2013: received issue
December 23, 2013: closed issue

Issue 18733: Confusing comments (gems-rtf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary:
The comments about the GEMS Version field in Table 8.2 are confusing. Is the example trying to imply that starting with GEMS version 1.2 the GEMS Version field digits matches the actual GEMS version number, or what?

Resolution: Clarify comment text to specify that starting after version 1.2, the GEMS version field will be the same as the GEMS version number, with the decimal point removed (1.2 is 12, 1.3 is 13, etc.)
Revised Text: In table 8.2, in the GEMS Version field under Comments, change the following text Message Format Version Mapping To Message Format Version Mapping - For versions 1.2 and greater, ASCII code for version is version number with decimal removed.
Actions taken:
May 24, 2013: received issue
December 23, 2013: closed issue

Issue 18813: GEMS Device Definition does not include a multiplicity for ParameterSetDefType (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The ParameterSetDefType needs a multiplicity attribute similar to ParameterDefType. This allows for lists of Parameter Sets.

Resolution: GEMS Device Definition needs multiplicity setting This was already fixed in GEMS 1.3 <xsd:complexType name="ParameterSetDefType"> <xsd:sequence> <xsd:element name="Description" minOccurs="0" maxOccurs="1" type="xsd:string" /> <xsd:element name="ParameterDef" maxOccurs="unbounded" minOccurs="1" type="ParameterDefType" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="multiplicity" type="xsd:int" use="optional" /> </xsd:complexType>
Revised Text:
Actions taken:
July 15, 2013: received issue
December 22, 2015: Closed; No Change
March 29, 2016: closed issue

Issue 18814: Unbounded Lists In Device Definitions (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
It is not clear how to define the multiplicity of a list of Parameters or ParameterSets when the list is unbounded or can vary in length. For example, if the multiplicity is set to 5, it is assumed this means the list must contain 5 parameters.  How does one specify "up to 5" or "unbounded"?      

Resolution: Create standard method of declaring unbounded list sizes. Use a multiplicity of -1 to indicate an unbounded array, while a non-negative and non-zero multiplicity indicates that the array may contain up to the number. For example, a multiplicity of 5 indicates that the array may contain anywhere between 0 and 5 elements.
Revised Text: In section 6.8.1, add the following at the end of the section: For parameter arrays (i.e. lists), the multiplicity attribute defines the number of items that the array can contain. For example, a multiplicity of 5 indicates that the array may contain between 0 and 5 elements. A multiplicity of -1 indicates that the array is unbounded.
Actions taken:
July 15, 2013: received issue
December 23, 2013: closed issue

Issue 19513: GEMS HTTP POST example is incorrect (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The example HTTP POST header is incorrectly listed in section 7.4. The first line of the header should be:      POST /target HTTP/1.1  

Resolution: GEMS HTTP POST example is incorrect (Duplicate) This is a duplicate
Revised Text:
Actions taken:
July 10, 2014: received issue
December 22, 2015: Duplicate or Merged
March 29, 2016: closed issue

Issue 19563: wrong type of quote used (gems-rtf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary:
<Parameter name=�telemetry_ports�>      should be       <Parameter name="telemetry_ports">    I copy and pasted that example into a file and it took me a couple of hours to realize there was invalid quotes.

Resolution: Wrong type of quote used The text could not be copied directly from the document because a fancy MS-Word quote had been pasted in.
Revised Text: This issue is OBE with the removal of the examples from the specification. The online example does not have this problem because it is generated XML text.
Actions taken:
August 1, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19596: Bug link URL is invalid (gems-rtf)

Click
here for this issue's archive.
Source: Real Time Logic Inc. (Dr. Nigel Thompson, nthompson(at)rtlogic.com)
Nature: Clarification
Severity: Significant
Summary:
The link on page iv for reporting bugs is an invalid page. The link should be https://www.omg.org/report_issue.htm

Resolution: The link to report issues is incorrect The URL for the OMG issue reporting page is incorrect. This is in a boilerplate section.
Revised Text: Replace the following text on page iv (Issues section) The reader is encouraged to report any technical or editing issues/problems with this specification to [1]https://www.omg.org/report_issue.htm. with The reader is encouraged to report any technical or editing issues/problems with this specification to [2]https://www.omg.org/report_issue.htm. ---------------------------------------------------------------------------------------- [1] https://www.omg.org/report_issue.htm [2] https://www.omg.org/report_issue.htm
Actions taken:
September 10, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19597: Numerous small errata and inconsistencies (gems-rtf)

Click
here for this issue's archive.
Source: Real Time Logic Inc. (Dr. Nigel Thompson, nthompson(at)rtlogic.com)
Nature: Clarification
Severity: Significant
Summary:
6.3.1.13 hex_value - Add: The length in bits is specified by following the hex data with a forward slash and the number of bits. E.g. /22.6.3.1.13 hex_value - Add: The length in bits is specified by following the hex data with a forward slash and the number of bits. E.g. /22.      Many of the XML examples: The gems_version attribute type should be xsd:decimal not xsd:int      Many of the XML examples: The XML examples shoudl all include the standard xml version segment like:  <?xml version="1.0" encoding="UTF-8"?>  This is missing from most of the examples      Many of the examples: The gems_version is shown as an integer value like: "1". It should be shown as a decimal value like: "1.3"      7.3.4.1 SetConfigMessage Example - this has a superfluous line: </SetConfigMessage> about half way down that needs to be deleted.      7.3.7.1 PingMessage Example - The version number should be changed from 1.1 to 1.3      7.3.7.2 PingResponse Example - The version number should be changed from 1.1 to 1.3      7.3.8.1 ConnectionRequestMessage without Authentication - The version number should be changed from 1.2 to 1.3      7.3.8.3 ConnectionRequestMessage with Authentication - The version number should be changed from 1.2 to 1.3      7.3.8.4 Failed ConnectionRequestResponse - add the version number as 1.3      7.3.8.5 Successful ConnectionRequestResponse - add the version number as 1.3      7.3.8.3 ConnectionRequestMessage with Authentication - The token filed text should be: "up:john:secret"      7.5.1 Example Device Definition File - replace 'bool' with 'boolean' 4 places      Table 8.1 boolean type: example should be: param:boolean=true      8.3.3 GetConfigMessage Example - change example sync_pattern to be: sync_pattern:hex_value=FAF320/22      8.3.4 SetConfigMessage Example - change example sync_pattern to be: sync_pattern:hex_value=FAF320/22      8.3.7 DirectiveMessage Example (response) - change accepted:bool=true to accepted:boolean=true

Resolution: Clarify the bit_length field in a hex_value within the PIM The request was to add the /bit-length notation to the description. Since this is actually the GEMS-ASCII format (XML is different), we will add a comment about the bit_length instead. Issue [1]GEMS14-7 lists many corrections in the documented examples. Since these are being removed from the document the issues are OBE. The generated examples online already correct these issues. ---------------------------------------------------------------------------------------- [1] http://issues.omg.org/browse/GEMS14-7
Revised Text: Replace the text in section 6.3.1.13 with: Represents an ASCII representation of a hexadecimal value. The string optionally may be preceded by a ?0x.? The bit_length is used to specify the number of bits represented in the hex_value. See the PSM specific mapping for the format of this field.
Actions taken:
September 10, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19615: Multiple issues with ASCII PSM examples (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
The message examples for the ASCII PSM have the following issues.  This is in addition to a handful of issue reported under Issue 19597.      1.  The hex value examples have type "hexvalue".  This should be "hex_value" (with underscore).      2.  All examples have an extra space after the first pipe, e.g. "| GEMS|01|...".  We should be able to use the examples literally.      3.  The SetConfigMessage example still contains the long-removed "valid state" field.  The "2" should be removed from the example, i.e.  SET-R|SUCCESS| The SET request was successful.||TRUE  instead of  SET-R|SUCCESS| The SET request was successful.|2|TRUE      4.  The GEMS version in all examples should be updated to the latest ("14").  Right now it's using "01".      5.  There is no ASCII example for the PING message.  It should be:  Message: |GEMS|14|000122|123|CS123|111111111.222000000|FrameSync1|PING|END  Response: |GEMS|14|000122|123|CS123|111111111.222000000|FrameSync1|PING-R|SUCCESS|The PING request was successful.|END

Resolution: Multiple issues with the GEMS-ASCII Examples This issue captures a number of minor syntax errors within the example provided in the specification. Almost all are a result of document formatting or our inability to keep the examples up to date. Now that the examples are removed from the specification this issue is OBE. The existing online examples correct these errors and include an example of the PING message.
Revised Text: Now that the examples are removed from the specification this issue is OBE. The existing online examples correct these errors and include an example of the PING message.
Actions taken:
September 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19616: Figures without figure numbers (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
There are six figures in the specification that do not have figure numbers.  These occur in sections 6.2.4, 6.2.5, 6.2.6, 6.2.7, 6.3.2.2, 8.2.3.

Resolution: Add figure captions to all diagrams Not all diagrams in the specification have figure captions
Revised Text: Add the proposed figure captions to the diagrams. There are numerous captions, so please see the proposed changes for the caption text.
Actions taken:
September 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19617: Acronym not defined correctly (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
The SCPI acronym definition in section 4 should read "Standard Commands", not "General Command".

Resolution: SCPI Acronym not defined correctly The definition is wrong
Revised Text: In section 4, replace the following text: SCPI: General Command for Programmable Instrumentation with SCPI: Standard Commands for Programmable Instruments
Actions taken:
September 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19618: Links in XML examples are broken (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
All XML examples need to update the embedded URL.  The "https://www.omg.org/gems" link is broken, it should be "https://www.omg.org/spec/GEMS" or "https://www.omg.org/spec/GEMS/current".

Resolution: Links in the XML examples are broken Now that the examples are removed from the specification this issue is OBE. The existing online examples are generated and all include the correct link.
Revised Text: Now that the examples are removed from the specification this issue is OBE. The existing online examples are generated and all include the correct link.
Actions taken:
September 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19619: SetConfigResponse defined with two parameters in PIM (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
Under "SetConfigResponse", it says "the message has 2 parameters", but only one parameter is described ("parameters_set").  This is probably a holdover from when the "valid state" parameter was removed back in v1.1. This should simply be changed to "the message has 1 parameter".

Resolution: SetConfigResponse descriptive text specifies the wrong # parameters The text indicates that here are 2 parameters, but there is only one.
Revised Text: Replace the following text in the SetConfigResponse description in section 6.3.3.1: The SetConfigResponse message indicates the result of the SetConfigMessage. This message has 2 parameters. with The SetConfigResponse message indicates the result of the SetConfigMessage. This message has 1 parameter.
Actions taken:
September 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19620: Arrays defined ambiguously for ASCII PSM (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Significant
Summary:
Representation of arrays in the ASCII PSM is ambiguous. In 8.2.1 it says that arrays look like this:      parameter_name[3]:type=value1,value2,value3      The multiplicity is appended to the parameter name, there is a single type, and the values are comma separated.  But in 8.2.1.2, it says arrays look like this:      param:int[3]:int=1,int=2,int=3      There are two colons, the multiplicity is appended to the type, and the type is repeated for each value within the comma separated list.  Presumably there is a goal of unifying the way arrays and parameter sets are represented, where an array of scalars is just a homogeneous parameter set.  Suggest we abandon this goal, as it will make representation of arrays of parameter sets very difficult.  Suggest we represent arrays as follows:    name:type[multiplicity]=val1,val2,val3

Resolution: Arrays defined ambiguously for ASCII PSM This issue is basically a duplicate of [1]GEMS14-40 and [2]GEMS14-16. It highlights the error in array syntax and the need for a clarification on the parameter set delimiter. ---------------------------------------------------------------------------------------- [1] http://issues.omg.org/browse/GEMS14-40 [2] http://issues.omg.org/browse/GEMS14-16
Revised Text:
Actions taken:
September 24, 2014: received issue
December 22, 2015: Duplicate or Merged
March 29, 2016: closed issue

Issue 19622: HTTP header on GEMS XML example malformed (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
The HTTP header for GEMS XML in section 7.4 has the following issues:      1. First line contains "HTTP 1.0", which should be "HTTP/1.0"    2. There should be an additional endline between the header and the body

Resolution: The example HTTP header is malformed The intent is to use the standard HTTP header for all GEMS XML messages transferred across a plain TCP socket. However, the example in the specification does not correctly show this.
Revised Text: Replace the following text: The HTTP header format is as follows: POST /target HTTP 1.0 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: length of the included GEMS-XML request in bytes The Content-Length specifies the number of bytes to read after the HTML header and includes any formatting characters (spaces, end-of-line etc.) Example: POST /target HTTP 1.0 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: 324 <?xml version="1.0" encoding="UTF-8"?> <PingMessage gems_version="1.1" target="testDevice1" timestamp="1234.98765" token="ABCD" transaction_id="1" xmlns="https://www.omg.org/spec/gems/20110323/basetypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=?https://www.omg.org/spec/gems/20110323/basetypes GEMS_base_types.xsd? /> with The HTTP header format is as follows. Note that all lines must end in a carriage-control and line-feed. A blank line with a carriage-control and line feed is used to separate the HTTP header from the body. POST /target HTTP/1.1 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: 646 Response messages use the standard HTTP response header. HTTP/1.1 200 OK User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: 616 The Content-Length specifies the number of bytes to read after the HTML header and includes any formatting characters (spaces, end-of-line etc.) Example: POST /target HTTP/1.1 User-Agent: OMG-GEMS Content-Type: text/xml Content-Length: 346 <?xml version="1.0" ?> <gems:PingMessage gems_version="1.2" target="System/Device1" timestamp="1410540242.29" token="" transaction_id="1" xmlns:gems=https://www.omg.org/spec/gems/20110323/basetypes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=https://www.omg.org/spec/gems/20110323/basetypes GEMS_base_types.xsd />
Actions taken:
September 26, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19625: Arrays of parameters sets not defined for ASCII PSM (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Significant
Summary:
There is no definition for arrays of parameter sets in the ASCII PSM.  Section 7.1.1.3 suggests that these are supported by the PIM, and we need a mapping for all PSMs.  Currently, a single parameter set (not an array of sets) is defined with commas as the delimiter between members of the set.  The comma is also used as the delimiter between array elements.  This makes it very difficult to deserialize an array of parameter sets, since the same delimiter character is used for two purposes.  It became even more difficult after Issue 18814 was resolved by redefining the multiplicity to be a maximum array size (with -1 as a valid value), instead of the actual array size in the message.  Suggest we use semicolons as the delimiter between parameter set members, and continue using commas as the delimiter between array elements.

Resolution: Define the delimiter in a parameter set to be a semi-colon The contents of section 8.2.1.2 have been confusing and incorrect. Specifying an array of parameter sets is undefined (clearly). We will define the delimiter to be a semi-colon with the last member of the parameter set requiring a semi-colon as well.
Revised Text: NOTE: This goes with issue [1]GEMS14-16 Change the contents of section 8.2.1.2 to be: In the PSM ASCII Mapping parameter sets may be defined by the additional use of semi-colons. For example a simple parameter set containing mixed parameters would be as follows: mixed_set:set_type=param_1:int=1;param_2:boolean=true;param_3:string=a short string; To represent an array of parameter sets use commas to separate the parameter sets. setlist:set_type[2]=A:hex_value=FA/7;B:string[2]=text1,text2;,A:hex_value=2F/6;B:string[1]=text2; Note: The final member of the parameter set is followed by a semi-colon. This allows for easy parsing when dealing with parameter set arrays. ---------------------------------------------------------------------------------------- [1] http://issues.omg.org/browse/GEMS14-16
Actions taken:
September 30, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19626: Mixed parameter set example has extra delimiter (gems-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
The mixed parameter set example in 8.2.1.2 has an extra delimiter at the end of the message body:      mixed_param_set:set_type=param_1:int=1,param_2:boolean=true,param_3:string=a short string,    Delimiters should only be between the members of the set.  This keeps them consistent with arrays (which, by the way, must NOT have delimiters at the end, since they have to be able to represent string arrays that end with an empty string element).

Resolution: The ASCII parameter set definition is incorrect The descriptive text in section 8.2.1.2 first shows an array (instead of a parameter set) and then incorrectly uses a comma as the delimiter.
Revised Text: Change the entire contents of section 8.2.1.2 to be: In the PSM ASCII Mapping parameter sets may be defined by the additional use of semi-colons. For example a simple parameter set containing mixed parameters would be as follows: mixed_set:set_type=param_1:int=1;param_2:boolean=true;param_3:string=a short string; To represent an array of parameter sets use commas to separate the parameter sets. setlist:set_type[2]=A:hex_value=FA/7;B:string[2]=text1,text2;,A:hex_value=2F/6;B:string[1]=text2;
Actions taken:
September 30, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19627: Extend PIM to allow "leaf" values to be referenced directly (gems-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Significant
Summary:
The spec currently allows arrays, parameters sets, and arrays of parameter sets.  These compound types can make for an API that's difficult to use.  Specifically, if you want to modify a single member of a parameter set, you have to read it, deserialize it, modify part of it, re-serialize it, and write it back.  This isn't wildly difficult, but I believe it's enough for a customer to complain about usability.  This operation is particularly annoying in the case of arrays of parameter sets.  Furthermore, the read/modify/write operation isn't atomic, and could result in race conditions that revert a simultaneous change.      I'd like to suggest that we extend the PIM to allow "leaf" values of compound types to be referenced directly.  E.g., array elements and parameter set members could be referenced under the ASCII PSM using the following parameter names:      Array element:  myArray/3  Set member:     myParamSet/memberName  Array of sets:  myArrayOfSets/5/memberName    ...with a corresponding scheme for the XML PSM.  This would require adding the forward slash as a reserved word that should not be used in parameter names, along with "|GEMS" and "|END".

Resolution: Extend PIM to allow leaf node access I propose we defer this one. There are details that should be considered.
Revised Text:
Actions taken:
September 30, 2014: received issue
December 22, 2015: Deferred
March 29, 2016: closed issue

Issue 19629: Standard message trailer in ASCII PSM has extra pipe (gems-rtf)

Click
here for this issue's archive.
Source: Real Time Logic Inc. (Mr. Nathaniel Colson, ncolson(at)rtlogic.com)
Nature: Revision
Severity: Minor
Summary:
The ASCII PSM defines the standard message trailer as "|END", but every single message type also ends with a "|" followed by "standard trailer".  Strictly speaking, this results in every single message having a pair of pipes at the end with nothing between.  We should remove the pipe from the standard trailer table (8.4).

Resolution: Remove the extra pipe character in the message trailer Combining the definition of the standard message trailer with the definition of the standard messages results in an extra and unintended pipe character.
Revised Text: Replace the text in section 8.2.4 with: The message trailer ends all request and response messages and is represented as follows. It is always separated from the message body by a ?|? character. And remove the row in the table defining the pipe character '|'
Actions taken:
October 2, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19647: Extra Attribute in GEMS 1.3 Directive Schema (gems-rtf)

Click
here for this issue's archive.
Source: Amergint Technologies (Mr. Rob Andzik, andzik(at)amergint.com)
Nature: Uncategorized Issue
Severity:
Summary:
The GEMS XML schema for a directive message has an extra, optional, attribute that should not be there. This was never caught until code generation was used and the attribute showed up.      Incorrect:      <!--    GEMS Directive    -->    <xsd:complexType name="ArgumentsType">    <xsd:sequence>    <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/>    </xsd:sequence>    <xsd:attribute name="directive_name" type="xsd:string" use="optional"/>    </xsd:complexType>            Correct:      <!--    GEMS Directive    -->    <xsd:complexType name="ArgumentsType">    <xsd:sequence>    <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/>    </xsd:sequence>    </xsd:complexType>      

Resolution: Remove the extra directive_name attribute in the Directive schema The directive name is specified in the DirectiveMessageType: <xsd:complexType name="DirectiveMessageType"> <xsd:complexContent> <xsd:extension base="MessageType"> <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" name="directive_name" type="xsd:string"/> <xsd:element minOccurs="0" maxOccurs="1" name="arguments" type="ArgumentsType"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> But there is also an extra attribute in the ArgumentsType: <xsd:complexType name="ArgumentsType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> </xsd:sequence> <xsd:attribute name="directive_name" type="xsd:string" use="optional"/> </xsd:complexType> The extra attribute should be removed
Revised Text: Change <xsd:complexType name="ArgumentsType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> </xsd:sequence> <xsd:attribute name="directive_name" type="xsd:string" use="optional"/> </xsd:complexType> To <xsd:complexType name="ArgumentsType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="Parameter"/> </xsd:sequence> </xsd:complexType>
Actions taken:
October 24, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19661: Directives require arguments (gems-rtf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary:
The .xsd file requires parameters of a directive be with in <arguments> </arguments> but the example of page 37 doesn't do that.

Resolution: Directive Example The example in the specification was wrong and did not show the directive parameters in a containing <arguments></arguments> element. This issue is OBE with the removal of the examples from the specification. The online example already shows this correctly.
Revised Text: N/A
Actions taken:
November 25, 2014: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19662: DisconnectMessage doesn't have a response (gems-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Significant
Summary:
It would be very useful for the DisconnectMessage to have a response of success or failure.

Resolution: DisconnectMessage Response The original intent of the DisconnectMessage was to allow for "good behavior". It can be sent by either the GEMS user or the GEMS device and is typically immediately followed by a socket disconnect. Therefore, the may not be an available mechanism to send the reponse (the socket is closed).
Revised Text:
Actions taken:
November 25, 2014: received issue
December 22, 2015: Closed; No Change
March 29, 2016: closed issue

Issue 19737: Add 'Units' to Device Description parameter definitions (gems-rtf)

Click
here for this issue's archive.
Source: Real Time Logic Inc. (Dr. Nigel Thompson, nthompson(at)rtlogic.com)
Nature: Clarification
Severity: Minor
Summary:
Add 'units' as a parameter constraint (not really a constraint bu that's the section in the doc).  Units are a string containing the unit of measurement such as mm, inch, bps

Resolution: Add Units to the device definition of parameters Add a units attribute
Revised Text: Add the following to the Device Definition Schema in the ParameterDefType <xsd:attribute name="units" type="xsd:string" use="optional"></xsd:attribute>
Actions taken:
March 27, 2015: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Issue 19739: "Range of Values" specified for "Message Length" is incorrect (gems-rtf)

Click
here for this issue's archive.
Source: Alphatech (Mr. Brian Brady, brian.brady(at)alphatech.com)
Nature: Clarification
Severity: Significant
Summary:
In Table 8.2  "Message Length" has a "Range of Values" specified as "000074-999999". We took this as the minimum possible message length to the maximum possible message length. Which, given our experience, is not true. We have encountered several instances with production hardware (Amergint & RTLogic) where the message length was fewer than 74 bytes.     I personally don�t care if OMG decides to list a minimum length; I just want the documented "Range of Values" to reflect reality. In the case OMG doesn�t want to specify a minimum length I would suggest the range value would be listed as "000000-999999" in the spec. Listing a range of "000000" could be problematic/confusing as well, "000000" would never be a valid either... So... I will let you standards people work this one out.

Resolution: Range of values in the message length Change the range of values. Since the standard header may change, it makes sense to not specify the minimum length. That will make maintenance of the specification easier.
Revised Text: Replace the Message Length row, Range Of Values field in table 8.2 with the following Up to 9999999999
Actions taken:
March 31, 2015: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue

Discussion:
  


Issue 19740: Add read-only as a parameter attribute (gems-rtf)

Click
here for this issue's archive.
Source: Real Time Logic Inc. (Dr. Nigel Thompson, nthompson(at)rtlogic.com)
Nature: Enhancement
Severity: Minor
Summary:
Some GEMS target parameters are not writable. It would be useful to know which ones are read-only when using GEMS to construct a GUI.

Resolution: Add readonly to the parameter definitions Add this as an optional attribute with a default of false for backwards compatibility.
Revised Text: Add the following attribute to the Device Definition Schema ParameterDefType <xsd:attribute name="readonly" type="xsd:boolean" default="false" use="optional"></xsd:attribute>
Actions taken:
April 8, 2015: received issue
December 22, 2015: Resolved
March 29, 2016: closed issue