fixed issue in printing arrays in DAs

v1.6
unknown 3 months ago
parent 5dd6fbe8bd
commit 0214d86790

@ -553,31 +553,9 @@ namespace IEC61850.SCL
}
private void ExportDataAttribute(StreamWriter output, DataAttribute dataAttribute, bool isTransient)
{
output.Write("DA(" + dataAttribute.Name + " ");
output.Write(dataAttribute.Count + " ");
output.Write((int)dataAttribute.AttributeType + " ");
output.Write((int)dataAttribute.Fc + " ");
if (dataAttribute.Definition.TriggerOptions != null)
{
int trgOpsVal = dataAttribute.Definition.TriggerOptions.GetIntValue();
if (isTransient)
trgOpsVal += 128;
output.Write(trgOpsVal + " ");
}
if (dataAttribute.Definition.SAddr != null)
output.Write(dataAttribute.Definition.SAddr);
else
output.Write("0");
output.Write(")");
void printDataAttributes(StreamWriter output, DataAttribute dataAttribute, bool isTransient)
{
if (dataAttribute.AttributeType != AttributeType.CONSTRUCTED)
{
//if (value != null)
@ -591,7 +569,7 @@ namespace IEC61850.SCL
SclDOI sclDOI = logicalNode.SclElement.DOIs.Find(x => x.Name == dataObject.Name);
SclDAI sclDAI = getDAI(sclDOI, dataAttribute.Name);
if(sclDAI == null)
if (sclDAI == null)
{
output.WriteLine(";");
@ -662,7 +640,7 @@ namespace IEC61850.SCL
default:
Console.WriteLine("Unknown default value for " + dataAttribute.Name + " type: " + dataAttribute.AttributeType);
break;
break;
}
@ -685,6 +663,53 @@ namespace IEC61850.SCL
output.WriteLine("}");
}
}
private void ExportDataAttribute(StreamWriter output, DataAttribute dataAttribute, bool isTransient)
{
output.Write("DA(" + dataAttribute.Name + " ");
output.Write(dataAttribute.Count + " ");
output.Write((int)dataAttribute.AttributeType + " ");
output.Write((int)dataAttribute.Fc + " ");
if (dataAttribute.Definition.TriggerOptions != null)
{
int trgOpsVal = dataAttribute.Definition.TriggerOptions.GetIntValue();
if (isTransient)
trgOpsVal += 128;
output.Write(trgOpsVal + " ");
}
if (dataAttribute.Definition.SAddr != null)
output.Write(dataAttribute.Definition.SAddr);
else
output.Write("0");
output.Write(")");
if (dataAttribute.Count > 0)
{
output.WriteLine("{");
for (int i = 0; i < dataAttribute.Count; i++)
{
output.Write("[" + i + "]");
printDataAttributes(output, dataAttribute, isTransient);
}
output.WriteLine("}");
}
else
{
printDataAttributes(output, dataAttribute, isTransient);
}

Loading…
Cancel
Save