add toss weatherstation

This commit is contained in:
Rowlander 2021-10-04 14:04:07 +02:00
parent d6c41b6b9f
commit 0a72be12ab
13 changed files with 949 additions and 108 deletions

View File

@ -1,3 +1,12 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -1,3 +1,12 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -0,0 +1,236 @@
using Config.Entities;
using log4net;
using RestSharp;
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Net;
using TBF.BenchControl.Generic;
using TBF.Boxes;
namespace TBF.BenchControl.Ambient.Toss
{
/// <summary>
/// Ambient temperature / humidity / pressure meter 'Greco' connected via serial interface (RS232)
/// Connection settings: 9600 Bd 8-bits No-parity 2-stop-bits Flow control: none.
/// </summary>
public class Ambient : ComponentBase, IDevice, IOperation, GenericDevices.IAmbient
{
private static readonly ILog log = LogManager.GetLogger(typeof(Ambient));
public override string ToString() { return string.Format("Ambient({0})", Cfg.ToString(1)); }
private readonly AmbientCfg ambientCfg;
/// Private fields
/// <summary>The state of the measurement</summary>
private MsrmntState msrmntState;
///
/// Measured values when MsrmntState == MsrmntState.Valid
///
private float temperature; /// [°C]
private float pressure; /// [bar]
private float humidity; /// [R%]
/// <summary>Measurement time stamp when MsrmntState == MsrmntState.Valid</summary>
private int msrmntTimeStamp;
public Ambient()
{
}
/// <summary>
/// Ambient temperature / humidity / pressure meter 'Greco' connected via serial interface (RS232)
/// </summary>
public Ambient(AmbientCfg cfg, IList<Generic.IComponent> components)
: this(cfg)
{
}
public Ambient(Generic.IComponentCfg cfg)
: base(cfg)
{
ambientCfg = cfg as AmbientCfg;
log.Debug(this.ToString());
}
public void Initialize()
{
if (ambientCfg.DebugLevel == DebugMode.Simulate)
{
temperature = 20.0f;
humidity = 40.0f;
pressure = 1.0f;
msrmntTimeStamp = StateMachine.Time;
msrmntState = MsrmntState.Valid;
return;
}
}
/// <summary>Run this device</summary>
public void RunDeviceBefore()
{
if (ambientCfg.DebugLevel == DebugMode.Simulate ||
ambientCfg.DebugLevel == DebugMode.FailureDuringOperation)
{
msrmntTimeStamp = StateMachine.Time;
return;
}
}
/// <summary>Run this device</summary>
public void RunDeviceAfter()
{
if (ambientCfg.DebugLevel == DebugMode.Simulate ||
ambientCfg.DebugLevel == DebugMode.FailureDuringOperation)
{
return;
}
try
{
/// Each 10 seconds
if ((StateMachine.Time % 10) == 0)
{
var client = new RestClient(ambientCfg.Url);
var request = new RestRequest(Method.GET);
ServicePointManager.Expect100Continue = false;
request.Timeout = ambientCfg.Timeout;
var r = client.Get(request);
if (r.StatusCode == HttpStatusCode.OK)
{
var c = r.Content;
var start = c.IndexOf(ambientCfg.TemperatureStartTag) + ambientCfg.TemperatureStartTag.Length;
var end = c.IndexOf(ambientCfg.TemperatureEndTag, start);
var LT = c.Substring(start, end - start).Trim().Replace(".", ",");
start = c.IndexOf(ambientCfg.HumidityStartTag) + ambientCfg.HumidityStartTag.Length;
end = c.IndexOf(ambientCfg.HumidityEndTag, start);
var RF = c.Substring(start, end - start).Trim().Replace(".", ",");
start = c.IndexOf(ambientCfg.PressureStartTag) + ambientCfg.PressureStartTag.Length;
end = c.IndexOf(ambientCfg.PressureEndTag, start);
var LD = c.Substring(start, end - start).Trim().Replace(".", ",");
float.TryParse(LT, out temperature);
float.TryParse(RF, out humidity);
float.TryParse(LD, out pressure);
}
if (r.StatusCode != 0)
{
return;
}
}
}
catch (Exception e)
{
DebugLevel = DebugMode.FailureDuringOperation;
log.FatalFormat("Ambient: web read failure : {0}", e.Message);
if (e.InnerException != null)
{
log.FatalFormat("InnerMessage : {0}", e.InnerException.Message);
}
}
}
/// <summary>Stop this device</summary>
public void StopDevice()
{
}
public void StopDevice2() { }
///
/// Boxes for the operation result
///
private FloatBox tempBox;
private FloatBox pressureBox;
private FloatBox humiBox;
public IOperation ReadAmbientOp(FloatBox temperature, FloatBox pressure, FloatBox humidity)
{
this.tempBox = temperature;
this.pressureBox = pressure;
this.humiBox = humidity;
return this;
}
/// <summary>Start this operation</summary>
public void Start()
{
if (tempBox != null)
{
tempBox.Val = temperature;
}
if (pressureBox != null)
{
pressureBox.Val = pressure;
}
if (humiBox != null)
{
humiBox.Val = humidity;
}
}
/// <summary>Run this operation</summary>
/// <returns>
/// Event.FlowInDone or Event.FlowOutDone
/// </returns>
public Event Run()
{
if (tempBox != null)
{
tempBox.Val = temperature;
}
if (pressureBox != null)
{
pressureBox.Val = pressure;
}
if (humiBox != null)
{
humiBox.Val = humidity;
}
return Event.AmbientDone;
}
/// <summary>Stop this operation</summary>
public void Stop()
{
}
}
}

