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 } } } }
private static void GetItem_List_ValueAsString(StringBuilder sb, SecsItemList item, int tabCount) { foreach (SecsItem subItem in item.Value) { GetItemValueAsString(sb, subItem, tabCount); } }
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); }
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(">"); }