Пример #1
0
        public void ObtainSvValueFromS6F11(SecsMessageBase s6f11)
        {
            SecsItemList secsItem_L3     = (SecsItemList)s6f11.Items[0];
            SecsItem     secsItem_DataID = secsItem_L3.Value[0];
            SecsItem     secsItem_CEID   = secsItem_L3.Value[1];
            SecsItemList secsItem_La     = (SecsItemList)secsItem_L3.Value[2];

            SecsItem     secsItem_RPTID = null;
            SecsItemList secsItem_Lb    = null;

            foreach (SecsItemList secsItem_L2 in secsItem_La.Value)
            {
                secsItem_RPTID = secsItem_L2.Value[0];
                secsItem_Lb    = (SecsItemList)secsItem_L2.Value[1];

                for (int index = 0; index < secsItem_Lb.Value.Count; index++)
                {
                    object dfSvid = InternalGetDefinedSVID(secsItem_RPTID, index);
                    if (m_SVAttributeDic.ContainsKey(dfSvid))
                    {
                        SVIDMapInfo mi = m_SVAttributeDic[dfSvid];
                        SetStatusVariable(mi, secsItem_Lb.Value[index]);
                    }
                    else
                    {
                        //throw error
                    }
                }
            }
        }
Пример #2
0
 private static void GetItem_List_ValueAsString(StringBuilder sb, SecsItemList item, int tabCount)
 {
     foreach (SecsItem subItem in item.Value)
     {
         GetItemValueAsString(sb, subItem, tabCount);
     }
 }
Пример #3
0
        public static SecsItem Create(string name, FormatCode format)
        {
            SecsItem item = null;

            switch (format)
            {
            case FormatCode.ASCII:
                item = new SecsItemAscii(name);
                break;

            case FormatCode.Binary:
                item = new SecsItemBinary(name);
                break;

            case FormatCode.Boolean:
                item = new SecsItemBoolean(name);
                break;

            case FormatCode.MC:
                break;

            case FormatCode.F4:
                item = new SecsItemF4(name);
                break;

            case FormatCode.F8:
                item = new SecsItemF8(name);
                break;

            case FormatCode.I1:
                item = new SecsItemI1(name);
                break;

            case FormatCode.I2:
                item = new SecsItemI2(name);
                break;

            case FormatCode.I4:
                item = new SecsItemI4(name);
                break;

            case FormatCode.I8:
                item = new SecsItemI8(name);
                break;

            case FormatCode.JIS8:
                break;

            case FormatCode.LIST:
                item = new SecsItemList(name);
                break;

            case FormatCode.U1:
                item = new SecsItemU1(name);
                break;

            case FormatCode.U2:
                item = new SecsItemU2(name);
                break;

            case FormatCode.U4:
                item = new SecsItemU4(name);
                break;

            case FormatCode.U8:
                item = new SecsItemU8(name);
                break;

            default:
                throw new Exception("Not support item format code");
            }

            return(item);
        }
Пример #4
0
        private static void GetItemValueAsString(StringBuilder sb, SecsItem item, int tabCount)
        {
            sb.Append(Environment.NewLine);
            if (tabCount > 0)
            {
                sb.Append('\t', tabCount);
            }

            sb.Append(string.Format("< {0} [{1}] ", GetItemFormatString(item.Format), GetItemLength(item)));

            if ((item is SecsItemAscii) || (item is SecsItemMultiByteChar))
            {
                sb.Append("\"" + (string)item.Value + "\"");
            }
            else if (item is SecsItemBoolean)
            {
                GetItem_Boolean_ValueAsString(sb, (SecsItemBoolean)item);
            }
            else if (item is SecsItemBinary)
            {
                GetItem_Binary_ValueAsString(sb, (SecsItemBinary)item);
            }
            else if (item is SecsItemList)
            {
                SecsItemList list = (SecsItemList)item;

                GetItem_List_ValueAsString(sb, list, tabCount + 1);

                if (list.Value.Count > 0)
                {
                    sb.Append(Environment.NewLine);

                    if (tabCount > 0)
                    {
                        sb.Append('\t', tabCount);
                    }
                }
            }
            else if (item is SecsItemU1)
            {
                GetItem_U1_ValueAsString(sb, (SecsItemU1)item);
            }
            else if (item is SecsItemU2)
            {
                GetItem_U2_ValueAsString(sb, (SecsItemU2)item);
            }
            else if (item is SecsItemU4)
            {
                GetItem_U4_ValueAsString(sb, (SecsItemU4)item);
            }
            else if (item is SecsItemU8)
            {
                GetItem_U8_ValueAsString(sb, (SecsItemU8)item);
            }
            else if (item is SecsItemI1)
            {
                GetItem_I1_ValueAsString(sb, (SecsItemI1)item);
            }
            else if (item is SecsItemI2)
            {
                GetItem_I2_ValueAsString(sb, (SecsItemI2)item);
            }
            else if (item is SecsItemI4)
            {
                GetItem_I4_ValueAsString(sb, (SecsItemI4)item);
            }
            else if (item is SecsItemI8)
            {
                GetItem_I8_ValueAsString(sb, (SecsItemI8)item);
            }
            else if (item is SecsItemF4)
            {
                GetItem_F4_ValueAsString(sb, (SecsItemF4)item);
            }
            else if (item is SecsItemF8)
            {
                GetItem_F8_ValueAsString(sb, (SecsItemF8)item);
            }

            if (!(item is SecsItemList))
            {
                sb.Append(" ");
            }
            sb.Append(">");
        }