Products have PartNumbers. They are used to identify the part and the number is a construct of many values.
We measure signalling using programs like wireshark.
We get a printout of each message seen. These are complex with many fields and many protocols.
An expert is expected to understand and report errors and problems.
Often it is difficult to remember all the protocols.
Can we run some test scripts to check the messages - YES, but what do you do. There are many options.
We can compare the messages against a set of templates and examples.
Soon it is appreciated that the order of messages is not always the same and file compare needs to be more sophisticated.
The structure is
Our sort sorts by line, so we need to help it by prepending each line with a tag to be sorted.
The parameters are multiline value structures so lets prepend the line with
messageName, parameterName , lineNumber : value
This should sort, by message,parameter,line value
Also it groups all values that differ together
Lets write an AWK script that looks for the start of message, start of parameter and build up a sortable string to allow the sort.
http://www.dougrice.plus.com/dev/lines.awk
We also need to work out when to ignore what we are not interested in.
The messages can be:
These pointers are worth looking for to indicate that the end of the previous parameter has been found.
The capture contains an unordered list of messages. Messages themselves contain a list of fixed parameters, and a list of optional parameters identified by name,length,value, but in no particular order.
We need a compare that accommodates this.
Some parameters may also be an unordered list of name,length,value sub parameters.
We could sort the messages. We could sort the parameters. This is a good idea.
The sort program sorts lines.
So we need to massage the text file so it can be sorted. Many lines will be identicle so we can condense this and count unique lines.
The output is an ordered list of counts of identical lines. This is good as it also shows which values were used and how often they are set to the particular values used.