private Level2FlightRecord HandleOneStep(int currentSecond, int step, FlightParameter para, LevelTopFlightRecord topRecord, Flight flight, MongoCollection<Level1FlightRecord> collection) { IMongoQuery query = Query.And(Query.EQ("ParameterID", new BsonString(para.ParameterID)), Query.GTE("FlightSecond", new BsonInt32(currentSecond)), Query.LT("FlightSecond", new BsonInt32(currentSecond + step))); MongoCursor<Level1FlightRecord> flightRecord = collection.Find(query); Level2FlightRecord level2 = new Level2FlightRecord() { StartSecond = currentSecond, EndSecond = Math.Min(flight.EndSecond, currentSecond + step), // Level1FlightRecords = flightRecord.ToArray(), ParameterID = para.ParameterID, }; //var sum = from one in level2.Level1FlightRecords // select one.ValueCount; //level2.Count = sum.Sum(); //var avg = from one in level2.Level1FlightRecords // select one.AvgValue; //level2.AvgValue = avg.Sum() * level2.Count; //var min = from one in level2.Level1FlightRecords // select one.MinValue; //level2.MinValue = min.Min(); //var max = from one in level2.Level1FlightRecords // select one.MaxValue; //level2.MaxValue = max.Max(); return level2; }
public string AddOrUpdateFlyParameter(FlightParameter[] flightParameter) { MongoServer mongoServer = this.GetMongoServer(); if (mongoServer != null) { MongoDatabase database = mongoServer.GetDatabase(AircraftMongoDb.DATABASE_COMMON); if (database != null) { MongoCollection<FlightParameter> modelCollection = database.GetCollection<FlightParameter>( AircraftMongoDb.COLLECTION_FLIGHT_PARAMETER); foreach (var fp in flightParameter) { MongoCursor<FlightParameter> pms = modelCollection.Find(Query.And(Query.EQ("ParameterID", fp.ParameterID), Query.EQ("ModelName", fp.ModelName))); if (pms != null && pms.Count() > 0) { foreach (var pm in pms) { pm.IsConcerned = fp.IsConcerned; pm.Caption = fp.Caption; pm.Frequence = fp.Frequence; pm.Index = fp.Index; pm.SubIndex = fp.SubIndex; pm.Unit = fp.Unit; } } else { modelCollection.Insert(fp); } } return string.Empty; } } return string.Format( "No MongoServer {0} finded, or no MongoCollection {1} finded.", AircraftMongoDb.DATABASE_COMMON, AircraftMongoDb.COLLECTION_FLIGHT_PARAMETER); }
public FlightParameters GetAllFlightParameters(AircraftModel model) { string basePath = this.CombineFromBasePath("FlightParameters.xml"); if (!string.IsNullOrEmpty(basePath) && File.Exists(basePath)) using (StreamReader reader = new StreamReader(basePath)) { XElement element = XElement.Load(reader); if (element != null) { FlightParameters root = new FlightParameters(); var bc = element.Attribute("BytesCount"); if (bc != null) { root.BytesCount = Convert.ToInt32(bc.Value); } var parameters = element.Descendants("Parameter"); if (parameters != null && parameters.Count() > 0) { try { List<FlightParameter> fps = new List<FlightParameter>(); foreach (var one in parameters) { FlightParameter ps = new FlightParameter() { ParameterID = one.Attribute("ParameterID").Value, Caption = one.Attribute("Caption").Value, Index = Convert.ToInt32(one.Attribute("Index").Value), SubIndex = Convert.ToInt32(one.Attribute("SubIndex").Value), ParameterDataType = one.Attribute("ParameterDataType").Value }; var eles = one.Elements("Byte"); if (eles != null && eles.Count() > 0) { List<ByteIndex> bis = new List<ByteIndex>(); foreach (var ele in eles) { ByteIndex bi = new ByteIndex() { Index = Convert.ToInt32(ele.Attribute("Index").Value) }; var eles2 = ele.Elements("Bit"); if (eles2 != null && eles2.Count() > 0) { List<BitIndex> bitIndex = new List<BitIndex>(); foreach (var ele2 in eles2) { bitIndex.Add( new BitIndex() { SubIndex = Convert.ToInt32(ele2.Attribute("Index").Value) }); } bi.SubIndexes = bitIndex.ToArray(); } bis.Add(bi); } ps.ByteIndexes = bis.ToArray(); } fps.Add(ps); } root.Parameters = fps.ToArray(); } catch (Exception e) { Console.WriteLine(e.Message); } } return root; } } return null; //MongoServer mongoServer = this.GetMongoServer(); //if (mongoServer != null) //{ // MongoDatabase database = mongoServer.GetDatabase(AircraftMongoDb.DATABASE_COMMON); // if (database != null) // { // MongoCollection<FlightParameter> modelCollection // = database.GetCollection<FlightParameter>( // AircraftMongoDb.COLLECTION_AIRCRAFT_PARAMETER); // IQueryable<FlightParameter> models = modelCollection.AsQueryable<FlightParameter>(); // var results = from one in models // where one.ModelName == modelName // orderby one.Index, one.SubIndex // select one; // if (results != null && results.Count() > 0) // return results.ToArray(); // return new FlightParameter[] { }; // } //} //throw new Exception(string.Format( // "No MongoServer {0} finded, or no MongoCollection {1} finded.", // AircraftMongoDb.DATABASE_COMMON, AircraftMongoDb.COLLECTION_AIRCRAFT_PARAMETER)); }
public string AddOrUpdateFlyParameter(FlightParameter flightParameter) { return this.AddOrUpdateFlyParameter(new FlightParameter[] { flightParameter }); }