View File

@ -0,0 +1,65 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
///
using System.Xml.Serialization;
using TBF.BenchControl.Generic;
namespace TBF.BenchControl.Ambient.Toss
{
public class AmbientCfg : ComponentCfgBase, Generic.IComponentCfg
{
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(AmbientCfg) })[0];
public override XmlSerializer GetSerializer() { return Serializer; }
public IComponentCfgCtrl GetControl() { return new AmbientCfgCtrl(); }
///
/// Serialized parameters
///
public string Url;
public int Timeout = 1000;
public string TemperatureStartTag = ">LT=";
public string TemperatureEndTag = "</td>";
public string HumidityStartTag = ">RF=";
public string HumidityEndTag = "</td>";
public string PressureStartTag = ">LD=";
public string PressureEndTag = "</td>";
/// Private parameterless constructor invoked by all other (public) constructors
private AmbientCfg()
{
Name = "Ambient";
ParentName = string.Empty;
Url = string.Empty;
Timeout = 1000;
TemperatureStartTag = ">LT=";
TemperatureEndTag = "</td>";
HumidityStartTag = ">RF=";
HumidityEndTag = "</td>";
PressureStartTag = ">LD=";
PressureEndTag = "</td>";
}
public AmbientCfg(IComponentFactory factory)
: this()
{
this.Factory = factory;
}
public string ToString(int i)
{
return string.Format("Name={0}, Url{1}",
Name, Url);
}
}
}

View File

