Skip to content

Releases: BallAerospace/COSMOS

v4.5.0

06 Nov 21:50
Compare
Choose a tag to compare

COSMOS 4.5 -

This is a security and bug fix release. All users are recommended to update. Please see the migration notes below for necessary changes when upgrading from 4.4.2.

Security Updates:
#672 Secure COSMOS API with Shared Secret
#1227 Prevent a Malicious Website From Sending Commands

Bug Fixes:
#1135 Command Sequence Tool Overriding String Parameter
#1151 CmdSender not setting description
#1158 Loss of 1 us precision on CCSDS time when using Time.ccsds2sec method
#1164 CmdTlmServer#reload always uses default system.txt
#1167 Serial Driver Initialization Bug
#1196 COSMOS windows stuck offscreen at Startup
#1200 Handbook PDF Generation wkhtmltopdf ProtocolUnknownError
#1210 Move CheckError definition to ApiShared

New Features:
#1141 Enable setting arbitrary bits in the serial drivers

Maintenance:
#1136 Telemetry Extractor delimiter on last item

Migration Notes from COSMOS 4.4,x:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

Modify you system.txt files to:

  1. Make sure you have a X_CSRF_TOKEN line with a unique value (anything will do, just change it)
  2. Change all LISTEN_HOST settings to 127.0.01 unless you need connections from external hosts
  3. If you know only specific external hosts will be connecting, add ALLOW_ACCESS lines for each
  4. Only add ALLOW_ROUTER_COMMANDING if you are chaining CmdTlmServers (that need to send commands), or you are receiving commands through routers
  5. Only add ALLOW_ORIGIN if you expect COSMOS to be accessed from a webpage
  6. Add ALLOW_HOST :7777, etc if you expect the COSMOS APIs to be accessed from external computers. Otherwise it will only accept connections that have a HOST header set to localhost

v5.0.0-alpha.1

31 Aug 23:26
Compare
Choose a tag to compare
v5.0.0-alpha.1 Pre-release
Pre-release

I am proud to announce the release of COSMOS 5 Alpha 1!

COSMOS 5 is a highly scalable, cloud native, command and control software system. This is a technology preview release meant to introduce all of the new technologies debuting in COSMOS 5.

New Technologies:

  • Docker - COSMOS 5 runs across a set of containers managed by Docker
  • Redis - Redis is used as a key-value store, and streaming data server
  • Minio - Minio provides an S3 compatible file storage server
  • EFK Stack - Elasticsearch, Fluentd, Kibana - Provide a distributed logging solution
  • Vue.js - Javascript technology used to build the new COSMOS user interface

Basic versions of the following COSMOS tools are included in this release:

  • Command and Telemetry Server
  • Command Sender
  • Packet Viewer
  • Telemetry Viewer
  • Telemetry Grapher
  • Script Runner
  • Limits Monitor

Prerequisites:

Docker - Running COSMOS 5 requires a working Docker installation. Typically Docker Desktop on Windows / Mac. Plain docker should work on linux. We're currently only developing / running with Docker Desktop on Windows, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 60GB Disk
Recommended Resources allocated to Docker: 8GB RAM, 2+ CPUs, 100GB Disk

To Run:

  1. Download one of the archives (.zip or .tar.gz from the Github release page) Download Release Here
  2. Extract the archive somewhere on your host computer
  3. The COSMOS 5 containers are designed to work and be built in the presence of an SSL Decryption device. To support this a cacert.pem file can be placed at the base of the COSMOS 5 project that includes any certificates needed by your organization. If you don't need this, then please ignore, but if you see any SSL errors, this is probably why.
  4. Run cosmos_start.bat (Windows), or cosmos_start.sh (linux/Mac)
  5. COSMOS 5 will be built and when ready should be running (~15 mins for first run, ~2 for subsequent)
  6. Connect a web browser to http://localhost:8080
  7. Have fun trying out COSMOS 5!

Please try it out and let us know what you think! Please submit any issues as Github tickets, or any generic feedback to COSMOS@ball.com.

Note that this release is not ready for production use. We will have a more beta ready release in a few months.

Thanks!

v4.4.2

09 Mar 19:05
Compare
Choose a tag to compare

COSMOS 4.4.2! A minor bug fix release.

Enjoy and see below for the full list of changes.

New Features:
None

Maintenance:
#1117 Include name in TcpipServerInteface log messages
#1128 wkhtmltopdf has old comment

Bug Fixes:
#1126 Packets with identically named items fail checks

Migration Notes from COSMOS 4.3.0:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

