aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Emulations
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-12 16:54:21 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-12 16:54:21 +0300
commit28f7a6f566c4e951d3d40c449813fce0c7460ca7 (patch)
tree7ea0e25c802b3086ddf28a374884f1a72c463e9e /Software/Visual_Studio/Tango.Emulations
parentaf99d6cf60267ea8c92c7610b16565104a5b6aed (diff)
downloadTango-28f7a6f566c4e951d3d40c449813fce0c7460ca7.tar.gz
Tango-28f7a6f566c4e951d3d40c449813fce0c7460ca7.zip
IMplemented emulator ink filling status.
Diffstat (limited to 'Software/Visual_Studio/Tango.Emulations')
-rw-r--r--Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs52
1 files changed, 51 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
index a8818df2b..779e110e8 100644
--- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
+++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
@@ -34,6 +34,7 @@ using Tango.Core.ExtensionMethods;
using Tango.PMR.MachineStatus;
using Tango.PMR.Power;
using Tango.PMR.ThreadLoading;
+using Tango.PMR.IFS;
namespace Tango.Emulations.Emulators
{
@@ -114,6 +115,8 @@ namespace Tango.Emulations.Emulators
public MachineStatus MachineStatus { get; set; }
+ public InkFillingStatus InkFillingStatus { get; set; }
+
#endregion
#region Constructors
@@ -225,6 +228,33 @@ namespace Tango.Emulations.Emulators
}
ResetGraphFactors();
+
+ InkFillingStatus = new InkFillingStatus();
+
+ for (int i = 0; i < 8; i++)
+ {
+ InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
+ {
+ Cartridge = new Cartridge()
+ {
+ Index = i,
+ Slot = CartridgeSlot.Ink,
+ },
+ State = CartridgeState.Exists
+ });
+ }
+
+ InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
+ {
+ Cartridge = new Cartridge() { Index = 0, Slot = CartridgeSlot.WasteLower },
+ State = CartridgeState.Exists
+ });
+
+ InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
+ {
+ Cartridge = new Cartridge() { Index = 1, Slot = CartridgeSlot.WasteMiddle },
+ State = CartridgeState.Exists
+ });
}
private void ResetGraphFactors()
@@ -433,6 +463,9 @@ namespace Tango.Emulations.Emulators
case MessageType.StartPowerUpRequest:
HandleStartPowerUpRequest(MessageFactory.ParseTangoMessageFromContainer<StartPowerUpRequest>(container));
break;
+ case MessageType.StartInkFillingStatusRequest:
+ HandleStartInkFillingStatusRequest(MessageFactory.ParseTangoMessageFromContainer<StartInkFillingStatusRequest>(container));
+ break;
}
}
@@ -1562,7 +1595,7 @@ namespace Tango.Emulations.Emulators
//if (_rnd.Next(0, 100) > 50)
//{
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Completed }, _threadLoadingToken);
+ await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Completed }, _threadLoadingToken);
//}
//else
//{
@@ -1656,6 +1689,23 @@ namespace Tango.Emulations.Emulators
});
}
+ private void HandleStartInkFillingStatusRequest(TangoMessage<StartInkFillingStatusRequest> request)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ while (IsStarted)
+ {
+
+ Transporter.SendResponse(new StartInkFillingStatusResponse()
+ {
+ Status = InkFillingStatus
+ }, request.Container.Token);
+
+ Thread.Sleep(2000);
+ }
+ });
+ }
+
#endregion
#region Public Methods