Автозаряд и авторазряд will do well.
This commit is contained in:
@@ -11,6 +11,8 @@ namespace charger_gui
|
||||
class UpdateWorker
|
||||
{
|
||||
const int SLAVE_ADDRESS = 1;
|
||||
const int CHARGE_REGISTER = 4;
|
||||
const int LAMP_REGISTER = 5;
|
||||
|
||||
private MainWindowViewModel model;
|
||||
private Thread workingThread;
|
||||
@@ -21,7 +23,7 @@ namespace charger_gui
|
||||
isWorking = false;
|
||||
shouldRestart = false;
|
||||
workingThread = new Thread(Work);
|
||||
model.isConnected = false;
|
||||
model.IsConnected = false;
|
||||
}
|
||||
|
||||
private bool isWorking;
|
||||
@@ -47,6 +49,7 @@ namespace charger_gui
|
||||
|
||||
private void Work()
|
||||
{
|
||||
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
@@ -57,6 +60,7 @@ namespace charger_gui
|
||||
serialPort.DataBits = 8;
|
||||
serialPort.Parity = Parity.None;
|
||||
serialPort.StopBits = StopBits.One;
|
||||
serialPort.ReadTimeout = 50;
|
||||
serialPort.Open();
|
||||
|
||||
// create modbus master
|
||||
@@ -64,19 +68,23 @@ namespace charger_gui
|
||||
while (!shouldRestart)
|
||||
{
|
||||
var r1 = master.ReadHoldingRegisters(SLAVE_ADDRESS, 0, 4);
|
||||
model.iAcc = ToFloat(r1[0], r1[1]);
|
||||
model.iLamp = ToFloat(r1[2], r1[3]);
|
||||
var r2 = master.ReadHoldingRegisters(SLAVE_ADDRESS, 6, 4);
|
||||
model.uAcc = ToFloat(r2[0], r2[1]);
|
||||
model.uLamp = ToFloat(r2[2], r2[3]);
|
||||
model.IAcc = ToFloat(r1[0], r1[1]);
|
||||
model.ILamp = ToFloat(r1[2], r1[3]);
|
||||
var r2 = master.ReadHoldingRegisters(SLAVE_ADDRESS, 6, 8);
|
||||
model.U1Acc = ToFloat(r2[0], r2[1]);
|
||||
model.U2Acc = ToFloat(r2[2], r2[3]);
|
||||
model.U1Lamp = ToFloat(r2[4], r2[5]);
|
||||
model.U2Lamp = ToFloat(r2[6], r2[7]);
|
||||
master.WriteSingleRegister(SLAVE_ADDRESS, CHARGE_REGISTER, (ushort)(model.IsCharging ? 1 : 0));
|
||||
master.WriteSingleRegister(SLAVE_ADDRESS, LAMP_REGISTER, (ushort)(model.IsLampOn ? 1 : 0));
|
||||
// ничего не упало, коннект есть значит
|
||||
model.isConnected = true;
|
||||
model.IsConnected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
model.isConnected = false;
|
||||
model.IsConnected = false;
|
||||
Thread.Sleep(100);
|
||||
// will continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user