Exemple #1
0
        public void ReceiveS10F5(PrimaryMessageWrapper e, ref byte[] ACKC10)
        {
            //ReceiveS10F5
            //L,2
            //    1. < TID >
            //    L,n.
            //      1.< TEXT>
            Item TIDItem      = e.Message.SecsItem.Items[0];
            Item TEXTItemList = e.Message.SecsItem.Items[1];

            ACKC10[0] = SanwaACK.ACKC10_ACK;

            if (TIDItem.Format != SecsFormat.Binary)
            {
                ACKC10[0] = SanwaACK.ACKC10_NOT_DISPLAYED;
                return;
            }

            if (TEXTItemList.Format != SecsFormat.ASCII)
            {
                ACKC10[0] = SanwaACK.ACKC10_NOT_DISPLAYED;
                return;
            }

            _terminalMSGList.Clear();

            for (int i = 0; i < TEXTItemList.Count; i++)
            {
                _terminalMSGList.Add(TEXTItemList.Items[i].GetString());
            }



            SecsMessageCommand msgObj = new SecsMessageCommand
            {
                Name        = "TerminalDisplay(M)",
                MessageName = "S10F5"
            };

            ThreadPool.QueueUserWorkItem(callback =>
            {
                S10F5TerminalMessageEvent?.Invoke(this, msgObj);
            });
        }
Exemple #2
0
        public void ReceiveS10F3(PrimaryMessageWrapper e, ref byte[] ACKC10)
        {
            //ReceiveS10F3
            //L,2
            //    1.< TID >
            //    2.< TEXT >

            int TIDIndex  = -1;
            int TEXTIndex = -1;

            string SearchKey = "S10F3";

            _smlManager._messageList.TryGetValue(SearchKey, out SanwaSML smlObj);
            string text = smlObj.Text;

            List <string> requestList = new List <string>();

            using (StringReader reader = new StringReader(smlObj.Text))
            {
                string line;
                int    rowIndex = 0;

                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains("TID"))
                    {
                        TIDIndex = rowIndex;
                    }
                    else if (line.Contains("TEXT"))
                    {
                        TEXTIndex = rowIndex;
                    }

                    if (line.Contains("<L"))
                    {
                        rowIndex++;
                    }
                    else
                    {
                        rowIndex = 0;
                    }
                }
            }

            ACKC10[0] = SanwaACK.ACKC10_ACK;

            if (TIDIndex != -1)
            {
                Item TIDItem = e.Message.SecsItem.Items[TIDIndex];

                if (TIDItem.Format != SecsFormat.Binary)
                {
                    ACKC10[0] = SanwaACK.ACKC10_NOT_DISPLAYED;
                    return;
                }
            }

            if (TEXTIndex != -1)
            {
                Item TEXTItem = e.Message.SecsItem.Items[TEXTIndex];

                if (TEXTItem.Format != SecsFormat.ASCII)
                {
                    ACKC10[0] = SanwaACK.ACKC10_NOT_DISPLAYED;
                    return;
                }

                _terminalMSGList.Clear();

                _terminalMSGList.Add(TEXTItem.GetString());
            }

            SecsMessageCommand msgObj = new SecsMessageCommand
            {
                Name        = "TerminalDisplay(S)",
                MessageName = "S10F3"
            };

            ThreadPool.QueueUserWorkItem(callback =>
            {
                S10F3TerminalMessageEvent?.Invoke(this, msgObj);
            });
        }