Some fixes
This commit is contained in:
@@ -41,8 +41,8 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
public double GradationOe => Sensors.GradationOe;
|
||||
public MotorState PresseQuerSchnecke => Sensors.PresseQuerSchnecke;
|
||||
|
||||
public bool WantA1Selected => Actuators.TroughSelector;
|
||||
public bool WantA2Selected => !Actuators.TroughSelector;
|
||||
public bool WantA1Selected => Actuators.GetV(58);
|
||||
public bool WantA2Selected => !Actuators.GetV(58);
|
||||
|
||||
public bool IsTroughAugerActive => Actuators.TroughAuger;
|
||||
public bool IsReblerActive => Actuators.Rebler;
|
||||
@@ -159,12 +159,12 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
}
|
||||
|
||||
public void SelectA1() {
|
||||
Actuators.TroughSelector = true;
|
||||
Actuators.SetV(58, true);
|
||||
//if (IsReblerActive) Actuators.StirrerA1 = true;
|
||||
}
|
||||
|
||||
public void SelectA2() {
|
||||
Actuators.TroughSelector = false;
|
||||
Actuators.SetV(58, false);
|
||||
//if (IsReblerActive) Actuators.StirrerA2 = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,13 +11,13 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
FillState[] FillingLevelTanks,
|
||||
MotorState PresseQuerSchnecke
|
||||
) {
|
||||
public readonly bool GetDS(int n) => (PressureSensors & (1 << (n - 1))) != 0;
|
||||
public readonly bool GetDS(int n) => (PressureSensors & (1L << (n - 1))) != 0;
|
||||
}
|
||||
|
||||
public record struct ActuatorStates(
|
||||
long Valves,
|
||||
MotorState MP1, MotorState MP2, MotorState P12, MotorState P3, MotorState P4, MotorState P5, MotorState P6,
|
||||
bool TroughAuger, bool Rebler, bool TroughSelector, bool StirrerA1, bool StirrerA2, bool Belt, bool Auger1, bool Auger2, bool GradationPump
|
||||
bool TroughAuger, bool Rebler, bool StirrerA1, bool StirrerA2, bool Belt, bool Auger1, bool Auger2, bool GradationPump
|
||||
) {
|
||||
public readonly bool GetV(int n) => (Valves & (1L << (n - 1))) != 0;
|
||||
public void SetV(int n, bool val) {
|
||||
@@ -98,6 +98,7 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
var (r1, r2, r3, r4, f1, v, f2) = await ReadInputRegisters();
|
||||
|
||||
long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48);
|
||||
pressure = (pressure & 0x01FFFFFFFFFFFFFF) | ((pressure & 0x0600000000000000) << 1);
|
||||
|
||||
var a1 = Int3ToFillState((f1 ) & 0x7); // 111 011 001 000
|
||||
var a2 = Int3ToFillState((f1 >> 3) & 0x7); // 111 011 001 000
|
||||
@@ -164,17 +165,17 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
|
||||
var m1 = (s1 & 0x01) != 0;
|
||||
var m2 = (s1 & 0x02) != 0;
|
||||
var m3 = (s1 & 0x04) != 0;
|
||||
var m4 = (s1 & 0x08) != 0;
|
||||
var m5 = (s1 & 0x10) != 0;
|
||||
var m6 = (s1 & 0x20) != 0;
|
||||
var m7 = (s1 & 0x40) != 0;
|
||||
var m8 = (s1 & 0x80) != 0;
|
||||
var m3 = (s1 & 0x08) != 0;
|
||||
var m4 = (s1 & 0x10) != 0;
|
||||
var m5 = (s1 & 0x20) != 0;
|
||||
var m6 = (s1 & 0x40) != 0;
|
||||
var m7 = (s1 & 0x80) != 0;
|
||||
|
||||
var m9 = (s2 & 0x4) != 0;
|
||||
var state = new ActuatorStates(valves, mp1, mp2, p12, p3, p4, p5, p6, m1, m2, m3, m4, m5, m6, m7, m8, m9);
|
||||
state.SetV(59, (s2 & 0x1) != 0);
|
||||
state.SetV(60, (s2 & 0x2) != 0);
|
||||
var m8 = (s2 & 0x04) != 0;
|
||||
var state = new ActuatorStates(valves, mp1, mp2, p12, p3, p4, p5, p6, m1, m2, m3, m4, m5, m6, m7, m8);
|
||||
state.SetV(58, (s1 & 0x04) != 0);
|
||||
state.SetV(59, (s2 & 0x01) != 0);
|
||||
state.SetV(60, (s2 & 0x02) != 0);
|
||||
|
||||
return state;
|
||||
}
|
||||
@@ -183,7 +184,7 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
var v1 = (ushort)((state.Valves ) & 0xFFFF);
|
||||
var v2 = (ushort)((state.Valves >> 16) & 0xFFFF);
|
||||
var v3 = (ushort)((state.Valves >> 32) & 0xFFFF);
|
||||
var v4 = (ushort)((state.Valves >> 48) & 0xFFFF);
|
||||
var v4 = (ushort)((state.Valves >> 48) & 0x01FF);
|
||||
|
||||
int pumps =
|
||||
(state.MP1 == MotorState.Backward ? 0x001 : 0x000) |
|
||||
@@ -199,7 +200,7 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
int devices =
|
||||
(state.TroughAuger ? 0x01 : 0x00) |
|
||||
(state.Rebler ? 0x02 : 0x00) |
|
||||
(state.TroughSelector ? 0x04 : 0x00) |
|
||||
(state.GetV(58) ? 0x04 : 0x00) |
|
||||
(state.StirrerA1 ? 0x08 : 0x00) |
|
||||
(state.StirrerA2 ? 0x10 : 0x00) |
|
||||
(state.Belt ? 0x20 : 0x00) |
|
||||
@@ -207,9 +208,9 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
(state.Auger2 ? 0x80 : 0x00);
|
||||
|
||||
int measuring =
|
||||
(state.GetV(59) ? 0x1 : 0x0) |
|
||||
(state.GetV(60) ? 0x2 : 0x0) |
|
||||
(state.GradationPump ? 0x4 : 0x0);
|
||||
(state.GetV(59) ? 0x01 : 0x00) |
|
||||
(state.GetV(60) ? 0x02 : 0x00) |
|
||||
(state.GradationPump ? 0x04 : 0x00);
|
||||
|
||||
await WriteOutputRegisters(v1, v2, v3, v4, (ushort)pumps, (ushort)devices, (ushort)measuring);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:PamhagenSysCtrl"
|
||||
mc:Ignorable="d"
|
||||
Title="MainWindow" Height="450" Width="800">
|
||||
Title="MainWindow" Height="520" Width="800">
|
||||
<Grid>
|
||||
<TextBox x:Name="PortInput" Text="COM1"
|
||||
Margin="10,10,10,10" VerticalAlignment="Top" HorizontalAlignment="Left" Height="25" Width="80" FontSize="14" Padding="2,2,2,2"/>
|
||||
@@ -16,7 +16,7 @@
|
||||
<Grid x:Name="ButtonPanel" Margin="5,50,5,5">
|
||||
</Grid>
|
||||
|
||||
<TextBlock x:Name="Status"
|
||||
Margin="500,50,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"/>
|
||||
<TextBlock x:Name="Status" FontSize="14"
|
||||
Margin="350,50,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"/>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
||||
Reference in New Issue
Block a user