Esempio n. 1
0
 /// <summary>
 /// CompleteEventArgsクラスのインスタンスを初期化
 /// </summary>
 /// <param name="status">クライアントの完了状態</param>
 public CompleteEventArgs(CompleteStatus status)
 {
     //
     // TODO: コンストラクタ ロジックをここに追加してください。
     //
     this.status = status;
 }
Esempio n. 2
0
        public bool newReportTransferCommandForceFinish(VTRANSFER vTran, CompleteStatus completeStatus, List <AMCSREPORTQUEUE> reportqueues)
        {
            bool isSuccsess = true;

            isSuccsess = isSuccsess && iBSEMDriver.S6F11SendTransferCompleted(vTran, completeStatus, reportqueues);
            return(isSuccsess);
        }
        /// <summary>
        /// 別スレッドとして受信処理を行うメソッドです。
        /// </summary>
        private void OpenInternal()
        {
            // 完了状態を表す
            CompleteStatus status = CompleteStatus.Success;

            List <ThreadHeader> items = null;

            try {
                OnLoading(new EventArgs());

                if (OpenReader(boardInfo))
                {
                    items = Reading();

                    if (canceled)
                    {
                        return;
                    }

                    headerList.AddRange(items);
                    Invoke(new WriteListMethodInvoker(WriteInternal), new object[] { items });
                }
            }
            catch (Exception ex)
            {
                status = CompleteStatus.Error;
                OnStatusTextChanged(ex.Message);
                TwinDll.Output(ex);
            }
            finally {
                if (canceled)
                {
                    status = CompleteStatus.Error;
                }

                if (baseReader != null)
                {
                    baseReader.Close();
                }

                canceled = false;

                if (thread != null)
                {
                    lock (thread)
                        thread = null;
                }

                OnComplete(new CompleteEventArgs(status));

                if (status == CompleteStatus.Success)
                {
                    OnStatusTextChanged(
                        String.Format("{0}板の読み込みを完了 (総数: {1})",
                                      boardInfo.Name, headerList.Count));
                }
            }
        }
        public bool SysExecQityfinish(string mcs_cmd_id, CompleteStatus completeStatus, int total_cmd_dis)
        {
            var  cmdFinishStatus = CMDBLL.CompleteStatusToECmdStatus(completeStatus);
            bool is_success      = updateSysExecQity_CmdFinish(mcs_cmd_id, cmdFinishStatus, completeStatus, total_cmd_dis, out ASYSEXCUTEQUALITY quality);

            if (quality != null)
            {
                SCUtility.TrimAllParameter(quality);
                LogManager.GetLogger("SysExcuteQuality").Info(quality.ToString());
            }
            return(is_success);
        }
 public void doCommandFinish(string mcs_cmd_id, CompleteStatus completeStatus, E_CMD_STATUS ohtc_cmd_status)
 {
     try
     {
         ASYSEXCUTEQUALITY quality = null;
         updateSysExecQity_CmdFinish(mcs_cmd_id, ohtc_cmd_status, completeStatus, out quality);
         if (quality != null)
         {
             SCUtility.TrimAllParameter(quality);
             LogManager.GetLogger("SysExcuteQuality").Info(quality.ToString());
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex, $"Exception ,mcs cmd id:{SCUtility.Trim(mcs_cmd_id, true)} ,complete status:{completeStatus}, cmd status:{ohtc_cmd_status}");
     }
 }
        private void Vh_CommandComplete(object sender, CompleteStatus e)
        {
            AVEHICLE vh = sender as AVEHICLE;

            try
            {
                string cur_segment_id = vh.CUR_SEG_ID;
                string cur_section_id = vh.CUR_SEC_ID;
                string cur_adr_id     = vh.CUR_ADR_ID;
                string vh_id          = vh.VEHICLE_ID;

                if (e == CompleteStatus.MoveToCharger)
                {
                    //if (vh.BatteryLevel == BatteryLevel.Low)
                    if (vh.MODE_STATUS == VHModeStatus.AutoCharging)
                    {
                        RoadControl(vh_id, cur_adr_id, false);
                    }
                }
                else
                {
                    //if (vh.BatteryLevel == BatteryLevel.Low)
                    if (vh.MODE_STATUS == VHModeStatus.AutoCharging)
                    {
                        AADDRESS vh_on_address = addressesBLL.cache.GetAddress(cur_adr_id);
                        if (vh_on_address.IsCoupler)
                        {
                            RoadControl(vh_id, cur_adr_id, false);
                        }
                        else
                        {
                            askVhToCharging(vh);
                        }
                    }
                }
                lineService.ProcessAlarmReport(vh, AlarmBLL.VEHICLE_CAN_NOT_FIND_THE_COUPLER_TO_CHARGING, ErrorStatus.ErrReset, $"vehicle:{vh.VEHICLE_ID} can't find coupler to charging");
            }
            catch (Exception ex)
            {
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Warn, Class: nameof(VehicleChargerModule), Device: DEVICE_NAME,
                              Data: ex,
                              VehicleID: vh?.VEHICLE_ID);
            }
        }
