cubes-sw's People
cubes-sw's Issues
Implement command queue
At least while the software is being used for CUBES, a command queue should be implemented. This is a means of making sure the user can issue commands to the FPGA while the FPGA is replying to another command.
OBC simulator extensions
Extensions to the Arduino-based OBC simulator should be implemented as independently as possible from the actual OBC simulator code. The latter resides in a separate repository and is generated (as of the time of writing of this issue) using a config file. The OBC simulator repository may change at a later date, at which point CUBES will need to regenerate the code for its OBC simulator. At that point, adding the extensions to the the newly-generated OBC simulator code may lead to headaches.
The process should be simplified by:
- Moving extension code outside of code generated for the OBC simulator, e.g., in new files called
extension.c
andextension.h
; - Modifying the main flie of the OBC simulator to contain calls to functions in
extension.h
;
All of these should be added to the obcsim/
folder of the repository.
Replace all "m_" members with "this->"
More of a cosmetic change than anything else, but still nice to have for clarity.
Remove obcsim folder after extensions implemented
The obcsim/
folder should be removed from this repository after #7 has been closed. The OBC simulator is something used along with the cubes-fw
repository, so it makes more sense to have items related to the OBC simulator there.
My proposal is that we proceed as follows:
- Implement extensions per #7
- Test
- Close #7
- Move files related to extensions to the cubes-fw repository. NB: Check issue #5 in the cubes-fw repository for details on where they should be located
- Remove
obcsim/
from this repository
Read all registers in diagnostics tab disabled
For now, the tree view for the FPGA registers is disabled, since the command doesn't work properly.
One of two actions is possible for the future:
- fix: the issue may be due to the gateware not properly answering to the command, or the software being too insensitive on the serial port to the wrong number of bytes being received;
- discard registers view: since the software may change to a SIPHRA control software rather than simply CubesControl, the registers view may be unnecessary and too hard to maintain. It may also not be very useful for debugging.
At the moment, I'm currently leaning towards the latter.
More generic SIPHRA classes
This issue is a dump of my ideas regarding the extension of the software for its usability in more advanced projects:
- create a
SiphraDevice
class which would hold the value of all the registers on the SIPHRA - update the
SiphraTreeWidgetItem
class to use data from the newSiphraDevice
class - the
SiphraTreeWidgetItem
can be an MVC (Model-View Controller) type of class, with theSiphraDevice
as its model and two different types of views:- one for the table view
- another for the visual config view
- create a
SiphraConfigDevice
class which would implement the protocol communicating to the FPGA communicating to the SIPHRA. This class would replace the currentCubesProtoUartPmod
class. - create an interface that one can implement with new device types later on; this interface would be a base class for implementing the MIST Space Protocol needed for CUBES, as well as whatever would be used for SPHiNX. This is the idea behind the currently unused
ICubesProtocol
class.
Need mechanism for future histogramming developments
The histogramming function was at first implemented in a rush and was difficult to extend. This should be fixed by something along the following lines:
-
Conceptualize a header for all histograms, including the old ones. The header would contain a type definition, maybe an integer that is incremented whenever a new histogram type is added, or later on when a user selects another histogram type (channel or all-channels) via a combo box. A first proposal for a header would be (but maybe something more intelligent would be good):
H<int_type>
-
Change the CubesControl software so that it adds the header type to the output histogram. This should be done in the
on_actionExportHistogram_triggered()
method. NB: There should be no need to cover previous histogram types for histogram exports at the time of writing of this issue. -
Change the
on_actionImportHistogram_triggered()
method to import old histogram types, -
Change old histogram files and check that they can be imported properly. Note that so far there have been two histogram types used, so one would need to either cover all of them, or drop them altogether. Perhaps the second option is the best, since the two types used so far were in used at a very incipient state of testing.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.