Class MesoLaneGroup

    • Field Detail

      • transit_queue

        public Queue transit_queue
      • waiting_queue

        public Queue waiting_queue
      • nom_transit_time_sec

        public float nom_transit_time_sec
      • nom_saturation_flow_rate_vps

        public float nom_saturation_flow_rate_vps
      • transit_time_sec

        public float transit_time_sec
      • saturation_flow_rate_vps

        public double saturation_flow_rate_vps
    • Method Detail

      • validate_post_init

        public void validate_post_init​(OTMErrorLog errorLog)
      • initialize

        public void initialize​(Scenario scenario,
                               float start_time)
                        throws OTMException
        Overrides:
        initialize in class core.AbstractLaneGroup
        Throws:
        OTMException
      • set_actuator_capacity_vps

        public void set_actuator_capacity_vps​(double rate_vps)
      • set_to_nominal_capacity

        public void set_to_nominal_capacity()
      • set_actuator_speed_mps

        public void set_actuator_speed_mps​(double speed_mps)
      • allocate_state

        public void allocate_state()
      • update_long_supply

        public void update_long_supply()
      • get_upstream_vehicle_position

        public Double get_upstream_vehicle_position()
      • add_vehicle_packet

        public void add_vehicle_packet​(float timestamp,
                                       PacketLaneGroup vp,
                                       Long next_link_id)
                                throws OTMException
        A core.packet arrives at this lanegroup. Vehicles do not know their next_link. It is assumed that the core.packet fits in this lanegroup. 1. convert the core.packet to models.fluid.ctm.micro, models.fluid.ctm.pq, or models.fluid.ctm. This involves memory kept in the lanegroup. 2. tag it with next_link and target lanegroups. 3. add the core.packet to this lanegroup.
        Throws:
        OTMException
      • release_vehicle_packets

        public void release_vehicle_packets​(float timestamp)
                                     throws OTMException
        An event signals an opportunity to release a vehicle. The lanegroup must, 1. construct packets to be released to each of the lanegroups reached by each of it's road connections. 2. check what portion of each of these packets will be accepted. Reduce the packets if necessary. 3. call add_vehicle_packet for each reduces core.packet. 4. remove the vehicle packets from this lanegroup.
        Throws:
        OTMException
      • vehs_dwn_for_comm

        public float vehs_dwn_for_comm​(Long c)