Files
ENIG/Cs_HMI/TestProject/Test_BMS/Form1.cs
ChiKyun Kim debbf712d4 add files
2025-09-15 17:36:46 +09:00

93 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test_BMS
{
public partial class Form1 : Form
{
arDev.BMS bms;
public Form1()
{
InitializeComponent();
bms = new arDev.BMS();
bms.BMSDataReceive += Bms_BMSDataReceive;
//bms.Message += Bms_Message;
}
private void Bms_Message(object sender, arDev.arRS232.MessageEventArgs e)
{
var sb = new System.Text.StringBuilder();
if (e.Data != null)
{
foreach (var b in e.Data)
sb.Append(" " + b.ToString("X2"));
}
else sb.Append(e.Message);
addmsg($"{e.MsgType}:{sb}");
}
private void Bms_BMSDataReceive(object sender, EventArgs e)
{
//최종 데이터가 수신되는 경우
string msg = $"{bms.Current_Volt}v,{bms.Current_Level}%,{bms.Current_Amp}/{bms.Current_MaxAmp}";
addmsg("Recv:" + msg);
}
void addmsg(string m)
{
if (logTextBox1.InvokeRequired)
{
logTextBox1.BeginInvoke(new Action(() => {
logTextBox1.AddMsg(m);
}));
}
else
{
logTextBox1.AddMsg(m);
}
}
private void Bms_RxData(object sender, arDev.BMS.ReceiveDataEventArgs e)
{
addmsg("Rx:" + e.StrValue);
}
private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.Items.Clear();
foreach (var port in System.IO.Ports.SerialPort.GetPortNames())
this.comboBox1.Items.Add(port);
}
private void button1_Click(object sender, EventArgs e)
{
bms.BaudRate = int.Parse(this.comboBox2.Text);
bms.PortName = comboBox1.Text;
bms.Open();
addmsg($"open:{bms.IsOpen}");
}
private void button2_Click(object sender, EventArgs e)
{
bms.Close();
}
private void button3_Click(object sender, EventArgs e)
{
bms.SendQuery();
}
private void label1_Click(object sender, EventArgs e)
{
comboBox1.Text = "COM41";
}
}
}