DEcodifica correttamente testata file DataModel.xml

This commit is contained in:
Samuele E. Locatelli
2019-06-28 14:55:36 +02:00
parent e62dfe0b03
commit dde43c21ab
7 changed files with 22 additions and 176 deletions
Vendored
+1 -1
View File
@@ -15,7 +15,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=386']) {
withEnv(['NEXT_BUILD_NUMBER=387']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'SCMA'
-127
View File
@@ -1,127 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace OPC_UA_REDIS
{
/// <summary>
/// Classe per serializzazione / deserializzazione del datamodel x le informazioni necessarie x ADAPTER OPC-UA 2.1+
/// </summary>
public class DataModelClass
{
#region oggetti di base
public class Component
{
public string name { get; set; }
}
/// <summary>
/// Classe di base oggetti OPC-UA in Datamodel da deserializzare
/// </summary>
public class ouBaseObj
{
[XmlAttribute]
//[XmlAttribute("SymbolicName")]
public string SymbolicName { get; set; }
[XmlAttribute("BrowseName")]
public string BrowseName { get; set; }
[XmlAttribute("DataType")]
public string DataType { get; set; }
[XmlAttribute("ValueRank")]
public string ValueRank { get; set; }
}
public class ouProperty: ouBaseObj
{
[XmlAttribute("Value")]
public string Value { get; set; }
}
public class ouVariable: ouBaseObj
{
[XmlAttribute("Units")]
public string Units { get; set; }
}
#endregion
#region area oggetti deserializzazione
/// <summary>
/// Oggetto più esterno ModelDesign
/// </summary>
[Serializable]
[XmlRoot("ModelDesign")]
public class ModelDesign
{
public Machine Machine;
}
/// <summary>
/// Oggetto più esterno Machine
/// </summary>
[Serializable]
public class Machine
{
/// <summary>
/// Property Model
/// </summary>
public ouProperty Model { get; set; }
/// <summary>
/// Property Manufacturer
/// </summary>
public ouProperty Manufacturer { get; set; }
/// <summary>
/// Property Serial
/// </summary>
public ouProperty Serial { get; set; }
/// <summary>
/// Property Type
/// </summary>
public ouProperty Type { get; set; }
/// <summary>
/// Property BuildYear
/// </summary>
public ouProperty BuildYear { get; set; }
/// <summary>
/// Variable Status
/// </summary>
public ouVariable Status { get; set; }
/// <summary>
/// Variable Alarm
/// </summary>
public ouVariable Alarm { get; set; }
/// <summary>
/// Variable Emergency
/// </summary>
public ouVariable Emergency { get; set; }
/// <summary>
/// Variable Power
/// </summary>
public ouVariable Power { get; set; }
/// <summary>
/// Variable Mode
/// </summary>
public ouVariable Mode { get; set; }
/// <summary>
/// Variable ActiveTime
/// </summary>
public ouVariable ActiveTime { get; set; }
#if false
public Component cnc
{
}
#endif
}
#endregion
}
}
@@ -55,7 +55,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AdapterRed.cs" />
<Compile Include="DataModelClass.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DataItemRed.cs" />
<Compile Include="redUtil.cs" />
+2 -26
View File
@@ -1530,34 +1530,10 @@ namespace SCMA
file = new StreamReader(fileName);
// leggo file...
string rawDataModel = file.ReadToEnd();
#if false
// deserializzo x inizializzare il mio adapter...
XmlSerializer serializer = new XmlSerializer(typeof(DataModelClass.ModelDesign));//, new XmlRootAttribute("ModelDesign"));
StringReader stringReader = new StringReader(rawDataModel);
var outObj = ((DataModelClass.ModelDesign)serializer.Deserialize(stringReader));
DataModelClass.Machine currMachine = outObj.Machine;
// !!!FARE!!!
#endif
// test deserializzazione nuova...
#if false
var currMachine = ModelDesign.Deserialize(fileName);
#endif
string testFile = string.Format(@"{0}\TestData.xml", utils.confDir);
var decodedObj = CompXML.Deserialize(testFile);
#if false
using (var sr = new StreamReader(testFile))
{
var xs = new XmlSerializer(typeof(CompXML));
var responseData = (CompXML)xs.Deserialize(sr);
Console.WriteLine("Got {0} channel resources", responseData.Machine.channel.resources.Count);
}
#endif
var decodedObj = DataModelXML.Deserialize(testFile);
var currMachine = DataModelXML.Deserialize(fileName);
// pre-processo datamodel...
currGateway.DataModel = xmlSanitize(rawDataModel);
+3 -12
View File
@@ -1,16 +1,7 @@
<ModelDesign>
<Machine>
<channel>
<resources>
<resource name="x" refresh_interval="180">... text ...</resource>
<resource name="y" refresh_interval="180">..text..</resource>
<resource name="z" refresh_interval="180">... text ...</resource>
</resources>
</channel>
<Data>
<Property SymbolicName="Model" BrowseName="Model" DataType="ua:String" ValueRank="Scalar" Value="ANTARES26/15-PX5" />
<Property SymbolicName="Manufacturer" BrowseName="Manufacturer" DataType="ua:String" ValueRank="Scalar" Value="CMS Industries" />
<Variable SymbolicName="Emergency" BrowseName="Emergency" DataType="ua:Boolean" ValueRank="Scalar" Units="Bool" />
</Data>
<Property SymbolicName="Model" BrowseName="Model" DataType="ua:String" ValueRank="Scalar" Value="ANTARES26/15-PX5" />
<Property SymbolicName="Manufacturer" BrowseName="Manufacturer" DataType="ua:String" ValueRank="Scalar" Value="CMS Industries" />
<Variable SymbolicName="Emergency" BrowseName="Emergency" DataType="ua:Boolean" ValueRank="Scalar" Units="Bool" />
</Machine>
</ModelDesign>
@@ -18,18 +18,25 @@ namespace SCMA
/// </summary>
[Serializable]
[XmlRoot("ModelDesign")]
public class CompXML
public class DataModelXML
{
#if false
[XmlElement("Machine")]
public Modules Machine { get; set; }
public Modules Machine { get; set; }
#endif
[XmlArray("Machine")]
//[XmlArrayItem("Property")]
[XmlArrayItem("Property", Type = typeof(Property))]
[XmlArrayItem("Variable", Type = typeof(Variable))]
public ouData[] PVData { get; set; }
/// <summary>
/// Serializzazione XML dell'oggetto conf dell'adapter
/// </summary>
/// <param name="file"></param>
/// <param name="c"></param>
public static void Serialize(string file, CompXML c)
public static void Serialize(string file, DataModelXML c)
{
// prima provo a creare il file vuoto...
if (!File.Exists(file))
@@ -53,11 +60,11 @@ namespace SCMA
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static CompXML Deserialize(string file)
public static DataModelXML Deserialize(string file)
{
XmlSerializer xs = new XmlSerializer(typeof(CompXML));
XmlSerializer xs = new XmlSerializer(typeof(DataModelXML));
StreamReader reader = File.OpenText(file);
CompXML c = (CompXML)xs.Deserialize(reader);
DataModelXML c = (DataModelXML)xs.Deserialize(reader);
reader.Close();
return c;
}
@@ -69,7 +76,7 @@ namespace SCMA
public static string rawXml(string file)
{
string answ = "";
XmlSerializer xs = new XmlSerializer(typeof(CompXML));
XmlSerializer xs = new XmlSerializer(typeof(DataModelXML));
StreamReader reader = File.OpenText(file);
answ = reader.ReadToEnd();
reader.Close();
@@ -83,7 +90,7 @@ namespace SCMA
[XmlElement]
public Channel channel { get; set; }
[XmlArray("Data")]
[XmlArray("Machine")]
//[XmlArrayItem("Property")]
[XmlArrayItem("Property", Type = typeof(Property))]
[XmlArrayItem("Variable", Type = typeof(Variable))]
+1 -1
View File
@@ -146,7 +146,7 @@
<Compile Include="AdapterGeneric.cs" />
<Compile Include="AdapterDemo.cs" />
<Compile Include="AdapterFanuc.cs" />
<Compile Include="CompXML.cs" />
<Compile Include="DataModelXML.cs" />
<Compile Include="ModelDesignConf.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>