Added metadata eleemnts and reorganised top-level elements for v0.7 - #32
RichardCrawshaw wants to merge 1 commit into
Conversation
Added a number of elements that provide similar values to those obtained from Module Params. Reorganised top-level elements into logical groups of metaData and logic. Still supports elements at the top-level for backwards compatability but those in their metaData and logic take precedence.
|
There's quite a bit of information there, so I'll initially comment at a more general level Some of that information is already obtainable from the module itself Also, Ian Hogg is proposing a mechanism to identify what type & version of bootloader is supported by a module - I've specifically been interested in that as I'm currently working on a programming feature for MMC, and would like to know which version of bootloader the module has (whether there is a valid MDF or not) So, the question is, should the MDF contain information that's readily obtainable from the module itself? |
All of the additional metadata fields I'm suggesting are for items that can be read from the module itself. There are two reasons for this.
|
|
Sorry I've not replied before now, was a little busy prepping for the East Mids Demo As I say, it's within the scope of the file to hold this information |
|
The MDF being loosely coupled is one of its big advantages. It gives a user the ability to fix stuff that is wrong; be that the MDF itself, or the firmware. Getting firmware "fixed" is a massive, up hill task. Some firmware authors are very receptive, others not at all. It can take months, years, or never, to get an issue resolved. The CANPAN 1y firmware has been around since 30 May 2016 and contains an error. In those eight years it's never been fixed. That version is still listed as the current version, albeit there is 4c beta 104 dated 23 April 2019, but that does require hardware changes, so isn't going to be practical for everybody. Whereas, the MDF being a text file allows an end user to fix something that is causing them a problem. They don't need to understand how to write assembler, they don't need to have a suitable development environment; they just need to be able to use a text editor and understand the appropriate part of the document definition; they don't even need to understand all of it. I did consider a separate file to control precedence; but concluded that would be just another module specific data file to manage on top of the MDF; another file format; added complexity, all for no additional benefit. |
|
Moved back onto this topic My reason for this is that I have created a 'conformance test' for VLCB, which can check a given firmware version on a module provides the expected values, as defined in file (there's a repo for that if you're interested.. another topic though) So for this, I need a file which specifies the expected value of each nodeParameter |
|
This (hopefully) is a screengrab of what I was thing of |
|
I'm not wedded to the term "metadata" for this, so another term is fine with me. However, I don't think "nodeParameters" is right either, as that element may be required to hold other things than the parameters. (As an aside, I know the dev guide uses that term, but I feel that "moduleParameters" is better as they relate to the capabilities of the physical Module rather than that of the conceptual Node.) |
|
However, I don't think "nodeParameters" is right either I get your point there, but I think 'we are were we are' with respect to the accepted usage |
|
as that element may be required to hold other things than the parameters. We can always add another element if there are items that aren't node parameter related |
|
Yes, we are where we are; that was why I was trying to avoid tying the element name to the parameters. In some regards it is metadata: data about the data, the number of NVs, the number of Events, the number of EVs. But there is probably a strong argument that, say, transport type isn't metadata, in the true sense. So I'm happy for the element not to be called metadata, but equally I'm against it being called node Parameters, or module Parameters. |
|
I'm happy for any derived data (like separating out the flags into booleans) to be in a different element - I do that for the VLCB flag in MMC But for values that are exactly as received from node parameters in the module, indexed by node parameter number, then these I believe need to be called 'nodeParameters' - I'm already using these in another application, so don't really want to change that |
|
I wasn't wanting to index the values. The change I pushed had named elements, both for values derived from the flags and those exactly from a whole byte. As well a number of elements that aren't derived from the parameters. I can see your point about retaining the containing element name where the child elements are indexed. |

Added a number of elements that provide similar values to those obtained from Module Params. Reorganised top-level elements into logical groups of metaData and logic. Still supports elements at the top-level for backwards compatability but those in their metaData and logic take precedence.
Changes provided in a Markdown file for just the section that has been changed.