The faster identification in ticket #911 does come with a potentially breaking change. The improvement requires that all packets for a given target be identified using the same fields (bit offset, bit_size, and type). This is the typical configuration, and breaking this pattern is typically a dangerous/bad choice for interfaces anyways, but previously COSMOS did default to handling packets being potentially identified using different fields in the same target. If you have a target that still requires that functionality, you need to declare CMD_UNIQUE_ID_MODE, and/or TLM_UNIQUE_ID_MODE in the target's target.txt file to indicate it should use the slower identification method.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.4.1

31 Dec 03:07
Compare
Choose a tag to compare

Onward to COSMOS 4.4.1! 27 tickets have been incorporated including 6 new features, 13 bug fixes and 8 general maintenance changes.

Mainly a stability bug fix release, but there are a few cool changes. There is an new keyword for marking that bit overlaps are intentional in packet definition files. This can get rid of those annoying warnings when you do this intentionally. There is also a new DELETE_ITEM keyword to get rid of items potentially added by auto generation. Tlm Extractor and Tlm Grapher can now pull more than 10,000 data points from DART. Also, there is now the ability to package multiple targets into one gem.

Enjoy and see below for the full list of changes.

New Features:
#817 Allow for intentional bit overlaps in definition
#821 Support DART queries larger than 10000 samples in TlmExtractor / TlmGrapher
#922 DELETE_ITEM
#1028 Support Multiple Targets Packaged into Single Gem
#1040 Config Editor new system config wizard
#1104 Create releases from Docker

Maintenance:
#1016 Make JSON RPC API Command Methods Case Insensitive
#1030 Scrolling in config editor can cause issues
#1039 Config Editor performance enhancements
#1056 AppVeyer broken
#1074 For BLOCK parameters, suggest 0x0 as default value
#1080 DART stream server docs
#1090 DART Reduction unreliable with file imported data
#1101 Windows 10 Install Error?

Bug Fixes:
#883 DART meta filter not populating
#944 DART data retrievals not per packet_time
#1012 Screens can't call display when launched with --screen
#1031 Graphing a telemetry member whose name includes brackets fails
#1036 TestRunner: ABORT_TESTING_AFTER_ERROR ignored for test cases added indivually to testsuite
#1037 telemetry#all_item_strings support undeclared target names
#1051 Windows serial port hangs on write
#1061 Excel can't open a blank worksheet
#1063 Length Protocol does not handle 0 length
#1064 Command Sequence Repeating Write_Conversion
#1081 Ruby Syntax Error Checker Hangs Test Runner
#1087 COSMOS Installation failure in building puma_http11
#1092 Typo in Odd Parity

Migration Notes from COSMOS 4.3.0:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

The faster identification in ticket #911 does come with a potentially breaking change. The improvement requires that all packets for a given target be identified using the same fields (bit offset, bit_size, and type). This is the typical configuration, and breaking this pattern is typically a dangerous/bad choice for interfaces anyways, but previously COSMOS did default to handling packets being potentially identified using different fields in the same target. If you have a target that still requires that functionality, you need to declare CMD_UNIQUE_ID_MODE, and/or TLM_UNIQUE_ID_MODE in the target's target.txt file to indicate it should use the slower identification method.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.4.0

02 Jul 22:52
Compare
Choose a tag to compare

Here's COSMOS 4.4.0! 52 tickets have been incorporated including 18 new features, 19 bug fixes and 15 general maintenance changes.

Overall this is just a stability bug fix release, but there are a few interesting changes. For one, max packet reception speed has been greatly increased due to ticket #911. CmdExtractor can now output in a CSV format. ScriptRunner has a recently opened file menu section, and the show_backtrace feature is now a menu option as well. There is much better support for giving absolute paths to config files on the command line. There is also a new LED type widget to display boolean telemetry.

Enjoy and see below for the full list of changes.

Breaking Changes:
The faster identification in ticket #911 does come with a potentially breaking change. The improvement requires that all packets for a given target be identified using the same fields (bit offset, bit_size, and type). This is the typical configuration, and breaking this pattern is typically a dangerous/bad choice for interfaces anyways, but previously COSMOS did default to handling packets being potentially identified using different fields in the same target. If you have a target that still requires that functionality, you need to declare CMD_UNIQUE_ID_MODE, and/or TLM_UNIQUE_ID_MODE in the target's target.txt file to indicate it should use the slower identification method.

New Features:
#822 CmdExtractor CSV Output Option
#854 ScriptRunner open multiple files from File->Open
#877 Graph in PktViewer during Replay should open TlmGrapher in Replay
#878 Debugger enhancements
#886 Add show_backtrace menu option to ScriptRunner/TestRunner
#891 Ability for protocol write methods to write send commands to the interface that owns it
#893 Canvas image ease of use
#895 prompt should take color and font options
#911 Fast Identification
#918 Limits bar widget display specified range
#934 Recent Files list in Script Runner File menu
#938 Test Runner disable start buttons
#956 Templated Protocol Limited to One Target per Interface
#964 Improve error message when accessing packets during initialization
#986 Script Runner should note Disconnect mode in log
#987 Tools should support absolute paths on the command line
#990 Add Boolean Telemetry Widget
#1017 Data Viewer component for colored text items

