3 ms·
There are real, standardized protocols [0] for this sort of thing, now. Early in my career, when I worked at JPL/NASA, I did a bit of work to test these protoc
by oso2k 8y ago
There are real, standardized protocols [0] for this sort of thing, now. Early in my career, when I worked at JPL/NASA, I did a bit of work to test these protocols on Linux in a simulated Network of spacecraft. Fun stuff!
[0] https://en.wikipedia.org/wiki/CCSDS_File_Delivery_Protocol https://en.wikipedia.org/wiki/CCSDS_File_Delivery_Protocol
- gcb0 8y agoWhat does it use for time? The spec mentions time in a lot of places, but never defines it. There is even a field to communicate light-time but no mention of how to synchronize anything. I guess this runs on top of another protocol that solves it? Any idea what it is?
- oso2k 8y agoSo, it’s been a while since I’ve dived in [0], but “time” as a dependency has been, what I would call, “engineered out of the system”. Instead, there’s concepts of (local) timers, Store-And-Forward Overlays, retries, communication opportunities and the overall realization that time is relative and synchronized time can be difficult at a protocol level when link-level distances are always changing (by miles to billions of miles at a time per communication opportunity). [0] https://public.ccsds.org/Pubs/720x1g3.pdf https://public.ccsds.org/Pubs/720x1g3.pdf
- jakeinspace 8y agoWhat a coincidence, I'm working on the core flight system project right now, which includes an implementation of CCSDS File Delivery Protocol. You might be happy to know that project is still very much alive within NASA (you were probably already aware).
- oso2k 8y agoHaha. Great to hear that work still lives! I hope you’re not using the (horrible in retrospect) stuff I wrote 15 years ago that worked on 2.0-2.6 kernels. I remember porting the network kernel driver from 2.0-2.2 manual build system to implementing a (really basic) Makefile that worked with 2.0-2.6.0ish kernels (which were newer at the time). I knew Scott Burleigh was still innovating CCSDS and other protocols at JPL, and, IIRC the work I had done had also been delivered to Ames and ESA for test lab use. I had some other work to create protocol dissectors for Ethereal (before the name change to WireShark). WireShark now includes built in dissectors for CCSDS, CFDP and others.
- justinclift 8y agoFairly off topic ;), but any idea if SQLite is used on any of the rovers, spacecraft, etc? Mostly from idle curiosity. Was wondering a few days ago and guessing "probably yes", but no idea who to ask. So, taking the opportunity (heh) now. :)
- jakeinspace 8y agoI don't know about rovers, but some smaller spacecraft (mainly satellites) use mysql, as well as postgres. Disclaimer: I'm not the right person to ask.
- oso2k 8y agoThe small parts of the Mars Rovers (MER) I worked on or worked with didn’t use SQLite. It was too early in SQLite’s history for it to be used on MER. MER also used VxWorks which probably didn’t have a lot in the way of POSIX support at the time. I remember other devs telling me the fun they had supporting 1553 bus on “such a new RTOS”. Wikipedia say MSL used VxWorks as well. I’d have to ask a buddy still doing Mission Ops Support at JPL but I’d think the answer is no SQLite on MER or MSL missions. The OSes were fairly custom, non-POSIX builds. The ESA folks might have tried though on their missions.
- justinclift 8y agoNo worries. Been meaning to investigate VxWorks at some point, mostly from an interest in embedded devices (for specific wearables concepts). This will be another thing to add for that list. :)
- planteen 8y agoNot a Mars spacecraft, but SQLite has definitely been used on some CubeSat missions in LEO. I know because I'm the one who did it. :-)
- justinclift 8y agoCool. :)