Files
ENIG/Cs_HMI/Project/ViewForm/fBms.cs
2026-01-14 16:04:11 +09:00

129 lines
4.2 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.Threading.Tasks;
using System.Windows.Forms;
using COMM;
namespace Project.ViewForm
{
public partial class fBms : Form
{
public fBms()
{
InitializeComponent();
this.FormClosed += FIO_FormClosed;
PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive;
PUB.BMS.BMSDataReceive += BMS_BMSDataReceive;
}
private void BMS_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e)
{
if (this.IsDisposed == true || this.Visible == false) return;
this.BeginInvoke(new Action(() =>
{
if (lbinfost.ForeColor == Color.FromArgb(32, 32, 32))
lbinfost.ForeColor = Color.Lime;
else
lbinfost.ForeColor = Color.FromArgb(32, 32, 32);
}));
}
private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e)
{
if (this.IsDisposed == true || this.Visible == false) return;
this.BeginInvoke(new Action(() =>
{
if (lbcvSt.ForeColor == Color.FromArgb(15, 15, 15))
lbcvSt.ForeColor = Color.Lime;
else
lbcvSt.ForeColor = Color.FromArgb(15, 15, 15);
}));
}
private void fFlag_Load(object sender, EventArgs e)
{
this.timer1.Start();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
this.timer1.Stop();
PUB.BMS.BMSCellDataReceive -= BMS_BMSCellDataReceive;
PUB.BMS.BMSDataReceive -= BMS_BMSDataReceive;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
var data = PUB.BMS.BMSInformation;
var volt = PUB.BMS.BMSCellVoltage;
if (PUB.BMS.IsOpen == false)
this.lbCycle.Text = "통신이 열려있지 않습니다";
else if (PUB.BMS.IsValid == false)
this.lbCycle.Text = "데이터가 유효하지 않습니다";
else
this.lbCycle.Text = $"Average:{volt.Average:N2}v, Delta:{volt.Delta:N0}, Cycle({data.cycleCount})";
this.arLabel1.Text = $"{data.rsoc}%";
this.arLabel1.Sign = $"{data.packVoltage}v, {data.watt:N0}w";// PUB.BMS.Current_Volt.ToString() + "v";
if (data.watt < 0) this.arLabel1.SignColor = Color.Tomato;
else this.arLabel1.SignColor = Color.Lime;
this.cv1.Text = volt.Voltage[0].ToString("N3") + "v";
this.cv2.Text = volt.Voltage[1].ToString("N3") + "v";
this.cv3.Text = volt.Voltage[2].ToString("N3") + "v";
this.cv4.Text = volt.Voltage[3].ToString("N3") + "v";
this.cv5.Text = volt.Voltage[4].ToString("N3") + "v";
this.cv6.Text = volt.Voltage[5].ToString("N3") + "v";
this.cv7.Text = volt.Voltage[6].ToString("N3") + "v";
this.cv8.Text = volt.Voltage[7].ToString("N3") + "v";
this.lbTemp1.Text = data.ntcTemp[0].ToString() + "℃";
this.lbtemp2.Text = data.ntcTemp[1].ToString() + "℃";
timer1.Start();
}
private void fAgv_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
}
private void button1_Click(object sender, EventArgs e)
{
PUB.BMS.SendQuery_ReadStatue();
}
private void button2_Click(object sender, EventArgs e)
{
PUB.BMS.SendQuery_ReadCellvoltage();
}
private void panel3_Paint(object sender, PaintEventArgs e)
{
}
private void panel4_Paint(object sender, PaintEventArgs e)
{
}
private void panel6_Paint(object sender, PaintEventArgs e)
{
}
private void panel8_Paint(object sender, PaintEventArgs e)
{
}
}
}