According to chapter 11 of part 8-1:
The ACSI request GetLogicalDeviceDirectory maps to MMS GetNameList request. The GetNameList object class shall have a value of NamedVariable within the scope of a particular domain.
( So far so good )
v--- that means may or may not
The NamedVariable objects returned MAY contain more objects than solely logical nodes. Therefore, the MMS ObjectName will need to be filtered based upon the naming standards within this document (e.g. a NamedVariable that has no ‘$’ character).
The GetLogicalDirectory shall map directly GetNamedList MMS service. The scope of the request shall be the scope of the LogicalNode (typically within the scope of a particular domain)
I understood this as follows :
To GetLogicalDeviceDirectory I need to issue GetNameList-Request with objectScope set to domain and specifying the domain that corresponds to LogicalDevice. Server responds with LN names and possibly with other names which need to be filtered.
THEN, for to GetLogicalNodeDirecotory I need to issue another GetNameList-Request on the behalf of LogicalNode (NamedVariable) of interest.
But MMS service GetNameList does not allow the user to specify particular Logical Node. Since Logical Node maps to domain-scoped NamedVariable, and there is no possibility to specify distinct NamedVariable in GetNameList-Request.
So the only way to get NamedVariables is to make a request ( or series of requests using moreFollows/continueAfter ) for the entire Logical Device ( MMS domain ) and then, on the client side, determine which of received NamedVariables represent LN, and which represent Data
Precisely state in standard that the services GetLogicalDeviceDirectory and GetLogicalNodeDirectory map to MMS GetNameList service with objectScope set to domain ( LogicalDevice ) and that the server MUST respond on this request[s] with all LN and DATA the specified LogicalDevice contains. And that the client should determine which of received NamedVariables represents LN ( a NamedVariable that has no '$' character ) and which - DATA.
Another possible solution could be mapping GetLogicalNodeDirectory to MMS service GetVariableAccessAttributes.
Accepted in principle. The text in clause 11 Logical Device model precise now:
"The NamedVariable objects returned may contain more objects than solely logical nodes. Therefore, the MMS ObjectName will need to be filtered by the application using the MMS GetNameList-Request on the client side based upon the naming standards within this document (e.g. a NamedVariable that has no ‘$’ character)."
That means that the '$' filtering issue is located at the application using the MMS service on the client side.