@ -0,0 +1,287 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
namespace TBF.BenchControl.Ambient.Toss
{
partial class AmbientCfgCtrl
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.UrlTextBox = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.nameTextBox = new System.Windows.Forms.TextBox();
this.nameLabel = new System.Windows.Forms.Label();
this.classNameLabel = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.nudTimeout = new System.Windows.Forms.NumericUpDown();
this.txtTemperatureStartTag = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.txtHumidityStartTag = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtHumidityEndTag = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.txtPressureStartTag = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtTemperatureEndTag = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.txtPressureEndTag = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.nudTimeout)).BeginInit();
this.SuspendLayout();
//
// UrlTextBox
//
this.UrlTextBox.Enabled = false;
this.UrlTextBox.Location = new System.Drawing.Point(140, 52);
this.UrlTextBox.Name = "UrlTextBox";
this.UrlTextBox.Size = new System.Drawing.Size(130, 20);
this.UrlTextBox.TabIndex = 4;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(29, 55);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(32, 13);
this.label1.TabIndex = 3;
this.label1.Text = "URL:";
//
// nameTextBox
//
this.nameTextBox.Enabled = false;
this.nameTextBox.Location = new System.Drawing.Point(140, 28);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
this.nameTextBox.TabIndex = 2;
//
// nameLabel
//
this.nameLabel.AutoSize = true;
this.nameLabel.Location = new System.Drawing.Point(30, 31);
this.nameLabel.Name = "nameLabel";
this.nameLabel.Size = new System.Drawing.Size(35, 13);
this.nameLabel.TabIndex = 1;
this.nameLabel.Text = "Name";
//
// classNameLabel
//
this.classNameLabel.AutoSize = true;
this.classNameLabel.Location = new System.Drawing.Point(137, 7);
this.classNameLabel.Name = "classNameLabel";
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
this.classNameLabel.TabIndex = 0;
this.classNameLabel.Text = "ComonentName";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(29, 81);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(48, 13);
this.label2.TabIndex = 5;
this.label2.Text = "Timeout:";
//
// nudTimeout
//
this.nudTimeout.Location = new System.Drawing.Point(140, 78);
this.nudTimeout.Maximum = new decimal(new int[] {
20000,
0,
0,
0});
this.nudTimeout.Minimum = new decimal(new int[] {
80,
0,
0,
0});
this.nudTimeout.Name = "nudTimeout";
this.nudTimeout.Size = new System.Drawing.Size(126, 20);
this.nudTimeout.TabIndex = 6;
this.nudTimeout.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// txtTemperatureStartTag
//
this.txtTemperatureStartTag.Enabled = false;
this.txtTemperatureStartTag.Location = new System.Drawing.Point(140, 110);
this.txtTemperatureStartTag.Name = "txtTemperatureStartTag";
this.txtTemperatureStartTag.Size = new System.Drawing.Size(130, 20);
this.txtTemperatureStartTag.TabIndex = 8;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(30, 113);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(111, 13);
this.label3.TabIndex = 7;
this.label3.Text = "TemperatureStartTag:";
//
// txtHumidityStartTag
//
this.txtHumidityStartTag.Enabled = false;
this.txtHumidityStartTag.Location = new System.Drawing.Point(140, 161);
this.txtHumidityStartTag.Name = "txtHumidityStartTag";
this.txtHumidityStartTag.Size = new System.Drawing.Size(130, 20);
this.txtHumidityStartTag.TabIndex = 10;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(29, 164);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(91, 13);
this.label4.TabIndex = 9;
this.label4.Text = "HumidityStartTag:";
//
// txtHumidityEndTag
//
this.txtHumidityEndTag.Enabled = false;
this.txtHumidityEndTag.Location = new System.Drawing.Point(140, 191);
this.txtHumidityEndTag.Name = "txtHumidityEndTag";
this.txtHumidityEndTag.Size = new System.Drawing.Size(130, 20);
this.txtHumidityEndTag.TabIndex = 12;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(29, 194);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(88, 13);
this.label5.TabIndex = 11;
this.label5.Text = "HumidityEndTag:";
//
// txtPressureStartTag
//
this.txtPressureStartTag.Enabled = false;
this.txtPressureStartTag.Location = new System.Drawing.Point(141, 217);
this.txtPressureStartTag.Name = "txtPressureStartTag";
this.txtPressureStartTag.Size = new System.Drawing.Size(130, 20);
this.txtPressureStartTag.TabIndex = 14;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(30, 220);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(92, 13);
this.label6.TabIndex = 13;
this.label6.Text = "PressureStartTag:";
//
// txtTemperatureEndTag
//
this.txtTemperatureEndTag.Enabled = false;
this.txtTemperatureEndTag.Location = new System.Drawing.Point(140, 136);
this.txtTemperatureEndTag.Name = "txtTemperatureEndTag";
this.txtTemperatureEndTag.Size = new System.Drawing.Size(130, 20);
this.txtTemperatureEndTag.TabIndex = 16;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(29, 139);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(108, 13);
this.label7.TabIndex = 15;
this.label7.Text = "TemperatureEndTag:";
//
// txtPressureEndTag
//
this.txtPressureEndTag.Enabled = false;
this.txtPressureEndTag.Location = new System.Drawing.Point(140, 243);
this.txtPressureEndTag.Name = "txtPressureEndTag";
this.txtPressureEndTag.Size = new System.Drawing.Size(130, 20);
this.txtPressureEndTag.TabIndex = 18;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(29, 246);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(89, 13);
this.label8.TabIndex = 17;
this.label8.Text = "PressureEndTag:";
//
// AmbientCfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.Controls.Add(this.txtPressureEndTag);
this.Controls.Add(this.label8);
this.Controls.Add(this.txtTemperatureEndTag);
this.Controls.Add(this.label7);
this.Controls.Add(this.txtPressureStartTag);
this.Controls.Add(this.label6);
this.Controls.Add(this.txtHumidityEndTag);
this.Controls.Add(this.label5);
this.Controls.Add(this.txtHumidityStartTag);
this.Controls.Add(this.label4);
this.Controls.Add(this.txtTemperatureStartTag);
this.Controls.Add(this.label3);
this.Controls.Add(this.nudTimeout);
this.Controls.Add(this.label2);
this.Controls.Add(this.nameTextBox);
this.Controls.Add(this.nameLabel);
this.Controls.Add(this.classNameLabel);
this.Controls.Add(this.UrlTextBox);
this.Controls.Add(this.label1);
this.Name = "AmbientCfgCtrl";
this.Size = new System.Drawing.Size(300, 269);
this.Load += new System.EventHandler(this.AbbientCfgCtrl_Load);
((System.ComponentModel.ISupportInitialize)(this.nudTimeout)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox UrlTextBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox nameTextBox;
private System.Windows.Forms.Label nameLabel;
private System.Windows.Forms.Label classNameLabel;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.NumericUpDown nudTimeout;
private System.Windows.Forms.TextBox txtTemperatureStartTag;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtHumidityStartTag;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtHumidityEndTag;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtPressureStartTag;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtTemperatureEndTag;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox txtPressureEndTag;
private System.Windows.Forms.Label label8;
}
}

