using System;
using System.IO;
using System.Windows.Forms;
using Newtonsoft.Json;
namespace Test_ACS
{
///
/// 애플리케이션 설정을 관리하는 클래스
///
public class AppSettings
{
public string LastPort { get; set; } = "COM1";
public string LastBaudRate { get; set; } = "9600";
public string LastRFID { get; set; } = "0001";
public string LastAlias { get; set; } = "CHARGER1";
public int LastAGV { get; set; } = 11;
private static string GetConfigFilePath()
{
// 실행 파일과 같은 폴더에 같은 이름으로 .config 파일 생성
string exePath = Application.ExecutablePath;
string exeName = Path.GetFileNameWithoutExtension(exePath);
string configPath = Path.Combine(Path.GetDirectoryName(exePath), exeName + ".config");
return configPath;
}
///
/// 설정 파일을 로드합니다
///
public static AppSettings Load()
{
try
{
string configPath = GetConfigFilePath();
if (File.Exists(configPath))
{
string json = File.ReadAllText(configPath);
return JsonConvert.DeserializeObject(json);
}
}
catch (Exception)
{
// 로드 실패 시 기본값 반환
}
return new AppSettings();
}
///
/// 설정을 파일에 저장합니다
///
public void Save()
{
try
{
string configPath = GetConfigFilePath();
string json = JsonConvert.SerializeObject(this, Formatting.Indented);
File.WriteAllText(configPath, json);
}
catch (Exception)
{
// 저장 실패 시 무시
}
}
}
}