Add project files.
This commit is contained in:
112
Config.cs
Normal file
112
Config.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FAtoPA
|
||||
{
|
||||
class Config
|
||||
{
|
||||
// FSM settings
|
||||
public byte FSM_NetGroup { get; set; } = 2;
|
||||
public byte FSM_NetNode { get; set; } = 1;
|
||||
public byte FSM_PNA { get; set; } = 2;
|
||||
public String FSM_LocalIP { get; set; } = "192.168.10.23";
|
||||
public bool FSM_UseMulticast { get; set; } = false;
|
||||
public String FSM_MulticastIP { get; set; } = "239.192.0.1";
|
||||
public UInt16 FSM_MulticastPort { get; set; } = 25000;
|
||||
|
||||
public UInt16 Modbus_ListenPort { get; set; } = 502;
|
||||
public byte Modbus_DeviceID { get; set; } = 1;
|
||||
public UInt16 Modbus_MaxRegister { get; set; } = 2000;
|
||||
|
||||
public String VX_TargetIP { get; set; } = "192.168.14.1";
|
||||
public UInt16 VX_TargetPort { get; set; } = 5000;
|
||||
private String _configpath = "";
|
||||
|
||||
public Config() {
|
||||
_configpath = GetConfigPath();
|
||||
// kalau belum ada, create default
|
||||
if (!File.Exists(_configpath)) Save();
|
||||
}
|
||||
|
||||
public Boolean FileIsExist() { return File.Exists(_configpath); }
|
||||
|
||||
public bool Save()
|
||||
{
|
||||
|
||||
Debug.WriteLine("Will Save Config to [" + _configpath + "]");
|
||||
|
||||
try
|
||||
{
|
||||
String jsonstring = JsonSerializer.Serialize(this);
|
||||
File.WriteAllText(_configpath, jsonstring);
|
||||
Debug.WriteLine("Config saved to [" + _configpath + "]");
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine("Config Save to ["+ _configpath + "] Error: " + ex.Message);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool Load()
|
||||
{
|
||||
|
||||
if (File.Exists(_configpath))
|
||||
{
|
||||
try
|
||||
{
|
||||
string jsonstring = File.ReadAllText(_configpath);
|
||||
Config _loaded = JsonSerializer.Deserialize<Config>(jsonstring);
|
||||
if (_loaded != null)
|
||||
{
|
||||
this.FSM_NetGroup = _loaded.FSM_NetGroup;
|
||||
this.FSM_NetNode = _loaded.FSM_NetNode;
|
||||
this.FSM_PNA = _loaded.FSM_PNA;
|
||||
this.FSM_LocalIP = _loaded.FSM_LocalIP;
|
||||
this.FSM_UseMulticast = _loaded.FSM_UseMulticast;
|
||||
this.FSM_MulticastIP = _loaded.FSM_MulticastIP;
|
||||
this.FSM_MulticastPort = _loaded.FSM_MulticastPort;
|
||||
this.Modbus_ListenPort = _loaded.Modbus_ListenPort;
|
||||
this.Modbus_DeviceID = _loaded.Modbus_DeviceID;
|
||||
this.Modbus_MaxRegister = _loaded.Modbus_MaxRegister;
|
||||
this.VX_TargetIP = _loaded.VX_TargetIP;
|
||||
this.VX_TargetPort = _loaded.VX_TargetPort;
|
||||
|
||||
Debug.WriteLine("Config Loaded from [" + _configpath + "]");
|
||||
return true;
|
||||
} else Debug.WriteLine("Config Load Error: File ["+ _configpath + "] is not valid Config.");
|
||||
} catch(Exception ex)
|
||||
{
|
||||
Debug.WriteLine("Config Load from ["+ _configpath + "] Error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
else Debug.WriteLine("Config Load Error: File ["+ _configpath + "] not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
private static String GetConfigPath()
|
||||
{
|
||||
String _xx = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "FAtoPA");
|
||||
Debug.WriteLine("Config Path: " + _xx);
|
||||
if (!Directory.Exists(_xx)) {
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(_xx);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine("Config Path Error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return System.IO.Path.Combine(_xx, "config.json");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user