103 lines
2.8 KiB
C#
103 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Diagnostics.Eventing.Reader;
|
|
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, 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);
|
|
if (e.MsgType == arRS232.MessageType.Error)
|
|
addmsg(e.Message);
|
|
else
|
|
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 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_ReadStatue();
|
|
}
|
|
|
|
private void label1_Click(object sender, EventArgs e)
|
|
{
|
|
comboBox1.Text = "COM41";
|
|
}
|
|
|
|
private void button4_Click(object sender, EventArgs e)
|
|
{
|
|
bms.SendQuery_ReadCellvoltage();
|
|
}
|
|
|
|
private void button5_Click(object sender, EventArgs e)
|
|
{
|
|
bms.SendQuery();
|
|
}
|
|
}
|
|
}
|