<!DOCTYPE HTML>
<HTML>
<HEAD><meta http-equiv="content-type" content="text/html; charset=UTF-8"></HEAD>
<BODY style="padding:5px; line-height: 1.3em; font-size: 13px; color: #333; background-color: #FFF; font-family: Arial, Helvetica, sans-serif">
Here is the latest version of how I think that the EDS parameters, commands, activities, and state machines can map onto an ISO protocol view.<br />
<br />
A device EDS represents presentation layer talking to top of subnet layer.  The data exchanged through that service access point is a service data unit (SDU).  It is also a protocol data unit that is the same as is seen by the device, so we should be able to describe the messages used by the device in this view.<br />
<br />
A parameter in an EDS represents an unacknowledged transfer.  A command represents an acknowledged transfer.<br />
<br />
In the following sequences, the steps in parentheses are not described in a device EDS; the others are described.<br />
Here is the sequence of events for the transfer of a parameter with sync=true:<br />
        DAS activity:<br />
            block on parameter sink primitive<br />
        (device activity:)<br />
            (compute request SDU)<br />
            (send request by parameter source primitive)<br />
        (DAS state machine:)<br />
            (indication causes transition, unblocking parameter sink primitive?)<br />
        DAS activity: <br />
            read parameter, which is indication SDU, by parameter sink primitive resumed<br />
<br />
Here is the sequence of events for the transfer of a parameter with sync=false:<br />
        (device activity:)<br />
            (compute request SDU)<br />
            (send request by parameter source primitive)<br />
        DAS state machine:<br />
            indication causes transition, starting activity<br />
        DAS activity: <br />
            read parameter, which is indication SDU, by parameter sink primitive<br />
command: (acknowledged)<br />
    sync command:<br />
        consumer activity:<br />
            set argument-in, which is request SDU<br />
            send request by command source primitive<br />
            block here<br />
        provider state machine: (not explicit in device EDS)<br />
            indication causes transition, starting activity<br />
        provider activity: (not explicit in device EDS)<br />
            read argument-in, which is indication SDU<br />
            compute response<br />
            set argument-out, which is response SDU<br />
            send response by command sink primitive<br />
        consumer state machine: (not explicit in device EDS)<br />
            confirmation causes transition, unblocking command source primitive?<br />
        consumer activity:<br />
            read argument-out, which is confirmation SDU, by command source primitive resumed<br />
    async command:<br />
        consumer activity 1:<br />
            set argument-in, which is request SDU<br />
            send request by command source primitive<br />
        provider state machine: (not explicit in device EDS)<br />
            indication causes transition, starting activity<br />
        provider activity: (not explicit in device EDS)<br />
            read argument-in, which is indication SDU<br />
            compute response<br />
            set argument-out, which is response SDU<br />
            send response by command sink primitive<br />
        consumer state machine:<br />
            confirmation causes transition, starting activity 2<br />
        consumer activity:<br />
            read argument-out, which is confirmation SDU, by command source primitive 
<div style="padding:3px 0 3px 0;border-top:1px solid #DDD; border-bottom: 1px solid #DDD;margin:3px 0 3px 0">On February 26, 2015 09:20 MST, "Ramon Krosley" <r.krosley@andropogon.org> wrote:</div>
<br />
<br />
Thanks, Richard,<br />
<br />
These are good comments.  I'll review these in detail this weekend, but to keep the dialog rolling, here are some preliminary replies.<br />
<br />
I think that the most important of these comments are the ones concerning how to interpret EDS constructions as behavior; these need discussion to establish what they mean.  For example, the mappings seem to imply that values are copied between variables and interface data items, but when does that copying occur?  Also, the purpose served by the copying needs discussion, if copying is indeed the correct interpretation of the mapping.  There are two forms of mapping, one of which (ParameterMapSet) I used because I could guess what it might do, and the other (ParameterActivityMapSet) I'm still uncertain about.  I think that the mappings are probably good things, because they help to make behavior more declarative, and therefore more independent of implementation.  However, we need to say what is the implication of the declarative form.<br />
<br />
In general, where the examples don't validate against the schema, that represents the question, "How can I do this?".  So in those cases we'll need to discuss whether it should be done, and how to do it.  For example, the multiple devices seem to be necessary in an EDS that is a composite of other EDS's, as would be the case inside the onion.<br />
<br />
The XAML is a microsoft declarative language for describing object trees, which is typically used in describing GUI layout.  I should be more generic about that and include HTML/CSS perhaps, or just say "GUI layout files".<br />
<br />
I agree with footnoting the namespace distinction.<br />
<br />
The foundation namespace was made to be a small thing that could be presented all at once, so a reader could get the feel for the larger SEDS file.  Also, I'm not sure that everyone will factor their concepts in the way that is provided by the SEDS file, so the foundation namespace suggests some freedom of expression.  I should refer to the SEDS file in the same context, nevertheless.<br />
<br />
The arguments of commands need discussion in relation to the representation of those commands when they are sent to a device.  I believe that a datasheet should be clear about that format, but commands with arguments seem to deny expression of this information.<br />
<br />
Ramon<br />
<br />
 
<div style="padding:3px 0 3px 0;border-top:1px solid #DDD; border-bottom: 1px solid #DDD;margin:3px 0 3px 0">On February 26, 2015 07:47 MST, "Richard Melvin" <Richard.Melvin@scisys.co.uk> wrote:</div>
 

<div class="WordSection1">
<p class="MsoNormal">P4-18: on the ground, calibrations are typically done by configuring the ground software with a calibration table, not extending/implementing it. Suggest a slight rewording.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P4-19: XAML -> XML, presumably.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P4-23: I think the conclusion to be expressed here is that you need:<o:p></o:p></p>

