Update momo shell with better help features and ability to add packages #153
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new syslog implementation that does not require sprintf'ing things, allows the logging of typed data and in the future can facilitate hardware testing by allowing the logging of typed data into a special 'test' log that can be inspected to see if hardware tests were successful for or not. The implementation of syslog and usage is detailed here.
The reason why I wanted to change it was so that we can get better data on running momo systems including the actual RAM variables for debugging and development purposes. This required some fairly extensive additional work to automatically match python types with firmware types automatically and is used in syslog as well as read_ram to read controller ram variables and in the future can be used for symbolic debugging in the simulators as well.
The main disadvantage of the new systemlog vs the old one is that you now need a log definition file in order to translate the log messages into english text and match types with the logged parameters. If you don't have a log definition handy for the module, the syslog will do the best it can and always show you as much as it can with the information that it has. There is enough metadata stored with each logged parameter to display it as either an integer, ascii string or binary blob without a log definition but with a log definition file you can give each parameter a name and associate rich types with each binary blob that can have complicated processing and display routines.
Changes from Old System Log
Changes to the MoMo Tool
Additional Changes
Additional work that can be done on these changes (for a future PR) is detailed in Issue #152.