You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
using Godot; |
|
using System; |
|
|
|
namespace EGFramework.Examples.ModbusDebugTool{ |
|
public partial class ViewSettings : Control,IEGFramework |
|
{ |
|
public LineEdit EditBaudRate { set; get; } |
|
|
|
public override void _Ready() |
|
{ |
|
EditBaudRate = this.GetNode<LineEdit>("List/Device"); |
|
this.Visible = false; |
|
LoadSettings(); |
|
} |
|
|
|
public void LoadSettings(){ |
|
DataModbusSettings settings = this.EGSave().GetObjectFromJson<DataModbusSettings>(); |
|
this.EGRegisterObject(settings); |
|
UpdateSettings(settings); |
|
EditBaudRate.Text = settings.BaudRate.ToString(); |
|
} |
|
|
|
public void OnClose(){ |
|
this.Visible = false; |
|
} |
|
|
|
public void UpdateSettings(DataModbusSettings settings){ |
|
this.EGSerialPort().SetBaudRate(settings.BaudRate); |
|
} |
|
|
|
public void Save(){ |
|
try |
|
{ |
|
DataModbusSettings settings = new DataModbusSettings(){ |
|
BaudRate = int.Parse(EditBaudRate.Text) |
|
}; |
|
UpdateSettings(settings); |
|
this.EGRegisterObject(settings); |
|
this.EGSave().SetObjectToJson(this.EGGetObject<DataModbusSettings>()); |
|
this.Visible = false; |
|
} |
|
catch (System.Exception ex) |
|
{ |
|
GD.Print("Save Exception" + ex); |
|
} |
|
} |
|
|
|
} |
|
|
|
public static class ViewSettingsExtension{ |
|
public static ViewSettings ViewSettings(this Node self){ |
|
return self.GetTree().CurrentScene.GetNode<ViewSettings>("Settings"); |
|
} |
|
} |
|
}
|
|
|