//getstate string DetermineState(Dump dump, TypeOfDump tod, TypeOfZone toz, bool spd) { string curstate = dump.State.Current; string state = dump.State.Current; if (checkLoadZone(tod, toz, false) && curstate == state) { state = OnLoadingZone(dump); } if (checkLoad(tod, toz, (spd || dump.State.Current == "LL")) && curstate == state) { state = OnLoad(dump); } if (checkUnload(tod, toz, (spd || dump.State.Current == "UU")) && curstate == state) { state = OnUnload(dump); } if (checkShiftChange(tod, toz, (spd || dump.State.Current == "PP")) && curstate == state) { state = OnShiftChange(dump); } if (checkOutage(tod, toz, spd) && curstate == state) { state = OnOutage(dump); } if (checkMove(tod, toz, spd) && curstate == state) { state = OnMove(dump); } return(state); }
public usedExcavator ToucheExcavator(string truckimei, double latitude, double longitude, DateTime datetime, int speedKPH) { int excav = -1; excav = Dumps.SearchExcavator(latitude, longitude); if (excav == -1) { return(null); } TypeOfZone toz = TypeOfZone.OnTruckZone; TypeOfDump tod = TypeOfDump.Excavator; Dump dump = Dumps[excav]; bool spd = false; string newState = DetermineState(dump, tod, toz, spd); return(new usedExcavator() { id = excav, newstate = newState }); }
bool IsExist(TypeOfDump tod, int id) { return((Dumps.Where(x => x.Id == id && x.Tod == tod)).FirstOrDefault() != null); }
//check zone bool checkLoadZone(TypeOfDump tod, TypeOfZone toz, bool spd) { return(tod == TypeOfDump.Dumptruck && (toz == TypeOfZone.OnLoadingZone || toz == TypeOfZone.OnLoadingOrStorageZone)) //|| (tod == TypeOfDump.Excavator && toz == TypeOfZone.OnTruckZone) ; }
bool checkMove(TypeOfDump tod, TypeOfZone toz, bool spd) { return((tod == TypeOfDump.Excavator && toz == TypeOfZone.None && spd) || (tod == TypeOfDump.Dumptruck && toz == TypeOfZone.None && spd)); }
bool checkShiftChange(TypeOfDump tod, TypeOfZone toz, bool spd) { return((tod == TypeOfDump.Dumptruck && toz == TypeOfZone.OnShiftChangePoint && !spd) || (tod == TypeOfDump.Dumptruck && toz == TypeOfZone.OnGarage && !spd)); }
bool checkUnload(TypeOfDump tod, TypeOfZone toz, bool spd) { return(tod == TypeOfDump.Dumptruck && (toz == TypeOfZone.OnStoragePoint || toz == TypeOfZone.OnLoadingOrStorageZone) && !spd); }
bool checkLoad(TypeOfDump tod, TypeOfZone toz, bool spd) { return((tod == TypeOfDump.Dumptruck && toz == TypeOfZone.OnLoadingPoint && !spd) || (tod == TypeOfDump.Excavator && toz == TypeOfZone.OnTruckZone)); }