From 95c55ce1511ce15b6740ad308ebff2cf182fcce0 Mon Sep 17 00:00:00 2001 From: Chris Knight Date: Thu, 20 Aug 2020 08:24:02 -0700 Subject: [PATCH 1/4] fix #125 - multiple typo fixes, etc --- Subsystems/Commands-Telemetry.txt | 56 +++++++++++++++++-------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/Subsystems/Commands-Telemetry.txt b/Subsystems/Commands-Telemetry.txt index e8a6548..d8b5ab9 100644 --- a/Subsystems/Commands-Telemetry.txt +++ b/Subsystems/Commands-Telemetry.txt @@ -4,38 +4,41 @@ Commands and Telemetry: Telemetry ( tlmGUI/ directory ): Telemetry is sent from the running cFE/CFS as CCSDS telemetry packets encapsulated in UDP/IP packets. The "enable telemetry" command tells the TO_LAB application to start -sending packets to a UDP port on the "localhost" or a specified IP. +sending packets to a UDP port (port #1234 by default) on the "localhost" or a specified IP. Start the telemetry system using the Ground System's main window. Buttons are available for individual telemetry pages. New pages can be added by adding to the "telemetry-pages.txt" text file. + The format is not very forgiving, and must be: -Descripton, Name of python class, Telemetry Message ID, packet -definition file +Description, Name of the Python class, Telemetry Message ID, packet definition file + +Also, a corresponding telemetry packet definition file must be added. -Also, a corresponding telemetry packet definition file must be added. For -example: - cfe-es-hk-tlm.txt is for the cFE Executive Services housekeeping packet. +For example: cfe-es-hk-tlm.txt is for the cFE Executive Services housekeeping packet. That file contains the information needed to decode and display each data -field of the packet. This is comma delimited text, and has no error checking. +field of the packet. This is comma-delimited text, and has no error checking. + The fields are: -1. Field Descripton -- This is put on the page +1. Field Description -- This is displayed on the GUI telemetry page 3. Byte offset in packet -- This is the starting byte for the data field -2. Length of data field in packet -- For integer types it is usually 1, 2, or 4 - For strings, it is a fixed length like 16 +2. Length of data field in packet -- For integer types it must be 1, 2, or 4 + For strings, the number of characters (such as 16) 3. Python type -- Python type for the field B = unsigned byte - I = unsigned 32 bit int - H = unsigned Hex - S = String - Floating point types are not supported yet, but are planned. + H = unsigned 16-bit integer + I = unsigned 32-bit integer + s = String +Notes: Floating point types are not supported yet, but are planned. Also the +type should match the length from #2 above. + See all of the types here: -http://docs.python.org/2/library/struct.html#format-characters +http://docs.python.org/3/library/struct.html#format-characters 4. Display type -- This is how the data is displayed on the page Dec = Decimal - Hex = Hexidecimal + Hex = Hexadecimal Enm = Enumerated Type ( see next four fields ) Str = String @@ -66,24 +69,25 @@ It provides a list of "command pages" with a list of commands to send to a subsy Start the command system using the Ground System's main window. The program is written in Python 3.x with the PyQT5 GUI. The dialogs were created -in the QT designer program, and converted to python classes using the "pyuic5" +in the QT designer program, and converted to Python classes using the "pyuic5" utility: + pyuic5 -o MyDialog.py MyDialog.ui The list of pages along with the AppID and address for each page is defined in the -file "command-pages.txt" +file "command-pages.txt". Each command page has a list of subsystem commands in the text files. For example, -ES is in cfe-es-cmds.txt . +ES is in cfe-es-cmds.txt. This first release of the program does not allow editing of the command parameters -in the GUI. This would be really helpful for on-the-fly commanding ( when you -want to do something like delete an app, and specify the app name in a dialog ) +in the GUI. This would be really helpful for on-the-fly commanding (when you +want to do something like delete an app, and specify the app name in a dialog.) -There is the possiblity to implement multiple command interfaces using -the python class parameter that is passed in. For example, a copy of +There is the possibility to implement multiple command interfaces using +the Python class parameter that is passed in. For example, a copy of UdpCommands.py could be made, which would allow the commands to be sent -over an Xbee RF radio, or TCP connection.. +over an Xbee RF radio, or TCP connection. -The subsystem commands ( cfe-es-cmds.txt ) are interface agnostic, so -they can be resued. +The subsystem commands ( cfe-es-cmds.txt ) are interface-agnostic, so +they can be reused. From e565ce65d536799830afb0fbf6fd3b4d02708d94 Mon Sep 17 00:00:00 2001 From: Chris Knight Date: Fri, 21 Aug 2020 16:24:10 -0700 Subject: [PATCH 2/4] md conversion --- ...ds-Telemetry.txt => Commands-Telemetry.md} | 69 +++++++++++-------- 1 file changed, 39 insertions(+), 30 deletions(-) rename Subsystems/{Commands-Telemetry.txt => Commands-Telemetry.md} (59%) diff --git a/Subsystems/Commands-Telemetry.txt b/Subsystems/Commands-Telemetry.md similarity index 59% rename from Subsystems/Commands-Telemetry.txt rename to Subsystems/Commands-Telemetry.md index d8b5ab9..d1539f7 100644 --- a/Subsystems/Commands-Telemetry.txt +++ b/Subsystems/Commands-Telemetry.md @@ -1,84 +1,93 @@ -Commands and Telemetry: ------------------------------------------- +#Commands and Telemetry: -Telemetry ( tlmGUI/ directory ): - Telemetry is sent from the running cFE/CFS as CCSDS telemetry packets encapsulated in -UDP/IP packets. The "enable telemetry" command tells the TO_LAB application to start -sending packets to a UDP port (port #1234 by default) on the "localhost" or a specified IP. +##Telemetry ( tlmGUI/ directory ): +Telemetry is sent from the running cFE/CFS as CCSDS telemetry packets encapsulated in +UDP/IP packets. The `enable telemetry` command tells the TO_LAB application to start +sending packets to a UDP port (port #1234 by default) on the `localhost` or a specified IP. Start the telemetry system using the Ground System's main window. Buttons are available for individual telemetry pages. -New pages can be added by adding to the "telemetry-pages.txt" text file. + +New pages can be added by adding to the `telemetry-pages.txt` text file. The format is not very forgiving, and must be: Description, Name of the Python class, Telemetry Message ID, packet definition file Also, a corresponding telemetry packet definition file must be added. -For example: cfe-es-hk-tlm.txt is for the cFE Executive Services housekeeping packet. +For example: `cfe-es-hk-tlm.txt` is for the cFE Executive Services housekeeping packet. That file contains the information needed to decode and display each data field of the packet. This is comma-delimited text, and has no error checking. -The fields are: +###The fields are: + 1. Field Description -- This is displayed on the GUI telemetry page -3. Byte offset in packet -- This is the starting byte for the data field -2. Length of data field in packet -- For integer types it must be 1, 2, or 4 + +2. Byte offset in packet -- This is the starting byte for the data field + +3. Length of data field in packet -- For integer types it must be 1, 2, or 4 For strings, the number of characters (such as 16) -3. Python type -- Python type for the field + +4. Python type -- Python type for the field B = unsigned byte H = unsigned 16-bit integer I = unsigned 32-bit integer s = String + Notes: Floating point types are not supported yet, but are planned. Also the -type should match the length from #2 above. +type should match the length from #3 above. See all of the types here: http://docs.python.org/3/library/struct.html#format-characters -4. Display type -- This is how the data is displayed on the page +5. Display type -- This is how the data is displayed on the page Dec = Decimal Hex = Hexadecimal Enm = Enumerated Type ( see next four fields ) Str = String -5. Enumerated type 0 -- This string is displayed if the display type is Enm +6. Enumerated type 0 -- This string is displayed if the display type is Enm and the value is 0 -6. Enumerated type 1 -- This string is displayed if the display type is Enm +7. Enumerated type 1 -- This string is displayed if the display type is Enm and the value is 1 -7. Enumerated type 2 -- This string is displayed if the display type is Enm +8. Enumerated type 2 -- This string is displayed if the display type is Enm and the value is 2 -8. Enumerated type 3 -- This string is displayed if the display type is Enm +9. Enumerated type 3 -- This string is displayed if the display type is Enm and the value is 3 -What needs to be done: +###What needs to be done: + 1. Expand number of enumerated types + 2. Provide some sort of optional data transformation + 3. Implement floats + 4. Be able to record/graph data? May be beyond the scope of this. ------------------------------------------- -Commands ( cmdGUI/ directory) +#Commands (cmdGUI/ directory) -This is a simple Python / QT4 based Command GUI for the cmdUtil utility. +This is a simple Python / QT based Command GUI for the cmdUtil utility. It provides a list of "command pages" with a list of commands to send to a subsystem. Start the command system using the Ground System's main window. -The program is written in Python 3.x with the PyQT5 GUI. The dialogs were created -in the QT designer program, and converted to Python classes using the "pyuic5" -utility: +The dialogs were created in the QT designer program, and converted to Python classes +using the "pyuic5" utility: - pyuic5 -o MyDialog.py MyDialog.ui +``` +pyuic5 -o MyDialog.py MyDialog.ui +``` The list of pages along with the AppID and address for each page is defined in the -file "command-pages.txt". +file `command-pages.txt`. Each command page has a list of subsystem commands in the text files. For example, -ES is in cfe-es-cmds.txt. +ES is in `cfe-es-cmds.txt`. This first release of the program does not allow editing of the command parameters in the GUI. This would be really helpful for on-the-fly commanding (when you @@ -86,8 +95,8 @@ want to do something like delete an app, and specify the app name in a dialog.) There is the possibility to implement multiple command interfaces using the Python class parameter that is passed in. For example, a copy of -UdpCommands.py could be made, which would allow the commands to be sent +`UdpCommands.py` could be made, which would allow the commands to be sent over an Xbee RF radio, or TCP connection. -The subsystem commands ( cfe-es-cmds.txt ) are interface-agnostic, so +The subsystem commands `cfe-es-cmds.txt` are interface-agnostic, so they can be reused. From 5769155767627328b53e2e251d0403fe5faf8c65 Mon Sep 17 00:00:00 2001 From: Chris Knight Date: Fri, 21 Aug 2020 16:26:21 -0700 Subject: [PATCH 3/4] md conversion --- Subsystems/Commands-Telemetry.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Subsystems/Commands-Telemetry.md b/Subsystems/Commands-Telemetry.md index d1539f7..de75440 100644 --- a/Subsystems/Commands-Telemetry.md +++ b/Subsystems/Commands-Telemetry.md @@ -1,6 +1,6 @@ -#Commands and Telemetry: +# Commands and Telemetry: -##Telemetry ( tlmGUI/ directory ): +## Telemetry ( tlmGUI/ directory ): Telemetry is sent from the running cFE/CFS as CCSDS telemetry packets encapsulated in UDP/IP packets. The `enable telemetry` command tells the TO_LAB application to start sending packets to a UDP port (port #1234 by default) on the `localhost` or a specified IP. @@ -20,7 +20,7 @@ For example: `cfe-es-hk-tlm.txt` is for the cFE Executive Services housekeeping That file contains the information needed to decode and display each data field of the packet. This is comma-delimited text, and has no error checking. -###The fields are: +### The fields are: 1. Field Description -- This is displayed on the GUI telemetry page @@ -59,7 +59,7 @@ and the value is 2 9. Enumerated type 3 -- This string is displayed if the display type is Enm and the value is 3 -###What needs to be done: +### What needs to be done: 1. Expand number of enumerated types @@ -69,7 +69,7 @@ and the value is 3 4. Be able to record/graph data? May be beyond the scope of this. -#Commands (cmdGUI/ directory) +# Commands (cmdGUI/ directory) This is a simple Python / QT based Command GUI for the cmdUtil utility. It provides a list of "command pages" with a list of commands to send to a subsystem. From 11707e9ed19de682c4eb7a2e5e3da6b65af2664a Mon Sep 17 00:00:00 2001 From: Chris Knight Date: Fri, 21 Aug 2020 16:27:20 -0700 Subject: [PATCH 4/4] md conversion --- Subsystems/Commands-Telemetry.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Subsystems/Commands-Telemetry.md b/Subsystems/Commands-Telemetry.md index de75440..6844b13 100644 --- a/Subsystems/Commands-Telemetry.md +++ b/Subsystems/Commands-Telemetry.md @@ -30,10 +30,10 @@ field of the packet. This is comma-delimited text, and has no error checking. For strings, the number of characters (such as 16) 4. Python type -- Python type for the field - B = unsigned byte - H = unsigned 16-bit integer - I = unsigned 32-bit integer - s = String +* B = unsigned byte +* H = unsigned 16-bit integer +* I = unsigned 32-bit integer +* s = String Notes: Floating point types are not supported yet, but are planned. Also the type should match the length from #3 above.