예제 #1
0
 public void DeletePortDef(DBConnection_EF conn, PortDef portdef)
 {
     try
     {
         conn.PortDef.Remove(portdef);
         conn.SaveChanges();
     }
     catch (Exception ex)
     {
         logger.Warn(ex);
         throw;
     }
 }
예제 #2
0
 public void insertPortDef(DBConnection_EF conn, PortDef portdef)
 {
     try
     {
         conn.PortDef.Add(portdef);
         conn.SaveChanges();
     }
     catch (Exception ex)
     {
         logger.Warn(ex);
         throw;
     }
 }
        private void CVPortTest()
        {
            List <AVEHICLE> vhs = scApp.VehicleBLL.cache.loadVhs();

            foreach (AVEHICLE vh in vhs)
            {
                if (vh.isTcpIpConnect &&
                    vh.MODE_STATUS == ProtocolFormat.OHTMessage.VHModeStatus.AutoRemote &&
                    vh.ACT_STATUS == ProtocolFormat.OHTMessage.VHActionStatus.NoCommand &&
                    vh.HAS_BOX == 0 &&
                    !SCUtility.isEmpty(vh.CUR_ADR_ID) &&
                    !scApp.CMDBLL.isCMD_OHTCExcuteByVh(vh.VEHICLE_ID))
                {
                    var all_cv_port = scApp.PortDefBLL.cache.loadCVPortDefs();
                    //1.嘗試找出目前是in mode
                    var all_cv_port_in_mode = all_cv_port.Where(port => IsGetReady(port)).ToList();
                    foreach (var in_mode_port in all_cv_port_in_mode)
                    {
                        var source_port_info = scApp.TransferService.GetPLC_PortData(in_mode_port.PLCPortID);
                        //if (scApp.CMDBLL.hasExcuteCMDFromAdr(in_mode_port.ADR_ID)) continue;
                        if (scApp.CMDBLL.hasExcuteCMDByBoxID(source_port_info.BoxID))
                        {
                            continue;
                        }
                        string finial_port_num = in_mode_port.PLCPortID.Substring((in_mode_port.PLCPortID.Length) - 2);//取得倒數兩個字
                        int    port_num        = Convert.ToInt32(finial_port_num, 16);
                        //確認是否可被2整除
                        bool   is_even_num     = port_num % 2 == 0;
                        int    target_port_num = is_even_num ? port_num - 1 : port_num + 1;
                        string target_port_id  = $"B7_OHBLOOP_T{Convert.ToString(target_port_num, 16).PadLeft(2, '0')}";

                        PortDef target_port = scApp.PortDefBLL.cache.getCVPortDef(target_port_id);
                        string  box_id      = SCUtility.isEmpty(source_port_info.BoxID) ? "BOX01" : SCUtility.Trim(source_port_info.BoxID);
                        string  cst_id      = source_port_info.CassetteID.ToUpper().Contains("NO") ? "" : SCUtility.Trim(source_port_info.CassetteID);
                        bool    is_success  = scApp.CMDBLL.doCreatTransferCommand(vh.VEHICLE_ID, "", cst_id,
                                                                                  E_CMD_TYPE.LoadUnload,
                                                                                  in_mode_port.PLCPortID,
                                                                                  target_port.PLCPortID, 0, 0,
                                                                                  box_id, "",
                                                                                  in_mode_port.ADR_ID, target_port.ADR_ID);
                        if (is_success)
                        {
                            return;
                        }
                    }
                }
            }
        }
        private bool IsGetReady_outMode(PortDef port)
        {
            var transfer_service = scApp.TransferService;
            var plc_port_info    = transfer_service.GetPLC_PortData(port.PLCPortID);

            if (plc_port_info == null)
            {
                return(false);
            }
            else
            {
                return(plc_port_info.IsOutputMode &&
                       plc_port_info.IsAutoMode &&
                       !SCUtility.isEmpty(plc_port_info.BoxID));
            }
        }
예제 #5
0
        public void UPStage()
        {
            comboBox7.Items.Clear();

            PortDef port = BCApp.SCApplication.PortDefBLL.GetPortDataByID(comboBox5.Text);

            if (port == null)
            {
                return;
            }

            for (int i = 0; i <= port.Stage; i++)
            {
                if (i == port.Stage)
                {
                    i = (int)CassetteData.OHCV_STAGE.LP;
                }
                comboBox7.Items.Add((CassetteData.OHCV_STAGE)i);
            }

            comboBox7.SelectedIndex = 1;
            label3.Text             = "目的Port:\n" + port.PLCPortID;
        }