private (bool isSuccess, string msg) askVhToCharging(AVEHICLE vh)
        {
            string   vh_current_address = vh.CUR_ADR_ID;
            AADDRESS current_adr        = addressesBLL.cache.GetAddress(vh.CUR_ADR_ID);

            if (current_adr != null &&
                current_adr is CouplerAddress && (current_adr as CouplerAddress).IsWork(unitBLL))
            {
                ICpuplerType cpupler = (current_adr as CouplerAddress);
                string       meg     = $"ask vh:{vh.VEHICLE_ID} to charging. but it is already in charger:{cpupler.ChargerID} ,cpupler num:{cpupler.CouplerNum}";
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(VehicleChargerModule), Device: DEVICE_NAME,
                              Data: meg,
                              VehicleID: vh.VEHICLE_ID);
                return(false, meg);
            }
            bool   is_need_to_long_charge = vh.IsNeedToLongCharge();
            string best_coupler_adr       = findBestCoupler(vh_current_address, is_need_to_long_charge);

            LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(VehicleChargerModule), Device: DEVICE_NAME,
                          Data: $"ask vh:{vh.VEHICLE_ID} to charging. coupler adr:{best_coupler_adr} ",
                          VehicleID: vh.VEHICLE_ID);
            if (!SCUtility.isEmpty(best_coupler_adr))
            {
                bool is_success = vehicleService.Command.MoveToCharge(vh.VEHICLE_ID, best_coupler_adr);
                return(is_success, "");
            }
            else
            {
                lineService.ProcessAlarmReport(vh, AlarmBLL.VEHICLE_CAN_NOT_FIND_THE_COUPLER_TO_CHARGING, ErrorStatus.ErrSet, $"vehicle:{vh.VEHICLE_ID} can't find coupler to charging");
                return(false, $"vehicle:{vh.VEHICLE_ID} can't find coupler to charging");
            }
        }
コード例 #2
0
        private void askVhToCharging(AVEHICLE vh)
        {
            string vh_current_address     = vh.CUR_ADR_ID;
            bool   is_need_to_long_charge = vh.IsNeedToLongCharge();
            string best_coupler_adr       = findBestCoupler(vh_current_address, is_need_to_long_charge);

            LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(VehicleChargerModule), Device: DEVICE_NAME,
                          Data: $"ask vh:{vh.VEHICLE_ID} to charging. coupler adr:{best_coupler_adr} ",
                          VehicleID: vh.VEHICLE_ID);
            if (!SCUtility.isEmpty(best_coupler_adr))
            {
                cmdBLL.doCreatTransferCommand(vh.VEHICLE_ID, string.Empty, string.Empty,
                                              E_CMD_TYPE.Move_Charger,
                                              string.Empty,
                                              best_coupler_adr, 0, 0);
            }
        }
        private void updateVehicleModeStatus()
        {
            TESTSpeedDisplay();
            if (!vh.isTcpIpConnect)
            {
                VehicleStatus = E_VEHICLE_STATUS.UNCONNECTIED;
            }
            else
            {
                switch (vh.MODE_STATUS)
                {
                case VHModeStatus.InitialPowerOff:
                case VHModeStatus.Manual:
                    VehicleStatus = E_VEHICLE_STATUS.MANUAL;
                    break;

                case VHModeStatus.InitialPowerOn:
                    VehicleStatus = E_VEHICLE_STATUS.POWERON;
                    break;

                case VHModeStatus.AutoLocal:
                    VehicleStatus = E_VEHICLE_STATUS.AUTOLOCAL;
                    break;

                case VHModeStatus.AutoCharging:
                    if (vh.IsNeedToLongCharge())
                    {
                        VehicleStatus = E_VEHICLE_STATUS.AUTOLONGCHARGING;
                    }
                    else
                    {
                        VehicleStatus = E_VEHICLE_STATUS.AUTOCHARGING;
                    }
                    break;

                case VHModeStatus.AutoRemote:
                    VehicleStatus = E_VEHICLE_STATUS.AUTOREMOTE;
                    break;

                default:
                    VehicleStatus = E_VEHICLE_STATUS.MANUAL;
                    break;
                }
            }
        }