Files
DDUtility/DDUtilityApp/LOGPARSER/FrmHsmsViewer.cs
2025-02-03 11:02:48 +09:00

163 lines
5.4 KiB
C#

#define xSECS2HSMS
using JWH;
using JWH.SECS;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DDUtilityApp.LOGPARSER
{
public partial class FrmHsmsViewer : Form
{
#region [ Properties ] ------------------------------------------------
public SECSMessage SECSMessage { get; set; } = null;
#endregion
#region [ FrmTest01 ] -------------------------------------------------
public FrmHsmsViewer()
{
InitializeComponent();
this.SetLayout();
this.SetEventHandler();
}
public void SetLayout()
{
Font font = new Font("돋움체", 9.0F);
this.panel1.Height = 16;
this.tboxHsms.Font = font;
this.tboxHsms.ScrollBars = ScrollBars.Both;
this.tboxHsms.WordWrap = false;
this.tboxHsms.MaxLength = 3276700;
this.tboxHsms.AllowDrop = true;
this.tboxSecs.Font = font;
this.tboxSecs.ScrollBars = ScrollBars.Both;
this.tboxSecs.WordWrap = false;
this.tboxSecs.MaxLength = 3276700;
this.tboxSecs.ReadOnly = true;
this.tboxHexHangul.Font = font;
this.tboxHexHangul.WordWrap = true;
this.tboxHangul.Font = font;
this.tboxHangul.WordWrap = true;
this.cboxEncoding.DropDownStyle = ComboBoxStyle.DropDownList;
this.cboxEncoding.Items.Clear();
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("Default", Encoding.Default));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("UTF7", Encoding.UTF7));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("UTF8", Encoding.UTF8));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("UTF32", Encoding.UTF32));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("ASCII", Encoding.ASCII));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("Unicode", Encoding.Unicode));
this.cboxEncoding.Items.Add(new KeyValuePair<string, Encoding>("BigEndianUnicode", Encoding.BigEndianUnicode));
this.cboxEncoding.DisplayMember = "Key";
this.cboxEncoding.SelectedIndex = 0;
}
public void SetEventHandler()
{
this.tboxHsms.DragDrop += Control_DragDrop;
this.tboxHsms.DragEnter += Control_DragEnter;
this.btnHtoS.Click += BtnHsmsToSecs_Click;
this.btnStoH.Click += BtnSecstoHsms_Click;
this.cboxEncoding.SelectedIndexChanged += HexHangul2Hangul;
this.tboxHexHangul.TextChanged += HexHangul2Hangul;
}
private void HexHangul2Hangul(object sender, EventArgs e)
{
string value = this.tboxHexHangul.Text.Replace(" ", "");
byte[] bytes = value.ConvertBytes(16);
Encoding encoding = ((KeyValuePair<string, Encoding>)this.cboxEncoding.SelectedItem).Value;
string result = encoding.GetString(bytes, 0, bytes.Length);
this.tboxHangul.Text = result;
}
#endregion
#region [ Control Event ] ---------------------------------------------
private void Control_DragDrop(object sender, DragEventArgs e)
{
if (sender == this.tboxHsms)
{
string strHsms = (string)e.Data.GetData(DataFormats.Text);
this.tboxHsms.Text = strHsms;
this.BtnHsmsToSecs_Click(this.btnHtoS, null);
}
}
private void Control_DragEnter(object sender, DragEventArgs e)
{
if (sender == this.tboxHsms)
{
if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy;
}
}
private void BtnHsmsToSecs_Click(object sender, EventArgs e)
{
try
{
if (string.IsNullOrEmpty(this.tboxHsms.Text)) return;
byte[] arrayByte = this.tboxHsms.Text.ConvertBytes(16);
this.SECSMessage = new SECSMessage(arrayByte);
//this.tboxSecs.Text = $"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}] RCVD {item.ToString(0)}";
this.tboxSecs.Text = $"{this.SECSMessage.ToFullString()}";
this.propertyGrid1.SelectedObject = this.SECSMessage;
}
catch (Exception ex)
{
XLogger.Instance.Fatal(ex);
}
}
private void BtnSecstoHsms_Click(object sender, EventArgs e)
{
try
{
#if SECS2HSMS
if (string.IsNullOrEmpty(this.tboxSecs.Text)) return;
this.SECSMessage = new SECSMessage(this.tboxSecs.Text);
#else
if (this.SECSMessage == null) return;
#endif
//this.tboxSecs.Text = $"[{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}] RCVD {item.ToString(0)}";
this.tboxHsms.Text = this.SECSMessage.ToHexString();
this.propertyGrid1.SelectedObject = this.SECSMessage;
}
catch (Exception ex)
{
XLogger.Instance.Fatal(ex);
}
}
#endregion
#region [ Methods ] ---------------------------------------------------
#endregion
}
}