Exemple #1
0
 public void BeginReceiveData(int DataLength)
 {
     FullData        = null;
     Status          = ReceiverStatus.Preparing;
     this.DataLength = DataLength;
     FullData        = new byte[DataLength];
     ReceivedLength  = 0;
 }
Exemple #2
0
 private static void ReceiverChannelStatusChanged(object sender, EventArgs e)
 {
     recChanel = (IReceiverChannel)sender;
     Task.Run(async() =>
     {
         recStatus = await recChanel.GetStatusAsync();
     });
 }
Exemple #3
0
        public Receiver(int bufferSize)
        {
            //this.isRunning = false;
            //this.isReconnecting = false;
            //this._Buffer= new byte[bufferSize];
            this._Buffer = new CircularBuffer(bufferSize);

            this.head = 0;

            this.status = ReceiverStatus.Disconnected;
        }
Exemple #4
0
        internal static string ToSerializedValue(this ReceiverStatus value)
        {
            switch (value)
            {
            case ReceiverStatus.NotSpecified:
                return("NotSpecified");

            case ReceiverStatus.Enabled:
                return("Enabled");

            case ReceiverStatus.Disabled:
                return("Disabled");
            }
            return(null);
        }
Exemple #5
0
 private void ReceiverChannelStatusChanged(object sender, EventArgs e)
 {
     if (!IsInitialized)
     {
         ReceiverStatus status = ((IReceiverChannel)sender).Status;
         if (status != null)
         {
             if (status.Volume.Level != null)
             {
                 Volume = (float)status.Volume.Level;
             }
             if (status.Volume.IsMuted != null)
             {
                 IsMuted = (bool)status.Volume.IsMuted;
             }
         }
     }
 }
Exemple #6
0
        public T ReceiveData <T>() where T : ISerializable
        {
            if (Status != ReceiverStatus.Extractable)
            {
                throw new NullReferenceException("数据尚未接收完毕。");
            }
            MemoryStream = new MemoryStream(FullData)
            {
                Position = 0
            };
            BinaryFormatter BinaryFormatter = new BinaryFormatter();

            if (MemoryStream.Capacity > 0)
            {
                Status = ReceiverStatus.Ready;
                return(BinaryFormatter.Deserialize <T>(MemoryStream));
            }
            throw new EndOfStreamException("内存流字节为0。");
        }
        public override bool Dispose()
        {
            try
            {
                if (this.reconnectionThread != null)
                {
                    this.reconnectionThread.Abort();
                }
            }
            catch
            {
            }
            finally
            {
                this.reconnectionThread = null;
            }

            try
            {
                if (this.bluetoothStream != null)
                {
                    this.bluetoothStream._Status = BluetoothStatus.Disconnected;
                }
            }
            catch { }
            finally
            {
                this.bluetoothStream = null;
            }
            try{
                this._Status                = ReceiverStatus.Disconnected;
                this._Reconnections         = 0;
                this._SuccessfulConnections = 0;
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemple #8
0
        public void ReceiveCompleted(object Sender, SocketEventArgs E)
        {
            Status = ReceiverStatus.Receiving;
            int ReceiveCount = E.DataLength;

            if (ReceiveCount == 0)
            {
                Status = ReceiverStatus.Extractable;
                ReceiveOnce?.Invoke(this, new ReceiveOnceEventArgs()
                {
                    Socket           = Socket,
                    NewData          = null,
                    CumulativeLength = ReceivedLength,
                    ReceivedLength   = 0,
                    TotalLength      = DataLength,
                    Status           = Status
                });
                return;
            }
            //var Temp = Buffer.Clone() as byte[];
            //Buffer = new byte[ReceivedLength + ReceiveCount];
            //Temp.CopyTo(Buffer, 0);
            //E.Data.CopyTo(Buffer, ReceivedLength);
            Buffer = E.Data;
            Buffer.CopyTo(FullData, ReceivedLength);
            ReceivedLength += ReceiveCount;
            ReceiveOnce?.Invoke(this, new ReceiveOnceEventArgs()
            {
                Socket           = Socket,
                NewData          = Buffer,
                CumulativeLength = ReceivedLength,
                ReceivedLength   = ReceiveCount,
                TotalLength      = DataLength,
                Status           = Status
            });
            if (ReceivedLength >= DataLength)
            {
                Status = ReceiverStatus.Extractable;
            }
        }
        public static string ReceiverStatusString(ReceiverStatus value)
        {
            switch (value)
            {
            case ReceiverStatus.DoingFixes:
                return("Doing Fixes");

            case ReceiverStatus.NoGPSTime:
                return("No GPS Time");

            case ReceiverStatus.Reserved:
                return("Reserved");

            case ReceiverStatus.PDOPTooHigh:
                return("PDOP Too High");

            case ReceiverStatus.NoUsableSats:
                return("No Sats Avail");

            case ReceiverStatus.Only1Sat:
                return("Only One Sat");

            case ReceiverStatus.Only2Sats:
                return("Only 2 Sats");

            case ReceiverStatus.Only3Sats:
                return("Only 3 Sats");

            case ReceiverStatus.SatUnusable:
                return("Sat Unuseable");

            case ReceiverStatus.TAIMRejected:
                return("TAIM Rejected");

            default:
                return("Unknown");
            }
        }
 public static string ToSerialString(this ReceiverStatus value) => value switch
 {
 private void ebolt_health1(TsipPacket tp)
 {
     Debug.Print(":0x46 (E Receiver Health 1st Packet):");
     receiver_status = (ReceiverStatus)tp.GetNextByte();
     //byte sv_fix = tsip_byte();
     byte antenna_fault = tp.GetNextByte();
 }
        private void secondary_timing(TsipPacket tp)
        {
            Debug.Print(":0x8F.AC (Secondary Timing)");

            byte spare;
            try
            {
                receiver_mode = (ReceiverMode)tp.GetNextByte();
            }
            catch
            {
                receiver_mode = ReceiverMode.Unknown;
            }
            try
            {
                discipline_mode = (DiscipliningMode)tp.GetNextByte();
            }
            catch
            {
                discipline_mode = DiscipliningMode.Unknown;
            }
            survey_progress = tp.GetNextByte(); // 0-100%

            holdover = tp.GetNextDWord(); // seconds

            critical_alarms = tp.GetNextWord();
            minor_alarms = tp.GetNextWord();
            try
            {
                gps_status = (ReceiverStatus)tp.GetNextByte();
            }
            catch
            {
                gps_status = ReceiverStatus.Unknown;
            }

            try
            {
                discipline = (DiscipliningActivity)tp.GetNextByte();
            }
            catch
            {
                discipline = DiscipliningActivity.Unknown;
            }

            spare = tp.GetNextByte();
            spare = tp.GetNextByte();

            pps_offset = tp.GetNextSingle();  // in nano seconds (ns)

            osc_offset = tp.GetNextSingle();  // in parts per billion (ppb)

            dac_value = tp.GetNextDWord();
            dac_voltage = tp.GetNextSingle(); // in V
            temperature = tp.GetNextSingle(); // in C

            position.Latitude = tp.GetNextDouble();
            position.Longitude = tp.GetNextDouble();
            position.Altitude = tp.GetNextDouble();

            if (SecondaryTimingChanged != null)
                SecondaryTimingChanged(this, null);

            raise_position_change();

            clear_sat_tracking(); //??
        }
Exemple #13
0
 public ReceiverStatusChangedEventArgs(ReceiverStatus newStatus)
 {
     this.NewStatus = newStatus;
 }