- 31 May, 2018 1 commit
-
-
Jason Milhone authored
Data class now can be 'truthy', has a defined length, and supports == ToDo: Redo the __repr__ function and __str__ functions.
-
- 29 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 28 May, 2018 2 commits
-
-
Jason Milhone authored
I was encountering an error (see Issue #12 messages) where matplotlib doesn't calculate the new subplot coordinates correctly. There ends up being a negative width or height followed by crashing the program. I don't seem to have this issue anymore by using gridspec. However, I needed to add some functionality to app.py to use GridSpec.tight_layout() because Figure.tight_layout() wasn't working like I thought would.
-
Jason Milhone authored
Created a helper function called _retrieve_signal where all inputs are hashable so that @functools.lru_cache could be utilized. retrieve_signal now unpacks some of the inputs and calls _retrieve_signal. Some of the logging messages were modified as well.
-
- 22 May, 2018 6 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
Continuing to add the @log decorator in places. Made some modifcations to some of the pyqt slot functions that needed an extra paramter that isn't used. I really don't understand why they didn't throw errors before. Probably something to do with how PyQt handles them. Added some more logging statements to exception handling in mdsplus_helpers.py
-
Jason Milhone authored
Double clicking update button would lead to a crash. Button is now disabled while grabbing data. It is unclear if I just added a bug to master. Sorry!
-
Jason Milhone authored
A logging packaged was created with single module called piscope_logging. piscope_logging has three functions: create_logger: creates a logging.Logger instance log: decorator that logs calls and exceptions time_log: decorator that logs calls, exceptions, and time of execution The decorators have been added in mdsplus_helpers.py, app.py. The logger creation has been modified in main.py Notes: I've noticed that on some of my pyqt slots, I haven't included enough arguments for the incoming pyqt signals. This makes things crash if you decorate the slot function. I'm working on fixing this as we speak. THIS IS UNTESTED. USE AT YOUR OWN RISK.
-
- 21 May, 2018 2 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
- 19 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 18 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 16 May, 2018 8 commits
-
-
Jason Milhone authored
The way I check to see if xlim and ylim should be enabled is to see if the key is in the config dictionary. I wasn't deleting the key and value from the dictionary when it should be. Note on removing keys from dictionary: dictionary_variable.pop(key_to_remove, None) will remove key_to_remove and return the value of dictionary_variable[key_to_remove]. If key_to_remove is not in dictionary_variable, then it will return None. I changed the deleting code for signals to this intead of using python's del function.
-
Jason Milhone authored
-
Jason Milhone authored
Needed to fix a similar issue when opening a config file at the start with a bad server address
-
Jason Milhone authored
App would lock if there was a bad server address after opening a new configuration file. Now, it should move on gracefully and inform the user that it couldn't access the server.
-
Jason Milhone authored
All of these files were before I started working on a true jScope replacement. They are no longer used and are now being removed from the repository.
-
https://git.doit.wisc.edu/JMILHONE/brb_piscopeJason Milhone authored
I was bad and didn't push earlier so now I have to deal with this merge.
-
Jason Milhone authored
Moved the axes modifications above the list of signals. Added more docstrings to app.py
-
Jason Milhone authored
Fixed bug calling self.get_node_locs instead of parser.get_node_locs Also created oes_config.ini with Halpha and Hbeta
-
- 15 May, 2018 5 commits
-
-
-
Jason Milhone authored
-
Jason Milhone authored
Apparently you can get None from connection.get("tdi expression") without any errors. Added a check to see if data or t are None before calling data.data() or t.data().
-
Jason Milhone authored
-
Jason Milhone authored
All of the config parsing that was in app.py is now in config/parser.py Did a little more code clean up. Moved the figure creation to data_plotter.py. Tried to fix some of the logic for the acquiring_data flag. Added some comment strings to explain logic. Started adding docstrings to app.py.
-
- 11 May, 2018 1 commit
-
-
Jason Milhone authored
Tried to fix a bunch of bugs associated with creating a new configuration file. Also fixed the sliders when opening the new config dialog. New Feature: Handles shot number equal to 0. I probably introducted new bugs. I spent a lot of time fixing little issues with self.acquiring_data race conditions. It's time I write out a proper state machine and make sure I map it correctly when grabbing data.
-
- 10 May, 2018 2 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
- 07 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 03 May, 2018 3 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
Ethan and I have witnessed a bug in the control room where the gui locks up while in share-x and auto update mode. I assume the culprit is auto update and not share-x. I have added a QTimer to query the mdsplus event watching thread to ask if it is still alive when auto update is active. I have yet to replicate the bug at home and the thread has always been active. In response to that knowledge, I added some extra logic inside in app.py. When it is time to spawn all of the mdsplus calls, it will call a brand new function in mdsplus_helpers.py called check_open_tree. Before any data calls go out, it must get a True back saying the tree is able to be opened. If it doesn't, then it will gracefully move on and say there was an error opening the shot and setting self.data to None. I'm hoping this fixes some of the issues we have been having. Unfortunately, all of these fixes are inside this branch that might have bugs of its own. Good Luck!
-
- 01 May, 2018 1 commit
-
-
Jason Milhone authored
You can now specify if an axes is not shareable in a configuration. You can also specify if an axes is not to be resampled. I might make this on the signal level, but I'm not sure. This is probably buggy, but I haven't found any glaring issues yet.
-
- 30 Apr, 2018 2 commits
-
-
Jason Milhone authored
Fixed a bunch of minor bugs with the grid spec upgrade. Please let me know if you find any more. I believe I modified all of the old config files to work with the new grid spec upgrade.
-
Jason Milhone authored
This is still a work in progress. I probably have added a bunch of bugs that I have not found yet. The config file now has a col key which is a list of 6 numbers corresponding to the number of rows in that column. The first column must be 1 or higher. The rest could be zero. I also made the edit configuration window a little easier to read. It now specifically says Col: # Row: # to make it obvious which subplot is being configured. Added a helpers.py file to do a least common multiple calculation for a list of numbers.
-
- 29 Apr, 2018 2 commits
-
-
Jason Milhone authored
Users can now edit the server and tree name from within the app using Edit -> Edit Global Settings... There really shouldn't be any new bugs added to this release. Added an Edit menu and also moved Edit Configuration to it from File.
-
Jason Milhone authored
Seems to be working for now. Please report bugs if found. Removed some commented code is mdsplus_helpers.py
-
- 28 Apr, 2018 1 commit
-
-
Jason Milhone authored
First attempt at better data handling, especially with no data. This is untested because I can't log into skywalker at the moment. The methodology is to return None if there is no data. The None's will get stored into the lists / corresponding entry in the self.data dictionary. I wrote a helper function in mdsplus_helpers.py to check the data dictionary for actual data. If there is no actual data, self.data will be written to None and no plotting will happen. Ideally, if the user makes a change externally and then presses update, the app should ask for data again. This is a change from before. Hopefully, this will work seamlessly.
-