Калибровка датчика тока. Корректно замеряем напряжение на аккуме.

This commit is contained in:
ftc
2024-04-01 22:15:06 +03:00
parent 74e269b563
commit dcaccbaaf2
12 changed files with 203 additions and 30 deletions
@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace charger_gui.operations
{
class CalibrateOperation : AutomaticOperation
{
const float SECONDS_TO_PASS = 10f;
private int passed;
private bool isComplete = false;
public override string Status
{
get
{
if (isComplete) return "Calibrating complete in " + passed + " seconds";
else return "Calibrating, passed " + passed + " seconds";
}
}
public CalibrateOperation(Logger log, MainWindowViewModel model) : base(log, model)
{
}
protected override void Work()
{
log.Log("Calibrating started");
var start = DateTime.Now;
model.IsCharging = false;
model.IsLampOn = false;
Thread.Sleep(500);
float sum = 0;
int cnt = 0;
while (passed < SECONDS_TO_PASS)
{
Thread.Sleep(20);
sum += model.IRaw;
cnt++;
passed = (int)((DateTime.Now - start).TotalSeconds);
OnStatusChanged();
}
model.IZero = sum / cnt;
log.Log("Calibrating complete in " + passed + " seconds");
model.IsLampOn = false;
isComplete = true;
OnStatusChanged();
}
}
}
+2 -2
View File
@@ -32,12 +32,12 @@ namespace charger_gui.operations
model.IsCharging = true;
model.IsLampOn = false;
Thread.Sleep(500);
while (model.U3 < MAX_VOLTAGE)
while (model.UAcc < MAX_VOLTAGE)
{
Thread.Sleep(1000);
passed = (int)((DateTime.Now - start).TotalSeconds);
OnStatusChanged();
log.Log("Charging " + passed + "s " + model.U3.ToString("F4"));
log.Log("Charging " + passed + "s " + model.UAcc.ToString("F4"));
if (model.U2 < 10f)
{
log.Log("Charging error: NO POWER. " + model.U2.ToString("F4"));
+1 -1
View File
@@ -32,7 +32,7 @@ namespace charger_gui.operations
model.IsCharging = false;
model.IsLampOn = true;
Thread.Sleep(500);
while (model.U3 > MIN_VOLTAGE)
while (model.UAcc > MIN_VOLTAGE)
{
Thread.Sleep(1000);
passed = (int)((DateTime.Now - start).TotalSeconds);
+1 -1
View File
@@ -47,7 +47,7 @@ namespace charger_gui.operations
Thread.Sleep(50);
passed = (int)((DateTime.Now - start).TotalSeconds);
OnStatusChanged();
log.Log("Training" + passed + "s " + model.U3.ToString("F4"));
log.Log("Training" + passed + "s " + model.UAcc.ToString("F4"));
if (model.U2 < 10f)
{
log.Log("Training error: NO POWER. " + model.U2.ToString("F4"));