PyCubed-Mini / flight_software

Flight Software for the PyCubed-Mini PocketQube platform
https://pocketqube.readthedocs.io/en/latest/
MIT License
3 stars 4 forks source link

Telemetry logs lux data and time data + Emulator driver updates #335

Closed tomyyyD closed 1 year ago

tomyyyD commented 1 year ago

The telemetry logging task is split by lines now. On each line first the time struct is logged, which contains just the minute and second as the file name contains the other relevant time data. Then the beacon packet is logged, then the system data is logged. Added functions to unpack all of these structs as well.

For unpacking each line of the telemetry log you would input the entire line's bytes into the logs.unpack_telemetry function and that separates it into the time struct, the beacon struct, and the system struct.

tomyyyD commented 1 year ago

Named Tuples seems like a good idea to me. I can implement that change by the end of the day.

jbwillis commented 1 year ago

I tested this on flight hardware and I think it has several improvements that would be nice to have in on this launch (I mostly like the change to writing in telemetry/bootcount). So I changed this to merge into main.

tomyyyD commented 1 year ago

That's strange, I tested without some sun sensors, and It logged each lux value of a not found sensor as nan, which was intended. Is there anything else you can tell me about this error, @jbwillis, so I can recreate it?

jbwillis commented 1 year ago

It only shows up when running on hardware. I didn't have time to drill into it more - I'll look at it again later and get you more details.

tomyyyD commented 1 year ago

Ok, thanks! I don't have any hardware to work on while I'm home, so I'm not sure if I'll be able to solve the issue. I'll be back on campus probably around the 13th or 14th, and I could work on it then.

jbwillis commented 1 year ago

The problem is the _compute_lux() function in the TSL2561.py library can return None (should be nan in my opinion). So, you'll need to include a way to convert None to nan if the .lux() function returns None.