View File

@ -0,0 +1,119 @@
using Config.Entities;
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System;
using System.Windows.Forms;
using TBF.BenchControl.Generic;
namespace TBF.BenchControl.Ambient.Toss
{
public partial class AmbientCfgCtrl : UserControl, IComponentCfgCtrl
{
public bool ShowMore { get { return false; } }
private AmbientCfg config;
public IComponentCfg Config
{
get { return config as IComponentCfg; }
set
{
config = value as AmbientCfg;
Redraw();
}
}
public AmbientCfgCtrl()
{
InitializeComponent();
}
private void AbbientCfgCtrl_Load(object sender, EventArgs e)
{
Redraw();
}
public void Closing()
{
}
private void Redraw()
{
if (config == null)
{
return;
}
/// Control was not loaded, settings were not changed
classNameLabel.Text = config.Factory.ClassName;
nameTextBox.Text = config.Name;
UrlTextBox.Text = config.Url.ToString();
nudTimeout.Value = config.Timeout;
txtTemperatureStartTag.Text = config.TemperatureStartTag;
txtTemperatureEndTag.Text = config.TemperatureEndTag;
txtHumidityStartTag.Text = config.HumidityStartTag;
txtHumidityEndTag.Text = config.HumidityEndTag;
txtPressureStartTag.Text = config.PressureStartTag;
txtPressureEndTag.Text = config.PressureEndTag;
}
public void Unlock()
{
nameTextBox.Enabled = true;
UrlTextBox.Enabled = true;
nudTimeout.Enabled = true;
txtTemperatureStartTag.Enabled = true;
txtTemperatureEndTag.Enabled = true;
txtHumidityStartTag.Enabled = true;
txtHumidityEndTag.Enabled = true;
txtPressureStartTag.Enabled = true;
txtPressureEndTag.Enabled = true;
}
public CfgUpdateFlags UpdateCfg()
{
CfgUpdateFlags flags = CfgUpdateFlags.RestartRqrd;
if (config == null)
{
return CfgUpdateFlags.Error;
}
/// Control was not loaded, settings were not changed
config.Name = nameTextBox.Text;
config.Url = UrlTextBox.Text;
config.Timeout = (int)nudTimeout.Value;
config.TemperatureStartTag = txtTemperatureStartTag.Text;
config.TemperatureEndTag = txtTemperatureEndTag.Text;
config.HumidityStartTag = txtHumidityStartTag.Text;
config.HumidityEndTag = txtHumidityEndTag.Text;
config.PressureStartTag = txtPressureStartTag.Text;
config.PressureEndTag = txtPressureEndTag.Text;
return flags;
}
public CfgUpdateFlags VerifyCfg(ref string message)
{
CfgUpdateFlags flags = CfgUpdateFlags.None;
return flags;
}
private void btnTest_Click(object sender, EventArgs e)
{
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,26 @@
///
/// Copyright (c) 2013-2016 Sensus Metering Systems
///
using System.Collections.Generic;
using TBF.BenchControl.Generic;
namespace TBF.BenchControl.Ambient.Toss
{
public class Factory : IComponentFactory
{
public string ClassName { get { return "Toss-Ambient"; } }
public void ResetStaticProperties() { Ambient.ResetStaticProperties(); }
public IComponent DummyComponent() { return new Ambient(); }
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new Ambient(cfg); }
public IComponentCfg DefaultConfig() { return new AmbientCfg(this); }
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
{
return ComponentCfgBase.CreateFromDbEntity(AmbientCfg.Serializer, component, this);
}
}
}

View File

@ -81,7 +81,8 @@ namespace TBF.BenchControl
Factories.Add(new DataEntry.WMStates.EntryFormFactory()); Factories.Add(new DataEntry.WMStates.EntryFormFactory());
Factories.Add(new Ambient.Comet.Factory()); Factories.Add(new Ambient.Comet.Factory());
Factories.Add(new Ambient.Greco.Factory()); Factories.Add(new Ambient.Greco.Factory());
Factories.Add(new Keithley.Multimeter_2010_RS232.Factory()); /// Keithley.Multimeter_2010_RS232 Factories.Add(new Ambient.Toss.Factory());
Factories.Add(new Keithley.Multimeter_2010_RS232.Factory()); /// Keithley.Multimeter_2010_RS232
Factories.Add(new Keithley.TempMeter.Factory()); /// Keithley.TempMeter Factories.Add(new Keithley.TempMeter.Factory()); /// Keithley.TempMeter
Factories.Add(new MettlerToledo.Standard.BalanceFactory()); /// MettlerToledo Balance Factories.Add(new MettlerToledo.Standard.BalanceFactory()); /// MettlerToledo Balance
Factories.Add(new MettlerToledo.Standard.BalanceOldFactory()); /// MettlerToledoBalanceOld Factories.Add(new MettlerToledo.Standard.BalanceOldFactory()); /// MettlerToledoBalanceOld

View File

@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number // Build Number
// Revision // Revision
// //
[assembly: AssemblyVersion("2.20.002.0")] [assembly: AssemblyVersion("2.20.003.0")]
[assembly: AssemblyFileVersion("2.20.002.0")] [assembly: AssemblyFileVersion("2.20.003.0")]

View File

@ -97,10 +97,6 @@
<SignManifests>false</SignManifests> <SignManifests>false</SignManifests>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="CommonCore.ThreadWatcher, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Common\CommonCore.ThreadWatcher.dll</HintPath>
</Reference>
<Reference Include="ControlComponent3U, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="ControlComponent3U, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ControlBoard\Genesis\ControlComponent3U.dll</HintPath> <HintPath>..\packages\ControlBoard\Genesis\ControlComponent3U.dll</HintPath>
@ -118,9 +114,8 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\log4net.2.0.2\lib\net40-full\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.2\lib\net40-full\log4net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Logic.ProductionToProductMapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Logic.ProductionToProductMapper">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Logic.ProductionToProductMapper.dll</HintPath>
<HintPath>..\packages\Common\Logic.ProductionToProductMapper.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.VisualBasic"> <Reference Include="Microsoft.VisualBasic">
<Private>True</Private> <Private>True</Private>
@ -128,31 +123,21 @@
<Reference Include="MySql.Data"> <Reference Include="MySql.Data">
<HintPath>..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll</HintPath> <HintPath>..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
<HintPath>..\packages\Common\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NHibernate"> <Reference Include="NHibernate">
<HintPath>..\packages\NHibernate.4.0.4.4000\lib\net40\NHibernate.dll</HintPath> <HintPath>..\packages\NHibernate.4.0.4.4000\lib\net40\NHibernate.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Common\NLog.dll</HintPath>
</Reference>
<Reference Include="Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86"> <Reference Include="Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Oracle\Oracle.DataAccess.dll</HintPath> <HintPath>..\packages\Oracle\Oracle.DataAccess.dll</HintPath>
</Reference> </Reference>
<Reference Include="PdfSharp, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Common\PdfSharp.dll</HintPath>
</Reference>
<Reference Include="Renci.SshNet"> <Reference Include="Renci.SshNet">
<HintPath>..\packages\Renci.SshNet\Renci.SshNet.dll</HintPath> <HintPath>..\packages\Renci.SshNet\Renci.SshNet.dll</HintPath>
</Reference> </Reference>
<Reference Include="RestSharp, Version=105.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <HintPath>..\packages\RestSharp.105.2.3\lib\net4\RestSharp.dll</HintPath>
<HintPath>..\packages\Common\RestSharp.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
@ -162,116 +147,90 @@
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Xylem.Common.CommonCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="System.Xml.Linq" />
<SpecificVersion>False</SpecificVersion> <Reference Include="Xylem.Common.CommonCore">
<HintPath>..\packages\Common\Xylem.Common.CommonCore.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.CommonCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.CommonCore.Configuration, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.CommonCore.Configuration">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.CommonCore.Configuration.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.CommonCore.Configuration.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.CommonCore.ThreadWatcher"> <Reference Include="Xylem.Common.CommonCore.ThreadWatcher">
<HintPath>..\packages\Common\Xylem.Common.CommonCore.ThreadWatcher.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.CommonCore.ThreadWatcher.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.Interfaces.Ports.PortCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.Interfaces.Ports.PortCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.Interfaces.Ports.SerialPorts, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.Interfaces.Ports.SerialPorts">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Applications, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Applications">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile">
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd">
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.ProtocolCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.ProtocolCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.ProtocolCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.ProtocolCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Registers, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.Genesis.Registers">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.WaterMeterCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.WaterMeterCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Logic.ProductionOrderCore, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Logic.ProductionOrderCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Logic.ProductionOrderCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Logic.ProductionOrderCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Logic.RelatePcb, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Logic.RelatePcb">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Logic.RelatePcb.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Logic.RelatePcb.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Logic.ServiceCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Logic.ServiceCore">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Logic.ServiceCore.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Logic.ServiceCore.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Logic.SoftwareAccessHelper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Logic.SoftwareAccessHelper">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Logic.SoftwareAccessHelper.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Logic.SoftwareAccessHelper.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Metrology.Measurements, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Metrology.Measurements">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Metrology.Measurements.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Metrology.Measurements.dll</HintPath>
</Reference>
<Reference Include="Xylem.Common.Ui.CordonelPreadjustmentUi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Common\Xylem.Common.Ui.CordonelPreadjustmentUi.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Utils.ByteArrayStyle"> <Reference Include="Xylem.Common.Utils.ByteArrayStyle">
<HintPath>..\packages\Common\Xylem.Common.Utils.ByteArrayStyle.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Utils.ByteArrayStyle.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Utils.Crc16Ccitt, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Utils.Crc16Ccitt">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Utils.Crc16Ccitt.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Utils.Crc16Ccitt.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Utils.Logging, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Xylem.Common.Utils.Logging">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Utils.Logging.dll</HintPath>
<HintPath>..\packages\Common\Xylem.Common.Utils.Logging.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xylem.Common.Utils.ProcessExec"> <Reference Include="Xylem.Common.Utils.ProcessExec">
<HintPath>..\packages\Common\Xylem.Common.Utils.ProcessExec.dll</HintPath> <HintPath>..\..\..\..\packages\Common\Xylem.Common.Utils.ProcessExec.dll</HintPath>
</Reference> </Reference>
<Reference Include="XylemCommonUiLegacyGenCtl, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="XylemCommonUiLegacyGenCtl">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\packages\Common\XylemCommonUiLegacyGenCtl.dll</HintPath>
<HintPath>..\packages\Common\XylemCommonUiLegacyGenCtl.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,6 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup> </startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration> </configuration>

View File

@ -4,6 +4,8 @@
<package id="Iesi.Collections" version="4.0.0.4000" targetFramework="net40" /> <package id="Iesi.Collections" version="4.0.0.4000" targetFramework="net40" />
<package id="log4net" version="2.0.2" targetFramework="net40" /> <package id="log4net" version="2.0.2" targetFramework="net40" />
<package id="MySql.Data" version="6.6.5" targetFramework="net20" /> <package id="MySql.Data" version="6.6.5" targetFramework="net20" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NHibernate" version="4.0.4.4000" targetFramework="net40" /> <package id="NHibernate" version="4.0.4.4000" targetFramework="net40" />
<package id="RestSharp" version="105.2.3" targetFramework="net40" />
<package id="System.Data.SQLite" version="1.0.90.0" targetFramework="net40" /> <package id="System.Data.SQLite" version="1.0.90.0" targetFramework="net40" />
</packages> </packages>