コード例 #1
0
 public void CarThreadFunc(object o)
 {
     try
     {
         CGKcar lastCar     = null;
         int    CarId       = Convert.ToInt16(o);
         int[]  CarXmlIndex = getCarXmlIndex(CarId);
         while (true)
         {
             if (IsStart)
             {
                 CGKcar thisCar = CGKBll.GetCGKcarModel(CarId);
                 if (thisCar != null)
                 {
                     setCarData(lastCar, thisCar, CarXmlIndex);
                     lastCar = thisCar;
                 }
             }
             Thread.Sleep(sleepTime);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #2
0
ファイル: CGKBll.cs プロジェクト: XINGMOWUZHONG/20170223git
        public static List <CGKcar> DataTableToCGKcar(DataTable dt)
        {
            List <CGKcar> modelList = new List <CGKcar>();
            int           rowsCount = dt.Rows.Count;

            if (rowsCount > 0)
            {
                CGKcar model;
                for (int n = 0; n < rowsCount; n++)
                {
                    model = new CGKcar();
                    if (dt.Rows[n]["id"].ToString() != "")
                    {
                        model.CGKcar_id = uint.Parse(dt.Rows[n]["id"].ToString());
                    }
                    if (dt.Rows[n]["Carstate"].ToString() != "")
                    {
                        model.CGKcar_state = uint.Parse(dt.Rows[n]["Carstate"].ToString());
                    }
                    if (dt.Rows[n]["target"].ToString() != "")
                    {
                        model.CGKcar_tgt = uint.Parse(dt.Rows[n]["target"].ToString());
                    }
                    if (dt.Rows[n]["source"].ToString() != "")
                    {
                        model.CGKcar_source = uint.Parse(dt.Rows[n]["source"].ToString());
                    }
                    if (dt.Rows[n]["currentlocation"].ToString() != "")
                    {
                        model.CGKcar_current = uint.Parse(dt.Rows[n]["currentlocation"].ToString());
                    }
                    if (dt.Rows[n]["palletstate"].ToString() != "")
                    {
                        model.CGKcar_pallertstate = uint.Parse(dt.Rows[n]["palletstate"].ToString());
                    }
                    if (dt.Rows[n]["action"].ToString() != "")
                    {
                        model.CGKcar_action = uint.Parse(dt.Rows[n]["action"].ToString());
                    }
                    if (dt.Rows[n]["target_z"].ToString() != "")
                    {
                        model.target_z = uint.Parse(dt.Rows[n]["target_z"].ToString());
                    }
                    modelList.Add(model);
                }
            }
            return(modelList);
        }
コード例 #3
0
        private void setCarData(CGKcar lastData, CGKcar thisData, int[] xmlIndex)
        {
            int CarXmlIndex_state        = xmlIndex[0];
            int CarXmlIndex_tgt          = xmlIndex[1];
            int CarXmlIndex_source       = xmlIndex[2];
            int CarXmlIndex_pallertstate = xmlIndex[3];

            //0 HIDE 1 SHOW 左出 2左入 3右出 4右入 5
            //0空 1 取货 2 放货
            if (lastData == null)
            {
                ComTCPLib.SetOutputAsREAL32(1, CarXmlIndex_source, (thisData.CGKcar_source - 1) * unitLength);
                ComTCPLib.SetOutputAsUINT(1, CarXmlIndex_state, thisData.CGKcar_state);
                ComTCPLib.SetOutputAsREAL32(1, CarXmlIndex_tgt, (thisData.CGKcar_tgt - 1) * unitLength);
                UInt16 outPalletState = getOutPalletState(thisData);

                ComTCPLib.SetOutputAsUINT(1, CarXmlIndex_pallertstate, outPalletState);
            }
            else if (!thisData.Equals(lastData))
            {
                if (thisData.CGKcar_source != lastData.CGKcar_source)
                {
                    ComTCPLib.SetOutputAsREAL32(1, CarXmlIndex_source, (thisData.CGKcar_source - 1) * unitLength);
                }
                if (thisData.CGKcar_state != lastData.CGKcar_state)
                {
                    ComTCPLib.SetOutputAsUINT(1, CarXmlIndex_state, thisData.CGKcar_state);
                }
                if (thisData.CGKcar_tgt != lastData.CGKcar_tgt)
                {
                    ComTCPLib.SetOutputAsREAL32(1, CarXmlIndex_tgt, (thisData.CGKcar_tgt - 1) * unitLength);
                }

                if (thisData.CGKcar_action != lastData.CGKcar_action)
                {
                    UInt16 outPalletState = getOutPalletState(thisData);
                    ComTCPLib.SetOutputAsUINT(1, CarXmlIndex_pallertstate, outPalletState);
                }
            }
        }
コード例 #4
0
        private UInt16 getOutPalletState(CGKcar thisData)
        {
            UInt16 outPalletState = 0;

            if (thisData.CGKcar_id == 1)
            {
                return((UInt16)thisData.CGKcar_pallertstate);
            }
            if (thisData.CGKcar_action == 0)
            {
                outPalletState = (UInt16)thisData.CGKcar_pallertstate;
            }
            else if (thisData.CGKcar_action == 1)
            {
                if (thisData.target_z == 1)
                {
                    outPalletState = 3;
                }
                else if (thisData.target_z == 2)
                {
                    outPalletState = 5;
                }
            }
            else if (thisData.CGKcar_action == 2)
            {
                if (thisData.target_z == 1)
                {
                    outPalletState = 2;
                }
                else if (thisData.target_z == 2)
                {
                    outPalletState = 4;
                }
            }
            return(outPalletState);
        }