コード例 #1
0
        //public void funArrangeCIMEvent(string[] parameters)
        public void funArrangeCIMEvent(clsParam parameters)
        {
            lock (objLockCIMEvent)
            {
                try
                {
                    foreach (clsCIMEvent evt in listCIMEvent)
                    {
                        //if (evt.StrEventName == parameters[0])
                        //{
                        //    ((ICIMEvent)evt).funProcessCIMEvent(parameters);
                        //    return;
                        //}

                        if (parameters.Command.ToString().Trim() != "MCCDataSend")
                        {
                            int a = 0;
                        }
                        if (evt.StrEventName == parameters.Command.ToString().Trim())
                        {
                            ((ICIMEvent)evt).funProcessCIMEvent(parameters.pobjParameter);
                            return;
                        }
                    }
                }
                catch (Exception error)
                {
                    if (pEqpAct != null)
                    {
                        pEqpAct.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, error.ToString());
                    }
                }
            }
        }
コード例 #2
0
        public void Main(string argument, UpdateType updateSource)
        {
            Echo(DateTime.Now.ToString("s"));

            switch (argument.ToLower())
            {
            case "start": Runtime.UpdateFrequency = UpdateFrequency.Update100; Echo("Start"); break;

            case "stop": Runtime.UpdateFrequency = UpdateFrequency.None; Echo("Stop"); break;

            case "scan": findAllBlocks(); Echo($"Scan all -- {STORAGETAG} --"); allBlocks.ForEach(x => Echo(x.thisBlock.CustomName)); break;
            }
            if (Runtime.UpdateFrequency != UpdateFrequency.None)
            {
                findAllBlocks();
                foreach (clsBlock e1 in allBlocks)
                {
                    Echo("--" + e1.thisBlock.CustomName);
                    if (e1.Contains("scan1"))
                    {
                        e1.Scan1(ItemsConf, this);
                    }
                    if (e1.Contains("scan2"))
                    {
                        e1.Scan2(ItemsConf, this);
                    }
                    if (e1.Contains("scan3"))
                    {
                        e1.Scan3(ItemsConf, this);
                    }
                }
                findAllParm();
                Echo($"allParam={allParam.Count.ToString()}");
                foreach (clsParam e9 in allParam)
                {
                    Echo("#1 " + e9.thisBlock.CustomName);
                }
                return;

                findAllItem(ItemsConf);
                Echo($"allItems = {allItems.Count}");
                do
                {
                    List <clsParam> targetParm = netxParm();
                    if (targetParm == null)
                    {
                        break;
                    }

                    clsParam firstParm = targetParm.First();
                    Echo($"target={firstParm.name}");

                    List <clsItem> source = findItem(firstParm.name);
                    Echo($"source={source.Count.ToString()}");

                    int amount = getAnzahl(firstParm.name) / targetParm.Count;
                    Echo($"amount={amount.ToString()}");

                    foreach (clsParam e2 in targetParm)
                    {
                        foreach (clsItem e3 in source)
                        {
                            // quelle und ziel, wenn gleich nur menge kontrolieren
                            Echo($"e2={e2.thisBlock.CustomName}");
                            Echo($"e3={e3.myTerminalBlock.CustomName}");
                            if (e2.thisBlock.CustomName == e3.myTerminalBlock.CustomName)
                            {
                                continue;
                            }

                            e3.myInventory.TransferItemTo(e2.thisBlock.GetInventory(0), e3.pos1, 0, true, amount);
                        }
                    }
                } while (allParam.Count > 0);
            }
            // Echo(Runtime.UpdateFrequency.ToString());
        }