public override GroupValue Convert(Field field, ConversionContext context) { var sequence = (Sequence)field; var seqDef = GroupConverter.Convert(sequence.Group, new Message(SessionControlProtocol_1_1.SEQUENCE_INSTR), context); seqDef.SetBool("Optional", sequence.Optional); if (!sequence.ImplicitLength) { var lengthGroup = SessionControlProtocol_1_1.SEQUENCE_INSTR.GetGroup("Length"); var lengthDef = new GroupValue(lengthGroup); var length = sequence.Length; var nameDef = new GroupValue(lengthGroup.GetGroup("Name")); SetNameAndId(length, nameDef); lengthDef.SetFieldValue("Name", nameDef); seqDef.SetFieldValue("Length", lengthDef); if (!length.Operator.Equals(Operator.NONE)) { var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator")); operatorDef.SetFieldValue(0, CreateOperator(length)); lengthDef.SetFieldValue("Operator", operatorDef); } if (!length.DefaultValue.Undefined) { lengthDef.SetFieldValue("InitialValue", length.DefaultValue); } } return(seqDef); }
public override bool Equals(object o) { if (this == o) { return(true); } if (o == null || GetType() != o.GetType()) { return(false); } SearchGroup <TGroupValue> that = (SearchGroup <TGroupValue>)o; if (GroupValue == null) { if (that.GroupValue != null) { return(false); } } else if (!GroupValue.Equals(that.GroupValue)) { return(false); } return(true); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var type = (Type)TEMPLATE_TYPE_MAP[fieldDef.GetGroup()]; bool optional = fieldDef.GetBool("Optional"); var initialValue = ScalarValue.UNDEFINED; if (fieldDef.IsDefined("InitialValue")) { initialValue = (ScalarValue)fieldDef.GetValue("InitialValue"); } if (fieldDef.IsDefined("Operator")) { GroupValue operatorGroup = fieldDef.GetGroup("Operator").GetGroup(0); Operator operator_Renamed = GetOperator(operatorGroup.GetGroup()); var scalar = new Scalar(fieldDef.GetString("Name"), type, operator_Renamed, initialValue, optional); if (operatorGroup.IsDefined("Dictionary")) { scalar.Dictionary = operatorGroup.GetString("Dictionary"); } if (operatorGroup.IsDefined("Key")) { string name = operatorGroup.GetGroup("Key").GetString("Name"); string ns = operatorGroup.GetGroup("Key").GetString("Ns"); scalar.Key = new QName(name, ns); } return(scalar); } return(new Scalar(fieldDef.GetString("Name"), type, Operator.NONE, initialValue, optional)); }
public override IFieldValue Decode(Stream inStream, Group decodeTemplate, Context context, BitVectorReader pmapReader) { try { if (!UsesPresenceMapBit || pmapReader.Read()) { if (context.TraceEnabled) { context.DecodeTrace.GroupStart(this); } var groupValue = new GroupValue(this, DecodeFieldValues(inStream, decodeTemplate, context)); if (context.TraceEnabled) { context.DecodeTrace.GroupEnd(); } return(groupValue); } return(null); } catch (DynErrorException e) { throw new DynErrorException(e, e.Error, "Error occurred while decoding {0}", this); } }
public void TestEquals() { GroupValue v = ObjectMother.NewAllocation(null, 10.0, 11.0); GroupValue v2 = ObjectMother.NewAllocation(null, 10.0, 11.0); Assert.AreEqual(v, v2); }
public void TestEmptyOperatorWithMandatoryField() { var field = new Scalar("", FASTType.U32, Operator.NONE, ScalarValue.UNDEFINED, false); MessageTemplate template = registerTemplate(field); var msg1 = new Message(template); msg1.SetInteger(1, 0); var msg2 = new Message(template); msg2.SetInteger(1, 16); // --PMAP-- --TID--- ---#1--- String encoding = "11000000 11110001 10000000"; encodeAndAssertEquals(encoding, msg1); // --PMAP-- ---#1--- encoding = "10000000 10010000"; byte[] encodedMessage = encoder.Encode(msg2); TestUtil.AssertBitVectorEquals(encoding, encodedMessage); output.Write(encodedMessage); GroupValue readMessage = decoder.ReadMessage(); Assert.AreEqual(msg1, readMessage); readMessage = decoder.ReadMessage(); Assert.AreEqual(msg2, readMessage); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { string name = fieldDef.GetString("Name"); string ns = fieldDef.GetString("Ns"); var qname = new QName(name, ns); var fields = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context); bool optional = fieldDef.GetBool("Optional"); Scalar length = null; if (fieldDef.IsDefined("Length")) { var lengthDef = fieldDef.GetGroup("Length"); QName lengthName; string id = null; if (lengthDef.IsDefined("Name")) { var nameDef = lengthDef.GetGroup("Name"); lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns")); if (nameDef.IsDefined("AuxId")) id = nameDef.GetString("AuxId"); } else lengthName = Global.CreateImplicitName(qname); var operator_Renamed = Operator.NONE; if (lengthDef.IsDefined("Operator")) operator_Renamed = GetOperator(lengthDef.GetGroup("Operator").GetGroup(0).GetGroup()); var initialValue = ScalarValue.UNDEFINED; if (lengthDef.IsDefined("InitialValue")) initialValue = (ScalarValue) lengthDef.GetValue("InitialValue"); length = new Scalar(lengthName, Type.U32, operator_Renamed, initialValue, optional) {Id = id}; } return new Sequence(qname, length, fields, optional); }
public void TestEmptyOperatorWithSequenceOfMessages() { var field = new Scalar("", FastType.U32, Operator.None, ScalarValue.Undefined, true); MessageTemplate template = RegisterTemplate(field); var msg1 = new Message(template); var msg2 = new Message(template); msg2.SetInteger(1, 15); // --PMAP-- --TID--- ---#1--- String encoding = "11000000 11110001 10000000"; EncodeAndAssertEquals(encoding, msg1); // --PMAP-- ---#1--- encoding = "10000000 10010000"; byte[] encodedMessage = _encoder.Encode(msg2); TestUtil.AssertBitVectorEquals(encoding, encodedMessage); _output.Write(encodedMessage); GroupValue readMessage = _decoder.ReadMessage(); Assert.AreEqual(msg1, readMessage); readMessage = _decoder.ReadMessage(); Assert.AreEqual(msg2, readMessage); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); bool optional = fieldDef.GetBool("Optional"); GroupValue exponentDef = fieldDef.GetGroup("Exponent"); GroupValue exponentOperatorDef = exponentDef.GetGroup("Operator").GetGroup(0); Operator exponentOperator = GetOperator(exponentOperatorDef.Group); ScalarValue exponentDefaultValue = ScalarValue.Undefined; if (exponentDef.IsDefined("InitialValue")) exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue")); GroupValue mantissaDef = fieldDef.GetGroup("Mantissa"); GroupValue mantissaOperatorDef = mantissaDef.GetGroup("Operator").GetGroup(0); Operator mantissaOperator = GetOperator(mantissaOperatorDef.Group); ScalarValue mantissaDefaultValue = ScalarValue.Undefined; if (mantissaDef.IsDefined("InitialValue")) mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue")); ComposedScalar composedDecimal = Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue, mantissaOperator, mantissaDefaultValue, optional); IFieldValue retAuxId; if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId!=null) { composedDecimal.Id = retAuxId.ToString(); } return composedDecimal; }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); bool optional = fieldDef.GetBool("Optional"); GroupValue exponentDef = fieldDef.GetGroup("Exponent"); GroupValue exponentOperatorDef = exponentDef.GetGroup("Operator").GetGroup(0); Operator exponentOperator = GetOperator(exponentOperatorDef.Group); ScalarValue exponentDefaultValue = ScalarValue.Undefined; if (exponentDef.IsDefined("InitialValue")) { exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue")); } GroupValue mantissaDef = fieldDef.GetGroup("Mantissa"); GroupValue mantissaOperatorDef = mantissaDef.GetGroup("Operator").GetGroup(0); Operator mantissaOperator = GetOperator(mantissaOperatorDef.Group); ScalarValue mantissaDefaultValue = ScalarValue.Undefined; if (mantissaDef.IsDefined("InitialValue")) { mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue")); } ComposedScalar composedDecimal = Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue, mantissaOperator, mantissaDefaultValue, optional); IFieldValue retAuxId; if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null) { composedDecimal.Id = retAuxId.ToString(); } return(composedDecimal); }
public static void SetNameAndId(Field field, GroupValue fieldDef) { SetName(field, fieldDef); if (field.Id != null) { fieldDef.SetString("AuxId", field.Id); } }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var scalar = (Scalar) base.Convert(fieldDef, templateRegistry, context); IFieldValue retLength; if (fieldDef.TryGetValue("Length", out retLength) && retLength != null) scalar.AddAttribute(FastConstants.LengthField, ((GroupValue) retLength).GetString("Name")); return scalar; }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { string name = fieldDef.GetString("Name"); Field[] fields = ParseFieldInstructions(fieldDef, templateRegistry, context); bool optional = fieldDef.GetBool("Optional"); return(new Group(name, fields, optional)); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); if (!templateRegistry.IsDefined(name)) { throw new System.SystemException("Referenced template " + name + " not defined."); } return new StaticTemplateReference(templateRegistry.get_Renamed(name)); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); MessageTemplate template; if (templateRegistry.TryGetTemplate(name, out template)) return new StaticTemplateReference(template); throw new ArgumentOutOfRangeException("fieldDef", name, "Referenced template name not defined."); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var scalar = (Scalar) base.Convert(fieldDef, templateRegistry, context); if (fieldDef.IsDefined("Length")) { scalar.AddAttribute(Error.FastConstants.LENGTH_FIELD, fieldDef.GetGroup("Length").GetString("Name")); } return scalar; }
public ActionResult <string> read() { using (Bus bus = new Bus(new KnxIpTunnelingConnectorParameters("192.168.0.10", 0x0e57, false))) { // Read value from sensor GroupValue data = bus.ReadValue("0/0/1"); } return("read"); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var scalar = (Scalar)base.Convert(fieldDef, templateRegistry, context); if (fieldDef.IsDefined("Length")) { scalar.AddAttribute(Error.FastConstants.LENGTH_FIELD, fieldDef.GetGroup("Length").GetString("Name")); } return(scalar); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); if (!templateRegistry.IsDefined(name)) { throw new System.SystemException("Referenced template " + name + " not defined."); } return(new StaticTemplateReference(templateRegistry.get_Renamed(name))); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var scalar = (Scalar)base.Convert(fieldDef, templateRegistry, context); IFieldValue retLength; if (fieldDef.TryGetValue("Length", out retLength) && retLength != null) { scalar.AddAttribute(FastConstants.LengthField, ((GroupValue)retLength).GetString("Name")); } return(scalar); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); MessageTemplate template; if (templateRegistry.TryGetTemplate(name, out template)) { return(new StaticTemplateReference(template)); } throw new ArgumentOutOfRangeException("fieldDef", name, "Referenced template name not defined."); }
internal Text(GroupValue groupValue, string defaultValue) { if (groupValue == null) { Format = defaultValue; Params = new string[] { }; return; } Format = groupValue.First().ToString(); Params = groupValue.Skip(1).Select(x => x.ToString()).ToArray(); }
public override GroupValue Convert(Field field, ConversionContext context) { var scalar = (Scalar) field; GroupValue fieldDef = base.Convert(field, context); if (scalar.HasAttribute(Error.FastConstants.LENGTH_FIELD)) { var lengthDef = new GroupValue(fieldDef.GetGroup().GetGroup("Length")); lengthDef.SetString("Name", scalar.GetAttribute(Error.FastConstants.LENGTH_FIELD)); fieldDef.SetFieldValue("Length", lengthDef); } return fieldDef; }
public override GroupValue Convert(Field field, ConversionContext context) { var scalar = (Scalar)field; GroupValue fieldDef = base.Convert(field, context); if (scalar.HasAttribute(Error.FastConstants.LENGTH_FIELD)) { var lengthDef = new GroupValue(fieldDef.GetGroup().GetGroup("Length")); lengthDef.SetString("Name", scalar.GetAttribute(Error.FastConstants.LENGTH_FIELD)); fieldDef.SetFieldValue("Length", lengthDef); } return(fieldDef); }
public override GroupValue Convert(Field field, ConversionContext context) { var scalar = (Scalar) field; GroupValue fieldDef = base.Convert(field, context); string value; if (scalar.TryGetAttribute(FastConstants.LengthField, out value)) { var lengthDef = new GroupValue(fieldDef.Group.GetGroup("Length")); lengthDef.SetString("Name", value); fieldDef.SetFieldValue("Length", lengthDef); } return fieldDef; }
public override GroupValue Convert(Field field, ConversionContext context) { var composedScalar = (ComposedScalar)field; var message = new Message(SessionControlProtocol11.CompDecimalInstr); SetNameAndId(field, message); message.SetInteger("Optional", field.IsOptional ? 1 : 0); GroupValue exponentDef = CreateComponent(composedScalar.Fields[0], "Exponent"); GroupValue mantissaDef = CreateComponent(composedScalar.Fields[1], "Mantissa"); message.SetFieldValue("Exponent", exponentDef); message.SetFieldValue("Mantissa", mantissaDef); return(message); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { string name = fieldDef.GetString("Name"); string ns = fieldDef.GetString("Ns"); var qname = new QName(name, ns); Field[] fields = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context); bool optional = fieldDef.GetBool("Optional"); Scalar length = null; IFieldValue retLength; if (fieldDef.TryGetValue("Length", out retLength) && retLength!=null) { GroupValue lengthDef = (GroupValue)retLength; QName lengthName; string id = null; IFieldValue retName; if (lengthDef.TryGetValue("Name", out retName) && retName != null) { GroupValue nameDef = (GroupValue)retName; lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns")); IFieldValue retAuxId; if (nameDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null) id = retAuxId.ToString(); } else lengthName = Global.CreateImplicitName(qname); Operator op = Operator.None; IFieldValue retOperator; if (lengthDef.TryGetValue("Operator", out retOperator) && retOperator != null) op = GetOperator(((GroupValue)retOperator).GetGroup(0).Group); ScalarValue initialValue = ScalarValue.Undefined; IFieldValue retInitialValue; if (lengthDef.TryGetValue("InitialValue", out retInitialValue) && retInitialValue != null) initialValue = (ScalarValue) retInitialValue; length = new Scalar(lengthName, FastType.U32, op, initialValue, optional) {Id = id}; } var sequence = new Sequence(qname, length, fields, optional); IFieldValue retTypeRef; if (fieldDef.TryGetValue("TypeRef", out retTypeRef) && retTypeRef != null) { GroupValue typeRef = (GroupValue)retTypeRef; string typeRefName = typeRef.GetString("Name"); string typeRefNs = ""; // context.getNamespace(); IFieldValue rettypeRefNs; if (typeRef.TryGetValue("Ns", out rettypeRefNs) && rettypeRefNs!=null) typeRefNs = rettypeRefNs.ToString(); sequence.TypeReference = new QName(typeRefName, typeRefNs); } return sequence; }
public override GroupValue Convert(Field field, ConversionContext context) { var scalar = (Scalar)field; GroupValue fieldDef = base.Convert(field, context); string value; if (scalar.TryGetAttribute(FastConstants.LengthField, out value)) { var lengthDef = new GroupValue(fieldDef.Group.GetGroup("Length")); lengthDef.SetString("Name", value); fieldDef.SetFieldValue("Length", lengthDef); } return(fieldDef); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { FastType type = _templateTypeMap[fieldDef.Group]; bool optional = fieldDef.GetBool("Optional"); IFieldValue retInitialValue; ScalarValue initialValue = fieldDef.TryGetValue("InitialValue", out retInitialValue) && retInitialValue != null ? (ScalarValue)retInitialValue : ScalarValue.Undefined; string name = fieldDef.GetString("Name"); IFieldValue rettempNs; string tempNs = fieldDef.TryGetValue("Ns", out rettempNs) && rettempNs != null?rettempNs.ToString() : ""; var qname = new QName(name, tempNs); Scalar scalar; IFieldValue retOperator; if (fieldDef.TryGetValue("Operator", out retOperator) && retOperator != null) { GroupValue operatorGroup = ((GroupValue)retOperator).GetGroup(0); Operator operatortemp = GetOperator(operatorGroup.Group); scalar = new Scalar(qname, type, operatortemp, initialValue, optional); IFieldValue retDictionary; if (operatorGroup.TryGetValue("Dictionary", out retDictionary) && retDictionary != null) { scalar.Dictionary = retDictionary.ToString(); } IFieldValue retKey; if (operatorGroup.TryGetValue("Key", out retKey) && retKey != null) { GroupValue retOperatorGroup = (GroupValue)retKey; string keyName = retOperatorGroup.GetString("Name"); string ns = retOperatorGroup.GetString("Ns"); scalar.Key = new QName(keyName, ns); } } else { scalar = new Scalar(qname, type, Operator.None, initialValue, optional); } IFieldValue retAuxId; if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null) { scalar.Id = retAuxId.ToString(); } return(scalar); }
private static GroupValue CreateComponent(Scalar component, string componentName) { var componentGroup = SessionControlProtocol_1_1.COMP_DECIMAL_INSTR.GetGroup(componentName); var componentDef = new GroupValue(componentGroup); var componentOperatorDef = CreateOperator(component); var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator")); componentDef.SetFieldValue("Operator", componentOperatorGroup); componentOperatorGroup.SetFieldValue(0, componentOperatorDef); if (!component.DefaultValue.Undefined) { componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt()); } return(componentDef); }
public void TestDecodeSequentialEmptyMessages() { var messageTemplate = new MessageTemplate("", new Field[0]); Stream input = ByteUtil.CreateByteStream("11000000 11110001 10000000"); var context = new Context(); context.RegisterTemplate(113, messageTemplate); var decoder = new FastDecoder(context, input); GroupValue message = decoder.ReadMessage(); GroupValue message2 = decoder.ReadMessage(); Assert.AreEqual(113, message.GetInt(0)); Assert.AreEqual(113, message2.GetInt(0)); }
public static Message NewAllocInstrctn(String id, int side, double quantity, double averagePrice, GroupValue instrument, SequenceValue allocations) { var allocInstrctn = new Message(AllocationInstruction); allocInstrctn.SetFieldValue(1, allocations); allocInstrctn.SetFieldValue(2, instrument); allocInstrctn.SetFieldValue(3, new StringValue(id)); allocInstrctn.SetFieldValue(4, new IntegerValue(side)); allocInstrctn.SetFieldValue(5, new DecimalValue(quantity)); allocInstrctn.SetFieldValue(6, new DecimalValue(averagePrice)); return(allocInstrctn); }
private static GroupValue CreateComponent(Scalar component, string componentName) { Group componentGroup = SessionControlProtocol11.CompDecimalInstr.GetGroup(componentName); var componentDef = new GroupValue(componentGroup); GroupValue componentOperatorDef = CreateOperator(component); var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator")); componentDef.SetFieldValue("Operator", componentOperatorGroup); componentOperatorGroup.SetFieldValue(0, componentOperatorDef); if (!component.DefaultValue.IsUndefined) { componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt()); } return(componentDef); }
public static Message Convert(Group group, Message groupMsg, ConversionContext context) { SetNameAndId(group, groupMsg); if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference)) { var typeRef = new GroupValue( (Group)SessionControlProtocol11 .TypeRef .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, group.TypeReference); groupMsg.SetFieldValue("TypeRef", typeRef); } var instructions = new SequenceValue( SessionControlProtocol11.TemplateDefinition.GetSequence("Instructions")); if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference)) { var typeRef = new GroupValue( (Group) SessionControlProtocol11 .TypeRef .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, group.TypeReference); groupMsg.SetFieldValue("TypeRef", typeRef); } Field[] fields = group.FieldDefinitions; for (int i = group is MessageTemplate ? 1 : 0; i < fields.Length; i++) { Field field = fields[i]; IFieldInstructionConverter converter = context.GetConverter(field); if (converter == null) { throw new InvalidOperationException("No converter found for type " + field.GetType()); } IFieldValue v = converter.Convert(field, context); instructions.Add(new[] { v }); } groupMsg.SetFieldValue("Instructions", instructions); return(groupMsg); }
public static Field[] ParseFieldInstructions(GroupValue groupDef, TemplateRegistry registry, ConversionContext context) { var instructions = groupDef.GetSequence("Instructions"); var fields = new Field[instructions.Length]; for (int i = 0; i < fields.Length; i++) { var fieldDef = instructions[i].GetGroup(0); var converter = context.GetConverter(fieldDef.GetGroup()); if (converter == null) { throw new System.SystemException("Encountered unknown group " + fieldDef.GetGroup() + "while processing field instructions " + groupDef.GetGroup()); } fields[i] = converter.Convert(fieldDef, registry, context); } return fields; }
public static Message Convert(Group group, Message groupMsg, ConversionContext context) { SetNameAndId(group, groupMsg); if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference)) { var typeRef = new GroupValue( (Group) SessionControlProtocol11 .TypeRef .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, group.TypeReference); groupMsg.SetFieldValue("TypeRef", typeRef); } var instructions = new SequenceValue( SessionControlProtocol11.TemplateDefinition.GetSequence("Instructions")); if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference)) { var typeRef = new GroupValue( (Group) SessionControlProtocol11 .TypeRef .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, group.TypeReference); groupMsg.SetFieldValue("TypeRef", typeRef); } Field[] fields = group.FieldDefinitions; for (int i = group is MessageTemplate ? 1 : 0; i < fields.Length; i++) { Field field = fields[i]; IFieldInstructionConverter converter = context.GetConverter(field); if (converter == null) throw new InvalidOperationException("No converter found for type " + field.GetType()); IFieldValue v = converter.Convert(field, context); instructions.Add(new[] {v}); } groupMsg.SetFieldValue("Instructions", instructions); return groupMsg; }
public void TestEmptyOperatorWithOptionalFieldOnNullValue() { var field = new Scalar("", FastType.U32, Operator.None, ScalarValue.Undefined, true); MessageTemplate template = RegisterTemplate(field); var message = new Message(template); // --PMAP-- --TID--- ---#1--- const string encoding = "11000000 11110001 10000000"; EncodeAndAssertEquals(encoding, message); GroupValue readMessage = _decoder.ReadMessage(); Assert.AreEqual(message, readMessage); }
public static Field[] ParseFieldInstructions(GroupValue groupDef, TemplateRegistry registry, ConversionContext context) { var instructions = groupDef.GetSequence("Instructions"); var fields = new Field[instructions.Length]; for (int i = 0; i < fields.Length; i++) { var fieldDef = instructions[i].GetGroup(0); var converter = context.GetConverter(fieldDef.GetGroup()); if (converter == null) { throw new System.SystemException("Encountered unknown group " + fieldDef.GetGroup() + "while processing field instructions " + groupDef.GetGroup()); } fields[i] = converter.Convert(fieldDef, registry, context); } return(fields); }
public override GroupValue Convert(Field field, ConversionContext context) { var sequence = (Sequence)field; Message seqDef = GroupConverter.Convert( sequence.Group, new Message(SessionControlProtocol11.SequenceInstr), context); seqDef.SetBool("Optional", sequence.IsOptional); if (!sequence.ImplicitLength) { Group lengthGroup = SessionControlProtocol11.SequenceInstr.GetGroup("Length"); var lengthDef = new GroupValue(lengthGroup); Scalar length = sequence.Length; var nameDef = new GroupValue(lengthGroup.GetGroup("Name")); SetNameAndId(length, nameDef); lengthDef.SetFieldValue("Name", nameDef); seqDef.SetFieldValue("Length", lengthDef); if (!length.Operator.Equals(Operator.None)) { var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator")); operatorDef.SetFieldValue(0, CreateOperator(length)); lengthDef.SetFieldValue("Operator", operatorDef); } if (!length.DefaultValue.IsUndefined) { lengthDef.SetFieldValue("InitialValue", length.DefaultValue); } } if (sequence.TypeReference != null && !FastConstants.AnyType.Equals(sequence.TypeReference)) { var typeRef = new GroupValue( (Group) SessionControlProtocol11.TypeRef.GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, sequence.TypeReference); seqDef.SetFieldValue("TypeRef", typeRef); } return(seqDef); }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { string name = fieldDef.GetString("Name"); string ns = fieldDef.GetString("Ns"); var qname = new QName(name, ns); var fields = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context); bool optional = fieldDef.GetBool("Optional"); Scalar length = null; if (fieldDef.IsDefined("Length")) { var lengthDef = fieldDef.GetGroup("Length"); QName lengthName; string id = null; if (lengthDef.IsDefined("Name")) { var nameDef = lengthDef.GetGroup("Name"); lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns")); if (nameDef.IsDefined("AuxId")) { id = nameDef.GetString("AuxId"); } } else { lengthName = Global.CreateImplicitName(qname); } var operator_Renamed = Operator.NONE; if (lengthDef.IsDefined("Operator")) { operator_Renamed = GetOperator(lengthDef.GetGroup("Operator").GetGroup(0).GetGroup()); } var initialValue = ScalarValue.UNDEFINED; if (lengthDef.IsDefined("InitialValue")) { initialValue = (ScalarValue)lengthDef.GetValue("InitialValue"); } length = new Scalar(lengthName, Type.U32, operator_Renamed, initialValue, optional) { Id = id }; } return(new Sequence(qname, length, fields, optional)); }
public void TestEmptyOperatorWithOptionalField() { var field = new Scalar("", FASTType.U32, Operator.NONE, ScalarValue.UNDEFINED, true); MessageTemplate template = registerTemplate(field); var message = new Message(template); message.SetInteger(1, 126); // --PMAP-- --TID--- ---#1--- const string encoding = "11000000 11110001 11111111"; encodeAndAssertEquals(encoding, message); GroupValue readMessage = decoder.ReadMessage(); Assert.AreEqual(message, readMessage); }
public static GroupValue CreateOperator(Scalar scalar) { MessageTemplate operatorTemplate; if (!OperatorTemplateMap.TryGetValue(scalar.Operator, out operatorTemplate)) return null; GroupValue operatorMessage = new Message(operatorTemplate); if (!scalar.Dictionary.Equals(DictionaryFields.Global)) operatorMessage.SetString("Dictionary", scalar.Dictionary); if (!scalar.Key.Equals(scalar.QName)) { Group key = operatorTemplate.GetGroup("Key"); var keyValue = new GroupValue(key); keyValue.SetString("Name", scalar.Key.Name); keyValue.SetString("Ns", scalar.Key.Namespace); operatorMessage.SetFieldValue(key, keyValue); } return operatorMessage; }
public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context) { var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns")); bool optional = fieldDef.GetBool("Optional"); var exponentDef = fieldDef.GetGroup("Exponent"); var exponentOperatorDef = exponentDef.GetGroup("Operator").GetGroup(0); var exponentOperator = GetOperator(exponentOperatorDef.GetGroup()); var exponentDefaultValue = ScalarValue.UNDEFINED; if (exponentDef.IsDefined("InitialValue")) exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue")); var mantissaDef = fieldDef.GetGroup("Mantissa"); var mantissaOperatorDef = mantissaDef.GetGroup("Operator").GetGroup(0); var mantissaOperator = GetOperator(mantissaOperatorDef.GetGroup()); var mantissaDefaultValue = ScalarValue.UNDEFINED; if (mantissaDef.IsDefined("InitialValue")) mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue")); return Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue, mantissaOperator, mantissaDefaultValue, optional); }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { FastType type = _templateTypeMap[fieldDef.Group]; bool optional = fieldDef.GetBool("Optional"); IFieldValue retInitialValue; ScalarValue initialValue = fieldDef.TryGetValue("InitialValue",out retInitialValue) && retInitialValue!=null ? (ScalarValue)retInitialValue : ScalarValue.Undefined; string name = fieldDef.GetString("Name"); IFieldValue rettempNs; string tempNs = fieldDef.TryGetValue("Ns", out rettempNs) && rettempNs != null ? rettempNs.ToString() : ""; var qname = new QName(name, tempNs); Scalar scalar; IFieldValue retOperator; if (fieldDef.TryGetValue("Operator", out retOperator) && retOperator!=null) { GroupValue operatorGroup = ((GroupValue)retOperator).GetGroup(0); Operator operatortemp = GetOperator(operatorGroup.Group); scalar = new Scalar(qname, type, operatortemp, initialValue, optional); IFieldValue retDictionary; if (operatorGroup.TryGetValue("Dictionary", out retDictionary) && retDictionary != null) scalar.Dictionary = retDictionary.ToString(); IFieldValue retKey; if (operatorGroup.TryGetValue("Key", out retKey) && retKey != null) { GroupValue retOperatorGroup = (GroupValue) retKey; string keyName = retOperatorGroup.GetString("Name"); string ns = retOperatorGroup.GetString("Ns"); scalar.Key = new QName(keyName, ns); } } else { scalar = new Scalar(qname, type, Operator.None, initialValue, optional); } IFieldValue retAuxId; if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId!=null) { scalar.Id = retAuxId.ToString(); } return scalar; }
public static Field[] ParseFieldInstructions(GroupValue groupDef, ITemplateRegistry registry, ConversionContext context) { SequenceValue instructions = groupDef.GetSequence("Instructions"); var fields = new Field[instructions.Length]; for (int i = 0; i < fields.Length; i++) { GroupValue fieldDef = instructions[i].GetGroup(0); IFieldInstructionConverter converter = context.GetConverter(fieldDef.Group); if (converter == null) throw new SystemException( string.Format("Encountered unknown group {0} while processing field instructions {1}", fieldDef.Group, groupDef.Group)); fields[i] = converter.Convert(fieldDef, registry, context); } return fields; }
public virtual Field Convert(GroupValue groupValue, TemplateRegistry templateRegistry, ConversionContext context) { return DynamicTemplateReference.INSTANCE; }
private static GroupValue CreateComponent(Scalar component, string componentName) { Group componentGroup = SessionControlProtocol11.CompDecimalInstr.GetGroup(componentName); var componentDef = new GroupValue(componentGroup); GroupValue componentOperatorDef = CreateOperator(component); var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator")); componentDef.SetFieldValue("Operator", componentOperatorGroup); componentOperatorGroup.SetFieldValue(0, componentOperatorDef); if (!component.DefaultValue.IsUndefined) componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt()); return componentDef; }
static void switchON(string _taskguid, string _dtable) { string _TaskID = string.Empty; string _channelGroup = string.Empty; string _PillarID = string.Empty; string _TaskSubject = string.Empty; DateTime _TaskStart = DateTime.Now; DateTime _TaskEnd = DateTime.Now; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { string sqlSelect = "SELECT [ID],[ChannelGroup],[PillarID],[Subject],[Start],[End] FROM [db_knx].[dbo].[Scheduler] WHERE [TaskGUID] LIKE N'" + _taskguid + "' AND [Start] = (SELECT MIN([Start]) FROM [db_knx].[dbo].[Scheduler] WHERE [TaskGUID] LIKE N'"+_taskguid+"');"; conn.Open(); using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn)) { SqlDataReader _dt = sqlComm.ExecuteReader(); while (_dt.Read()) { _TaskID = _dt["ID"].ToString(); _channelGroup = _dt["ChannelGroup"].ToString(); _PillarID = _dt["PillarID"].ToString(); _TaskSubject = _dt["Subject"].ToString(); _TaskStart = (DateTime)_dt["Start"]; _TaskEnd = (DateTime)_dt["End"]; } _dt.Close(); } conn.Close(); } string[] ChannelsArray = _channelGroup.Split(','); for(var i=0; i<ChannelsArray.Count(); i++) { while(ChannelsArray[i].IndexOf(" ") > -1) { ChannelsArray[i] = ChannelsArray[i].Replace(" ", ""); } } string AddressIP = string.Empty; string AddressPort = string.Empty; bool AddressNat = false; string TypeKNX = string.Empty; string MeterSerial = string.Empty; List<string> GroupAddressMeter = new List<string>(); List<string> GroupAddressON = new List<string>(); using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { string sqlSelect = "SELECT [AddressIP],[AddressPort],[AddressNat],[TypeKNX],[MeterSerialNo] FROM [db_knx].[dbo].[Pillars] WHERE [ID] = " + _PillarID + ";"; conn.Open(); using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn)) { SqlDataReader _dt = sqlComm.ExecuteReader(); while (_dt.Read()) { AddressIP = _dt["AddressIP"].ToString(); AddressPort = _dt["AddressPort"].ToString(); AddressNat = (bool)_dt["AddressNat"]; TypeKNX = _dt["TypeKNX"].ToString(); MeterSerial = _dt["MeterSerialNo"].ToString(); } _dt.Close(); } for (var i = 0; i < ChannelsArray.Count(); i++) { sqlSelect = "SELECT [On/Off Address],[MeasureCurrent Address] FROM [db_knx].[dbo].[" + TypeKNX + "_" + MeterSerial + "] WHERE [Departure] = " + ChannelsArray[i] + ";"; using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn)) { SqlDataReader _dt = sqlComm.ExecuteReader(); while (_dt.Read()) { GroupAddressON.Add(_dt["On/Off Address"].ToString()); GroupAddressMeter.Add(_dt["MeasureCurrent Address"].ToString()); } _dt.Close(); } } conn.Close(); } Ping pingOrder = new Ping(); for (var i=0; i<4; i++) { try { pingOrder.Send(AddressIP); } catch (PingException ex) { } } pingOrder = null; using (Bus _bus = new Bus(new KnxIpTunnelingConnectorParameters(AddressIP, ushort.Parse(AddressPort), AddressNat))) { try { _bus.Connect(); for (var i = 0; i < GroupAddressON.Count; i++) { GroupAddress _groupAddress = GroupAddress.Parse(GroupAddressON[i]); GroupValue _groupValue = new GroupValue(true); _bus.WriteValue(_groupAddress, _groupValue, Priority.Low); //GroupAddress _groupAddressMeter = GroupAddress.Parse(GroupAddressMeter[i]); //GroupValue groupValue = _bus.ReadValue(_groupAddressMeter, Priority.Low); //DataPointTranslator _dpt = new DataPointTranslator(); //decimal _value = (decimal)_dpt.FromDataPoint("9.001", groupValue.Value); //storeValueToDB(_value, MeterSerial, ChannelsArray[i]); } _bus.Disconnect(); _bus.Dispose(); updateSchedulerTable(_TaskID, false); updatePillarDeparturesSQL(_PillarID, _channelGroup, true); updateTask(_taskguid, "On"); emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, null, null); } catch (ConnectorException ex) { updateSchedulerTable(_TaskID, true); updateReportScheduler1(_TaskID, ex.ErrorReason); emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, ex, null, null); if (_bus != null) { _bus.Disconnect(); _bus.Dispose(); } } catch (ConnectionException ex) { updateSchedulerTable(_TaskID, true); updateReportScheduler2(_TaskID, ex.ErrorReason); emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, ex, null); if (_bus != null) { _bus.Disconnect(); _bus.Dispose(); } } catch (NoResponseReceivedException ex) { updateSchedulerTable(_TaskID, true); updateReportScheduler3(_TaskID, ex.ErrorReason); emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, null, ex); if (_bus != null) { _bus.Disconnect(); _bus.Dispose(); } } finally { if (_bus != null) { _bus.Disconnect(); _bus.Dispose(); } } } }
public override GroupValue Convert(Field field, ConversionContext context) { var sequence = (Sequence) field; var seqDef = GroupConverter.Convert(sequence.Group, new Message(SessionControlProtocol_1_1.SEQUENCE_INSTR), context); seqDef.SetBool("Optional", sequence.Optional); if (!sequence.ImplicitLength) { var lengthGroup = SessionControlProtocol_1_1.SEQUENCE_INSTR.GetGroup("Length"); var lengthDef = new GroupValue(lengthGroup); var length = sequence.Length; var nameDef = new GroupValue(lengthGroup.GetGroup("Name")); SetNameAndId(length, nameDef); lengthDef.SetFieldValue("Name", nameDef); seqDef.SetFieldValue("Length", lengthDef); if (!length.Operator.Equals(Operator.NONE)) { var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator")); operatorDef.SetFieldValue(0, CreateOperator(length)); lengthDef.SetFieldValue("Operator", operatorDef); } if (!length.DefaultValue.Undefined) { lengthDef.SetFieldValue("InitialValue", length.DefaultValue); } } return seqDef; }
public abstract Field Convert(GroupValue param1, ITemplateRegistry param2, ConversionContext param3);
public override GroupValue Convert(Field field, ConversionContext context) { var sequence = (Sequence) field; Message seqDef = GroupConverter.Convert( sequence.Group, new Message(SessionControlProtocol11.SequenceInstr), context); seqDef.SetBool("Optional", sequence.IsOptional); if (!sequence.ImplicitLength) { Group lengthGroup = SessionControlProtocol11.SequenceInstr.GetGroup("Length"); var lengthDef = new GroupValue(lengthGroup); Scalar length = sequence.Length; var nameDef = new GroupValue(lengthGroup.GetGroup("Name")); SetNameAndId(length, nameDef); lengthDef.SetFieldValue("Name", nameDef); seqDef.SetFieldValue("Length", lengthDef); if (!length.Operator.Equals(Operator.None)) { var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator")); operatorDef.SetFieldValue(0, CreateOperator(length)); lengthDef.SetFieldValue("Operator", operatorDef); } if (!length.DefaultValue.IsUndefined) { lengthDef.SetFieldValue("InitialValue", length.DefaultValue); } } if (sequence.TypeReference != null && !FastConstants.AnyType.Equals(sequence.TypeReference)) { var typeRef = new GroupValue( (Group) SessionControlProtocol11.TypeRef.GetField(new QName("TypeRef", SessionControlProtocol11.Namespace))); SetName(typeRef, sequence.TypeReference); seqDef.SetFieldValue("TypeRef", typeRef); } return seqDef; }
public static void SetName(GroupValue fieldDef, QName qname) { fieldDef.SetString("Name", qname.Name); fieldDef.SetString("Ns", qname.Namespace); }
private static GroupValue CreateComponent(Scalar component, string componentName) { var componentGroup = SessionControlProtocol_1_1.COMP_DECIMAL_INSTR.GetGroup(componentName); var componentDef = new GroupValue(componentGroup); var componentOperatorDef = CreateOperator(component); var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator")); componentDef.SetFieldValue("Operator", componentOperatorGroup); componentOperatorGroup.SetFieldValue(0, componentOperatorDef); if (!component.DefaultValue.Undefined) componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt()); return componentDef; }
private void ReadMessageAndAssertEquals(GroupValue msg1) { GroupValue readMessage = _decoder.ReadMessage(); Assert.AreEqual(msg1, readMessage); }
public static void SetName(Field field, GroupValue fieldDef) { QName qname = field.QName; SetName(fieldDef, qname); }
public static void SetNameAndId(Field field, GroupValue fieldDef) { SetName(field, fieldDef); if (!field.IsIdNull()) fieldDef.SetString("AuxId", field.Id); }
public static Message NewAllocInstrctn(String id, int side, double quantity, double averagePrice, GroupValue instrument, SequenceValue allocations) { var allocInstrctn = new Message(AllocationInstruction); allocInstrctn.SetFieldValue(1, allocations); allocInstrctn.SetFieldValue(2, instrument); allocInstrctn.SetFieldValue(3, new StringValue(id)); allocInstrctn.SetFieldValue(4, new IntegerValue(side)); allocInstrctn.SetFieldValue(5, new DecimalValue(quantity)); allocInstrctn.SetFieldValue(6, new DecimalValue(averagePrice)); return allocInstrctn; }
public override FieldValue Decode(System.IO.Stream in_Renamed, Group decodeTemplate, Context context, BitVectorReader pmapReader) { try { if (!UsesPresenceMapBit() || pmapReader.Read()) { if (context.TraceEnabled) { context.DecodeTrace.GroupStart(this); } var groupValue = new GroupValue(this, DecodeFieldValues(in_Renamed, decodeTemplate, context)); if (context.TraceEnabled) context.DecodeTrace.GroupEnd(); return groupValue; } return null; } catch (FastException e) { throw new FastException("Error occurred while decoding " + this, e.Code, e); } }
public override IFieldValue Decode(Stream inStream, Group decodeTemplate, Context context, BitVectorReader pmapReader) { try { if (!UsesPresenceMapBit || pmapReader.Read()) { if (context.TraceEnabled) context.DecodeTrace.GroupStart(this); var groupValue = new GroupValue(this, DecodeFieldValues(inStream, decodeTemplate, context)); if (context.TraceEnabled) context.DecodeTrace.GroupEnd(); return groupValue; } return null; } catch (DynErrorException e) { throw new DynErrorException(e, e.Error, "Error occurred while decoding {0}", this); } }
public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context) { string name = fieldDef.GetString("Name"); string namespacetemp = ""; IFieldValue retns; if (fieldDef.TryGetValue("Ns", out retns) && retns != null) namespacetemp = retns.ToString(); Field[] fields = ParseFieldInstructions(fieldDef, templateRegistry, context); bool optional = fieldDef.GetBool("Optional"); var group = new Group(new QName(name, namespacetemp), fields, optional); IFieldValue retTypeRef; if (fieldDef.TryGetValue("TypeRef", out retTypeRef) && retTypeRef != null) { var typeRef = (GroupValue) retTypeRef; String typeRefName = typeRef.GetString("Name"); String typeRefNs = ""; // context.getNamespace(); IFieldValue retNsTypeRef; if (typeRef.TryGetValue("Ns", out retNsTypeRef) && retNsTypeRef != null) typeRefNs = retNsTypeRef.ToString(); group.TypeReference = new QName(typeRefName, typeRefNs); } IFieldValue retAuxId; if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null) group.Id = retAuxId.ToString(); return group; }