Most recent activity
This is all very exciting. Years ago (for the Bangle 1) I wrote an STL viewer that does some of the heavy lifting in C (viewstl in the app store). Back then I did all the math library function (mostly trig functions) in JS and passed the results into C (simple arithmetic fp ops worked fine, albeit not using the fpu).
I have a half-finished Space Shuttle lander game that uses 3d graphics. My approach was to fill arrays with polygon screen coordinates in C and then call graphics routines in JS, but your approach of accessing the screen buffer directly from native code seems better performance wise, Felipe. I might adopt that approach, thanks for figuring all this out, very impressive!
Tested again (after updating to version 0.28 of the Recorder app), it seems to work fine now. Not sure what the issue was previously.
Thanks for the help.
Log GPS was checked.
The GPS coordinate columns are just empty in the downloaded CSVs.
I will investigate further on my end, maybe I really just got very unlucky with GPS locks. I just wanted to make sure this isn't some regression in the nightly builds or newer versions of the Recorder app.
For about the last 3 weeks I have been unable to get the 'Recorder' app (version 0.27) to record any GPS waypoints, on at least about 10 occasions - this has worked fine previously.
Initially I assumed that I had no GPS fix (this has happened in the past), but for the last several experiments I have made it a point to get a good GPS fix first (confirmed via the GPSInfo app) and walking around outside under open skies for ~20 minutes.
I am running a nightly build firmware version 2v18.69 (and a slightly earlier builds over the last week) and was wondering if someone else had experienced similar issues, possibly due to a code regression somewhere (maybe related to GPS sharing via GB, which I explicitly turned off for the experiments above)?
I will try to instrument the Recorder code and keep a console open on the phone to see if I can gain some more insight.
Well, the STL Viewer and Mandel apps also use floats, although I haven't officially ported either to Bangle 2 (just running hacked versions privately). Don't have the watch near me at the moment, I will see how things break - I usually pass floats in flat arrays in and out of compiled C via pointers in my code, so I am not sure where the passing in registers comes in here...
I also freely concede that a more reliable HR monitor is much higher on most people's priority list than a 3D viewer on a watch... ;-)
Take a look at the source for the View STL app (Bangle 1 only atm) - I use this technique quite a bit in it.
Fanoush probably has a point here, regarding the temporary array getting cleaned up in garbage collection.
Instead I have used a global auxiliary Uint32Array large enough to be in a flat memory area for passing in additional parameters. Not very elegant but works...
I think I had a similar problem back then. I believe that E.getAddressOf will only return the address to a flat memory area if the Array is above a certain size. Try padding your Uint32Array with a few 0s at the end.