Exemplo n.º 1
0
def get_car(logcan, sendcan):
  candidate, fingerprints, vin, car_fw, source = fingerprint(logcan, sendcan)

  if candidate is None:
    cloudlog.warning("car doesn't match any fingerprints: %r", fingerprints)
    candidate = "KIA NIRO HEV 2018"
  
  if Params().get("CarModel", encoding="utf8") is not None:
    car_name = Params().get("CarModel", encoding="utf8")
    car_name = car_name.rstrip('\n')
    candidate = car_name

  CarInterface, CarController, CarState = interfaces[candidate]
  car_params = CarInterface.get_params(candidate, fingerprints, car_fw)
  car_params.carVin = vin
  car_params.carFw = car_fw
  car_params.fingerprintSource = source

  return CarInterface(car_params, CarController, CarState), car_params
Exemplo n.º 2
0
    def lead_control(self, CS, sm, CC):
        dRel = CC.dRel
        yRel = CC.yRel
        vRel = CC.vRel
        active_time = 10
        btn_type = Buttons.NONE
        #lead_1 = sm['radarState'].leadOne
        long_wait_cmd = 500
        set_speed = int(round(self.cruise_set_speed_kph))

        if self.long_curv_timer < 600:
            self.long_curv_timer += 1

        # 선행 차량 거리유지
        lead_wait_cmd, lead_set_speed = self.update_lead(
            sm, CS, dRel, yRel, vRel)

        # 커브 감속.
        model_speed = CC.model_speed  #cal_model_speed( CS.out.vEgo )
        curv_wait_cmd, curv_set_speed = self.update_curv(CS, sm, model_speed)

        if curv_wait_cmd != 0:
            if lead_set_speed > curv_set_speed:
                set_speed = curv_set_speed
                long_wait_cmd = curv_wait_cmd
            else:
                set_speed = lead_set_speed
                long_wait_cmd = lead_wait_cmd
        else:
            set_speed = lead_set_speed
            long_wait_cmd = lead_wait_cmd

        if set_speed >= int(round(self.cruise_set_speed_kph)):
            set_speed = int(round(self.cruise_set_speed_kph))
        elif set_speed <= 30:
            set_speed = 30

        # control process
        target_set_speed = set_speed
        delta = int(round(set_speed)) - int(CS.VSetDis)
        dec_step_cmd = 1

        camspeed = Params().get("LimitSetSpeedCamera", encoding="utf8")
        if camspeed is not None:
            self.map_spd_camera = int(float(camspeed.rstrip('\n')))
            self.map_spd_enable = self.map_spd_camera > 29
        else:
            self.map_spd_enable = False
            self.map_spd_camera = 0

        if self.long_curv_timer < long_wait_cmd:
            pass
        elif delta > 0:
            if ((self.map_spd_camera +
                 round(self.map_spd_camera * 0.01 * self.map_spd_limit_offset))
                    == int(CS.VSetDis)) and self.map_spd_enable:
                set_speed = int(CS.VSetDis) + 0
                btn_type = Buttons.NONE
                self.long_curv_timer = 0
            else:
                set_speed = int(CS.VSetDis) + dec_step_cmd
                btn_type = Buttons.RES_ACCEL
                self.long_curv_timer = 0
        elif delta < 0:
            set_speed = int(CS.VSetDis) - dec_step_cmd
            btn_type = Buttons.SET_DECEL
            self.long_curv_timer = 0
        if self.cruise_set_mode == 0:
            btn_type = Buttons.NONE

        self.update_log(CS, set_speed, target_set_speed, long_wait_cmd)

        return btn_type, set_speed, active_time