void ProcessPackets()
        {
            //bool bRadioChanged = false;
            //bool bSensorsChanged = false;
            bool bQuatChanged = false;
            //bool bComputedChanged = false;

            Packet p;

            do
            {
                p = comm.GetPacket();
                if (p != null)
                {
                    switch (p.mode)
                    {
                    case 1:                             // Radio data
                        radio.ReadFrom(p);

                        lblCycleCount.Text = string.Format("{0} cycles", radio.CycleCount);

                        //bRadioChanged = true;
                        //UpdateRadio();
                        break;

                    case 2:                             // Sensor values
                        sensors.ReadFrom(p);

                        //bSensorsChanged = true;
                        break;

                    case 3:                             // Quaternion
                        q.x = p.GetFloat();
                        q.y = p.GetFloat();
                        q.z = p.GetFloat();
                        q.w = p.GetFloat();

                        //if(radio.Gear > -300 && radio.Gear < 300)
                        {
                            ocCube.Quat = q;
                        }

                        bQuatChanged = true;
                        break;

                    case 4:                             // Compute values
                        computed.ReadFrom(p);
                        //bComputedChanged = true;

                        //SampleIndex = (SampleIndex + 1) % NumGraphDisplaySamples;
                        break;
                    }
                }
            } while(p != null);


            if (bQuatChanged)
            {
                float vx = ocCube.Velocities.x;
                float vy = ocCube.Velocities.y;
                float vz = ocCube.Velocities.z;

                lblAngles.Text = string.Format(
                    "rx: {0:0.000},  ry: {1:0.000},  rz: {2:0.000}", vx, vy, vz);
            }
        }