コード例 #1
0
        private void readLongitude()
        {
            ArraySegment <byte> lonSeg = new ArraySegment <byte>(this._rawData, 4, 4);
            string s = this.intToNineDigitString(DG200Utils.bigEndianArrayToInt32(lonSeg));

            this._long = this.makeCoordinate(s);
        }
コード例 #2
0
        private byte[] assembleCommandData()
        {
            byte[] fullArray = new byte[43];

            // Zero out the contents.
            Array.Clear(fullArray, 0, fullArray.Length);

            fullArray[0] = SetDGConfigurationCommand.commandId;

            fullArray[1] = Convert.ToByte(this._config.getTrackingType());

            fullArray[2] = Convert.ToByte(this._config.getUseSpeedThreshold());

            Array.Copy(DG200Utils.int32ToBigEndianArray(Convert.ToInt32(this._config.getSpeedThresholdValue())), 0, fullArray, 3, 4);

            fullArray[7] = Convert.ToByte(this._config.getUseDistanceThreshold());

            Array.Copy(DG200Utils.int32ToBigEndianArray(Convert.ToInt32(this._config.getDistanceThresholdValue())), 0, fullArray, 8, 4);

            Array.Copy(DG200Utils.int32ToBigEndianArray(Convert.ToInt32(this._config.getTimeInterval())), 0, fullArray, 12, 4);

            fullArray[26] = Convert.ToByte(this._config.getUseTimeInterval());

            Array.Copy(DG200Utils.int32ToBigEndianArray(Convert.ToInt32(this._config.getDistanceInterval())), 0, fullArray, 29, 4);

            fullArray[41] = Convert.ToByte(this._config.getOperationMode());

            fullArray[42] = Convert.ToByte(this._config.getEnableWaas());


            return(fullArray);
        }
コード例 #3
0
        private void processFormat()
        {
            // time is bytes 8-11, date is bytes 12-15.
            ArraySegment <byte> formatSeg = new ArraySegment <byte>(this._rawData, 28, 4);
            string f = this.intToSixDigitString(DG200Utils.bigEndianArrayToInt32(formatSeg));

            this._format = UInt16.Parse(f);
        }
コード例 #4
0
        private void processAltitude()
        {
            // altitude is bytes 20-23
            ArraySegment <byte> altSeg = new ArraySegment <byte>(this._rawData, 20, 4);
            string a = this.intToSixDigitString(DG200Utils.bigEndianArrayToInt32(altSeg));

            this._altitude = Int32.Parse(a);
        }
コード例 #5
0
        private void processSpeed()
        {
            // speed is bytes 16-19
            ArraySegment <byte> speedSeg = new ArraySegment <byte>(this._rawData, 16, 4);
            string s = this.intToSixDigitString(DG200Utils.bigEndianArrayToInt32(speedSeg));

            this._speed = UInt32.Parse(s);
        }
コード例 #6
0
        /// <summary>
        /// Read the buffer and fill in our local variables.
        /// </summary>
        protected override void processBuffer()
        {
            this._retrievedData = new byte[SetDGConfigurationCommandResult.RETRIEVED_BYTE_LENGTH];

            this.getCurrentBuffer().Position = BaseCommandResult.PAYLOAD_START;
            this.getCurrentBuffer().Read(this._retrievedData, 0, SetDGConfigurationCommandResult.RETRIEVED_BYTE_LENGTH);

            this._success = DG200Utils.bigEndianArrayToInt32(this._retrievedData);
        }
コード例 #7
0
        // Process latitude data. Since this can never be larger than 90,
        // the DG200 includes the waypoint data by adding 10000000 (if necessary)
        private void readLatitude()
        {
            ArraySegment <byte> latSeg = new ArraySegment <byte>(this._rawData, 0, 4);

            int raw = DG200Utils.bigEndianArrayToInt32(latSeg);

            raw = this.processWaypoint(raw);

            string s = this.intToNineDigitString(raw);

            this._lat = this.makeCoordinate(s);
        }
コード例 #8
0
        private void readConfig()
        {
            // Array with the entire read config.
            byte[] fortyFiveBytes = new byte[45];

            this._buf.Position = BaseCommandResult.PAYLOAD_START;

            this._buf.Read(fortyFiveBytes, 0, fortyFiveBytes.Length);

            this.setTrackingType(Convert.ToInt32(fortyFiveBytes[0]));

            this.setUseSpeedThreshold(Convert.ToBoolean(fortyFiveBytes[1]));


            ArraySegment <byte> seg = new ArraySegment <byte>(fortyFiveBytes, 2, 4);

            this.setSpeedThresholdValue(Convert.ToUInt32(DG200Utils.bigEndianArrayToInt32(seg)));

            this.setUseDistanceThreshold(Convert.ToBoolean(fortyFiveBytes[6]));

            seg = new ArraySegment <byte>(fortyFiveBytes, 7, 4);
            this.setDistanceThresholdValue(Convert.ToUInt32(DG200Utils.bigEndianArrayToInt32(seg)));

            seg = new ArraySegment <byte>(fortyFiveBytes, 11, 4);
            this.setTimeInterval(Convert.ToUInt32(DG200Utils.bigEndianArrayToInt32(seg)));

            this.setOverwriteData(Convert.ToBoolean(fortyFiveBytes[24]));

            this.setUseTimeInterval(Convert.ToBoolean(fortyFiveBytes[25]));


            seg = new ArraySegment <byte>(fortyFiveBytes, 28, 4);
            this.setDistanceInterval(Convert.ToUInt32(DG200Utils.bigEndianArrayToInt32(seg)));

            this.setOperationMode(Convert.ToInt32(fortyFiveBytes[40]));

            this.setEnableWaas(Convert.ToBoolean(fortyFiveBytes[41]));

            this.setMemoryUsage(Convert.ToInt32(fortyFiveBytes[42]));

            this.setModelType(Convert.ToInt32(fortyFiveBytes[44]));
        }
コード例 #9
0
        protected override void processDateTime()
        {
            // time is bytes 8-11, date is bytes 12-15.
            ArraySegment <byte> timeSeg = new ArraySegment <byte>(this._rawData, 8, 4);
            string t = this.intToSixDigitString(DG200Utils.bigEndianArrayToInt32(timeSeg));

            ArraySegment <byte> dateSeg = new ArraySegment <byte>(this._rawData, 12, 4);
            string d = this.intToSixDigitString(DG200Utils.bigEndianArrayToInt32(dateSeg));

            try
            {
                this._dt = new DateTime(this.getYear(d), Int32.Parse(d.Substring(2, 2)), Int32.Parse(d.Substring(0, 2)),
                                        Int32.Parse(t.Substring(0, 2)), Int32.Parse(t.Substring(2, 2)), Int32.Parse(t.Substring(4, 2)), DateTimeKind.Utc);
            }
            catch (Exception e)
            {
                DG200FileLogger.Log("DGPositionDateTimeTrackPoint: Unable to process date value (" + t + "). Setting to GPS epoch.", 2);
                base.processDateTime();
            }
        }