Maintenance:
#880 tmp output not capitalizing targets
#884 Documentation updates
#913 Workaround Travis accept failures
#914 Increase json_drb start timeout
#925 Script syntax highlighting improvements
#930 Update COSMOS Travis builds
#940 Update keyword documentation
#953 Simplify Launcher.bat files
#955 Document tool command line options
#995 Test Runner should use LOAD_UTILITY to better match scripting
#998 Enable raw logging when LOG_RAW used
#1000 Add IgnorePacketProtocol to defaults
#1005 Celsius is misspelled
#1008 Move handbook assets out of outputs
#1010 Widget documentation and cleanup

Bug Fixes:
#870 TlmViewer Block Widget exhibits weird scrolling issue
#874 Demo commanding screen can't run scripts
#882 Demo background task unable to be restarted
#889 FixedProtocol does not identify packets when leading bytes discarded
#908 Bad Hex String Conversion in Command Sender
#909 Replay doesn't work with TlmGrapher when loading saved_config
#916 Allow FORMAT_STRING before STATES
#919 Limits Checking Enabled Status on Properties Dialog not accurate
#920 Gemfile may be too strict in ruby-termios version requirement
#927 Error if DECLARE_TARGET with no SYSTEM target folder
#945 Screenshotting on Macs may not work
#948 Unable to connect limits monitor to replay server
#966 OpenGL Builder is Expecting "EarthMap1024x512.gif", but Packaged GIF is "Earthmap1024x512.gif"
#975 Multiple Errors in a chain of ScriptRunner Methods
#978 ScriptRunner breakpoints don't get set on the correct line
#980 Include target REQUIRE files in marshal
#983 Line number discrepancy in TestRunner Report/ScriptRunner output
#992 missing method in xtce_converter; process_xtce
#1022 Table Manager TABLEFILE doesn't support subdirectories

Migration Notes from COSMOS 4.3.0:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.3.0

30 Aug 22:56
Compare
Choose a tag to compare

Welcome to COSMOS 4.3.0!

The highlight of this release is built in support for differentiating between stored telemetry and realtime telemetry. If your system downlinks stored telemetry that you don't want to interfere with the COSMOS realtime current value table, your interface/protocol code can set the stored flag on a packet before returning it to COSMOS to have COSMOS log the packet, but not update the current telemetry values.

Lots of other new features as well, and a few bug fixes including fixing running on the latest version of Mac OSX. See below for the full list.

Breaking Changes:
The COSMOS log file format and predentified protocol formats have changed to support stored telemetry. COSMOS 4.3 is backwards compatible with earlier formats, but older versions of COSMOS won't be able to read files from COSMOS 4.3+.

New Features:
#780 Search bar support for Command Sequence
#785 Adjust font size
#804 Add classification bar to all tools
#808 Add CANVASELLIPSE widget
#814 Changes to support stored telemetry
#815 Create a temporary screen from a script
#818 Catch all state for any undefined state values
#819 Ensure x values added in incrementing order in TlmGrapher
#823 Add protocol to ignore any packet
#826 Allow hash style access to Excel
#829 Add STAY_ON_TOP feature to telemetry screens
#851 Ensure step_mode displays Step button
#859 Change Script Runner highlight color when paused

Maintenance:
#796 Handle Command Sequence Export Issues
#807 Revert Items with STATE cannot define FORMAT_STRING
#812 Ruby 2.5 Instrumented Code outside of methods in a class
#855 Remove Qt warning message on Windows 10
#858 Fix JRuby build issues

Bug Fixes:
#837 Packet Viewer's "Hide Ignored Items" Incorrectly Persists Across Change of Packet
#840 Latest version of COSMOS crashing
#845 Support get_tlm_details in disconnect mode

Migration Notes from COSMOS 4.2.x:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.2.4

16 May 22:34
Compare
Choose a tag to compare

This is the second patch release for 4.2. It greatly improves the ingest speed for DART (100x), improves decom speed, reduces database size, and fixes some bugs. If you are using DART, please upgrade and follow the migration directions at the end of these release notes.

The highlight of COSMOS 4.2 is a new tool called the Data Archival and Retrieval Tool (DART). DART is a long term trending database built on top of the PostgreSql database. It integrates directly with TlmGrapher, TlmExtractor, CmdExtractor, DataViewer, and Replay, allowing you to do historical queries of logged telemetry (and commands) by specifying a time range. Queries are super fast and it performs automatic data reduction at minute/hour/day granularity. Consider setting it up for your project and start data mining today!

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

