예제 #1
0
        public async Task ppSelectAsync(SecsEquipment secsEquip, string FAUF)
        {
            var where = PredicateBuilder.True <Lot>().And(l => l.Deleted == false && l.Ident == FAUF);
            //var lot = _lotSvc.Query(a => a.Ident == FAUF && a.Deleted == false)
            //      .Include(l => l.Line)
            //      .Include(l => l.Product)
            //      .Select().FirstOrDefault();

            //var recipe = _recipeSvc.Query(r => r.ProductId == lot.ProductId && (r.EquipmentId>0 && r.EquipmentId == secsEquip.SCESEquipment.Id)).Select().FirstOrDefault();

            //if(recipe == null)
            //{
            //    recipe = _recipeSvc.Query(r => r.ProductId == lot.ProductId && (r.ProcessId > 0 && r.ProcessId == secsEquip.SCESEquipment.ProcessId)).Select().FirstOrDefault();

            //}
            //if(recipe == null)
            //{
            //    throw new Exception("no recipe found");
            //}
            //var secsgemMessge = new SecsMessage(2, 41, "PP-SELECT", Secs4Net.Item.L(
            //    Secs4Net.Item.A("PP-SELECT"),
            //    Secs4Net.Item.L(
            //        Secs4Net.Item.L(
            //            Secs4Net.Item.U2((ushort)recipe.RecipeNo)
            //            )
            //        )
            //    ));
            //secsEquip.SendDataMessage(secsgemMessge);
        }
예제 #2
0
        public void secsEventHander(SecsEquipment secsEquip)
        {
            uint   eventID   = 0;
            string eventName = "";
            IEnumerable <Secs4Net.Item> list = null;

            foreach (Secs4Net.Item item in secsEquip.Msg.SecsItem.Items)
            {
                if (item.Format == SecsFormat.U4)
                {
                    eventID = item.GetValue <uint>();
                }
                if (item.Format == SecsFormat.ASCII)
                {
                    eventName = item.GetString();
                }
                if (item.Format == SecsFormat.List)
                {
                    list = secsEquip.Msg.SecsItem.Items.Where(i => i.Format == SecsFormat.List);
                }
            }
            if (list != null)
            {
                var listSecondLevel = list.Where(i => i.Format == SecsFormat.List);
                var listThirdLevel  = listSecondLevel.Where(i => i.Format == SecsFormat.List);
                switch (eventID)
                {
                case 200011:
                    string FAUF = listThirdLevel.Where(i => i.Format == SecsFormat.ASCII).FirstOrDefault().GetString();
                    ppSelectAsync(secsEquip, FAUF);
                    break;
                }
            }
        }
예제 #3
0
        private void ConnectedHandler(object sender, SecsEquipment equip)
        {
            var dbEquip = equip.SCESEquipment;

            dbEquip.Status = LineStatus.Connected;
            _sCESEquipmentService.Update(dbEquip);
            _sCESEquipmentService.SaveChangesAsync();
        }
예제 #4
0
        public void connectToEquip()
        {
            var secsEquip = new List <SecsEquipment>();

            foreach (var equip in getSECSEquipment())
            {
                if (!string.IsNullOrEmpty(equip.Address) || equip.Port <= 0)
                {
                    continue;
                }
                var sq1 = new SecsEquipment(equip.Address, equip.Port);
                sq1.Connected += ConnectedHandler;
                sq1.Connect();
                sq1.DataReceived += DataReceivedHandler;
            }
        }
예제 #5
0
        public void connectToTCPServer(string ServerIP, string ServerPort, string Server2IP, string Server2Port)
        {
            SCESEquipment sCESEquipment = new SCESEquipment();

            sCESEquipment.Address = "10.215.36.73";
            sCESEquipment.Port    = 5005;

            sq1 = new SecsEquipment(ServerIP, ServerPort);
            sq2 = new SecsEquipment(Server2IP, Server2Port);

            sq1.Connected += ConnectedHandler;
            sq2.Connected += Connected2Handler;

            sq1.Connect();
            sq2.Connect();

            sq1.DataReceived += DataReceivedHandler;
            sq2.DataReceived += Data2ReceivedHandler;
        }
예제 #6
0
 private void Connected2Handler(object sender, SecsEquipment equip)
 {
     StatusTextBox.AppendText("device 1 connected.\n");
 }