125 lines
4.1 KiB
C#
125 lines
4.1 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 = $"Cell Average:{volt.Average},Delta:{volt.Delta},Cycle({data.cycleCount})";
|
|
this.arLabel1.Text = $"{data.rsoc}%";
|
|
this.arLabel1.Sign = $"{data.packVoltage}v, {data.watt}w";// PUB.BMS.Current_Volt.ToString() + "v";
|
|
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)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|