New Features:
#787 No way to control data bits on serial interface
#788 ROUTERS should support PROTOCOL keyword

Maintenance:
#784 Comparable and spaceship operator behavior changing
#791 Table Manager doesn't expose top level layout

Bug Fixes:
#779 Dart updates for ingest speed, correct time zone, TlmGrapher crash
#786 Status tab crash on Ruby 2.5
#790 Telemetry check doesn't support strings with multiple spaces

Migration Notes from COSMOS 4.1.x:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

If you already setup DART for your program please follow the following additional steps:
In a terminal in your COSMOS project folder run:

rake db:migrate
rake db:seed

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.2.3

17 Apr 20:45
Compare
Choose a tag to compare

COSMOS 4.2 is here! This is the first true patch release for 4.2. The highlight of COSMOS 4.2 is a new tool called the Data Archival and Retrieval Tool (DART). DART is a long term trending database built on top of the PostgreSql database. It integrates directly with TlmGrapher, TlmExtractor, CmdExtractor, DataViewer, and Replay, allowing you to do historical queries of logged telemetry (and commands) by specifying a time range. Queries are super fast and it performs automatic data reduction at minute/hour/day granularity. Consider setting it up for your project and start data mining today!

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

New Features:
#767 Support Ruby 2.5
#771 Add CmdSender Search

Maintenance:
#772 OpenGL gem isn't supported in Ruby 2.5

Bug Fixes:
#769 TIMEGRAPH widget non-functional
#775 Toggle disconnect broken in TestRunner

Migration Notes from COSMOS 4.1.x:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.2.2

11 Apr 19:59
Compare
Choose a tag to compare

COSMOS 4.2 is here! Thirty four tickets went into this release, but the highlight is a new tool called the Data Archival and Retrieval Tool (DART). DART is a long term trending database built on top of the PostgreSql database. It integrates directly with TlmGrapher, TlmExtractor, CmdExtractor, DataViewer, and Replay, allowing you to do historical queries of logged telemetry (and commands) by specifying a time range. Queries are super fast and it performs automatic data reduction at minute/hour/day granularity. Consider setting it up for your project and start data mining today!

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

New Features:
#698 Initial DART Release
#650 Gracefully handle large array items
#673 Button widget should spawn thread to avoid blocking GUI
#676 Allow individual interfaces to be disconnect mode
#699 Test cases added to TestRunner should be ordered in drop down
#705 Cmd line arg for ScriptRunner to start in disconnect mode
#706 Warn if ITEMs or PARAMETERs are redefined
#711 Allow ERB to know the target name
#715 Allow individual Limits Monitor items to be removed (not ignored)
#719 Warn if limits_group doesn't exist in limits_groups_background_task
#729 CmdSender production mode to disable MANUALLY ENTERED
#734 Support DERIVED with APPEND
#737 Implement single stepping with the F10 key
#754 Add Replay Mode to Include All Routers
#765 TlmGrapher sampled analysis

Maintenance:
#682 Fix Ruby interpreter warnings
#687 Add ConfigEditor AHK tests
#688 Windows 10 Installation Error - RDoc parsing failure in qtruby4.rb
#692 Fix METADATA usage in demo
#738 PacketViewer scroll to item on search
#748 Syntax highlighting prioritizes string over comment
#750 TestRunner hides syntax errors with broad rescue
#752 Demo INST commanding screen broken
#757 Increase TlmGrapher timeout to better support Replay
#759 Allow underscores and dashes in log filename labels

Bug Fixes:
#690 Automatic SYSTEM META definition doesn't include RECEIVED_XX
#691 tools/mac apps won't open
#701 XTCE String types should not have ByteOrderList
#709 Can't set breakpoint in subscript
#713 Launcher crashes if newline in crc.txt
#723 crc_protocol needs better input validation
#727 Install issue on Windows 10
#732 losing/gaining data when routing at different incoming rates
#735 Statistics Processor doesn't handle nil or infinite
#740 About dialog crashes if USER_VERSION not defined

Migration Notes from COSMOS 4.1.x:
To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.

See the COSMOS documentation for directions on setting up DART: http://cosmosrb.com/docs/home/

v4.1.1

07 Dec 17:20
Compare
Choose a tag to compare

New Features:
#663 Built-in protocols to support allow_empty_data
#666 Add ability to create target in ConfigEditor
#679 TlmViewer screen audit shouldn't count reserved item names

Maintenance:
#660 Update Opengl gem requirement version
#665 Refactor xtce parser

Bug Fixes:
#661 Render function bug?
#674 Add TlmViewerConfig spec and fix to_save

Migration Notes from COSMOS 4.0.x:
Any custom tools in other languages that use the COSMOS API will need to be updated.

To upgrade to the latest version of COSMOS, run "bundle update cosmos" in your COSMOS project folder.