I worked with the main author to find a solution to opening shared files from google link. The urlretrieve() can't handle google's blob, so after redesigning the URL for direct download, we capture the request headers, then open the headers. Then we create and temp file for the file object and apply the shutil module to copy the file and then return the file from there. I started to merge this function with the main author into the initialization files for weblogo. We're testing how the function plays with the rest of weblogo on the command line. The popup are working properly and labelled properly, but I'm still working on how to pass the URL to the actual weblogo controller. The main author is giving suggestions on more tweaks to the update the information on the html pages that I have to incorporate.
Finally I found a trick to work around the issue of yesterday. The auto-complete module does not work with text boxes loaded with ajax. I had to load the text boxes in the main document and attach them to the content loaded with ajax. I will probably be done tomorrow. On Sunday I will try to finish a couple of simple features.
Tonight, I started digging deeply into the data coming from my device, trying to get a feel for it, and I realized there was something rather interesting going on. Upon deeper inspection, I found that I had not properly been converting my gyroscopic values to degrees per second, and from there to a raw number of degrees.
Once I fixed that, I encountered a much stranger, and much more troubling issue: the gyro argument being passed in was corrupted, completely. I feared that the communications link to the LSM9DS0 might have been broken, but instrumenting the code one level up in the stack, before this function was called showed that the data was completely valid before being passed into the function, and then garbage once inside the function. It seems that passing a basic integer into the function works, but no attempt has been successful to make a Triple instance retain valuable data, whether it is an argument, a local variable, or a local pointer to a
new Triple. It refuses to retain data -- all of the data coming over the serial port is garbage, if it is stored in Triple struct. If I place each value of the triple into a separate, local float variable, the data is retained correctly. The gyro values seem perfectly reasonable, but right now my device claims to be in an uncontrolled spin, according a graph of the Quaternion state data vs time. I believe the
ao_quaternion structs are also being corrupted in this one function. If I can get to the root of this issue, I think the output data will be quite valuable, even without the Kalman filter, but I do plan to get the Kalman filter finished as well.
I'm still working on the direct download issue with files served by google drive. Firstly, my test file was empty or corrupted so that muddled my trouble shooting. I can indeed download documents from the direct download link. However, I still can't see the file name and extension, nor can I easily read the content disposition of the url with python's urllib tools. I still may need to find a way to parse the data "blob" in order to read the type of file before i let weblogo download it.
I finished implementation of the algorithm for synchronizing internal MIDI Actions in MuseScore with MIDI Actions in the opened score. Now it's possible to create a new MIDI Action in one score and use it in other scores. Also it's possible to receive a score from another computer and use MIDI Actions from it in other scores.
Today's was spent improving user documentation as well as adding additional issues that need to be addressed i.e. defects and enhancements.
I also had some more problems with the Android Studio IDE and a project files being corrupted. I searched knowledge bases on the web but couldn't identify the cause. I'm considering reinstalling it.
I am still working on diagram to content connection creation. I am using an auto-complete module to suggest node titles for users. This module is not working with text boxes created in ajax requests. I am trying to figure out why or work around the issue. Before that I finished a small feature for deleting diagram to diagram connections.
Still working on the last revisions to the code in order to allow it to run very large data sets since it should all be for the most part in place, not requiring huge buffers. I should be putting the final touches on it tomorrow so I can run tests and clean everything over the weekend. The goal is to be able to run it on the 10Gb file David provided to me this week.
I was able to successfully integrate the CMSIS DSP library into my project, in the form of the
mbed-dsp package. My first attempt at this was not successful, due to some makefile issues, but taking an alternative approach was able to clear things up in (relatively) short order.
After getting that done, I now had the matrix functions I needed to properly manipulate my arrays. I have now written an initial implementation of the Kalman
predict function, making heavy use of the CMSIS DSP library functions. The code is untested as of this moment, and I am concerned that upgrading my
mbed library may cause unexpected, breaking changes in other parts of my code, just due to the nature of updating libraries attached to a project. I plan to make testing my current code (the new stuff and the new mbed version) part of my work tomorrow, but I expect to get other stuff done as well, hopefully. If so, there's every chance that by Monday I could have a functional (even if not properly tweaked) Kalman filter active in my code base! I find that prospect exciting.
GitHub link (kalman.h and kalman.cpp are where the current adventure is in progress)
I have the pop-up for the the url intake for the weblogo front end working. I still have to work on the functionality that passes the url to the python function and have the python either process the file directly or to put open text file/sequence back into the the front end. i'm researching how to deal w/ the data "blob" (the official word!) that google sends. The direct download link that I can create actually redirects to another http route that bring the file. However, parsing that url doesn't work & you have to rescue the file that you want from the "blob"