====== Proposal for a dataformat for communication between groundstations and their connected computers ====== Basically what I was thinking about was mostly the tracking of things, but I wanted to build a protocol in a way that the groundstations stay compatible for a deployment stage that enables them to send. This will surely not be the case for a while but still i'd like to think ahead. The main idea was that this kind of frame can be received and sent to the groundstation. For communication among groundstations over a satellite at least some kind of from adress field needs to be added. ===== Dataformat ===== ^ Position ^ Length ^ Name ^ Meaning ^ | 0 | 32 | magic | magic id = 4 bytes, 'HGG!' | | 4 | 16 | protocol | protocol to be used in the payload | | 6 | 16 | size | size of payload | | 8 | 32 | chksum | checksum of payload (??) | | 12 | 16 | modno | the receiving module that has generated this request | | 16 | n | payload | payload goes here, variable size | No idea if a magic would be really needed. Basically it's a simple frame format that can be used to implement sending and receiving with the groundstations and should thus be capable of handling different stages in the project. The frames can bei either sent over a serial cable or other device types (like ethernet, firewire or anything else) but still allows to control hardware inside the groundstation directly. ===== Protocols ===== Here are a few possibilities * 0 = Tracking (from = 0, rcpnt = own hw id) * 1 = hardware ping (for finding out about other groundstations) * 2 = groundstation diagnostics and control options * 128 = Networking (Ethernet Frames go here) * ...