97 lines
3.3 KiB
C#
97 lines
3.3 KiB
C#
using System;
|
|
using System.IO;
|
|
using Newtonsoft.Json;
|
|
using Xylem.Common.CommonCore.Consts;
|
|
|
|
namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig
|
|
{
|
|
/// <summary>
|
|
/// Configuration of SIRT
|
|
/// </summary>
|
|
public class SirtConfig
|
|
{
|
|
/// <summary>
|
|
/// Load SIRT configuration file from AppRoaming or working directory
|
|
/// </summary>
|
|
public Boolean ReadSirtConfig()
|
|
{
|
|
// Check for AppRoaming
|
|
var configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
|
|
nameof(Genesis), ProgramConfig.SirtConfigFileName);
|
|
|
|
if (!File.Exists(configFile))
|
|
{
|
|
// Take actual working directory
|
|
configFile = Path.Combine(ProgramConfig.SirtConfigFileName);
|
|
if (!File.Exists(configFile))
|
|
{
|
|
SirtComport433MHz = null;
|
|
SirtComport868MHz = null;
|
|
ServiceSirtComport868MHz = null;
|
|
ServiceSirtComport433MHz = null;
|
|
SirtBoxNo = null;
|
|
StationId = null;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
using (var tr = new StreamReader(configFile))
|
|
{
|
|
var sirtConfig = JsonConvert.DeserializeObject<SirtConfig>(tr.ReadToEnd());
|
|
SirtComport433MHz = sirtConfig.SirtComport433MHz;
|
|
SirtComport868MHz = sirtConfig.SirtComport868MHz;
|
|
ServiceSirtComport433MHz = sirtConfig.ServiceSirtComport433MHz; ;
|
|
ServiceSirtComport868MHz = sirtConfig.ServiceSirtComport868MHz; ;
|
|
SirtBoxNo = sirtConfig.SirtBoxNo;
|
|
StationId = sirtConfig.StationId;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Write file to AppRoaming and backup it to actual working directory
|
|
/// </summary>
|
|
public void Update()
|
|
{
|
|
var configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
|
|
nameof(Genesis), ProgramConfig.SirtConfigFileName);
|
|
|
|
File.WriteAllText(configFile, JsonConvert.SerializeObject(this));
|
|
File.WriteAllText(ProgramConfig.SirtConfigFileName, JsonConvert.SerializeObject(this));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Comport for SIRT interface with 433MHz radio frequency
|
|
/// </summary>
|
|
public String SirtComport433MHz { get; set; }
|
|
|
|
/// <summary>
|
|
/// Comport for SIRT interface with 868MHz radio frequency
|
|
/// </summary>
|
|
public String SirtComport868MHz { get; set; }
|
|
|
|
/// <summary>
|
|
/// Box number for calibration settings
|
|
/// </summary>
|
|
public Int32? SirtBoxNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Station ID where the SIRT is used
|
|
/// </summary>
|
|
public Int32? StationId { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// Service Comport for SIRT interface with 433MHz radio frequency
|
|
/// </summary>
|
|
public String ServiceSirtComport433MHz { get; set; }
|
|
|
|
/// <summary>
|
|
/// Service Comport for SIRT interface with 868MHz radio frequency
|
|
/// </summary>
|
|
public String ServiceSirtComport868MHz { get; set; }
|
|
|
|
}
|
|
}
|