diff --git a/Zero_Interface-Loader.alpx b/Zero_Interface-Loader.alpx index d075e8d..141e3a2 100644 --- a/Zero_Interface-Loader.alpx +++ b/Zero_Interface-Loader.alpx @@ -100,8 +100,19 @@ 1667742453792 - - true + + + + 1675025163072 @@ -437,6 +448,10 @@ 1754045711603 + + 1780057244152 + + zero_engine diff --git a/_alp/Agents/UI_company/AOC.UI_company.xml b/_alp/Agents/UI_company/AOC.UI_company.xml index ab9393e..12865b0 100644 --- a/_alp/Agents/UI_company/AOC.UI_company.xml +++ b/_alp/Agents/UI_company/AOC.UI_company.xml @@ -165,7 +165,7 @@ zero_Interface.c_UIResultsInstances.add(uI_Results);]]> false SHAPE_DRAW_2D3D 0 - DIM_NON_CURRENT + HIDE_NON_CURRENT diff --git a/_alp/Agents/UI_company/Code/Functions.java b/_alp/Agents/UI_company/Code/Functions.java index 23cff57..d32eb49 100644 --- a/_alp/Agents/UI_company/Code/Functions.java +++ b/_alp/Agents/UI_company/Code/Functions.java @@ -87,6 +87,8 @@ //set active if active in future p_gridConnection.f_setActive(p_scenarioSettings_Future.getIsActiveInFuture(), zero_Interface.energyModel.p_timeVariables); +//Reset triptrackers +f_resetAllVehiclesToOriginalTripTracker(); //Reset button to future, due to sliders putting it on custom rb_scenariosPrivateUI.setValue(1, false); @@ -221,8 +223,12 @@ //set active if active in present p_gridConnection.f_setActive(p_scenarioSettings_Current.getIsCurrentlyActive(), zero_Interface.energyModel.p_timeVariables); +//Reset triptrackers +f_resetAllVehiclesToOriginalTripTracker(); + //Reset button to current, due to sliders putting it on custom rb_scenariosPrivateUI.setValue(0, false); + /*ALCODEEND*/} double f_setHeatingType(GridConnection GC,OL_GridConnectionHeatingType selectedHeatingType) @@ -479,6 +485,7 @@ //Vehicles sliders f_setVehicleSliderPresets(); +f_closeVehicleTripsConfigurationMenu(); //Demand Reduction sliders f_setDemandReductionSliderPresets(); @@ -660,29 +667,29 @@ /*ALCODEEND*/} -double f_createVehicle(GridConnection parentGC,OL_EnergyAssetType vehicleType,J_ActivityTrackerTrips tripTracker,boolean available,boolean isAdditionalVehicle) +double f_createVehicle(GridConnection parentGC,OL_VehicleType vehicleType,OL_EnergyCarriers fuelType,J_ActivityTrackerTrips tripTracker,boolean available,boolean isAdditionalVehicle) {/*ALCODESTART::1714410040303*/ double energyConsumption_kWhpkm = 0; double vehicleScaling = 1.0; J_TimeParameters timeParameters = zero_Interface.energyModel.p_timeParameters; -if (vehicleType == OL_EnergyAssetType.ELECTRIC_VEHICLE || vehicleType == OL_EnergyAssetType.ELECTRIC_VAN || vehicleType == OL_EnergyAssetType.ELECTRIC_TRUCK ){ // Create EVS +if (fuelType == OL_EnergyCarriers.ELECTRICITY){ // Create EVS double storageCapacity_kWh = 0; double capacityElectricity_kW = 0; double stateOfCharge_fr = 1; // Initial state of charge switch(vehicleType){ - case ELECTRIC_VEHICLE: + case CAR: capacityElectricity_kW = (p_scenarioSettings_Current.getCurrentEVCarChargePower_kW() > 0) ? p_scenarioSettings_Current.getCurrentEVCarChargePower_kW() : zero_Interface.energyModel.avgc_data.p_avgEVMaxChargePowerCar_kW; storageCapacity_kWh = zero_Interface.energyModel.avgc_data.p_avgEVStorageCar_kWh; energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionCar_kWhpkm; break; - case ELECTRIC_VAN: + case VAN: capacityElectricity_kW = (p_scenarioSettings_Current.getCurrentEVVanChargePower_kW() > 0) ? p_scenarioSettings_Current.getCurrentEVVanChargePower_kW() : zero_Interface.energyModel.avgc_data.p_avgEVMaxChargePowerVan_kW; storageCapacity_kWh = zero_Interface.energyModel.avgc_data.p_avgEVStorageVan_kWh; energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionVan_kWhpkm; break; - case ELECTRIC_TRUCK: + case TRUCK: capacityElectricity_kW = (p_scenarioSettings_Current.getCurrentEVTruckChargePower_kW() > 0) ? p_scenarioSettings_Current.getCurrentEVTruckChargePower_kW() : zero_Interface.energyModel.avgc_data.p_avgEVMaxChargePowerTruck_kW; storageCapacity_kWh = zero_Interface.energyModel.avgc_data.p_avgEVStorageTruck_kWh; energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; @@ -693,9 +700,12 @@ //Create EV and connect to GC and selected trip tracker J_EAEV electricVehicle = new J_EAEV(parentGC, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timeParameters, energyConsumption_kWhpkm, vehicleScaling, vehicleType, tripTracker, available); - if (isAdditionalVehicle){ + electricVehicle.getTripTracker().setDistanceScaling_fr(1-sl_mobilityDemandCompanyReduction.getValue()/100.0); zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).add(electricVehicle); + if(tripTracker == null){ + f_addNewInstanceOfCustomTripTrackerToAdditionalVehicle(electricVehicle); + } } else{ zero_Interface.c_orderedVehicles.add(0, electricVehicle); @@ -706,131 +716,89 @@ parentGC.f_addChargingManagement(OL_ChargingAttitude.SIMPLE); } } - -else if (vehicleType == OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE || vehicleType == OL_EnergyAssetType.PETROLEUM_FUEL_VAN || vehicleType == OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK ){ // Create petroleumFuel vehicles - switch (vehicleType){ - - case PETROLEUM_FUEL_VEHICLE: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgGasolineConsumptionCar_kWhpkm; - break; - - case PETROLEUM_FUEL_VAN: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionVan_kWhpkm; - break; - - case PETROLEUM_FUEL_TRUCK: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; - break; - } - - //Create PetroleumFuel vehicle and connect to GC and selected trip tracker - J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, timeParameters, vehicleScaling, vehicleType, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); - - - - if (isAdditionalVehicle){ - zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).add(petroleumFuelVehicle); - } - else{ - zero_Interface.c_orderedVehicles.add(0, petroleumFuelVehicle); - } -} - -else{ // (Hydrogen vehicles) - switch (vehicleType){ - case HYDROGEN_VEHICLE: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionCar_kWhpkm; - break; - case HYDROGEN_VAN: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionVan_kWhpkm; - break; - case HYDROGEN_TRUCK: - energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; - break; - - } - - //Create Hydrogen vehicle and connect to GC and selected trip tracker - J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, timeParameters, vehicleScaling, vehicleType, tripTracker, OL_EnergyCarriers.HYDROGEN, available); - - - - if (isAdditionalVehicle){ - zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).add(hydrogenVehicle); - } - else{ - zero_Interface.c_orderedVehicles.add(0, hydrogenVehicle); - } +else { + if (fuelType == OL_EnergyCarriers.PETROLEUM_FUEL) { // Create petroleumFuel vehicles + switch (vehicleType) { + case CAR: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgGasolineConsumptionCar_kWhpkm; + break; + case VAN: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionVan_kWhpkm; + break; + case TRUCK: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; + break; + } + } else if (fuelType == OL_EnergyCarriers.HYDROGEN) { // Create hydrogen vehicles + switch (vehicleType) { + case CAR: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionCar_kWhpkm; + break; + case VAN: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionVan_kWhpkm; + break; + case TRUCK: + energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; + break; + } + } + + // Create fuel vehicle and connect to GC and selected trip tracker + J_EAFuelVehicle fuelVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, timeParameters, vehicleScaling, vehicleType, tripTracker, fuelType, available); + + if (isAdditionalVehicle) { + fuelVehicle.getTripTracker().setDistanceScaling_fr(1-sl_mobilityDemandCompanyReduction.getValue()/100.0); + zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).add(fuelVehicle); + if(tripTracker == null){ + f_addNewInstanceOfCustomTripTrackerToAdditionalVehicle(fuelVehicle); + } + } else { + zero_Interface.c_orderedVehicles.add(0, fuelVehicle); + } } /*ALCODEEND*/} -int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType,int setAmountOfVehicles) +int f_setElectricVehicleSliders(GridConnection GC,OL_VehicleType vehicleType,int setAmountOfVehicles) {/*ALCODESTART::1714411599586*/ int local_EV_nb; int local_PetroleumFuelV_nb; int local_HydrogenV_nb; int max_amount_petroleumFuel_vehicles; -OL_EnergyAssetType vehicleType_petroleumFuel; -OL_EnergyAssetType vehicleType_hydrogen; - switch (vehicleType){ - - case ELECTRIC_VEHICLE: - - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_VEHICLE; - - local_EV_nb = v_nbEVCars; - local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; - local_HydrogenV_nb = v_nbHydrogenCars; - - max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelCarSlider; - - break; - - case ELECTRIC_VAN: - - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_VAN; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_VAN; - - local_EV_nb = v_nbEVVans; - local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; - local_HydrogenV_nb = v_nbHydrogenVans; - - max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelVanSlider; - - break; - - case ELECTRIC_TRUCK: - - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_TRUCK; - - local_EV_nb = v_nbEVTrucks; - local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; - local_HydrogenV_nb = v_nbHydrogenTrucks; - - max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelTruckSlider; - - break; - + case CAR: + local_EV_nb = v_nbEVCars; + local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; + local_HydrogenV_nb = v_nbHydrogenCars; + max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelCarSlider; + break; + case VAN: + local_EV_nb = v_nbEVVans; + local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; + local_HydrogenV_nb = v_nbHydrogenVans; + max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelVanSlider; + break; + case TRUCK: + local_EV_nb = v_nbEVTrucks; + local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; + local_HydrogenV_nb = v_nbHydrogenTrucks; + max_amount_petroleumFuel_vehicles = v_maxPetroleumFuelTruckSlider; + break; default: - traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); - return; + traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); + return; } if (setAmountOfVehicles > local_EV_nb){ // Slider has increased the amount of selected vehicles //First convert all other existing additional vehicles - int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_petroleumFuel || p.getEAType() == vehicleType_hydrogen).size(); + int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && (vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL || vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN)).size(); while(setAmountOfVehicles > local_EV_nb && nbOfOtherAdditionalVehiclesOfThisClass > 0 ){ - // Find an additional PetroleumFuel vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_petroleumFuel); + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL); if(petroleumFuelVehicle != null){ J_ActivityTrackerTrips tripTracker = petroleumFuelVehicle.getTripTracker(); @@ -842,7 +810,7 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType zero_Interface.c_orderedVehicles.remove(petroleumFuelVehicle); //Create new additional EV - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, true); //Update local variables local_EV_nb++; @@ -851,7 +819,7 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType } else{ // Find an additional Hydrogen vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_hydrogen); + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN); J_ActivityTrackerTrips tripTracker = hydrogenVehicle.getTripTracker(); // Remove Hydrogen vehicle @@ -861,7 +829,7 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType zero_Interface.c_orderedVehicles.remove(hydrogenVehicle); //Create new additional EV - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, true); //Update local variables local_EV_nb++; @@ -871,9 +839,8 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType } while ( setAmountOfVehicles > local_EV_nb && local_PetroleumFuelV_nb > 0) { - // Find a PetroleumFuel vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_petroleumFuel && ((GridConnection)p.getOwner()) == GC); + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = petroleumFuelVehicle.getTripTracker(); // Remove PetroleumFuel vehicle @@ -882,16 +849,15 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType petroleumFuelVehicle.removeEnergyAsset(); //Create new EV - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, false); //Update variables local_EV_nb++; local_PetroleumFuelV_nb--; } while (setAmountOfVehicles > local_EV_nb && local_HydrogenV_nb > 0){ - // Find a Hydrogen vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_hydrogen && ((GridConnection)p.getOwner()) == GC); + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = hydrogenVehicle.getTripTracker(); // Remove Hydrogen vehicle @@ -900,27 +866,24 @@ int f_setElectricVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType hydrogenVehicle.removeEnergyAsset(); //Create new EV - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, false); //Update variables local_EV_nb++; local_HydrogenV_nb--; } while (setAmountOfVehicles > local_EV_nb){ //If still not enough EV: - // Create additional vehicles - f_createVehicle(GC, vehicleType, null, true, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, null, true, true); //Update variables local_EV_nb++; } - } else if(setAmountOfVehicles < local_EV_nb){ // Slider has decreased the amount of selected vehicles - ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getEAType() == vehicleType )); + ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY )); while(setAmountOfVehicles < local_EV_nb && additionalVehicles.size() > 0){ //If there are additional EV, remove them first - //Find additional created vehicle J_EAEV ev = (J_EAEV)additionalVehicles.get(additionalVehicles.size()-1); // Get latest added @@ -934,9 +897,8 @@ else if(setAmountOfVehicles < local_EV_nb){ // Slider has decreased the amount o local_EV_nb--; } while ( setAmountOfVehicles < local_EV_nb && local_PetroleumFuelV_nb < max_amount_petroleumFuel_vehicles) { - //Find a to be removed EV - J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(p) && ((GridConnection)p.getOwner()) == GC); + J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(vehicle) && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = ev.getTripTracker(); //Remove EV @@ -945,45 +907,34 @@ else if(setAmountOfVehicles < local_EV_nb){ // Slider has decreased the amount o ev.removeEnergyAsset(); // Create petroleumFuel vehicle - f_createVehicle(GC, vehicleType_petroleumFuel, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, tripTracker, available, false); local_EV_nb--; local_PetroleumFuelV_nb++; - } + } } - - //Update variables switch (vehicleType){ - - case ELECTRIC_VEHICLE: - - v_nbEVCars = local_EV_nb; - v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; - v_nbHydrogenCars = local_HydrogenV_nb; - - break; - - case ELECTRIC_VAN: - - v_nbEVVans = local_EV_nb; - v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; - v_nbHydrogenVans = local_HydrogenV_nb; - - break; - - case ELECTRIC_TRUCK: - - v_nbEVTrucks = local_EV_nb; - v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; - v_nbHydrogenTrucks = local_HydrogenV_nb; - - break; + case CAR: + v_nbEVCars = local_EV_nb; + v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; + v_nbHydrogenCars = local_HydrogenV_nb; + break; + case VAN: + v_nbEVVans = local_EV_nb; + v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; + v_nbHydrogenVans = local_HydrogenV_nb; + break; + case TRUCK: + v_nbEVTrucks = local_EV_nb; + v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; + v_nbHydrogenTrucks = local_HydrogenV_nb; + break; } /*ALCODEEND*/} -int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType,int setAmountOfVehicles) +int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_VehicleType vehicleType,int setAmountOfVehicles) {/*ALCODESTART::1714471183392*/ int local_EV_nb; int local_PetroleumFuelV_nb; @@ -992,66 +943,40 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl int min_amount_EV; int max_amount_EV; -OL_EnergyAssetType vehicleType_electric; -OL_EnergyAssetType vehicleType_hydrogen; - switch (vehicleType){ - - case PETROLEUM_FUEL_VEHICLE: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_VEHICLE; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_VEHICLE; - - local_EV_nb = v_nbEVCars; - local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; - local_HydrogenV_nb = v_nbHydrogenCars; - - min_amount_EV = v_minEVCarSlider; - max_amount_EV = v_maxEVCarSlider; - - break; - - case PETROLEUM_FUEL_VAN: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_VAN; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_VAN; - - local_EV_nb = v_nbEVVans; - local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; - local_HydrogenV_nb = v_nbHydrogenVans; - - min_amount_EV = v_minEVVanSlider; - max_amount_EV = v_maxEVVanSlider; - - break; - - case PETROLEUM_FUEL_TRUCK: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_TRUCK; - vehicleType_hydrogen = OL_EnergyAssetType.HYDROGEN_TRUCK; - - local_EV_nb = v_nbEVTrucks; - local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; - local_HydrogenV_nb = v_nbHydrogenTrucks; - - min_amount_EV = v_minEVTruckSlider; - max_amount_EV = v_maxEVTruckSlider; - - break; - + case CAR: + local_EV_nb = v_nbEVCars; + local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; + local_HydrogenV_nb = v_nbHydrogenCars; + min_amount_EV = v_minEVCarSlider; + max_amount_EV = v_maxEVCarSlider; + break; + case VAN: + local_EV_nb = v_nbEVVans; + local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; + local_HydrogenV_nb = v_nbHydrogenVans; + min_amount_EV = v_minEVVanSlider; + max_amount_EV = v_maxEVVanSlider; + break; + case TRUCK: + local_EV_nb = v_nbEVTrucks; + local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; + local_HydrogenV_nb = v_nbHydrogenTrucks; + min_amount_EV = v_minEVTruckSlider; + max_amount_EV = v_maxEVTruckSlider; + break; default: - traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); - return; + traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); + return; } if (setAmountOfVehicles > local_PetroleumFuelV_nb){ // Slider has increased the amount of selected vehicles //First convert all other existing additional vehicles - int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_hydrogen || p.getEAType() == vehicleType_electric).size(); + int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && (vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN || vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY)).size(); while(setAmountOfVehicles > local_PetroleumFuelV_nb && nbOfOtherAdditionalVehiclesOfThisClass > 0 ){ - // Find an additional EV vehicle - J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_electric); + J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY); if(ev != null){ J_ActivityTrackerTrips tripTracker = ev.getTripTracker(); @@ -1063,7 +988,7 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl zero_Interface.c_orderedVehicles.remove(ev); //Create new additional PetroleumFuel vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, tripTracker, available, true); //Update local variables local_PetroleumFuelV_nb++; @@ -1072,7 +997,7 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl } else{ // Find an additional Hydrogen vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_hydrogen); + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN); J_ActivityTrackerTrips tripTracker = hydrogenVehicle.getTripTracker(); // Remove Hydrogen vehicle @@ -1082,7 +1007,7 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl zero_Interface.c_orderedVehicles.remove(hydrogenVehicle); //Create new additional PetroleumFuel vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, tripTracker, available, true); //Update local variables local_PetroleumFuelV_nb++; @@ -1091,9 +1016,8 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl } } while ( setAmountOfVehicles > local_PetroleumFuelV_nb && local_EV_nb > min_amount_EV) { - // Find an EV - J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_electric && ((GridConnection)p.getOwner()) == GC); + J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = ev.getTripTracker(); //Remove one EV @@ -1102,16 +1026,15 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl ev.removeEnergyAsset(); //Create new PetroleumFuel vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, tripTracker, available, false); //Update variables local_PetroleumFuelV_nb++; local_EV_nb--; } while (setAmountOfVehicles > local_PetroleumFuelV_nb && local_HydrogenV_nb > 0){ - // Find a Hydrogen vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_hydrogen && ((GridConnection)p.getOwner()) == GC); + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = hydrogenVehicle.getTripTracker(); // Remove hydrogen vehicle @@ -1120,40 +1043,36 @@ int f_setPetroleumFuelVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicl hydrogenVehicle.removeEnergyAsset(); //Create new PetroleumFuel vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, tripTracker, available, false); //Update variables local_PetroleumFuelV_nb++; local_HydrogenV_nb--; } while (setAmountOfVehicles > local_PetroleumFuelV_nb){ // Create additional vehicles - - f_createVehicle(GC, vehicleType, null, true, true); - - local_PetroleumFuelV_nb++; + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.PETROLEUM_FUEL, null, true, true); + local_PetroleumFuelV_nb++; } } else if(setAmountOfVehicles < local_PetroleumFuelV_nb){ // Slider has decreased the amount of selected vehicles - ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getEAType() == vehicleType )); + ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL )); while(setAmountOfVehicles < local_PetroleumFuelV_nb && additionalVehicles.size() > 0){ //Remove additional PetroleumFuel vehicles first - - //Find additional created vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)additionalVehicles.get(additionalVehicles.size()-1); // Get latest added - - // Remove petroleumFuel vehicle - additionalVehicles.remove(petroleumFuelVehicle); - zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).remove(petroleumFuelVehicle); - petroleumFuelVehicle.removeEnergyAsset(); - zero_Interface.c_orderedVehicles.remove(petroleumFuelVehicle); - - //Update variable - local_PetroleumFuelV_nb--; + //Find additional created vehicle + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)additionalVehicles.get(additionalVehicles.size()-1); // Get latest added + + // Remove petroleumFuel vehicle + additionalVehicles.remove(petroleumFuelVehicle); + zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).remove(petroleumFuelVehicle); + petroleumFuelVehicle.removeEnergyAsset(); + zero_Interface.c_orderedVehicles.remove(petroleumFuelVehicle); + + //Update variable + local_PetroleumFuelV_nb--; } while ( setAmountOfVehicles < local_PetroleumFuelV_nb && local_EV_nb < max_amount_EV) { - - // Find a to be removed PetroleumFuel vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(p) && ((GridConnection)p.getOwner()) == GC); + // Find a to be removed PetroleumFuel vehicle + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(vehicle) && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = petroleumFuelVehicle.getTripTracker(); // Remove petroleumFuel vehicle @@ -1162,7 +1081,7 @@ else if(setAmountOfVehicles < local_PetroleumFuelV_nb){ // Slider has decreased petroleumFuelVehicle.removeEnergyAsset(); //Create new EV - f_createVehicle(GC, vehicleType_electric, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, false); //Update variables local_PetroleumFuelV_nb--; @@ -1170,32 +1089,27 @@ else if(setAmountOfVehicles < local_PetroleumFuelV_nb){ // Slider has decreased } } - - //Update variables switch (vehicleType){ - - case PETROLEUM_FUEL_VEHICLE: - v_nbEVCars = local_EV_nb; - v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; - v_nbHydrogenCars = local_HydrogenV_nb; - break; - - case PETROLEUM_FUEL_VAN: - v_nbEVVans = local_EV_nb; - v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; - v_nbHydrogenVans = local_HydrogenV_nb; - break; - - case PETROLEUM_FUEL_TRUCK: - v_nbEVTrucks = local_EV_nb; - v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; - v_nbHydrogenTrucks = local_HydrogenV_nb; - break; + case CAR: + v_nbEVCars = local_EV_nb; + v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; + v_nbHydrogenCars = local_HydrogenV_nb; + break; + case VAN: + v_nbEVVans = local_EV_nb; + v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; + v_nbHydrogenVans = local_HydrogenV_nb; + break; + case TRUCK: + v_nbEVTrucks = local_EV_nb; + v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; + v_nbHydrogenTrucks = local_HydrogenV_nb; + break; } /*ALCODEEND*/} -int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType,int setAmountOfVehicles) +int f_setHydrogenVehicleSliders(GridConnection GC,OL_VehicleType vehicleType,int setAmountOfVehicles) {/*ALCODESTART::1714474430338*/ int local_EV_nb; int local_PetroleumFuelV_nb; @@ -1204,66 +1118,40 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType int min_amount_EV; int max_amount_EV; -OL_EnergyAssetType vehicleType_electric; -OL_EnergyAssetType vehicleType_petroleumFuel; - switch (vehicleType){ - - case HYDROGEN_VEHICLE: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_VEHICLE; - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE; - - local_EV_nb = v_nbEVCars; - local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; - local_HydrogenV_nb = v_nbHydrogenCars; - - min_amount_EV = v_minEVCarSlider; - max_amount_EV = v_maxEVCarSlider; - - break; - - case HYDROGEN_VAN: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_VAN; - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_VAN; - - local_EV_nb = v_nbEVVans; - local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; - local_HydrogenV_nb = v_nbHydrogenVans; - - min_amount_EV = v_minEVVanSlider; - max_amount_EV = v_maxEVVanSlider; - - break; - - case HYDROGEN_TRUCK: - - vehicleType_electric = OL_EnergyAssetType.ELECTRIC_TRUCK; - vehicleType_petroleumFuel = OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK; - - local_EV_nb = v_nbEVTrucks; - local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; - local_HydrogenV_nb = v_nbHydrogenTrucks; - - min_amount_EV = v_minEVTruckSlider; - max_amount_EV = v_maxEVTruckSlider; - - break; - + case CAR: + local_EV_nb = v_nbEVCars; + local_PetroleumFuelV_nb = v_nbPetroleumFuelCars; + local_HydrogenV_nb = v_nbHydrogenCars; + min_amount_EV = v_minEVCarSlider; + max_amount_EV = v_maxEVCarSlider; + break; + case VAN: + local_EV_nb = v_nbEVVans; + local_PetroleumFuelV_nb = v_nbPetroleumFuelVans; + local_HydrogenV_nb = v_nbHydrogenVans; + min_amount_EV = v_minEVVanSlider; + max_amount_EV = v_maxEVVanSlider; + break; + case TRUCK: + local_EV_nb = v_nbEVTrucks; + local_PetroleumFuelV_nb = v_nbPetroleumFuelTrucks; + local_HydrogenV_nb = v_nbHydrogenTrucks; + min_amount_EV = v_minEVTruckSlider; + max_amount_EV = v_maxEVTruckSlider; + break; default: - traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); - return; + traceln("SLIDER SET TO WRONG VEHICLE TYPE, DO NOTHING"); + return; } if (setAmountOfVehicles > local_HydrogenV_nb){ // Slider has increased the amount of selected vehicles //First convert all other existing additional vehicles - int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_petroleumFuel || p.getEAType() == vehicleType_electric).size(); + int nbOfOtherAdditionalVehiclesOfThisClass = findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && (vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL || vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY)).size(); while(setAmountOfVehicles > local_HydrogenV_nb && nbOfOtherAdditionalVehiclesOfThisClass > 0 ){ - // Find an additional PetroleumFuel vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_petroleumFuel); + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL); if(petroleumFuelVehicle != null){ J_ActivityTrackerTrips tripTracker = petroleumFuelVehicle.getTripTracker(); @@ -1275,7 +1163,7 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType zero_Interface.c_orderedVehicles.remove(petroleumFuelVehicle); //Create new additional Hydrogen vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.HYDROGEN, tripTracker, available, true); //Update local variables local_HydrogenV_nb++; @@ -1284,7 +1172,7 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType } else{ // Find an additional EV vehicle - J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), p -> p.getEAType() == vehicleType_electric); + J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY); J_ActivityTrackerTrips tripTracker = ev.getTripTracker(); // Remove EV @@ -1294,7 +1182,7 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType zero_Interface.c_orderedVehicles.remove(ev); //Create new additional Hydrogen vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, true); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.HYDROGEN, tripTracker, available, true); //Update local variables local_HydrogenV_nb++; @@ -1303,9 +1191,8 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType } } while ( setAmountOfVehicles > local_HydrogenV_nb && local_PetroleumFuelV_nb > 0) { - // Find a to be removed PetroleumFuel vehicle - J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_petroleumFuel && ((GridConnection)p.getOwner()) == GC); + J_EAFuelVehicle petroleumFuelVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.PETROLEUM_FUEL && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = petroleumFuelVehicle.getTripTracker(); //Remove petroleumFuel vehicle @@ -1314,7 +1201,7 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType petroleumFuelVehicle.removeEnergyAsset(); //Create new Hydrogen vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.HYDROGEN, tripTracker, available, false); //Update variables local_HydrogenV_nb++; @@ -1322,9 +1209,8 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType } while (setAmountOfVehicles > local_HydrogenV_nb && local_EV_nb > min_amount_EV){ - // Find a to be removed EV - J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType_electric && ((GridConnection)p.getOwner()) == GC); + J_EAEV ev = (J_EAEV)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.ELECTRICITY && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = ev.getTripTracker(); // Remove EV @@ -1333,41 +1219,36 @@ int f_setHydrogenVehicleSliders(GridConnection GC,OL_EnergyAssetType vehicleType ev.removeEnergyAsset(); //Create new Hydrogen vehicle - f_createVehicle(GC, vehicleType, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.HYDROGEN, tripTracker, available, false); //Update variables local_HydrogenV_nb++; local_EV_nb--; } while (setAmountOfVehicles > local_HydrogenV_nb){ // Create additional vehicles - - f_createVehicle(GC, vehicleType, null, true, true); - local_HydrogenV_nb++; + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.HYDROGEN, null, true, true); + local_HydrogenV_nb++; } - - } else if(setAmountOfVehicles < local_HydrogenV_nb){ // Slider has decreased the amount of selected vehicles - ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getEAType() == vehicleType )); + ArrayList additionalVehicles = new ArrayList<>(findAll(zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid), vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN )); while(setAmountOfVehicles < local_HydrogenV_nb && additionalVehicles.size() > 0){//Remove additional Hydrogen vehicles first - - //Find additional created vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)additionalVehicles.get(additionalVehicles.size()-1); // Get latest added - - // Remove hydrogen vehicle - additionalVehicles.remove(hydrogenVehicle); - zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).remove(hydrogenVehicle); - hydrogenVehicle.removeEnergyAsset(); - zero_Interface.c_orderedVehicles.remove(hydrogenVehicle); - - //Update variable - local_HydrogenV_nb--; + //Find additional created vehicle + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)additionalVehicles.get(additionalVehicles.size()-1); // Get latest added + + // Remove hydrogen vehicle + additionalVehicles.remove(hydrogenVehicle); + zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).remove(hydrogenVehicle); + hydrogenVehicle.removeEnergyAsset(); + zero_Interface.c_orderedVehicles.remove(hydrogenVehicle); + + //Update variable + local_HydrogenV_nb--; } while ( setAmountOfVehicles < local_HydrogenV_nb && local_EV_nb < max_amount_EV) { - // Find a to be removed Hydrogen vehicle - J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, p -> p.getEAType() == vehicleType && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(p) && ((GridConnection)p.getOwner()) == GC); + J_EAFuelVehicle hydrogenVehicle = (J_EAFuelVehicle)findFirst(zero_Interface.c_orderedVehicles, vehicle -> vehicle.getVehicleType() == vehicleType && vehicle.getFuelType() == OL_EnergyCarriers.HYDROGEN && !zero_Interface.c_additionalVehicles.get(p_gridConnection.p_uid).contains(vehicle) && vehicle.getOwner() == GC); J_ActivityTrackerTrips tripTracker = hydrogenVehicle.getTripTracker(); // Remove hydrogen vehicle @@ -1376,7 +1257,7 @@ else if(setAmountOfVehicles < local_HydrogenV_nb){ // Slider has decreased the a hydrogenVehicle.removeEnergyAsset(); //Create new EV vehicle - f_createVehicle(GC, vehicleType_electric, tripTracker, available, false); + f_createVehicle(GC, vehicleType, OL_EnergyCarriers.ELECTRICITY, tripTracker, available, false); //Update variables local_HydrogenV_nb--; @@ -1386,30 +1267,21 @@ else if(setAmountOfVehicles < local_HydrogenV_nb){ // Slider has decreased the a //Update variables switch (vehicleType){ - - case HYDROGEN_VEHICLE: - - v_nbEVCars = local_EV_nb; - v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; - v_nbHydrogenCars = local_HydrogenV_nb; - - break; - - case HYDROGEN_VAN: - - v_nbEVVans = local_EV_nb; - v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; - v_nbHydrogenVans = local_HydrogenV_nb; - - break; - - case HYDROGEN_TRUCK: - - v_nbEVTrucks = local_EV_nb; - v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; - v_nbHydrogenTrucks = local_HydrogenV_nb; - - break; + case CAR: + v_nbEVCars = local_EV_nb; + v_nbPetroleumFuelCars = local_PetroleumFuelV_nb; + v_nbHydrogenCars = local_HydrogenV_nb; + break; + case VAN: + v_nbEVVans = local_EV_nb; + v_nbPetroleumFuelVans = local_PetroleumFuelV_nb; + v_nbHydrogenVans = local_HydrogenV_nb; + break; + case TRUCK: + v_nbEVTrucks = local_EV_nb; + v_nbPetroleumFuelTrucks = local_PetroleumFuelV_nb; + v_nbHydrogenTrucks = local_HydrogenV_nb; + break; } /*ALCODEEND*/} @@ -1418,6 +1290,8 @@ else if(setAmountOfVehicles < local_HydrogenV_nb){ // Slider has decreased the a //Set the order of the resultsUI to front but behind simulation screen group and load icon presentation.remove(uI_Results_presentation); presentation.insert(presentation.size()-1, uI_Results_presentation); +presentation.remove(gr_configureVehicleTrips); +presentation.insert(presentation.size()-1, gr_configureVehicleTrips); presentation.remove(gr_loadIcon); presentation.insert(presentation.size()-1, gr_loadIcon); presentation.remove(gr_simulateYearScreen); @@ -1967,3 +1841,312 @@ else if(v_NFATO_kW_feedin < 0){ /*ALCODEEND*/} +double f_activateDailyDifferenceButtons(boolean activate) +{/*ALCODESTART::1779979626408*/ +map_dayToVehicleConfigurationButtons.entrySet().stream() + .filter(entry -> entry.getKey() != OL_Days.MONDAY) + .forEach(entry -> entry.getValue().values() + .forEach(button -> button.setEnabled(activate))); + +map_dayToEnableDayButtons.values().forEach(cb -> cb.setEnabled(activate)); + +if(!activate){ + map_dayToEnableDayButtons.values().forEach(cb -> cb.setSelected(true, true)); +} +/*ALCODEEND*/} + +double f_confirmVehicleTripsConfiguration(OL_VehicleType vehicleType) +{/*ALCODESTART::1780045148927*/ +if(f_createCustomTripConfiguration(vehicleType)){ + f_replaceAllCurrentTripTrackersWithCustom(vehicleType); +} +/*ALCODEEND*/} + +double f_openVehicleTripsConfigurationMenu(OL_VehicleType vehicleType) +{/*ALCODESTART::1780047941753*/ +String vehicleTypeString = ""; + +switch(vehicleType){ + case CAR: + vehicleTypeString = "Auto's"; + break; + case VAN: + vehicleTypeString = "Busjes"; + break; + case TRUCK: + vehicleTypeString = "Trucks"; + break; +} + +t_selectedVehicleTypeForTripConfiguration.setText(vehicleTypeString); +v_currentTripConfiguringVehicleType = vehicleType; +f_initializeVehicleTripsConfigurationMenuButtons(vehicleType); +gr_configureVehicleTrips.setVisible(true); +/*ALCODEEND*/} + +boolean f_createCustomTripConfiguration(OL_VehicleType vehicleType) +{/*ALCODESTART::1780056555300*/ +Map tripStartTime_hourOfDay = new HashMap<>(); +Map tripEndTime_hourOfDay = new HashMap<>(); +Map tripTravelDistance_km = new HashMap<>(); + +//Get slider values +c_activeVehicleConfigurationDays.forEach(day -> tripStartTime_hourOfDay.put(day, map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.STARTTIME_H).getValue())); +c_activeVehicleConfigurationDays.forEach(day -> tripEndTime_hourOfDay.put(day, map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.ENDTIME_H).getValue())); +c_activeVehicleConfigurationDays.forEach(day -> tripTravelDistance_km.put(day, map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.DISTANCE_KM).getValue())); + +//Validate values and continue +if(J_CustomTripTrackerGenerator.checkIfCustomTripInputsAreValid(tripStartTime_hourOfDay, tripEndTime_hourOfDay, tripTravelDistance_km)){ + //Store this setting, so buttons can be brought back to this + Map>> storeGCVehicleCustomTripDailyValuesMap = map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid); + if(storeGCVehicleCustomTripDailyValuesMap == null){ + map_storedCustomTripButtonConfiguration.put(p_gridConnection.p_uid, new HashMap<>()); + } + Map> dailyValuesMap = new HashMap<>(); + dailyValuesMap.put(OL_CustomTripTrackerValueTypes.STARTTIME_H, tripStartTime_hourOfDay); + dailyValuesMap.put(OL_CustomTripTrackerValueTypes.ENDTIME_H, tripEndTime_hourOfDay); + dailyValuesMap.put(OL_CustomTripTrackerValueTypes.DISTANCE_KM, tripTravelDistance_km); + + map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid).put(vehicleType, dailyValuesMap); + + //Create customTripTrackerWeeklyValuesMap + Map> newCustomTripTrackerWeeklyValuesMap = J_CustomTripTrackerGenerator.getCustomTripTrackerValues(tripStartTime_hourOfDay, tripEndTime_hourOfDay, tripTravelDistance_km); + + //Add it to stored custom trip values maps + Map>> GCCustomTripValuesMap = map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid); + if(GCCustomTripValuesMap == null){ + map_createdCustomTripWeeklyConfiguration.put(p_gridConnection.p_uid, new HashMap<>()); + } + map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid).put(vehicleType, newCustomTripTrackerWeeklyValuesMap); + + return true; +} +else{ + f_setErrorScreen("De custom rijtijden configuratie is niet doorgevoerd, want de start en eind tijden zijn verkeerd geconfigureerd. Zorg ervoor dat nooit twee start of eind tijden elkaar opvolgen. Een trip moet altijd eerst eindigen voor er een nieuwe kan beginnen."); + return false; +} +/*ALCODEEND*/} + +double f_replaceAllCurrentTripTrackersWithCustom(OL_VehicleType vehicleType) +{/*ALCODESTART::1780057851211*/ +Map> customTripValuesMap = map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid).get(vehicleType); + +List startTimes_h = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.STARTTIME_H); +List endTimes_h = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.ENDTIME_H); +List distances_km = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM); + +J_TimeVariables timeVariables = zero_Interface.energyModel.p_timeVariables; +J_TimeParameters timeParameters = zero_Interface.energyModel.p_timeParameters; + +for(I_Vehicle vehicle : findAll(p_gridConnection.c_vehicleAssets, veh -> veh.getVehicleType() == vehicleType)){ + //First get the old trip tracker + J_ActivityTrackerTrips currentTripTracker = vehicle.getTripTracker(); + + //Before creating new triptracker, that automatically connects EV again to chargepoint, remove it from chargepoint first. + if(vehicle instanceof J_EAEV ev && p_gridConnection.f_getChargePoint().isRegistered(ev)){ + p_gridConnection.f_getChargePoint().deregisterChargingRequest(ev); + } + + //Create new triptracker and add to vehicle + J_ActivityTrackerTrips newCustomTripTracker = new J_ActivityTrackerTrips(startTimes_h, endTimes_h, distances_km, vehicle, p_gridConnection.f_getChargePoint(), timeParameters, timeVariables); + + //Replace current with new one + f_replaceTripTrackerWithOtherTripTracker(currentTripTracker, newCustomTripTracker); + + //Create/maintain link with original and new trip tracker + f_storeOriginalTripTracker(currentTripTracker, newCustomTripTracker); +} + +/*ALCODEEND*/} + +double f_storeOriginalTripTracker(J_ActivityTrackerTrips oldTripTracker,J_ActivityTrackerTrips newTripTracker) +{/*ALCODESTART::1780063188067*/ +Map thisGCCustomToOriginalTripTrackerMap = map_customTripTrackerToOriginal.get(p_gridConnection.p_uid); + +//Check if map already exists, if not: initialize new map for this GC +if(thisGCCustomToOriginalTripTrackerMap == null){ + thisGCCustomToOriginalTripTrackerMap = new HashMap(); + map_customTripTrackerToOriginal.put(p_gridConnection.p_uid, thisGCCustomToOriginalTripTrackerMap); +} + +//Update or add custom to original Triptracker link. +if(thisGCCustomToOriginalTripTrackerMap.get(oldTripTracker) != null){ + thisGCCustomToOriginalTripTrackerMap.put(newTripTracker, thisGCCustomToOriginalTripTrackerMap.get(oldTripTracker)); + thisGCCustomToOriginalTripTrackerMap.remove(oldTripTracker); +} +else{ + thisGCCustomToOriginalTripTrackerMap.put(newTripTracker, oldTripTracker); +} +/*ALCODEEND*/} + +double f_initializeVehicleTripsConfigurationMenuButtons(OL_VehicleType vehicleType) +{/*ALCODESTART::1780063352490*/ +if(map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid) != null && + map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid).get(vehicleType) != null){ + Map> previousButtonConfiguration = map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid).get(vehicleType); + + Set activeDays = previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.STARTTIME_H).keySet(); + + //Is daily difference enabled? + boolean dailyDifferenceEnabled = false; + if(activeDays.size() == 7){ + double previousStartTime_h = previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.STARTTIME_H).get(activeDays.iterator().next()); + double previousEndTime_h = previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.ENDTIME_H).get(activeDays.iterator().next()); + double previousDistance_km = previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM).get(activeDays.iterator().next()); + + for(OL_Days day : activeDays){ + if(previousStartTime_h != previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.STARTTIME_H).get(day)){ + dailyDifferenceEnabled = true; + break; + } + if(previousEndTime_h != previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.ENDTIME_H).get(day)){ + dailyDifferenceEnabled = true; + break; + } + if(previousDistance_km != previousButtonConfiguration.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM).get(day)){ + dailyDifferenceEnabled = true; + break; + } + } + } + else{ + dailyDifferenceEnabled = true; + } + + //Enable/disable correct buttons + cb_configureVehicleTrips_dailyDistinction.setSelected(dailyDifferenceEnabled, true); + + if(!dailyDifferenceEnabled){ + for(OL_CustomTripTrackerValueTypes valueType : OL_CustomTripTrackerValueTypes.values()){ + map_dayToVehicleConfigurationButtons.get(OL_Days.MONDAY).get(valueType).setValue(previousButtonConfiguration.get(valueType).get(OL_Days.MONDAY), true); + } + } + else{ + for(OL_Days day : J_CustomTripTrackerGenerator.getOrderedDaysList()){ + if(activeDays.contains(day)){ + //Set monday slider to default (slider actions will move the rest with them). + for(OL_CustomTripTrackerValueTypes valueType : OL_CustomTripTrackerValueTypes.values()){ + map_dayToVehicleConfigurationButtons.get(day).get(valueType).setValue(previousButtonConfiguration.get(valueType).get(day), false); + } + //Enable day. + map_dayToEnableDayButtons.get(day).setSelected(true, true); + } + else{ + //Disable day. + map_dayToEnableDayButtons.get(day).setSelected(false, true); + + //Set slider to default if day was previously not activated. + for(OL_CustomTripTrackerValueTypes valueType : OL_CustomTripTrackerValueTypes.values()){ + map_dayToVehicleConfigurationButtons.get(day).get(valueType).setValue(map_defaultValuesCustomTripButtons.get(valueType), true); + } + } + } + } +} +else{ // No previous configuration for this GC and/or vehicle type -> Everything at default values + //Disable distinction button + cb_configureVehicleTrips_dailyDistinction.setSelected(false, true); + + //Set monday slider to default (slider actions will move the rest with them). + for(OL_CustomTripTrackerValueTypes valueType : OL_CustomTripTrackerValueTypes.values()){ + map_dayToVehicleConfigurationButtons.get(OL_Days.MONDAY).get(valueType).setValue(map_defaultValuesCustomTripButtons.get(valueType), true); + } +} + +/*ALCODEEND*/} + +double f_closeVehicleTripsConfigurationMenu() +{/*ALCODESTART::1780307953910*/ +gr_configureVehicleTrips.setVisible(false); +v_currentTripConfiguringVehicleType = null; +/*ALCODEEND*/} + +double f_addNewInstanceOfCustomTripTrackerToAdditionalVehicle(I_Vehicle vehicle) +{/*ALCODESTART::1780312282022*/ +//Check if this vehicle should get a custom triptracker +if(map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid) != null && map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid).get(vehicle) != null){ + //Get the values for the custom triptracker + Map> customTripValuesMap = map_createdCustomTripWeeklyConfiguration.get(p_gridConnection.p_uid).get(vehicle); + + List startTimes_h = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.STARTTIME_H); + List endTimes_h = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.ENDTIME_H); + List distances_km = customTripValuesMap.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM); + + J_TimeVariables timeVariables = zero_Interface.energyModel.p_timeVariables; + J_TimeParameters timeParameters = zero_Interface.energyModel.p_timeParameters; + + //Get the old trip tracker + J_ActivityTrackerTrips currentTripTracker = vehicle.getTripTracker(); + + //Before creating new triptracker, that automatically connects EV again to chargepoint, remove it from chargepoint first. + if(vehicle instanceof J_EAEV ev && p_gridConnection.f_getChargePoint().isRegistered(ev)){ + p_gridConnection.f_getChargePoint().deregisterChargingRequest(ev); + } + + //Create new triptracker + J_ActivityTrackerTrips newCustomTripTracker = new J_ActivityTrackerTrips(startTimes_h, endTimes_h, distances_km, vehicle, p_gridConnection.f_getChargePoint(), timeParameters, timeVariables); + + //Replace current with new one + f_replaceTripTrackerWithOtherTripTracker(currentTripTracker, newCustomTripTracker); +} +/*ALCODEEND*/} + +double f_resetAllVehiclesToOriginalTripTracker() +{/*ALCODESTART::1780327676306*/ +Map GCcustomTripTrackerToOriginalMap = map_customTripTrackerToOriginal.get(p_gridConnection.p_uid); + +if(GCcustomTripTrackerToOriginalMap != null && !GCcustomTripTrackerToOriginalMap.isEmpty()){ + for(I_Vehicle vehicle : p_gridConnection.c_vehicleAssets){ + J_ActivityTrackerTrips originalTripTracker = GCcustomTripTrackerToOriginalMap.get(vehicle.getTripTracker()); + if(originalTripTracker != null){ + //Reverse custom triptracker to original + f_replaceTripTrackerWithOtherTripTracker(vehicle.getTripTracker(), originalTripTracker); + } + } + //Clear the links + GCcustomTripTrackerToOriginalMap.clear(); +} + + +/*ALCODEEND*/} + +double f_replaceTripTrackerWithOtherTripTracker(J_ActivityTrackerTrips currentTripTracker,J_ActivityTrackerTrips newTripTracker) +{/*ALCODESTART::1780327998135*/ +I_Vehicle vehicle = currentTripTracker.getVehicle(); +J_ChargePoint chargePoint = p_gridConnection.f_getChargePoint(); + +//Remove current +p_gridConnection.c_tripTrackers.remove(currentTripTracker); +if(vehicle instanceof J_EAEV ev && chargePoint.isRegistered(ev)){ + chargePoint.deregisterChargingRequest(ev); +} + +//Add new one, and set scaling equally as old one. +newTripTracker.setDistanceScaling_fr(currentTripTracker.getDistanceScaling_fr()); +p_gridConnection.c_tripTrackers.add(newTripTracker); +vehicle.setTripTracker(newTripTracker); +vehicle.setAvailability(true); +newTripTracker.prepareNextActivity(zero_Interface.energyModel.p_timeVariables, chargePoint); +/*ALCODEEND*/} + +double f_resetVehicleTypeToOriginalTripTracker(OL_VehicleType vehicleType) +{/*ALCODESTART::1780328883341*/ +Map GCcustomTripTrackerToOriginalMap = map_customTripTrackerToOriginal.get(p_gridConnection.p_uid); + +if(GCcustomTripTrackerToOriginalMap != null && !GCcustomTripTrackerToOriginalMap.isEmpty()){ + for(I_Vehicle vehicle : p_gridConnection.c_vehicleAssets){ + if(vehicle.getVehicleType() == vehicleType){ + J_ActivityTrackerTrips customTripTracker = vehicle.getTripTracker(); + J_ActivityTrackerTrips originalTripTracker = GCcustomTripTrackerToOriginalMap.get(customTripTracker); + if(originalTripTracker != null){ + //Reverse custom triptracker to original + f_replaceTripTrackerWithOtherTripTracker(customTripTracker, originalTripTracker); + + //Remove previous link + GCcustomTripTrackerToOriginalMap.remove(customTripTracker); + } + } + } +} +/*ALCODEEND*/} + diff --git a/_alp/Agents/UI_company/Code/Functions.xml b/_alp/Agents/UI_company/Code/Functions.xml index db2ca23..702b6e4 100644 --- a/_alp/Agents/UI_company/Code/Functions.xml +++ b/_alp/Agents/UI_company/Code/Functions.xml @@ -301,7 +301,11 @@ - + + + + + @@ -337,7 +341,7 @@ - + @@ -365,7 +369,7 @@ - + @@ -393,7 +397,7 @@ - + @@ -685,4 +689,244 @@ true + + VOID + double + 1779979626408 + + -530 + 2080 + + false + true + true + + + + + + + + VOID + double + 1780045148927 + + -530 + 2180 + + false + true + true + + + + + + + + VOID + double + 1780047941753 + + -530 + 1950 + + false + true + true + + + + + + + + RETURNS_VALUE + boolean + 1780056555300 + + -510 + 2200 + + false + true + true + + + + + + + + VOID + double + 1780057851211 + + -510 + 2260 + + false + true + true + + + + + + + + VOID + double + 1780063188067 + + -490 + 2280 + + false + true + true + + + + + + + + + + + + VOID + double + 1780063352490 + + -510 + 1990 + + false + true + true + + + + + + + + VOID + double + 1780307953910 + + -530 + 2330 + + false + true + true + + + + VOID + double + 1780312282022 + + -530 + 2360 + + false + true + true + + + + + + + + VOID + double + 1780327676306 + + -530 + 2450 + + false + true + true + + + + VOID + double + 1780327998135 + + -510 + 2390 + + false + true + true + + + + + + + + + + + + VOID + double + 1780328883341 + + -530 + 2470 + + false + true + true + + + + + + diff --git a/_alp/Agents/UI_company/Levels/Level.level.xml b/_alp/Agents/UI_company/Levels/Level.level.xml index 42fe0d9..1f2e986 100644 --- a/_alp/Agents/UI_company/Levels/Level.level.xml +++ b/_alp/Agents/UI_company/Levels/Level.level.xml @@ -889,7 +889,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setElectricVehicleSliders(p_gridConnection, OL_EnergyAssetType.ELECTRIC_VAN, (int)sl_electricVansCompany.getValue()); +f_setElectricVehicleSliders(p_gridConnection, OL_VehicleType.VAN, (int)sl_electricVansCompany.getValue()); //Update the other two sliders aswell sl_hydrogenVansCompany.setValue(v_nbHydrogenVans, false); @@ -980,7 +980,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setHydrogenVehicleSliders(p_gridConnection, OL_EnergyAssetType.HYDROGEN_VAN, (int)sl_hydrogenVansCompany.getValue()); +f_setHydrogenVehicleSliders(p_gridConnection, OL_VehicleType.VAN, (int)sl_hydrogenVansCompany.getValue()); //Update the other two sliders aswell sl_electricVansCompany.setValue(v_nbEVVans, false); @@ -1071,7 +1071,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_EnergyAssetType.PETROLEUM_FUEL_VAN, (int)sl_petroleumFuelVansCompany.getValue()); +f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_VehicleType.VAN, (int)sl_petroleumFuelVansCompany.getValue()); //Update the other two sliders aswell sl_electricVansCompany.setValue(v_nbEVVans, false); @@ -1339,7 +1339,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setHydrogenVehicleSliders(p_gridConnection, OL_EnergyAssetType.HYDROGEN_TRUCK, (int)sl_hydrogenTrucksCompany.getValue()); +f_setHydrogenVehicleSliders(p_gridConnection, OL_VehicleType.TRUCK, (int)sl_hydrogenTrucksCompany.getValue()); //Update the other two sliders aswell sl_electricTrucksCompany.setValue(v_nbEVTrucks, false); @@ -1405,7 +1405,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setElectricVehicleSliders(p_gridConnection, OL_EnergyAssetType.ELECTRIC_TRUCK, (int)sl_electricTrucksCompany.getValue()); +f_setElectricVehicleSliders(p_gridConnection, OL_VehicleType.TRUCK, (int)sl_electricTrucksCompany.getValue()); //Update the other two sliders aswell sl_hydrogenTrucksCompany.setValue(v_nbHydrogenTrucks, false); @@ -1445,7 +1445,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK, (int)sl_petroleumFuelTrucksCompany.getValue()); +f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_VehicleType.TRUCK, (int)sl_petroleumFuelTrucksCompany.getValue()); //Update the other two sliders aswell sl_electricTrucksCompany.setValue(v_nbEVTrucks, false); @@ -1485,7 +1485,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setElectricVehicleSliders(p_gridConnection, OL_EnergyAssetType.ELECTRIC_VEHICLE, (int)sl_electricCarsCompany.getValue()); +f_setElectricVehicleSliders(p_gridConnection, OL_VehicleType.CAR, (int)sl_electricCarsCompany.getValue()); //Update the other two sliders aswell sl_hydrogenCarsCompany.setValue(v_nbHydrogenCars, false); @@ -1600,7 +1600,7 @@ f_setSimulateYearScreen(); false true - p_gridConnection.c_tripTrackers.forEach(tt -> tt.distanceScaling_fr = 1-sl_mobilityDemandCompanyReduction.getValue()/100); + p_gridConnection.c_tripTrackers.forEach(tt -> tt.setDistanceScaling_fr(1-sl_mobilityDemandCompanyReduction.getValue()/100)); //Set scenario to custom f_setScenario(2); @@ -1661,7 +1661,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setHydrogenVehicleSliders(p_gridConnection, OL_EnergyAssetType.HYDROGEN_VEHICLE, (int)sl_hydrogenCarsCompany.getValue()); +f_setHydrogenVehicleSliders(p_gridConnection, OL_VehicleType.CAR, (int)sl_hydrogenCarsCompany.getValue()); //Update the other two sliders aswell sl_electricCarsCompany.setValue(v_nbEVCars, false); @@ -1752,7 +1752,7 @@ f_setSimulateYearScreen(); false true //Slider function -f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, (int)sl_petroleumFuelCarsCompany.getValue()); +f_setPetroleumFuelVehicleSliders(p_gridConnection, OL_VehicleType.CAR, (int)sl_petroleumFuelCarsCompany.getValue()); //Update the other two sliders aswell sl_electricCarsCompany.setValue(v_nbEVCars, false); @@ -1842,7 +1842,7 @@ f_setSimulateYearScreen(); 0 0.0 -16777216 - + 14 @@ -4469,4 +4469,1366 @@ else{ LEFT + + 1779978293977 + + -540 + 1500 + + true + false + false + SHAPE_DRAW_2D3D + 360 + 580 + false + 0 + 0.0 + + + 1779978293979 + + 0 + 0 + + true + true + false + SHAPE_DRAW_2D3D + false + 0 + 10 + 3 + + null + SOLID + 480 + 400 + 0.0 + -7876870 + null + + + 1779978293981 + + 235 + 20 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 18 + + + CENTER + + + 1779978293983 + + 235 + 50 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 20 + + + CENTER + + + false + 1779978293985 + + 125 + 140 + + true + true + false + SHAPE_DRAW_2D3D + + false + true + if(!cb_configureVehicleTrips_dailyDistinction.isSelected()){ + for(OL_Days day : map_dayToVehicleConfigurationButtons.keySet()){ + map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.STARTTIME_H).setValue(sl_configureVehicleTrips_monday_startTime.getValue(), false); + } +} + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978293987 + + 25 + 75 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + f_activateDailyDifferenceButtons(cb_configureVehicleTrips_dailyDistinction.isSelected()); + + + + Verschil per dag + false + false + + + + false + 1779978293993 + + 20 + 355 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + c_activeVehicleConfigurationDays.size()>0 + f_confirmVehicleTripsConfiguration(v_currentTripConfiguringVehicleType); +f_closeVehicleTripsConfigurationMenu(); + + + + Voltooi voertuig rijtijden configuratie + + + + false + 1779978293995 + + 345 + 355 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + f_closeVehicleTripsConfigurationMenu(); + + + + Annuleren + + + + 1779978293997 + + 20 + 145 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978293999 + + 20 + 175 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978294001 + + 20 + 205 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978294003 + + 175 + 115 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + CENTER + + + 1779978294005 + + 290 + 115 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + CENTER + + + false + 1779978294007 + + 240 + 140 + + true + true + false + SHAPE_DRAW_2D3D + + false + true + if(!cb_configureVehicleTrips_dailyDistinction.isSelected()){ + for(OL_Days day : map_dayToVehicleConfigurationButtons.keySet()){ + map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.ENDTIME_H).setValue(sl_configureVehicleTrips_monday_endTime.getValue(), false); + } +} + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + 1779978851969 + + 20 + 235 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978865083 + + 20 + 265 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978872470 + + 20 + 295 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + 1779978873467 + + 20 + 325 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + LEFT + + + false + 1779978743333 + + 125 + 170 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978743335 + + 240 + 170 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978762553 + + 125 + 200 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978762555 + + 240 + 200 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978779735 + + 125 + 230 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978779737 + + 240 + 230 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978779739 + + 125 + 260 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978779741 + + 240 + 260 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978818847 + + 125 + 290 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978818849 + + 240 + 290 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978818851 + + 125 + 320 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.STARTTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + false + 1779978818853 + + 240 + 320 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.ENDTIME_H) + HORIZONTAL + 0 + 24 + 1 + false + + + + 1779979460602 + + 405 + 115 + + true + true + false + SHAPE_DRAW_2D + false + 0 + 0.0 + -16777216 + + + + 14 + + + CENTER + + + false + 1779979055895 + + 355 + 140 + + true + true + false + SHAPE_DRAW_2D3D + + false + true + if(!cb_configureVehicleTrips_dailyDistinction.isSelected()){ + for(OL_Days day : map_dayToVehicleConfigurationButtons.keySet()){ + map_dayToVehicleConfigurationButtons.get(day).get(OL_CustomTripTrackerValueTypes.DISTANCE_KM).setValue(sl_configureVehicleTrips_monday_dailyDistance_km.getValue(), false); + } +} + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979547564 + + 355 + 170 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979550047 + + 355 + 200 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979552296 + + 355 + 230 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979554440 + + 355 + 260 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979556745 + + 355 + 290 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979558999 + + 355 + 320 + + true + true + false + SHAPE_DRAW_2D3D + + false + false + + + map_defaultValuesCustomTripButtons.get(OL_CustomTripTrackerValueTypes.DISTANCE_KM) + HORIZONTAL + 0 + 1000 + 10 + false + + + + false + 1779979342322 + + 100 + 140 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + if(cb_configureVehicleTripsMonday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.MONDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.MONDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.MONDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsMonday.isSelected())); + + + + + true + false + + + + false + 1779979363993 + + 100 + 170 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsTuesday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.TUESDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.TUESDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.TUESDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsTuesday.isSelected())); + + + + + true + false + + + + false + 1779979365166 + + 100 + 200 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsWednesday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.WEDNESDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.WEDNESDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.WEDNESDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsWednesday.isSelected())); + + + + + true + false + + + + false + 1779979366336 + + 100 + 230 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsThursday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.THURSDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.THURSDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.THURSDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsThursday.isSelected())); + + + + + true + false + + + + false + 1779979367437 + + 100 + 260 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsFriday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.FRIDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.FRIDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.FRIDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsFriday.isSelected())); + + + + + true + false + + + + false + 1779979368460 + + 100 + 290 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsSaturday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.SATURDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.SATURDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.SATURDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsSaturday.isSelected())); + + + + + true + false + + + + false + 1779979369498 + + 100 + 320 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + false + if(cb_configureVehicleTripsSunday.isSelected()){ + c_activeVehicleConfigurationDays.add(OL_Days.SUNDAY); +} +else{ + c_activeVehicleConfigurationDays.remove(OL_Days.SUNDAY); +} +map_dayToVehicleConfigurationButtons.get(OL_Days.SUNDAY).values().forEach(button -> button.setEnabled(cb_configureVehicleTripsSunday.isSelected())); + + + + + true + false + + + + false + 1780327302671 + + 350 + 80 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + if(map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid) != null && + map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid).get(v_currentTripConfiguringVehicleType) != null){ + map_storedCustomTripButtonConfiguration.get(p_gridConnection.p_uid).remove(v_currentTripConfiguringVehicleType); + f_initializeVehicleTripsConfigurationMenuButtons(v_currentTripConfiguringVehicleType); + f_resetVehicleTypeToOriginalTripTracker(v_currentTripConfiguringVehicleType); +} + + + + reset values + + + + + + false + 1780055931342 + + 225 + 680 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + if(v_currentTripConfiguringVehicleType != OL_VehicleType.CAR){ + f_openVehicleTripsConfigurationMenu(OL_VehicleType.CAR); +} +else{ + f_closeVehicleTripsConfigurationMenu(); +} + + + + + Configureer rijtijden + + + + false + 1780055981741 + + 230 + 780 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + if(v_currentTripConfiguringVehicleType != OL_VehicleType.VAN){ + f_openVehicleTripsConfigurationMenu(OL_VehicleType.VAN); +} +else{ + f_closeVehicleTripsConfigurationMenu(); +} + + + + Configureer rijtijden + + + + false + 1780056008958 + + 230 + 880 + + true + true + false + SHAPE_DRAW_2D3D + + false + -16777216 + true + if(v_currentTripConfiguringVehicleType != OL_VehicleType.TRUCK){ + f_openVehicleTripsConfigurationMenu(OL_VehicleType.TRUCK); +} +else{ + f_closeVehicleTripsConfigurationMenu(); +} + + + + Configureer rijtijden + + diff --git a/_alp/Agents/UI_company/Variables.xml b/_alp/Agents/UI_company/Variables.xml index fd2f952..05b15b1 100644 --- a/_alp/Agents/UI_company/Variables.xml +++ b/_alp/Agents/UI_company/Variables.xml @@ -1195,6 +1195,25 @@ + + 1780048211151 + + -510 + 1970 + + false + true + true + + + + 1708522385741 @@ -1380,4 +1399,264 @@ + + 1780047198411 + + -510 + 2100 + + false + true + true + + >]]> + NONE + false + + + + + 1780047198409 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780056229923 + + + -490 + 2240 + + false + true + true + + >>>]]> + NONE + false + + ()]]> + + + 1780056229921 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780063210798 + + New triptracker to original triptracker. +-> When new triptracker is replaced again, the newest triptracker should get the original triptracker as value again.]]> + -470 + 2300 + + false + true + true + + >]]> + NONE + false + + ()]]> + + + 1780063210796 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780063471821 + + + -490 + 2220 + + false + true + true + + >>>]]> + NONE + false + + ()]]> + + + 1780063471819 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780321005273 + + -490 + 2010 + + false + true + true + + ]]> + NONE + false + + + + + 1780321005271 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780322253514 + + -510 + 2120 + + false + true + true + + ]]> + NONE + false + + + + + 1780322253512 + TEXT_BOX + 0 + 100 + NO_DELIMETER + + + + + 1780043469444 + + -510 + 2140 + + false + true + true + + LinkedHashSet + OL_Days + String + + + + + diff --git a/_alp/Agents/Zero_Interface/Code/Functions.java b/_alp/Agents/Zero_Interface/Code/Functions.java index bceaf9d..5fa18fa 100644 --- a/_alp/Agents/Zero_Interface/Code/Functions.java +++ b/_alp/Agents/Zero_Interface/Code/Functions.java @@ -511,7 +511,11 @@ else if (previousClickedObjectType == OL_GISObjectType.BUILDING || } } -c_orderedVehicles = otherEAs; +ArrayList orderedVehicleList = new ArrayList<>(); +for(J_EA vehicle : otherEAs){ + orderedVehicleList.add((I_Vehicle)vehicle); +} +c_orderedVehicles = orderedVehicleList; /*ALCODEEND*/} double f_initialHeatingSystemsOrder() @@ -1968,11 +1972,11 @@ Pair f_getPresentationPositionIteration( collectionPointerV2GChargers.add(gc); } - if ( !gc.p_isChargingCentre ) { //Should maybe be a check for charger capabilities as well? - c_orderedPublicChargers.add(gc); - } + //Add to total public charger collection + c_orderedPublicChargers.add(gc); } +//Add all inactive chargers at the end of the list. c_orderedV1GChargers.addAll( c_inactiveV1GChargers ); c_orderedV2GChargers.addAll( c_inactiveV2GChargers ); diff --git a/_alp/Agents/Zero_Interface/EmbeddedObjects.xml b/_alp/Agents/Zero_Interface/EmbeddedObjects.xml index efe4597..8cdcbbe 100644 --- a/_alp/Agents/Zero_Interface/EmbeddedObjects.xml +++ b/_alp/Agents/Zero_Interface/EmbeddedObjects.xml @@ -45,6 +45,24 @@ + + + + + + + + + + + + + + + + + + true diff --git a/_alp/Agents/Zero_Interface/Variables.xml b/_alp/Agents/Zero_Interface/Variables.xml index 23551d4..7be6f94 100644 --- a/_alp/Agents/Zero_Interface/Variables.xml +++ b/_alp/Agents/Zero_Interface/Variables.xml @@ -3000,7 +3000,7 @@ OL_FilterOptionsGC.MANUAL_SELECTION, "Handmatige selectie" true ArrayList - J_EA + I_Vehicle String diff --git a/_alp/Agents/Zero_Loader/Code/Functions.java b/_alp/Agents/Zero_Loader/Code/Functions.java index 0244dda..5117ac2 100644 --- a/_alp/Agents/Zero_Loader/Code/Functions.java +++ b/_alp/Agents/Zero_Loader/Code/Functions.java @@ -1290,7 +1290,7 @@ else if (surveyGC.getHeat().getHeatingTypes().size() == 0) { return heatingType; /*ALCODEEND*/} -J_EAEV f_addElectricVehicle(GridConnection parentGC,OL_EnergyAssetType vehicle_type,boolean isDefaultVehicle,double annualTravelDistance_km,double maxChargingPower_kW) +J_EAEV f_addElectricVehicle(GridConnection parentGC,OL_VehicleType vehicleType,boolean isDefaultVehicle,double annualTravelDistance_km,double maxChargingPower_kW) {/*ALCODESTART::1726584205827*/ double storageCapacity_kWh = 0; double energyConsumption_kWhpkm = 0; @@ -1299,7 +1299,7 @@ J_EAEV f_addElectricVehicle(GridConnection parentGC,OL_EnergyAssetType vehicle_t J_TimeParameters timeParameters = energyModel.p_timeParameters; double vehicleScaling = 1.0; -switch(vehicle_type){ +switch(vehicleType){ /* case ELECTRIC_VEHICLE_COMUTERS: // ??? Hoe laad je andere laadprofielen in.?? Deze moet ander laadprofiel dan de Standaard Electric_vehicle @@ -1309,19 +1309,19 @@ J_EAEV f_addElectricVehicle(GridConnection parentGC,OL_EnergyAssetType vehicle_t break; */ - case ELECTRIC_VEHICLE: + case CAR: capacityElectricity_kW = avgc_data.p_avgEVMaxChargePowerCar_kW; storageCapacity_kWh = avgc_data.p_avgEVStorageCar_kWh; energyConsumption_kWhpkm = avgc_data.p_avgEVEnergyConsumptionCar_kWhpkm; break; - case ELECTRIC_VAN: + case VAN: capacityElectricity_kW = avgc_data.p_avgEVMaxChargePowerVan_kW; storageCapacity_kWh = avgc_data.p_avgEVStorageVan_kWh; energyConsumption_kWhpkm = avgc_data.p_avgEVEnergyConsumptionVan_kWhpkm; break; - case ELECTRIC_TRUCK: + case TRUCK: capacityElectricity_kW = avgc_data.p_avgEVMaxChargePowerTruck_kW; storageCapacity_kWh = avgc_data.p_avgEVStorageTruck_kWh; energyConsumption_kWhpkm = avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; @@ -1337,47 +1337,47 @@ J_EAEV f_addElectricVehicle(GridConnection parentGC,OL_EnergyAssetType vehicle_t } //Create the EV vehicle energy asset with the set parameters + links -J_EAEV electricVehicle = new J_EAEV(parentGC, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timeParameters, energyConsumption_kWhpkm, vehicleScaling, vehicle_type, null); +J_EAEV electricVehicle = new J_EAEV(parentGC, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timeParameters, energyConsumption_kWhpkm, vehicleScaling, vehicleType, null); if (!isDefaultVehicle && annualTravelDistance_km > avgc_data.p_minAnnualTravelDistanceSurveyVehicle_km){ electricVehicle.getTripTracker().setAnnualDistance_km(annualTravelDistance_km); } -else if (vehicle_type == OL_EnergyAssetType.ELECTRIC_VAN){ +else if (vehicleType == OL_VehicleType.VAN){ electricVehicle.getTripTracker().setAnnualDistance_km(avgc_data.p_avgAnnualTravelDistanceVan_km); } return electricVehicle; /*ALCODEEND*/} -J_EAFuelVehicle f_addPetroleumFuelVehicle(GridConnection parentGC,OL_EnergyAssetType vehicle_type,Boolean isDefaultVehicle,double annualTravelDistance_km) +J_EAFuelVehicle f_addPetroleumFuelVehicle(GridConnection parentGC,OL_VehicleType vehicleType,Boolean isDefaultVehicle,double annualTravelDistance_km) {/*ALCODESTART::1726584205829*/ double energyConsumption_kWhpkm = 0; double vehicleScaling = 1.0; //PetroleumFuel car -switch (vehicle_type){ +switch (vehicleType){ - case PETROLEUM_FUEL_VEHICLE: + case CAR: energyConsumption_kWhpkm = roundToDecimal(uniform(0.7, 1.3),2) * avgc_data.p_avgGasolineConsumptionCar_kWhpkm; break; - case PETROLEUM_FUEL_VAN: + case VAN: energyConsumption_kWhpkm = avgc_data.p_avgDieselConsumptionVan_kWhpkm; break; - case PETROLEUM_FUEL_TRUCK: + case TRUCK: energyConsumption_kWhpkm = avgc_data.p_avgDieselConsumptionTruck_kWhpkm; break; } //Create EA -J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, energyModel.p_timeParameters, vehicleScaling, vehicle_type, null, OL_EnergyCarriers.PETROLEUM_FUEL); +J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, energyModel.p_timeParameters, vehicleScaling, vehicleType, null, OL_EnergyCarriers.PETROLEUM_FUEL); //Set annual travel distance if (!isDefaultVehicle && annualTravelDistance_km > avgc_data.p_minAnnualTravelDistanceSurveyVehicle_km){ petroleumFuelVehicle.getTripTracker().setAnnualDistance_km(annualTravelDistance_km); } -else if (vehicle_type == OL_EnergyAssetType.PETROLEUM_FUEL_VAN){ +else if (vehicleType == OL_VehicleType.VAN){ petroleumFuelVehicle.getTripTracker().setAnnualDistance_km(avgc_data.p_avgAnnualTravelDistanceVan_km); } @@ -1513,7 +1513,7 @@ else if (vehicle_type == OL_EnergyAssetType.PETROLEUM_FUEL_VAN){ int nbCars = 0; int ceiledRemainingNumberOfCarsPerCompany = p_remainingTotals.getCeiledRemainingNumberOfVehiclesPerCompany(companyGC, OL_VehicleType.CAR); for (int k = 0; k < ceiledRemainingNumberOfCarsPerCompany; k++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, true, 0); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.CAR, true, 0); p_remainingTotals.adjustRemainingNumberOfVehiclesCompanies(companyGC, OL_VehicleType.CAR, - 1); nbCars++; } @@ -1532,7 +1532,7 @@ else if (vehicle_type == OL_EnergyAssetType.PETROLEUM_FUEL_VAN){ int nbVans = 0; int ceiledRemainingNumberOfVansPerCompany = p_remainingTotals.getCeiledRemainingNumberOfVehiclesPerCompany(companyGC, OL_VehicleType.VAN); for (int k = 0; k< ceiledRemainingNumberOfVansPerCompany; k++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_VAN, true, 0); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.VAN, true, 0); p_remainingTotals.adjustRemainingNumberOfVehiclesCompanies(companyGC, OL_VehicleType.VAN, - 1); nbVans++; } @@ -1551,7 +1551,7 @@ else if (vehicle_type == OL_EnergyAssetType.PETROLEUM_FUEL_VAN){ int nbTrucks= 0; int ceiledRemainingNumberOfTrucksPerCompany = p_remainingTotals.getCeiledRemainingNumberOfVehiclesPerCompany(companyGC, OL_VehicleType.TRUCK); for (int k = 0; k< ceiledRemainingNumberOfTrucksPerCompany; k++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK, true, 0); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.TRUCK, true, 0); p_remainingTotals.adjustRemainingNumberOfVehiclesCompanies(companyGC, OL_VehicleType.TRUCK, - 1); nbTrucks++; } @@ -1591,35 +1591,33 @@ else if (vehicle_type == OL_EnergyAssetType.PETROLEUM_FUEL_VAN){ } /*ALCODEEND*/} -double f_addTransportHydrogen(GridConnection parentGC,OL_EnergyAssetType vehicle_type,boolean isDefaultVehicle,double annualTravelDistance_km) +double f_addTransportHydrogen(GridConnection parentGC,OL_VehicleType vehicleType,boolean isDefaultVehicle,double annualTravelDistance_km) {/*ALCODESTART::1726584205837*/ double energyConsumption_kWhpkm = 0; double vehicleScaling = 1.0; //Hydrogen car -switch (vehicle_type){ +switch (vehicleType){ - case HYDROGEN_VEHICLE: + case CAR: energyConsumption_kWhpkm = avgc_data.p_avgHydrogenConsumptionCar_kWhpkm; - break; - - case HYDROGEN_VAN: + break; + case VAN: energyConsumption_kWhpkm = avgc_data.p_avgHydrogenConsumptionVan_kWhpkm; - break; - - case HYDROGEN_TRUCK: + break; + case TRUCK: energyConsumption_kWhpkm = avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; - break; + break; } //Create EA -J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, energyModel.p_timeParameters, vehicleScaling, vehicle_type, null, OL_EnergyCarriers.HYDROGEN); +J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(parentGC, energyConsumption_kWhpkm, energyModel.p_timeParameters, vehicleScaling, vehicleType, null, OL_EnergyCarriers.HYDROGEN); //Set annual travel distance if (!isDefaultVehicle && annualTravelDistance_km > avgc_data.p_minAnnualTravelDistanceSurveyVehicle_km){ hydrogenVehicle.getTripTracker().setAnnualDistance_km(annualTravelDistance_km); } -else if (vehicle_type == OL_EnergyAssetType.HYDROGEN_VAN){ +else if (vehicleType == OL_VehicleType.VAN){ hydrogenVehicle.getTripTracker().setAnnualDistance_km(avgc_data.p_avgAnnualTravelDistanceVan_km); } /*ALCODEEND*/} @@ -1656,19 +1654,11 @@ String f_createChargerPolygon(double lat,double lon) GCPublicCharger chargingStation = energyModel.add_PublicChargers(); chargingStation.p_gridConnectionID = dataChargingStation.gc_id(); chargingStation.p_ownerID = dataChargingStation.owner_id(); - chargingStation.p_isChargingCentre = dataChargingStation.is_charging_centre(); //Make owner name if it is not filled in (used for display on UI). if (dataChargingStation.owner_id() == null){ - if(chargingStation.p_isChargingCentre){ - chargingStation.p_ownerID = "Publiek laadcentrum " + laadCentrum_nr; - laadCentrum_nr++; - } - else{ - chargingStation.p_ownerID = "Publieke laadpaal " + laadpaal_nr; - laadpaal_nr++; - - } + chargingStation.p_ownerID = "Publiek laadpunt " + laadpaal_nr; + laadpaal_nr++; } //Create and connect ConnectionOwner @@ -1702,8 +1692,8 @@ String f_createChargerPolygon(double lat,double lon) //Default charger parameters - double numberOfSockets = dataChargingStation.number_of_chargers() != null ? dataChargingStation.number_of_chargers() : avgc_data.p_defaultNrOfSocketsPerCharger; - double maxPowerPerSocket_kW = dataChargingStation.power_per_charger_kw() != null ? dataChargingStation.power_per_charger_kw() : avgc_data.p_avgEVMaxChargePowerCar_kW; + double numberOfSockets = dataChargingStation.number_of_sockets() != null ? dataChargingStation.number_of_sockets() : avgc_data.p_defaultNrOfSocketsPerCharger; + double maxPowerPerSocket_kW = dataChargingStation.power_per_socket_kw() != null ? dataChargingStation.power_per_socket_kw() : avgc_data.p_avgEVMaxChargePowerCar_kW; //Assumption is all chargepoints are the same for one GCPublicCharger boolean V1GCapable = true; //randomTrue(avgc_data.p_v1gProbability); @@ -1712,8 +1702,7 @@ String f_createChargerPolygon(double lat,double lon) chargingStation.f_setChargingManagement(new J_ChargingManagementSimple(chargingStation, energyModel.p_timeParameters)); //Create chargingsession/vehicles - if(dataChargingStation.vehicle_type() == OL_EnergyAssetType.CHARGER){ - + if(dataChargingStation.uses_charging_sessions()){ int sessionSocketNr = 0; List chargerProfile = f_getChargerProfile(); for(int i = 0; i< numberOfSockets; i++){ @@ -1733,14 +1722,8 @@ String f_createChargerPolygon(double lat,double lon) //Get polygonString for GIS object - String polygonString; - if (chargingStation.p_isChargingCentre) { - if(dataChargingStation.polygon() == null){ - throw new RuntimeException("Trying to make a charging CENTRE without specifying the polygon, this is only possible for a single charge POLE"); - } - polygonString = dataChargingStation.polygon(); - } - else{ + String polygonString = dataChargingStation.polygon(); + if (polygonString == null || polygonString.equals("")) { polygonString = f_createChargerPolygon(dataChargingStation.latitude(), dataChargingStation.longitude()); } @@ -2426,7 +2409,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio double maxChargingPower_kW = avgc_data.p_avgEVMaxChargePowerCar_kW; for (int i = 0; i< nbPetroleumFuelCarsComute; i++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, isDefaultVehicle, 0); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.CAR, isDefaultVehicle, 0); } @@ -2443,7 +2426,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio if (createElectricEA){ // Check if electric demand EA should be created for (int j = 0; j< nbEVCarsComute; j++){ - f_addElectricVehicle(companyGC, OL_EnergyAssetType.ELECTRIC_VEHICLE, isDefaultVehicle, 0, maxChargingPower_kW); + f_addElectricVehicle(companyGC, OL_VehicleType.CAR, isDefaultVehicle, 0, maxChargingPower_kW); } } @@ -2487,7 +2470,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create petroleumFuel vehicle for (int i = 0; i< nbPetroleumFuelCars; i++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, isDefaultVehicle, annualTravelDistance_km); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.CAR, isDefaultVehicle, annualTravelDistance_km); } //Get number of chargepoints if filled in @@ -2507,7 +2490,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create EV if (createElectricEA){ // Check if electric demand EA should be created for (int j = 0; j< nbEVCars; j++){ - f_addElectricVehicle(companyGC, OL_EnergyAssetType.ELECTRIC_VEHICLE, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); + f_addElectricVehicle(companyGC, OL_VehicleType.CAR, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); } } @@ -2547,7 +2530,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create petroleumFuel vehicles for (int i = 0; i< nbPetroleumFuelVans; i++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_VAN, isDefaultVehicle, annualTravelDistance_km); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.VAN, isDefaultVehicle, annualTravelDistance_km); } //Get number of chargepoints if filled in @@ -2568,7 +2551,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create electric vehicles if (createElectricEA){ // Check if electric demand EA should be created for (int j = 0; j< nbEVVans; j++){ - f_addElectricVehicle(companyGC, OL_EnergyAssetType.ELECTRIC_VAN, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); + f_addElectricVehicle(companyGC, OL_VehicleType.VAN, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); } } @@ -2608,7 +2591,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create petroleumFuel vehicles for (int i = 0; i< nbPetroleumFuelTrucks; i++){ - f_addPetroleumFuelVehicle(companyGC, OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK, isDefaultVehicle, annualTravelDistance_km); + f_addPetroleumFuelVehicle(companyGC, OL_VehicleType.TRUCK, isDefaultVehicle, annualTravelDistance_km); } //Get number of chargepoints if filled in @@ -2629,7 +2612,7 @@ else if (gridConnection.getSupply().getPvInstalledKwp() != null && gridConnectio //create electric vehicles if (createElectricEA){ // Check if electric demand EA should be created for (int j = 0; j< nbEVTrucks; j++){ - f_addElectricVehicle(companyGC, OL_EnergyAssetType.ELECTRIC_TRUCK, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); + f_addElectricVehicle(companyGC, OL_VehicleType.TRUCK, isDefaultVehicle, annualTravelDistance_km, maxChargingPower_kW); } } @@ -3282,7 +3265,7 @@ List f_getChargerProfile() OL_EnergyAssetType energyAssetType; OL_EnergyCarriers energyCarrier; if(cookingType == OL_HouseholdCookingMethod.GAS){ - energyAssetType = OL_EnergyAssetType.GAS_PIT; + energyAssetType = OL_EnergyAssetType.GAS_HOB; energyCarrier = OL_EnergyCarriers.METHANE; } else if(cookingType == OL_HouseholdCookingMethod.ELECTRIC){ @@ -4455,7 +4438,7 @@ else if (surveyGC.getHeat() != null && surveyGC.getHeat().getAnnualDistrictHeati //Oprit? -> only then you should have a chance to start with EV (public ev is not supported by sliders, public chargepoint is then used instead) if( house.p_eigenOprit){ if (randomTrue( avgc_data.p_shareOfElectricVehicleOwnership)){ - J_EAEV ev = f_addElectricVehicle(house, OL_EnergyAssetType.ELECTRIC_VEHICLE, true, 0, 0); + J_EAEV ev = f_addElectricVehicle(house, OL_VehicleType.CAR, true, 0, 0); ev.getTripTracker().setAnnualDistance_km(ev.getTripTracker().getAnnualDistance_km()*tripTrackerScaling); //Set Default charging management if(house.f_getCurrentChargingType() == OL_ChargingAttitude.NONE){ @@ -4463,12 +4446,12 @@ else if (surveyGC.getHeat() != null && surveyGC.getHeat().getAnnualDistrictHeati } } else{ - J_EAFuelVehicle petroleumFuelVehicle = f_addPetroleumFuelVehicle(house, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, true, 0); + J_EAFuelVehicle petroleumFuelVehicle = f_addPetroleumFuelVehicle(house, OL_VehicleType.CAR, true, 0); petroleumFuelVehicle.getTripTracker().setAnnualDistance_km(petroleumFuelVehicle.getTripTracker().getAnnualDistance_km()*tripTrackerScaling); } } else { - J_EAFuelVehicle petroleumFuelVehicle = f_addPetroleumFuelVehicle(house, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, true, 0); + J_EAFuelVehicle petroleumFuelVehicle = f_addPetroleumFuelVehicle(house, OL_VehicleType.CAR, true, 0); petroleumFuelVehicle.getTripTracker().setAnnualDistance_km(petroleumFuelVehicle.getTripTracker().getAnnualDistance_km()*tripTrackerScaling); } } diff --git a/_alp/Agents/Zero_Loader/Code/Functions.xml b/_alp/Agents/Zero_Loader/Code/Functions.xml index a02b1ca..85c0366 100644 --- a/_alp/Agents/Zero_Loader/Code/Functions.xml +++ b/_alp/Agents/Zero_Loader/Code/Functions.xml @@ -444,8 +444,8 @@ - - + + @@ -480,8 +480,8 @@ - - + + @@ -581,8 +581,8 @@ - - + + diff --git a/_alp/Agents/tabElectricity/Code/Functions.java b/_alp/Agents/tabElectricity/Code/Functions.java index 029fe10..6695cce 100644 --- a/_alp/Agents/tabElectricity/Code/Functions.java +++ b/_alp/Agents/tabElectricity/Code/Functions.java @@ -375,7 +375,7 @@ else if ( gc instanceof GCUtility ) { cookingAsset.removeEnergyAsset(); J_ProfilePointer pp = zero_Interface.energyModel.f_findProfile("default_house_cooking_demand_fr"); - new J_EAConsumption(house, OL_EnergyAssetType.GAS_PIT, "default_house_cooking_demand_fr", yearlyCookingDemand_kWh, OL_EnergyCarriers.METHANE, zero_Interface.energyModel.p_timeParameters, pp); + new J_EAConsumption(house, OL_EnergyAssetType.GAS_HOB, "default_house_cooking_demand_fr", yearlyCookingDemand_kWh, OL_EnergyCarriers.METHANE, zero_Interface.energyModel.p_timeParameters, pp); house.p_cookingMethod = OL_HouseholdCookingMethod.GAS; nbHousesWithElectricCooking --; } @@ -390,7 +390,7 @@ else if ( gc instanceof GCUtility ) { throw new RuntimeException("No gridconnection without GAS cooking asset found! Current electric cooking count: " + nbHousesWithElectricCooking); } else { - J_EAConsumption cookingAsset = findFirst(house.c_consumptionAssets, p -> p.getEAType() == OL_EnergyAssetType.GAS_PIT ); + J_EAConsumption cookingAsset = findFirst(house.c_consumptionAssets, p -> p.getEAType() == OL_EnergyAssetType.GAS_HOB ); if (cookingAsset != null) { double yearlyCookingDemand_kWh = cookingAsset.getBaseConsumption_kWh(); cookingAsset.removeEnergyAsset(); diff --git a/_alp/Agents/tabMobility/Code/Functions.java b/_alp/Agents/tabMobility/Code/Functions.java index 7e4b694..5216e77 100644 --- a/_alp/Agents/tabMobility/Code/Functions.java +++ b/_alp/Agents/tabMobility/Code/Functions.java @@ -68,7 +68,7 @@ for (GridConnection gc : gcList) { for (I_Vehicle vehicle : gc.c_vehicleAssets) { - vehicle.getTripTracker().distanceScaling_fr = scalingFactor; + vehicle.getTripTracker().setDistanceScaling_fr(scalingFactor); } } @@ -323,7 +323,7 @@ boolean f_petroleumFuelToElectricTruck(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker, available); + J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_VehicleType.TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricTruck); @@ -382,7 +382,7 @@ boolean f_hydrogenToElectricTruck(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker, available); + J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_VehicleType.TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricTruck); @@ -436,7 +436,7 @@ boolean f_electricToHydrogenTruck(List gcList) // Re-add hydrogen vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker, OL_EnergyCarriers.HYDROGEN, available); + J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.TRUCK, tripTracker, OL_EnergyCarriers.HYDROGEN, available); zero_Interface.c_orderedVehicles.add(0, hydrogenVehicle); @@ -485,7 +485,7 @@ boolean f_petroleumFuelToHydrogenTruck(List gcList) // Re-add hydrogen vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker, OL_EnergyCarriers.HYDROGEN, available); + J_EAFuelVehicle hydrogenVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.TRUCK, tripTracker, OL_EnergyCarriers.HYDROGEN, available); zero_Interface.c_orderedVehicles.add(0, hydrogenVehicle); @@ -534,7 +534,7 @@ boolean f_electricToPetroleumFuelTruck(List gcList) // Re-add petroleumFuel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); + J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.TRUCK, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); zero_Interface.c_orderedVehicles.add(0, petroleumFuelVehicle); @@ -583,7 +583,7 @@ boolean f_hydrogenToPetroleumFuelTruck(List gcList) // Re-add petroleumFuel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); + J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.TRUCK, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); zero_Interface.c_orderedVehicles.add(0, petroleumFuelVehicle); @@ -695,7 +695,7 @@ boolean f_petroleumFuelToElectricVan(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionVan_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricVan = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VAN, tripTracker, available); + J_EAEV electricVan = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_VehicleType.VAN, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricVan); @@ -750,7 +750,7 @@ boolean f_electricToPetroleumFuelVan(List gcList) // Re-add petroleumFuel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionVan_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.PETROLEUM_FUEL_VAN, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); + J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.VAN, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); zero_Interface.c_orderedVehicles.add(0, petroleumFuelVehicle); @@ -801,7 +801,7 @@ boolean f_petroleumFuelToElectricCar(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionCar_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricCar = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VEHICLE, tripTracker, available); + J_EAEV electricCar = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, vehicleScalingElectric, OL_VehicleType.CAR, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricCar); @@ -856,7 +856,7 @@ boolean f_electricToPetroleumFuelCar(List gcList) // Re-add petroleumFuel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgGasolineConsumptionCar_kWhpkm; double vehicleScaling = 1.0; - J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); + J_EAFuelVehicle petroleumFuelVehicle = new J_EAFuelVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, vehicleScaling, OL_VehicleType.CAR, tripTracker, OL_EnergyCarriers.PETROLEUM_FUEL, available); zero_Interface.c_orderedVehicles.add(0, petroleumFuelVehicle); @@ -1682,7 +1682,7 @@ else if(page == gr_mobilitySliders_companies){ j_ea.removeEnergyAsset(); gcListOrderedVehiclesPrivateParking.remove(j_ea); zero_Interface.c_orderedVehiclesPrivateParking.remove(j_ea); - J_EAFuelVehicle petroleumFuelCar = new J_EAFuelVehicle(j_ea.getOwner(), energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, 1, OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE, triptracker, OL_EnergyCarriers.PETROLEUM_FUEL, availability); + J_EAFuelVehicle petroleumFuelCar = new J_EAFuelVehicle(j_ea.getOwner(), energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeParameters, 1, OL_VehicleType.CAR, triptracker, OL_EnergyCarriers.PETROLEUM_FUEL, availability); gcListOrderedVehiclesPrivateParking.add(petroleumFuelCar); zero_Interface.c_orderedVehiclesPrivateParking.add(petroleumFuelCar); nbOfPrivateParkedEV --; @@ -1700,7 +1700,7 @@ else if(page == gr_mobilitySliders_companies){ zero_Interface.c_orderedVehiclesPrivateParking.remove(petroleumFuelVehicle); double capacityElectricity_kW = randomTrue(0.6) ? randomTrue(0.4) ? 3.2 : 5.6 : 11.0; double storageCapacity_kWh = uniform_discr(65,90); - J_EAEV ev = new J_EAEV(petroleumFuelVehicle.getOwner(), capacityElectricity_kW, storageCapacity_kWh, 1, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, 1, OL_EnergyAssetType.ELECTRIC_VEHICLE, triptracker, availability); + J_EAEV ev = new J_EAEV(petroleumFuelVehicle.getOwner(), capacityElectricity_kW, storageCapacity_kWh, 1, zero_Interface.energyModel.p_timeParameters, energyConsumption_kWhpkm, 1, OL_VehicleType.CAR, triptracker, availability); //Check if charging management is present if not: add default management if(((GridConnection)petroleumFuelVehicle.getOwner()).f_getCurrentChargingType() == OL_ChargingAttitude.NONE){ diff --git a/_alp/Classes/Class.Chargingstation_data.java b/_alp/Classes/Class.Chargingstation_data.java index 9940048..17f8934 100644 --- a/_alp/Classes/Class.Chargingstation_data.java +++ b/_alp/Classes/Class.Chargingstation_data.java @@ -17,10 +17,11 @@ public class Chargingstation_data { String city; String gridnode_id; Double connection_capacity_kw; - boolean is_charging_centre; - OL_EnergyAssetType vehicle_type; - Integer number_of_chargers; - Double power_per_charger_kw; + //boolean is_charging_centre; + OL_VehicleType vehicle_type; + boolean uses_charging_sessions; + Integer number_of_sockets; + Double power_per_socket_kw; boolean initially_active; double latitude; double longitude; diff --git a/_alp/Classes/Class.J_CustomTripTrackerGenerator.java b/_alp/Classes/Class.J_CustomTripTrackerGenerator.java new file mode 100644 index 0000000..d60ed39 --- /dev/null +++ b/_alp/Classes/Class.J_CustomTripTrackerGenerator.java @@ -0,0 +1,119 @@ +/** + * J_CustomTripTrackerGenerator + */ +public class J_CustomTripTrackerGenerator { + public static Map> getCustomTripTrackerValues(Map tripStartTime_hourOfDay, Map tripEndTime_hourOfDay, Map tripTravelDistance_km) { + + //Validate + if(!checkIfCustomTripInputsAreValid(tripStartTime_hourOfDay, tripEndTime_hourOfDay, tripTravelDistance_km)) { + throw new IllegalArgumentException("Invalid trip inputs."); + } + + List startTimes_h = new ArrayList<>(); + List endTimes_h = new ArrayList<>(); + List distances_km = new ArrayList<>(); + + // Collect start/end hours per active day (in week order = already sorted within each list) + List startHours = new ArrayList<>(); + List startDistances = new ArrayList<>(); + List endHours = new ArrayList<>(); + for(OL_Days day : getOrderedDaysList()) { + if(!tripStartTime_hourOfDay.containsKey(day)) continue; + double offset = getOffSetSinceStartOfWeek_h(day); + startHours.add(tripStartTime_hourOfDay.get(day) + offset); + startDistances.add(tripTravelDistance_km.get(day)); + endHours.add(tripEndTime_hourOfDay.get(day) + offset); + } + + int n = startHours.size(); + if(n > 0) { + // Wrap-around exists if the first end happens before the first start chronologically + boolean hasWrap = endHours.get(0) < startHours.get(0); + + if(hasWrap) { + // Last start pairs with first end (+168) — split at the 168h boundary. + double lastStart = startHours.get(n - 1); + double lastDistance = startDistances.get(n - 1); + double firstEnd = endHours.get(0); + double totalDuration_h = (168.0 - lastStart) + firstEnd; + + // Start-of-week segment (wrap remainder) + startTimes_h.add(0.0); + endTimes_h.add(firstEnd); + distances_km.add(lastDistance * firstEnd / totalDuration_h); + + // Middle pairs: start[i] with end[i+1] + for(int i = 0; i < n - 1; i++) { + startTimes_h.add(startHours.get(i)); + endTimes_h.add(endHours.get(i + 1)); + distances_km.add(startDistances.get(i)); + } + + // End-of-week segment + startTimes_h.add(lastStart); + endTimes_h.add(168.0); + distances_km.add(lastDistance * (168.0 - lastStart) / totalDuration_h); + } else { + // No wrap: each start[i] pairs with end[i] + for(int i = 0; i < n; i++) { + startTimes_h.add(startHours.get(i)); + endTimes_h.add(endHours.get(i)); + distances_km.add(startDistances.get(i)); + } + } + } + + Map> result = new HashMap<>(); + result.put(OL_CustomTripTrackerValueTypes.STARTTIME_H, startTimes_h); + result.put(OL_CustomTripTrackerValueTypes.ENDTIME_H, endTimes_h); + result.put(OL_CustomTripTrackerValueTypes.DISTANCE_KM, distances_km); + return result; + } + + public static boolean checkIfCustomTripInputsAreValid(Map tripStartTime_hourOfDay, Map tripEndTime_hourOfDay, Map tripTravelDistance_km) { + Boolean allOvernight = null; + for(OL_Days day : getOrderedDaysList()) { + if(!tripStartTime_hourOfDay.containsKey(day)) continue; + double s = tripStartTime_hourOfDay.get(day); + double e = tripEndTime_hourOfDay.get(day); + if(s == e) return false; + boolean isOvernight = s > e; + if(allOvernight == null) allOvernight = isOvernight; + else if(allOvernight != isOvernight) return false; + } + return true; + } + + private static double getOffSetSinceStartOfWeek_h(OL_Days day) { + switch(day) { + case MONDAY: + return 0; + case TUESDAY: + return 24; + case WEDNESDAY: + return 48; + case THURSDAY: + return 72; + case FRIDAY: + return 96; + case SATURDAY: + return 120; + case SUNDAY: + return 144; + default: + throw new RuntimeException("Day found that should not exist."); + } + } + + public static List getOrderedDaysList(){ + return List.of( + OL_Days.MONDAY, + OL_Days.TUESDAY, + OL_Days.WEDNESDAY, + OL_Days.THURSDAY, + OL_Days.FRIDAY, + OL_Days.SATURDAY, + OL_Days.SUNDAY + ); + } +} \ No newline at end of file diff --git a/_alp/Classes/Class.J_ModelSave.java b/_alp/Classes/Class.J_ModelSave.java index 2fa6bc2..66aefaf 100644 --- a/_alp/Classes/Class.J_ModelSave.java +++ b/_alp/Classes/Class.J_ModelSave.java @@ -14,7 +14,7 @@ public class J_ModelSave implements Serializable { public ArrayList c_orderedPVSystemsCompanies; public ArrayList c_orderedPVSystemsHouses; - public ArrayList c_orderedVehicles; + public ArrayList c_orderedVehicles; public ArrayList c_orderedHeatingSystemsCompanies; public ArrayList c_orderedHeatingSystemsHouses; public ArrayList c_orderedActiveVehiclesPublicParking; diff --git a/_alp/ModelResources.xml b/_alp/ModelResources.xml index 6fcb1f4..fa8b3e5 100644 --- a/_alp/ModelResources.xml +++ b/_alp/ModelResources.xml @@ -115,14 +115,14 @@ FILE_SYSTEM - 1776931922142 - vallum-production-861-41ea4ca-all.jar + 1777376766232 + icon_arrow.png false FILE_SYSTEM - 1777376766232 - icon_arrow.png + 1779895101088 + vallum-main-863-c779e37-all.jar false FILE_SYSTEM