public int FindPositionToInsetInTrams(Traget t, int startPos, EnregistrementDetail ed) { if (t.enregistrements.Count > startPos && startPos >= 0) { for (int i = startPos; i < t.enregistrements.Count; i++) { if (ed.Etiquette1 == t.enregistrements[i].Etiquette1) { return(i); } } } return(-1); }
public int FindPositionToInsetInBuses(Traget t, int startPos, EnregistrementDetail ed) { if (t.enregistrements.Count > startPos && startPos >= 0) { double minDistance = DistanceTo(t.enregistrements[startPos].Latitude, t.enregistrements[startPos].Longitude, ed.Latitude, ed.Latitude, "M"); int pos = startPos; int i = startPos + 1; while (i < t.enregistrements.Count && DistanceTo(t.enregistrements[i].Latitude, t.enregistrements[i].Longitude, ed.Latitude, ed.Latitude, "M") < minDistance) { i++; } return(i); } return(-1); }
public int FindPositionToInsetInBuses(Traget t,int startPos, EnregistrementDetail ed ) { if (t.enregistrements.Count > startPos && startPos>=0) { double minDistance = DistanceTo(t.enregistrements[startPos].Latitude, t.enregistrements[startPos].Longitude, ed.Latitude, ed.Latitude, "M"); int pos = startPos; int i = startPos + 1; while (i<t.enregistrements.Count && DistanceTo(t.enregistrements[i].Latitude, t.enregistrements[i].Longitude, ed.Latitude, ed.Latitude, "M")<minDistance) { i++; } return i; } return -1; }
public List<ResultBus> GetEnregistrementsByLine(int numeroLine) { List<ResultBus> results = new List<ResultBus>(); Dictionary<int, BusLog> buses = this.lines[numeroLine].Buses; foreach (var bus in buses) { //exception a gére du enregistrement[0] Traget aller = new Traget(); Traget retour = new Traget(); List<EnregistrementDetail> ed = bus.Value.Enregistrements[0].Details; int i = 0; while (i<ed.Count) { Traget t = new Traget(); char sense='0'; t.NumeroBus = bus.Key; t.NumeroLine = numeroLine; t.Sense = ed[i].Sense; t.AddEnregistrement(ed[i]); i++; while (i<ed.Count && (ed[i].DateEnregistrement-ed[i-1].DateEnregistrement).TotalMinutes<4 && ed[i].Sense == ed[i-1].Sense ) { t.AddEnregistrement(ed[i]); sense = ed[i].Sense; i++; } if (sense == 'A') { aller = aller.Fusion(t); } else if (sense == 'R') { retour = retour.Fusion(t); } } results.Add(new ResultBus(bus.Key,aller.Summarize(),retour.Summarize())); } return results; }
public Traget SummarizeTram() { Traget result = new Traget(); result.NumeroBus = this.NumeroBus; result.Sense = this.Sense; result.NumeroLine = this.NumeroLine; if (this.enregistrements.Count > 0) { foreach (var ed in this.enregistrements) { EnregistrementDetail enreg = result.enregistrements.Find(delegate(EnregistrementDetail e) { return(e.Etiquette1 == ed.Etiquette1); } ); if (enreg == null) { List <EnregistrementDetail> enregisResult = this.enregistrements.FindAll(delegate(EnregistrementDetail e) { return(e.Etiquette1 == ed.Etiquette1); } ); int totalRssi = 0; int cp = 0; foreach (var enregistrementDetail in enregisResult) { totalRssi += enregistrementDetail.Rssi; cp++; } int qualite = 0; if (cp != 0) { qualite = (int)(totalRssi / cp); } result.AddEnregistrement(new EnregistrementDetail(ed.DateEnregistrement, ed.Longitude, ed.Latitude, ed.Sense, ed.Etiquette1, ed.Etiquette2, GetQualiteFromRssi(qualite), ed.Ber, ed.La)); } } } return(result); }
public Traget Fusion(Traget target) { int j = 0, i = 0, countThis = 0, countTarget = 0; List <EnregistrementDetail> listThis, listTarget; listTarget = target.enregistrements; listThis = this.enregistrements; countTarget = target.enregistrements.Count; countThis = this.enregistrements.Count; Traget result = new Traget(); result.NumeroLine = (this.NumeroLine == 0 ? target.NumeroLine : this.NumeroLine); result.NumeroBus = (this.NumeroBus == 0 ? target.NumeroBus : this.NumeroBus); result.Sense = (this.Sense == (char)0 ? target.Sense : this.Sense); foreach (var ed in listThis) { result.AddEnregistrement(ed); } int pos = 0; foreach (var ed in listTarget) { if (this.NumeroBus > 1000) { result.AddEnregistrement(ed); } else { pos = FindPositionToInsetInTrams(result, pos, ed); } if (pos == -1) { result.AddEnregistrement(ed); } else { result.enregistrements.Insert(pos, ed); } } return(result); }
public List <ResultBus> GetEnregistrementsByLine(int numeroLine) { List <ResultBus> results = new List <ResultBus>(); Dictionary <int, BusLog> buses = this.lines[numeroLine].Buses; foreach (var bus in buses) { //exception a gére du enregistrement[0] Traget aller = new Traget(); Traget retour = new Traget(); List <EnregistrementDetail> ed = bus.Value.Enregistrements[0].Details; int i = 0; while (i < ed.Count) { Traget t = new Traget(); char sense = '0'; t.NumeroBus = bus.Key; t.NumeroLine = numeroLine; t.Sense = ed[i].Sense; t.AddEnregistrement(ed[i]); i++; while (i < ed.Count && (ed[i].DateEnregistrement - ed[i - 1].DateEnregistrement).TotalMinutes < 4 && ed[i].Sense == ed[i - 1].Sense) { t.AddEnregistrement(ed[i]); sense = ed[i].Sense; i++; } if (sense == 'A') { aller = aller.Fusion(t); } else if (sense == 'R') { retour = retour.Fusion(t); } } results.Add(new ResultBus(bus.Key, aller.Summarize(), retour.Summarize())); } return(results); }
public Traget SummarizeBus() { Traget result = new Traget(); result.NumeroBus = this.NumeroBus; result.Sense = this.Sense; result.NumeroLine = this.NumeroLine; if (this.enregistrements.Count > 0) { EnregistrementDetail ed = this.enregistrements[0]; int lastQualite = GetQualiteFromRssi(ed.Rssi); result.AddEnregistrement(new EnregistrementDetail(ed.DateEnregistrement, ed.Longitude, ed.Latitude, ed.Sense, ed.Etiquette1, ed.Etiquette2, lastQualite, ed.Ber, ed.La)); for (int i = 1; i < this.enregistrements.Count; i++) { int currentQualite = GetQualiteFromRssi(this.enregistrements[i].Rssi); if (currentQualite != lastQualite) { result.AddEnregistrement(new EnregistrementDetail(this.enregistrements[i].DateEnregistrement, this.enregistrements[i].Longitude, this.enregistrements[i].Latitude, this.enregistrements[i].Sense, this.enregistrements[i].Etiquette1, this.enregistrements[i].Etiquette2, currentQualite, this.enregistrements[i].Ber, this.enregistrements[i].La)); lastQualite = currentQualite; } } } return(result); }
public ResultBus(int numeroBus, Traget aller, Traget retour) { NumeroBus = numeroBus; Aller = aller; Retour = retour; }
public int FindPositionToInsetInTrams(Traget t, int startPos, EnregistrementDetail ed) { if (t.enregistrements.Count > startPos && startPos >= 0) { for (int i = startPos; i < t.enregistrements.Count; i++) { if (ed.Etiquette1 == t.enregistrements[i].Etiquette1 ) { return i; } } } return -1; }
public Traget SummarizeTram() { Traget result = new Traget(); result.NumeroBus = this.NumeroBus; result.Sense = this.Sense; result.NumeroLine = this.NumeroLine; if (this.enregistrements.Count > 0) { foreach (var ed in this.enregistrements) { EnregistrementDetail enreg = result.enregistrements.Find(delegate(EnregistrementDetail e) { return e.Etiquette1 == ed.Etiquette1; } ); if(enreg==null) { List<EnregistrementDetail> enregisResult = this.enregistrements.FindAll(delegate(EnregistrementDetail e) { return e.Etiquette1 == ed.Etiquette1; } ); int totalRssi = 0; int cp=0; foreach (var enregistrementDetail in enregisResult) { totalRssi += enregistrementDetail.Rssi; cp++; } int qualite=0; if(cp!=0) qualite= (int)(totalRssi/cp); result.AddEnregistrement(new EnregistrementDetail(ed.DateEnregistrement,ed.Longitude,ed.Latitude,ed.Sense,ed.Etiquette1,ed.Etiquette2,GetQualiteFromRssi(qualite),ed.Ber,ed.La)); } } } return result; }
public Traget SummarizeBus() { Traget result = new Traget(); result.NumeroBus = this.NumeroBus; result.Sense = this.Sense; result.NumeroLine = this.NumeroLine; if (this.enregistrements.Count > 0) { EnregistrementDetail ed = this.enregistrements[0]; int lastQualite = GetQualiteFromRssi(ed.Rssi); result.AddEnregistrement(new EnregistrementDetail(ed.DateEnregistrement, ed.Longitude, ed.Latitude, ed.Sense, ed.Etiquette1, ed.Etiquette2, lastQualite, ed.Ber, ed.La)); for (int i = 1; i < this.enregistrements.Count; i++) { int currentQualite = GetQualiteFromRssi(this.enregistrements[i].Rssi); if (currentQualite != lastQualite) { result.AddEnregistrement(new EnregistrementDetail(this.enregistrements[i].DateEnregistrement, this.enregistrements[i].Longitude, this.enregistrements[i].Latitude, this.enregistrements[i].Sense, this.enregistrements[i].Etiquette1, this.enregistrements[i].Etiquette2, currentQualite, this.enregistrements[i].Ber, this.enregistrements[i].La)); lastQualite = currentQualite; } } } return result; }
public Traget Fusion(Traget target) { int j = 0, i = 0, countThis = 0, countTarget = 0; List<EnregistrementDetail> listThis, listTarget; listTarget = target.enregistrements; listThis = this.enregistrements; countTarget = target.enregistrements.Count; countThis = this.enregistrements.Count; Traget result = new Traget(); result.NumeroLine = (this.NumeroLine == 0 ? target.NumeroLine : this.NumeroLine); result.NumeroBus = (this.NumeroBus == 0 ? target.NumeroBus : this.NumeroBus); result.Sense = (this.Sense == (char)0 ? target.Sense : this.Sense); foreach (var ed in listThis) { result.AddEnregistrement(ed); } int pos = 0; foreach (var ed in listTarget) { if (this.NumeroBus > 1000) result.AddEnregistrement(ed); else pos = FindPositionToInsetInTrams(result, pos, ed); if (pos == -1) { result.AddEnregistrement(ed); } else { result.enregistrements.Insert(pos, ed); } } return result; }