<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">         </span></span></span><!--[endif]-->Standardised interfaces for core functionality that will be acted on directly by software, especially onboard (e.g. AOCS).<o:p></o:p></p>

<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">         </span></span></span><!--[endif]-->Device-specific interfaces for information that will be interpreted by humans, or simple operator-created rules, for diagnostics and  monitoring.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">The key point about space hardware is that everything you might need to know about the device needs to be available through the data interface; you can’t just go up and see if the fault light is blinking.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">Which means you can’t standardise the latter without removing all leeway in how to build a device. Which is ultimately why you need a device datasheet in the first place.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-29: did you manage to validate the sample datasheet using the tooling? There are a few things in the examples I wouldn’t have thought were valid, and, if they are, perhaps shouldn’t be.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-29: readability would probably be improved by making the point about xml versus EDS namespaces a footnote.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-32: I don’t think it is right (although it is legal in schema; see P5-29) that an argument have an encoding. Arguments should only have ranges. Arguments never get encoded as they are passed over an interface, they just get restricted to be within range; the semantics are like a function call not a message exchange. <o:p></o:p></p>

<p class="MsoNormal">You can get the same effect with IntegerBitsRangeType with numberOfBits = 8; this is just a shorthand for [0-255], without the option to set the byte order or anything. <o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-33: I think the ‘foundation’ namespace duplicates/overlaps the existing ‘SEDS’ one (in github). There probably should be one such, delivered alongside the standard (although I don’t see that it need to be standardised itself).<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-35: needs reorganisation, segmentation should perhaps be it’s own topic (saying ‘not implemented’), not an aside.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-44: The idea of ‘distribution’ of calibrations is new, and maybe unnecessary. You can get the same effect by definining the calibration activity with an argument and using Iteration/overArray to call it on each element.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-45: per previous discussions, I think the idea of the flag is good, but the name ‘native’ is misleading. Interfaces are always going up/down the OSI protocol stack, so I suggest OSI terminology like SDU or just dataUnit.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-54: maybe change ‘The namespaces in an EDS’ to ‘Semantics tags within the body of an EDS’ or similar.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-56: change example to get rid of multiple devices per datasheet, and the ‘Connect’ element? Such things should probably be in some other, rather more complicated and probably mission-specific schema or model. One way of doing that would be to define a new top-level schema that allowed Xincluding devices and namespaces.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-57: not sure about the example mapping two different interface parameters to the same local variable; by the red book definition, I think this would send values read from the device back out to it. Should either change schema to allow  direct mapping of parameters between interfaces, or example to use state machine and activities for at least one of the interfaces.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">Perhaps worth a warning from the tooling if the same variable is used by two or more parameter-maps, as I can’t see that ever working out.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-58: the state machine ‘read-attitude’ seems to be concerned with setting, not acquiring, data. Definitely needs a state diagram to show what is going on (the tooling can produce these), I am not at all convined it is right. <o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-46<o:p></o:p></p>

<p class="MsoNormal">From the point of view of a state machine, it is a _<i>sink</i>_ to parameters/commands  that trigger transisitons, and a  _<i>source</i>_ of parameters/commands generated by activities. What that actually means is different for required and provided interfaces. <o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">That info probably belongs in the current section 3.7, i.e. under common concepts. <o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">P5-58 S2: I’d agree that doesn’t belong here, will make document too long.<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal">richard<o:p></o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>

<p class="MsoNormal"><o:p> </o:p></p>
</div>

<p class="gfidisc.scisys.co.uk" id="gfidisc.scisys.co.uk" style="gfidisc.scisys.co.uk"> </p>
<gfidisc.scisys.co.uk>
<h1 class="gfidisc.scisys.co.uk" style="gfidisc.scisys.co.uk"> </h1>

<p><span style="color: #0000ff; font-family: Tahoma; font-size: small;"> </span></p>

<div align="left"><span style="color: #808080; font-family: Arial; font-size: small;">SCISYS UK Limited. Registered in England and Wales No. 4373530.</span></div>

<div align="left"><span style="color: #808080; font-family: Arial; font-size: small;">Registered Office: Methuen Park, Chippenham, Wiltshire SN14 0GB, UK.</span></div>

<div align="left"> </div>

<div align="left"><span class="400184714-12042007"><span style="color: #000000;"><span style="font-size: 7pt; font-family: Tahoma;"><span style="font-size: xx-small;"><span style="color: #008000;"><span style="font-family: Arial;">Before printing, <span class="296245114-12042007">please </span>think about the environment<span class="296245114-12042007">.</span></span></span></span></span></span></span></div>

<p class="gfidisc.scisys.co.uk" id="gfidisc.scisys.co.uk" style="gfidisc.scisys.co.uk"> </p>
<gfidisc.scisys.co.uk>
<h1 class="gfidisc.scisys.co.uk" style="gfidisc.scisys.co.uk"> </h1>

<hr />_______________________________________________<br />
Sois-app mailing list<br />
Sois-app@mailman.ccsds.org<br />
<a class="monobody" href="http://mailman.ccsds.org/cgi-bin/mailman/listinfo/sois-app" target="_blank">http://mailman.ccsds.org/cgi-bin/mailman/listinfo/sois-app</a><br />
<br />
<br />
 
<div id="signature"><!--SIG--><!--/SIG--></div>
</gfidisc.scisys.co.uk></gfidisc.scisys.co.uk>

<hr />_______________________________________________<br />
Sois-app mailing list<br />
Sois-app@mailman.ccsds.org<br />
<a class="monobody" href="http://mailman.ccsds.org/cgi-bin/mailman/listinfo/sois-app" target="_blank">http://mailman.ccsds.org/cgi-bin/mailman/listinfo/sois-app</a><br />
 
<div id="signature"><!--SIG--><!--/SIG--></div>

</BODY>
</HTML>