public PositionItem(BasePosition position)
            {
                if (position == null)
                {
                    throw new ArgumentNullException("position");
                }

                Position  = position;
                Portfolio = position as Portfolio;

                if (Portfolio == null)
                {
                    var pos = (Position)position;

                    PortfolioName = pos.Portfolio.Name;
                    Name          = pos.Security.Id;
                    DepoName      = pos.DepoName;
                    LimitType     = pos.LimitType;
                    Portfolio     = pos.Portfolio;
                }
                else
                {
                    PortfolioName = Portfolio.Name;
                    Name          = LocalizedStrings.Str1543;
                }
            }
Exemple #2
0
        public PositionEditCommand(BasePosition position)
        {
            if (position == null)
            {
                throw new ArgumentNullException(nameof(position));
            }

            Position = position;
        }
Exemple #3
0
 /// <summary>
 /// GetHashCode()
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode() =>
 (ShowOffsetColumn ? int.MinValue : 0) ^
 (ShowValuesColumn ? 0x40000000 : 0) ^
 (ShowAsciiColumn ? 0x20000000 : 0) ^
 StartPosition.GetHashCode() ^
 EndPosition.GetHashCode() ^
 BasePosition.GetHashCode() ^
 (UseRelativePositions ? 0x10000000 : 0) ^
 OffsetBitSize ^
 (int)HexValuesDisplayFormat ^
 BytesPerLine;
 /// <summary>
 /// GetHashCode()
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode() =>
 CharsPerLine.GetHashCode() ^
 BytesPerLine.GetHashCode() ^
 GroupSizeInBytes.GetHashCode() ^
 ShowOffset.GetHashCode() ^
 OffsetLowerCaseHex.GetHashCode() ^
 (int)OffsetFormat ^
 StartPosition.GetHashCode() ^
 EndPosition.GetHashCode() ^
 BasePosition.GetHashCode() ^
 UseRelativePositions.GetHashCode() ^
 ShowValues.GetHashCode() ^
 ValuesLowerCaseHex.GetHashCode() ^
 OffsetBitSize.GetHashCode() ^
 (int)ValuesFormat ^
 ShowAscii.GetHashCode() ^
 GetHexColumnTypeArrayHashCode(ColumnOrder);
