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); }
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); }
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); }
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); }
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); }
/// <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); }
// 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); }
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])); }
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(); } }