def GenerateAddVehicleEvent(self, trip): """ GenerateAddVehicleEvent -- generate an AddVehicle event to start a new trip trip -- Trip object initialized with traveler, vehicle and destination information """ #vname = str(trip.VehicleName) #vtype = str(trip.VehicleType) #rname = str(trip.Source.Capsule.DestinationName) #tname = str(trip.Destination.Capsule.SourceName) v = Vehicle() v.Name = trip.VehicleName v.Type = trip.VehicleType v.Route = trip.Source.Capsule.DestinationName v.Target = trip.Destination.Capsule.SourceName self.frame.add(v) self.__Logger.debug('add vehicle %s of type %s from %s to %s', v.Name, v.Type, v.Route, v.Target) # save the trip so that when the vehicle arrives we can get the trip # that caused the car to be created self.TripCallbackMap[v.Name] = trip
def update(self): self.CurrentStep = self.frame.step if not self.mybusiness: a = self.frame.get(EmptyBusiness) if len(a) > 0: pn = PrimeNode() pn.ID = a[0].ID pn.Name = "Amazon" pn.PeakCustomerCount = 0 pn.Rezcap = a[0].Rezcap self.frame.add(pn) self.mybusiness = pn self.frame.disable_subset(EmptyBusiness) if self.CurrentStep in self.schedule_deliveries: for c in self.schedule_deliveries[self.CurrentStep]: if hasattr(c.LivesAt, "Rezcap"): v = Vehicle() v.Name = "AmazonTo%s_%s" % (c.Name, randint(0, 100)) v.Type = c.Vehicle.VehicleType v.Route = self.mybusiness.Rezcap.DestinationName v.Target = c.LivesAt.Rezcap.SourceName self.frame.add(v) self.__Logger.info("starting amazon delivery to %s", c.Name) else: self.__Logger.debug("User %s is homeless (%s)", c.Name, c.LivesAt) del self.schedule_deliveries[self.CurrentStep] if self.mybusiness and len(self.schedule_deliveries) == 0: self.add_deliveries()
def update(self): self.CurrentStep = self.frame.step if self.CurrentStep % 4 == 0: if not self.mybusiness: a = self.frame.get(EmptyBusiness) if len(a) > 0: pn = PrimeNode() pn.ID = a[0].ID pn.Name = "Amazon" pn.PeakCustomerCount = 0 pn.Rezcap = a[0].Rezcap self.frame.add(pn) self.mybusiness = pn self.frame.disable_subset(EmptyBusiness) if self.mybusiness and not self.mybusiness.Customers: ppl = self.frame.get(Person) if len(ppl) > 40: customers = random.sample(ppl, 10) # Synchronized attribute self.mybusiness.Customers = [p.Name for p in customers] self.mybusiness.CustomerObjects = {} # Non-synchronized attribute for c in customers: self.mybusiness.CustomerObjects[c.Name] = c starttime = random.randint(50, 100) if starttime not in self.schedule_deliveries: self.schedule_deliveries[starttime] = [] self.schedule_deliveries[starttime].append(c) self.__Logger.info("Delivery schedule: %s", self.schedule_deliveries.keys()) if self.CurrentStep in self.schedule_deliveries: print self.schedule_deliveries[self.CurrentStep] for c in self.schedule_deliveries[self.CurrentStep]: if hasattr(c.LivesAt, "Rezcap"): v = Vehicle() v.Name = "AmazonTo%s" % c.Name v.Type = c.Vehicle.VehicleType v.Route = self.mybusiness.Rezcap.DestinationName v.Target = c.LivesAt.Rezcap.SourceName self.frame.add(v) self.__Logger.info("starting amazon delivery to %s", c.Name) else: print c.LivesAt
def update(self): self.CurrentStep = self.frame.step if self.CurrentStep % 4 == 0 : if not self.mybusiness: a = self.frame.get(EmptyBusiness) if len(a) > 0: pn = PrimeNode() pn.ID = a[0].ID pn.Name = "Amazon" pn.PeakCustomerCount = 0 pn.Rezcap = a[0].Rezcap self.frame.add(pn) self.mybusiness = pn self.frame.disable_subset(EmptyBusiness) if self.mybusiness and not self.mybusiness.Customers: ppl = self.frame.get(Person) if len(ppl) > 40: customers = random.sample(ppl, 10) # Synchronized attribute self.mybusiness.Customers = [p.Name for p in customers] self.mybusiness.CustomerObjects = {} # Non-synchronized attribute for c in customers: self.mybusiness.CustomerObjects[c.Name] = c starttime = random.randint(50, 100) if starttime not in self.schedule_deliveries: self.schedule_deliveries[starttime] = [] self.schedule_deliveries[starttime].append(c) self.__Logger.info("Delivery schedule: %s", self.schedule_deliveries.keys()) if self.CurrentStep in self.schedule_deliveries: print self.schedule_deliveries[self.CurrentStep] for c in self.schedule_deliveries[self.CurrentStep]: if hasattr(c.LivesAt, "Rezcap"): v = Vehicle() v.Name = "AmazonTo%s" % c.Name v.Type = c.Vehicle.VehicleType v.Route = self.mybusiness.Rezcap.DestinationName v.Target = c.LivesAt.Rezcap.SourceName self.frame.add(v) self.__Logger.info("starting amazon delivery to %s", c.Name) else: print c.LivesAt
def GenerateAddVehicleEvent(self, trip) : """ GenerateAddVehicleEvent -- generate an AddVehicle event to start a new trip trip -- Trip object initialized with traveler, vehicle and destination information """ #vname = str(trip.VehicleName) #vtype = str(trip.VehicleType) #rname = str(trip.Source.Capsule.DestinationName) #tname = str(trip.Destination.Capsule.SourceName) v = Vehicle() v.Name = trip.VehicleName v.Type = trip.VehicleType v.Route = trip.Source.Capsule.DestinationName v.Target = trip.Destination.Capsule.SourceName self.frame.add(v) self.__Logger.debug('add vehicle %s of type %s from %s to %s',v.Name, v.Type, v.Route, v.Target) # save the trip so that when the vehicle arrives we can get the trip # that caused the car to be created self.TripCallbackMap[v.Name] = trip