Exemple #5
0
        public static Record ReadRecord(byte[] data, int start)
        {
            RecordType type   = (RecordType)data[start];
            byte       length = data[start + 1];

            Record result;

            try
            {
                switch (type)
                {
                case RecordType.PositionTimeGPS:
                {
                    PositionTimeGPSData record = new PositionTimeGPSData();
                    record.Time                 = ToInt32(data, start + 2);
                    record.Week                 = ToInt16(data, start + 6);
                    record.SatelliteUsed        = data[start + 8];
                    record.Flags                = (PositionFlags)BitConverter.ToUInt16(data, start + 9) & PositionFlags.Mask;
                    record.InitializationNumber = data[start + 10];
                    result = record;
                }
                break;

                case RecordType.PositionWGS84:
                {
                    PositionWGS84Data record = new PositionWGS84Data();
                    record.Latitude  = ToDouble(data, start + 2);
                    record.Longitude = ToDouble(data, start + 10);
                    record.Height    = ToDouble(data, start + 18);
                    result           = record;
                }
                break;

                case RecordType.TangentPlaneDelta:
                {
                    TangentPlaneDelta record = new TangentPlaneDelta();
                    record.East   = ToDouble(data, start + 2);
                    record.North  = ToDouble(data, start + 10);
                    record.Height = ToDouble(data, start + 18);
                    result        = record;
                }
                break;

                case RecordType.PositionSigmaInfo:
                {
                    PositionSigmaInfo record = new PositionSigmaInfo();
                    record.PositionRMS         = ToSingle(data, start + 2);
                    record.SigmaEast           = ToSingle(data, start + 6);
                    record.SigmaNorth          = ToSingle(data, start + 10);
                    record.CovarianceEastNorth = ToSingle(data, start + 14);
                    record.SigmaHeigth         = ToSingle(data, start + 18);
                    record.SemiMajorAxis       = ToSingle(data, start + 22);
                    record.SemiMinorAxis       = ToSingle(data, start + 26);
                    record.Orientation         = ToSingle(data, start + 30);
                    record.UnitVariance        = ToSingle(data, start + 34);
                    record.EpochCount          = ToInt16(data, start + 38);
                    result = record;
                }
                break;

                case RecordType.PDOPInfo:
                {
                    PDOPInfo record = new PDOPInfo();
                    record.PDOP = ToSingle(data, start + 2);
                    record.HDOP = ToSingle(data, start + 6);
                    record.VDOP = ToSingle(data, start + 10);
                    record.TDOP = ToSingle(data, start + 14);
                    result      = record;
                }
                break;

                case RecordType.SatellitesDetailed:
                {
                    SatelliteDetailed record = new SatelliteDetailed();
                    record.Data = new SatelliteDetailedData[data[start + 2]];
                    for (int i = 0; i < record.Data.Length; i++)
                    {
                        int offset = start + 3 + 8 * i;
                        record.Data[i]           = new SatelliteDetailedData();
                        record.Data[i].PRN       = data[offset];
                        record.Data[i].Flags     = ((SatelliteFlags)BitConverter.ToUInt16(data, offset + 1)) & SatelliteFlags.Mask;
                        record.Data[i].Elevation = (SByte)data[offset + 3];
                        record.Data[i].Azimuth   = ToUInt16(data, offset + 4);
                        record.Data[i].L1SNR     = data[offset + 6];
                        record.Data[i].L2SNR     = data[offset + 7];
                    }
                    result = record;
                }
                break;

                case RecordType.AllSatellitesDetailed:
                {
                    AllSatelliteDetailed record = new AllSatelliteDetailed();
                    record.Data = new AllSatelliteDetailedData[data[start + 2]];
                    for (int i = 0; i < record.Data.Length; i++)
                    {
                        int offset = start + 3 + 10 * i;
                        record.Data[i]           = new AllSatelliteDetailedData();
                        record.Data[i].PRN       = data[offset];
                        record.Data[i].System    = (SatelliteSystem)data[offset + 1];
                        record.Data[i].Flags     = ((SatelliteFlags)BitConverter.ToUInt16(data, offset + 2)) & SatelliteFlags.Mask;
                        record.Data[i].Elevation = (SByte)data[offset + 4];
                        record.Data[i].Azimuth   = ToUInt16(data, offset + 5);
                        record.Data[i].L1SNR     = data[offset + 7];
                        record.Data[i].L2SNR     = data[offset + 8];
                        record.Data[i].ExtraSNR  = data[offset + 9];
                    }
                    result = record;
                }
                break;

                case RecordType.BasePosition:
                {
                    BasePosition record = new BasePosition();
                    record.Time      = ToInt32(data, start + 2);
                    record.Week      = ToInt16(data, start + 6);
                    record.Latitude  = ToDouble(data, start + 8);
                    record.Longitude = ToDouble(data, start + 16);
                    record.Height    = ToDouble(data, start + 24);
                    record.Quality   = (BaseQuality)data[start + 33];
                    result           = record;
                }
                break;

                case RecordType.Attitude:
                {
                    AttitudeInfo record = new AttitudeInfo();
                    record.Time             = ToInt32(data, start + 2);
                    record.Flags            = data[start + 6];
                    record.SatelliteCount   = data[start + 7];
                    record.CalculationMode  = (AttitudeCalculationMode)data[start + 8];
                    record.Reserved         = data[start + 9];
                    record.Pitch            = ToDouble(data, start + 10);
                    record.Yaw              = ToDouble(data, start + 18);
                    record.Roll             = ToDouble(data, start + 26);
                    record.MasterSlaveRange = ToDouble(data, start + 34);
                    record.PDOP             = ToInt16(data, start + 42);
                    result = record;
                }
                break;

                default:
                    result = new Record();
                    break;
                }
            }
            catch (IndexOutOfRangeException e)
            {
                String error_str = String.Format("data length: {0}\nstart index: {1}\ntype: {2}\nlength: {3}\n---\n",
                                                 data.Length, start, start < data.Length ? ((RecordType)data[start]).ToString() : "???", start < (data.Length - 1) ? data[start + 1].ToString() : "???");
                Util.HandleException(error_str + e);
                result = new Record();
            }
            result.Type   = type;
            result.Length = length;
            return(result);
        }