Esempio n. 7
0
        private void Vh_CommandComplete(object sender, CompleteStatus e)
        {
            AVEHICLE vh = sender as AVEHICLE;

            try
            {
                string cur_segment_id = vh.CUR_SEG_ID;
                string cur_section_id = vh.CUR_SEC_ID;
                string cur_adr_id     = vh.CUR_ADR_ID;
                string vh_id          = vh.VEHICLE_ID;

                if (e == CompleteStatus.CmpStatusMoveToCharger)
                {
                    //if (vh.BatteryLevel == BatteryLevel.Low)
                    if (vh.MODE_STATUS == VHModeStatus.AutoCharging)
                    {
                        RoadControl(vh_id, cur_adr_id, false);
                    }
                }
                else
                {
                    //if (vh.BatteryLevel == BatteryLevel.Low)
                    if (vh.MODE_STATUS == VHModeStatus.AutoCharging)
                    {
                        AADDRESS vh_on_address = addressesBLL.cache.GetAddress(cur_adr_id);
                        if (vh_on_address.IsCoupler)
                        {
                            RoadControl(vh_id, cur_adr_id, false);
                        }
                        else
                        {
                            askVhToCharging(vh);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Warn, Class: nameof(VehicleChargerModule), Device: DEVICE_NAME,
                              Data: ex,
                              VehicleID: vh?.VEHICLE_ID);
            }
        }
Esempio n. 8
0
        public bool ReportTransferResult2MCS(string cmdID, CompleteStatus completeStatus)
        {
            bool isSuccess = false;
            List <AMCSREPORTQUEUE> reportqueues = new List <AMCSREPORTQUEUE>();

            using (DBConnection_EF con = DBConnection_EF.GetUContext())
            {
                switch (completeStatus)
                {
                case CompleteStatus.Cancel:
                    isSuccess = newReportTransferCancelCompleted(cmdID, true, reportqueues);
                    break;

                case CompleteStatus.Abort:
                    isSuccess = newReportTransferCommandAbortFinish(cmdID, reportqueues);
                    break;

                case CompleteStatus.Load:
                case CompleteStatus.Unload:
                case CompleteStatus.Loadunload:
                case CompleteStatus.VehicleAbort:
                case CompleteStatus.InterlockError:
                case CompleteStatus.ForceAbnormalFinishByOp:
                case CompleteStatus.ForceNormalFinishByOp:
                case CompleteStatus.IdmisMatch:
                case CompleteStatus.IdreadFailed:
                    isSuccess = newReportTransferCommandFinish(cmdID, reportqueues);
                    break;

                case CompleteStatus.Move:
                case CompleteStatus.MoveToCharger:
                    //Nothing...
                    break;

                default:
                    logger.Info($"Proc func:CommandCompleteReport, but completeStatus:{completeStatus} notimplemented ");
                    break;
                }
                scApp.ReportBLL.insertMCSReport(reportqueues);
            }
            scApp.ReportBLL.newSendMCSMessage(reportqueues);
            return(isSuccess);
        }
Esempio n. 9
0
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            bool           isNew      = true;
            CompleteStatus cs;

            if (Request["id"] != null)
            {
                cs    = dc.CompleteStatus.SingleOrDefault(ccs => ccs.F_ID.Equals(Request["id"]));
                isNew = false;
            }
            else
            {
                cs      = new CompleteStatus();
                cs.F_ID = Guid.NewGuid().ToString();
            }
            if (String.IsNullOrEmpty(txtMoney.Text) == false)
            {
                cs.F_money = decimal.Parse(txtMoney.Text);
            }
            cs.F_projectID      = Session["projectID"].ToString();
            cs.F_task           = txtTask.Text;
            cs.F_completeStatus = ddlCompleteStatus.SelectedValue;
            if (String.IsNullOrEmpty(txtFinishDate.Text) == false)
            {
                cs.F_finishDate = DateTime.Parse(txtFinishDate.Text);
            }
            if (String.IsNullOrEmpty(txtStartDate.Text) == false)
            {
                cs.F_startDate = DateTime.Parse(txtStartDate.Text);
            }

            if (isNew)
            {
                dc.CompleteStatus.InsertOnSubmit(cs);
            }
            dc.SubmitChanges();
        }
Esempio n. 10
0
        private void OpenInternal()
        {
            CompleteStatus status = CompleteStatus.Success;

            try
            {
                try
                {
                    isWaiting = true;
                    OnLoading(new EventArgs());
                }
                finally
                {
                    isWaiting = false;
                }
                if (canceled)
                {
                    return;
                }

                // 開く処理を行う
                if (modeOpen)
                {
                    Invoke(new MethodInvoker(Opening));
                }

                // キャッシュを読み込み表示
                ReadCache(resCollection);

                if (canceled)
                {
                    return;
                }

                Invoke(new MethodInvoker(WriteBegin));

                if (canceled)
                {
                    return;
                }

                if (modeOpen)
                {
                    Invoke(new WriteResMethodInvoker(Write), new object[] { resCollection });

                    // スクロール位置を復元 (値が0の場合は復元しない)
                    if (modeOpen && headerInfo.Position != 0.0f)
                    {
                        Invoke(new PositionMethodInvoker(SetScrollPosition),
                               new object[] { headerInfo.Position });
                    }
                }

Retry:
                try
                {
                    // サーバーに接続
                    if (OpenReader())
                    {
                        if (canceled)
                        {
                            return;
                        }

                        Reading();

                        // あぼーんを検知した場合
                        if (aboneDetected)
                        {
                        }
                    }
                    else
                    {
                        headerInfo.NewResCount = 0;
                        ThreadIndexer.Write(Cache, headerInfo);
                    }
                }
                finally
                {
                    if (reader != null)
                    {
                        reader.Close();
                    }
                }

                // 再試行が要求された場合、最初から
                if (retried)
                {
                    goto Retry;
                }

                if (canceled)
                {
                    return;
                }


                Invoke(new MethodInvoker(WriteEnd));
            }
            catch (Exception ex)
            {
                status = CompleteStatus.Error;
                //			isOpen = false; #10/15
                TwinDll.Output(ex);
                OnStatusTextChanged(ex.Message);
            }
            finally
            {
                // 中止された場合はETagをリセット
                if (canceled)
                {
                    headerInfo.ETag = String.Empty;
                }

                indicesValues.Clear();

                canceled = false;

                lock (syncObject)
                    thread = null;

                if (status == CompleteStatus.Success)
                {
                    OnStatusTextChanged(
                        String.Format("{0}の読み込みを完了 (新着: {1}件)",
                                      headerInfo.Subject, headerInfo.NewResCount));
                }
                /** 9/26 追加 **/
                else if (reader is X2chAuthenticateThreadReader)
                {
                    X2chRokkaResponseState rokkaState = ((X2chAuthenticateThreadReader)reader).RokkaResponseState;
                    if (rokkaState != X2chRokkaResponseState.Success)
                    {
                        TwinDll.Output("RokkaResponseState: {0}, URL: {1}, ", rokkaState, headerInfo.Url);
                    }
                    OnStatusTextChanged(String.Format("RokkaResponseState: {0}", rokkaState));
                }
                /****/

                IsReading             = false;
                lastCompletedDateTime = DateTime.Now;

                OnComplete(new CompleteEventArgs(status));
            }
        }
        private async void btn_force_finish_Click(object sender, EventArgs e)
        {
            try
            {
                if (selection_index == -1)
                {
                    return;
                }
                btn_force_finish.Enabled = false;
                var       mcs_cmd = cmdMCSshowList[selection_index];
                ACMD      cmd;
                ATRANSFER transfer;
                (cmd, transfer) = await Task.Run(() => GetRealCommandInfo(mcs_cmd));

                if (transfer == null)
                {
                    MessageBox.Show($"Transfer cmd ID:{SCUtility.Trim(mcs_cmd.CMD_ID, true)} not exist.", "Check command fail.", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                CarrierLocationChooseForm         carrierLocationChooseForm = new CarrierLocationChooseForm(mainform.BCApp.SCApplication, transfer);
                System.Windows.Forms.DialogResult result = carrierLocationChooseForm.ShowDialog(this);
                if (result != DialogResult.OK)
                {
                    return;
                }
                string         finial_carrier_location = carrierLocationChooseForm.GetChooseLocation();
                CompleteStatus finish_complete_status  = carrierLocationChooseForm.GetCompleteStatus();

                await Task.Run(() =>
                {
                    try
                    {
                        //mainform.BCApp.SCApplication.VehicleService.Command.Finish(cmd.ID, CompleteStatus.ForceFinishByOp);
                        //todo 需要在review一下 kevin
                        ACARRIER carrier = mainform.BCApp.SCApplication.CarrierBLL.db.getCarrier(mcs_cmd.CARRIER_ID);

                        bool is_in_vh = mainform.BCApp.SCApplication.VehicleBLL.cache.
                                        IsVehicleLocationExistByLocationRealID(finial_carrier_location);
                        E_CARRIER_STATE finial_carrier_state =
                            is_in_vh ? E_CARRIER_STATE.Installed : E_CARRIER_STATE.Complete;
                        if (carrier != null)
                        {
                            //如果原本是在車上,但後來變成不在車上要上報Remove
                            //如果原本不在車在,後來變成在車上要在報Install
                            bool source_is_in_vh = mainform.BCApp.SCApplication.VehicleBLL.cache.
                                                   IsVehicleLocationExistByLocationRealID(carrier.LOCATION);
                            if (is_in_vh && !source_is_in_vh)
                            {
                                AVEHICLE intall_vh = mainform.BCApp.SCApplication.VehicleBLL.cache.getVehicleByLocationRealID(finial_carrier_location);
                                if (intall_vh != null)
                                {
                                    mainform.BCApp.SCApplication.ReportBLL.newReportCarrierInstalled
                                        (intall_vh.Real_ID, mcs_cmd.CARRIER_ID, finial_carrier_location, null);
                                }
                            }
                            else if (!is_in_vh && source_is_in_vh)
                            {
                                AVEHICLE remove_vh = mainform.BCApp.SCApplication.VehicleBLL.cache.getVehicleByLocationRealID(carrier.LOCATION);
                                if (remove_vh != null)
                                {
                                    mainform.BCApp.SCApplication.ReportBLL.newReportCarrierRemoved
                                        (remove_vh.Real_ID, mcs_cmd.CARRIER_ID, finial_carrier_location, null);
                                }
                            }
                            mainform.BCApp.SCApplication.CarrierBLL.db.updateLocationAndState
                                (transfer.CARRIER_ID, finial_carrier_location, finial_carrier_state);
                        }

                        if (cmd != null)
                        {
                            mainform.BCApp.SCApplication.VehicleService.Command.Finish(cmd.ID, finish_complete_status);
                        }
                        else
                        {
                            mainform.BCApp.SCApplication.TransferService.FinishTransferCommand(transfer.ID, finish_complete_status);
                        }
                    }
                    catch { }
                }
                               );

                updateTransferCommand();
            }
            catch (Exception ex) { }
            finally
            {
                btn_force_finish.Enabled = true;
            }
        }
Esempio n. 12
0
 public void onCommandComplete(CompleteStatus cmpStatus)
 {
     CommandComplete?.Invoke(this, cmpStatus);
 }
Esempio n. 13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="completeStatus"></param>
 public CommandCompleteEventArgs(CompleteStatus completeStatus)
 {
     CompleteStatus = completeStatus;
 }
        public bool updateSysExecQity_CmdFinish(string mcs_cmd_id, E_CMD_STATUS commandStatus, CompleteStatus cmpStatus, out ASYSEXCUTEQUALITY quality)
        {
            bool isSuccess = true;

            //DBConnection_EF con = DBConnection_EF.GetContext();
            //using (DBConnection_EF con = new DBConnection_EF())
            quality = sysExeQualityDAO.getByID(scApp.getRedisCacheManager(), mcs_cmd_id);
            if (quality != null)
            {
                //quality.CMD_FINISH_STATUS = E_CMD_STATUS.NormalEnd;
                quality.CMD_FINISH_STATUS       = commandStatus;
                quality.CompleteStatus          = cmpStatus;
                quality.CMD_FINISH_TIME         = DateTime.Now;
                quality.CMD_TOTAL_EXCUTION_TIME = getWithNowDifferenceSeconds(quality.CMD_START_TIME);
                //sysExeQualityDAO.update(scApp.getRedisCacheManager(), quality);
                sysExeQualityDAO.delete(scApp.getRedisCacheManager(), quality.CMD_ID_MCS);
                using (DBConnection_EF con = DBConnection_EF.GetUContext())
                {
                    ASYSEXCUTEQUALITY qualityTemp = sysExeQualityDAO.getByID(con, mcs_cmd_id);
                    if (qualityTemp == null)
                    {
                        sysExeQualityDAO.add(con, quality);
                    }
                }
            }
            else
            {
            }

            return(isSuccess);
        }
Esempio n. 15
0
        public override bool upDateVIDResultCode(string eq_id, AVEHICLE.VehicleState vehicleState, CompleteStatus cmp_status)
        {
            bool isSuccess = true;

            try
            {
                string result_code = SECSConst.convert2MCS(vehicleState, cmp_status);
                using (DBConnection_EF con = DBConnection_EF.GetUContext())
                {
                    AVIDINFO vid_info = vidIvfoDAO.getByID(con, eq_id);
                    if (vid_info != null)
                    {
                        vid_info.RESULT_CODE = int.Parse(result_code); //TODO 這樣 Parse 的方式好嗎?
                        vidIvfoDAO.update(con);
                        //con.Commit();
                    }
                    else
                    {
                        isSuccess = false;
                        //TODO Exception log
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception");
                isSuccess = false;
                throw ex;
            }
            finally
            {
            }
            return(isSuccess);
        }
 public abstract bool S6F11SendTransferCompleted(VTRANSFER vtransfer, CompleteStatus completeStatus, List <AMCSREPORTQUEUE> reportQueues = null);
 public void ChangeTaskStatus(long id, CompleteStatus status)
 {
     taskService.ChangeStatusById(id, status.IsDone);
 }