Lately things have gotten really busy with the Eclipse and family visiting so it's taken me a little while to get this version ready to go.
I've added a couple new big features that I hope people are going to like. The first and foremost feature is configuration files. I've set up a nice system to allow you to change many of the features of Const Port through configuration files found in the Resources/Configuration folder.
There are 3 files currently. GlobalConfig.json, PlatformConfig.json, and RegularExpressions.rgx. All three can be opened and edited by a text editor of your choice. The .json files are parsed using the JSMN (pronounced "Jasmine") library which can be found here. The .rgx file is parsed using a simple custom syntax parser. There's a brief explanation of the file format in the file itself but overall it's a really straightforward way of allowing you to input regular expressions without having to escape them in JSON strings.
There's a large variety of things you can change about the application and I'm adding more options all the time. I would like to make as many things modifiable as possible. Later on I might decide to scale back and get rid of some of the unneeded options or put them in a separate file so they don't confuse people. However, for now I'm just going to keep throwing out new options and see what sticks. So if you have any options you'd like to see added just let me know.
Be warned: One side effect of having so many options is that I haven't tested all the options. I'm sure it's easy to crash the application by putting large numbers or weird combinations of options. Once we have a more solid list of options I will start bounds checking the inputs and confirming that the options are valid. For now however, just be nice with your inputs and you should be fine.
With the addition of options it's now entirely possible to change the color scheme of Const Port to whatever you like. The UI is rendered using a combination of various grays, blacks, and whites. However you can change these to whatever colors you like using a variety of JSON color formats.
The second major addition that was made was regular expression support. (Hence the RegularExpressions.rgx file) I've decided to try and use the C++ library Boost.Regex to allow me to add support for various features that will use regular expressions in the future. The main features right now are hard coded as configuration options in the GlobalConfig.json file. Each of these regular expressions is checked against each line that comes in (after we receive the new line character(s)) and if a match is found we produce some change. These have replaced the hard-coded line coloring methods and opened the line colors up for use with whatever input you'd like to color. You can only define 1 regular expression per color right now and they have to be the Highligh1-Highlight5 colors but this will change in the future to allow you to completely customize the look and feel of your input.
There's a few more features but I think I've gone on long enough. Here's your download link:
The debug version is the same as the regular but with the Console Window enabled so you can see all the debug output of the application. This is useful for debug purposes, especially if the application isn't running on your platform or crashes unexpectadly.
As always the source code can be downloaded from BitBucket:
- Added JSON configuration files in the Resources/Configuration folder that contain a variety of configuration options for Const Port. Edit these at any time and then use the Ctrl+R keybinding to reload the configuration
- Added a RegularExpressions.rgx file in the Resources/Configuration folder. This file uses a custom syntax and is used in conjunction with the configuration files to allow you to easily define regular expressions without having to escape them in JSON strings.
- Replaced the hard-coded line coloring to be defined by the user using Regular Expressions
- Added an option for a regular expression that increments a generic counter. Use this to have Const Port count occurrences of some line for you
- Added an option for a regular expression that automatically adds a line break
- Fixed a bug where we weren't able to open COM ports above COM9
- Did some work to try and get Const Port to run on Windows 7. Still need to do more work on this but I've made some improvements on the required OpenGL version