Permalink
Browse files

Core RLM Changes:

- Added Persistence option for the RLM so users can now turn it off. By default, it is turned on.
- Disabled the console displays inside the RLM
- Fixed some bugs on the RLM session case history queries that are used for the visualizer

Other general changes:
- Added new PoC called the Challenger
- Improvements on the most of the example apps and refactored parts of the code to remove some redundancies
- Updates on some project files since we migrated to the new Visual Studio 2017
  • Loading branch information...
randolph-useaible committed Aug 17, 2017
1 parent e9b29b3 commit 87061a8b31ac26153e79bc7bd39aa4a07f06d09a
Showing with 5,619 additions and 502 deletions.
  1. +1 −3 Core/RLM/RLM.Memory/Manager.cs
  2. +2 −0 Core/RLM/RLM.Models/Interfaces/IManager.cs
  3. +1 −1 Core/RLM/RLM.Models/Interfaces/IRlmNetwork.cs
  4. +1 −0 Core/RLM/RLM.Models/Models/Archives/RlmIODetails.cs
  5. +0 −33 Core/RLM/RLM.Models/Models/RlmCaseHistory.cs
  6. +0 −26 Core/RLM/RLM.Models/Models/RlmCaseIOHistory.cs
  7. +0 −28 Core/RLM/RLM.Models/Models/RlmSessionHistory.cs
  8. +54 −21 Core/RLM/RLM/RlmNetwork.cs
  9. +30 −13 Core/RLM/RLM/RlmSessionCaseHistory.cs
  10. +61 −0 ExampleApps/CSharp/Challenger/Challenger/AddBlockTypeWindow.xaml
  11. +107 −0 ExampleApps/CSharp/Challenger/Challenger/AddBlockTypeWindow.xaml.cs
  12. +37 −0 ExampleApps/CSharp/Challenger/Challenger/AddIcon.xaml
  13. +137 −0 ExampleApps/CSharp/Challenger/Challenger/AddIcon.xaml.cs
  14. +23 −0 ExampleApps/CSharp/Challenger/Challenger/App.config
  15. +9 −0 ExampleApps/CSharp/Challenger/Challenger/App.xaml
  16. +38 −0 ExampleApps/CSharp/Challenger/Challenger/App.xaml.cs
  17. +397 −0 ExampleApps/CSharp/Challenger/Challenger/Challenger.csproj
  18. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-Bold.ttf
  19. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-ExtraLight.ttf
  20. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-Light.ttf
  21. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-Medium.ttf
  22. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-Regular.ttf
  23. BIN ExampleApps/CSharp/Challenger/Challenger/Fonts/Oswald-SemiBold.ttf
  24. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/air-traffic-control.png
  25. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/airplane.png
  26. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/fix.png
  27. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/laggage.png
  28. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/operator.png
  29. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/passenger.png
  30. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Airline/radar.png
  31. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Building/building.png
  32. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Building/building2.png
  33. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Building/construction.png
  34. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Building/gears.png
  35. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Building/government.png
  36. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/Hiring.png
  37. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/angry.png
  38. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/book.png
  39. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/bulb.png
  40. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/calculator.png
  41. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/calendar.png
  42. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/computer.png
  43. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/court.png
  44. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/deal.png
  45. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/deliver.png
  46. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/dollar.png
  47. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/engineer.png
  48. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/folder.png
  49. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/graph.png
  50. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/hand-cuff.png
  51. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/hand-money.png
  52. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/happy.png
  53. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/loan.png
  54. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/losing-money.png
  55. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/money-graph.png
  56. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/multi-graph.png
  57. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/notes.png
  58. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/phone.png
  59. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/piggy-bank.png
  60. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/puzzle.png
  61. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/shop.png
  62. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/time.png
  63. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Business/yen.png
  64. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/General/Human.png
  65. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/General/executive.png
  66. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/General/human2.png
  67. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/General/location.png
  68. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/General/people.png
  69. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/diamond.png
  70. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/finish.png
  71. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/money.png
  72. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/poison.png
  73. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/robot.png
  74. BIN ExampleApps/CSharp/Challenger/Challenger/Icons/Miscellaneous/skull.png
  75. BIN ExampleApps/CSharp/Challenger/Challenger/Images/arrow-down.png
  76. BIN ExampleApps/CSharp/Challenger/Challenger/Images/arrow-left.png
  77. BIN ExampleApps/CSharp/Challenger/Challenger/Images/arrow-right.png
  78. BIN ExampleApps/CSharp/Challenger/Challenger/Images/arrow-up.png
  79. BIN ExampleApps/CSharp/Challenger/Challenger/Images/help.png
  80. +19 −0 ExampleApps/CSharp/Challenger/Challenger/InitializationPanel.xaml
  81. +28 −0 ExampleApps/CSharp/Challenger/Challenger/InitializationPanel.xaml.cs
  82. +170 −0 ExampleApps/CSharp/Challenger/Challenger/MainWindow.xaml
  83. +1,192 −0 ExampleApps/CSharp/Challenger/Challenger/MainWindow.xaml.cs
  84. +34 −0 ExampleApps/CSharp/Challenger/Challenger/Models/ItemClickedCommand.cs
  85. +101 −0 ExampleApps/CSharp/Challenger/Challenger/Models/RLVOutputVisualizer.cs
  86. +122 −0 ExampleApps/CSharp/Challenger/Challenger/Models/Utilities.cs
  87. +112 −0 ExampleApps/CSharp/Challenger/Challenger/NewEditBoxWindow.xaml
  88. +250 −0 ExampleApps/CSharp/Challenger/Challenger/NewEditBoxWindow.xaml.cs
  89. +55 −0 ExampleApps/CSharp/Challenger/Challenger/Properties/AssemblyInfo.cs
  90. +71 −0 ExampleApps/CSharp/Challenger/Challenger/Properties/Resources.Designer.cs
  91. +117 −0 ExampleApps/CSharp/Challenger/Challenger/Properties/Resources.resx
  92. +30 −0 ExampleApps/CSharp/Challenger/Challenger/Properties/Settings.Designer.cs
  93. +7 −0 ExampleApps/CSharp/Challenger/Challenger/Properties/Settings.settings
  94. +437 −0 ExampleApps/CSharp/Challenger/Challenger/SimulationConfig/default.json
  95. +40 −0 ExampleApps/CSharp/Challenger/Challenger/SimulationPanel.xaml
  96. +239 −0 ExampleApps/CSharp/Challenger/Challenger/SimulationPanel.xaml.cs
  97. +87 −0 ExampleApps/CSharp/Challenger/Challenger/VisualizerWindow.xaml
  98. +468 −0 ExampleApps/CSharp/Challenger/Challenger/VisualizerWindow.xaml.cs
  99. +8 −0 ExampleApps/CSharp/Challenger/Challenger/packages.config
  100. +17 −0 ExampleApps/CSharp/Challenger/ChallengerLib/App.config
  101. +99 −0 ExampleApps/CSharp/Challenger/ChallengerLib/ChallengerLib.csproj
  102. +76 −0 ExampleApps/CSharp/Challenger/ChallengerLib/ChallengerSimulator.cs
  103. +26 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Data/ChallengerDbEntities.cs
  104. +23 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Data/ChallengerInitializer.cs
  105. +35 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/Block.cs
  106. +18 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/BlockTemplate.cs
  107. +15 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/ChallengerIcon.cs
  108. +14 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/ChallengerSimulationSettings.cs
  109. +14 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/MoveDetails.cs
  110. +22 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Models/SimulationConfig.cs
  111. +36 −0 ExampleApps/CSharp/Challenger/ChallengerLib/Properties/AssemblyInfo.cs
  112. +316 −0 ExampleApps/CSharp/Challenger/ChallengerLib/RLM/RLMChallenger.cs
  113. +4 −0 ExampleApps/CSharp/Challenger/ChallengerLib/packages.config
  114. +35 −0 ExampleApps/CSharp/Maze/MazeGameLib/IMazeGame.cs
  115. +36 −25 ExampleApps/CSharp/Maze/MazeGameLib/MazeGame.cs
  116. +1 −0 ExampleApps/CSharp/Maze/MazeGameLib/MazeGameLib.csproj
  117. +34 −17 ExampleApps/CSharp/Maze/MazeGameLib/RLMMazeTraveler.cs
  118. +2 −2 ExampleApps/CSharp/Maze/MazeGameLib/Traveler.cs
  119. +4 −4 ExampleApps/CSharp/RetailPoC/RetailPoC/DataGeneration/MockData.cs
  120. +10 −6 ExampleApps/CSharp/RetailPoC/RetailPoC/MainWindow.xaml.cs
  121. +1 −1 ExampleApps/CSharp/RetailPoC/RetailPoC/MetricPanel.xaml.cs
  122. +4 −18 ExampleApps/CSharp/RetailPoC/RetailPoC/Models/{SimulationSettings.cs → RPOCSimulationSettings.cs}
  123. +10 −9 ExampleApps/CSharp/RetailPoC/RetailPoC/PlanogramOptimizer.cs
  124. +7 −6 ExampleApps/CSharp/RetailPoC/RetailPoC/PlanogramOptimizerEncog.cs
  125. +5 −2 ExampleApps/CSharp/RetailPoC/RetailPoC/RetailPoC.csproj
  126. +4 −4 ExampleApps/CSharp/RetailPoC/RetailPoC/SimulationPanel.xaml
  127. +3 −2 ExampleApps/CSharp/RetailPoC/RetailPoC/SimulationPanel.xaml.cs
  128. +1 −5 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/App.config
  129. +4 −4 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/DataGeneration/MockData.cs
  130. +3 −2 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/MainWindow.xaml.cs
  131. +1 −1 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/MetricPanel.xaml.cs
  132. +3 −13 ...leApps/CSharp/RetailPoC/RetailPoCSimple/Models/{SimulationSettings.cs → RPOCSimpleSimSettings.cs}
  133. +0 −15 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/Models/SimulationType.cs
  134. +10 −9 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/PlanogramOptimizer.cs
  135. +5 −2 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/RetailPoCSimple.csproj
  136. +3 −2 ExampleApps/CSharp/RetailPoC/RetailPoCSimple/SimulationPanel.xaml.cs
  137. +1 −1 ExampleApps/CompetitorComparableApps/RetailPoC/RetailPoC_Tensorflow/Headtohead.py
  138. +98 −10 ExampleApps/CompetitorComparableApps/RetailPoC/RetailPoC_Tensorflow/PlanogramOptTensorflow.py
  139. +1 −7 ExampleApps/CompetitorComparableApps/RetailPoC/RetailPoC_Tensorflow/RetailPoC_Tensorflow.pyproj
  140. +0 −69 ExampleApps/CompetitorComparableApps/RetailPoC/RetailPoC_Tensorflow/test.py
  141. +1 −3 ExampleApps/Python/LanderConsoleAppPython/LanderConsoleAppPython.pyproj
  142. +1 −3 ExampleApps/Python/LogisticsConsoleAppPython/LogisticsConsoleAppPython.pyproj
  143. +1 −3 ExampleApps/Python/MazeConsoleAppPython/MazeConsoleAppPython.pyproj
  144. BIN ExampleApps/UtilityTools/RequirementsTool/bin/debug/RequirementsTool.exe
  145. +30 −0 ExampleApps/UtilityTools/Tools/Settings/SimulationSettings.cs
  146. +1 −1 ExampleApps/{CSharp/RetailPoC/RetailPoC/Models → UtilityTools/Tools/Settings}/SimulationType.cs
  147. +2 −0 ExampleApps/UtilityTools/Tools/Tools.csproj
  148. +67 −50 RLM.sln
  149. +5 −2 RyskampLearningVisualizer/ExampleVisualizers/WPFVisualizer/RLVSelectedDetailsPanel.xaml.cs
  150. +23 −20 RyskampLearningVisualizer/ExampleVisualizers/WPFVisualizer/RLVSessionScoreBreakdown.xaml.cs
  151. +0 −58 RyskampLearningVisualizer/RLV.Core/Converters/RLVNumberConverter.cs
  152. +2 −1 RyskampLearningVisualizer/RLV.Core/RLVCore.cs
@@ -107,7 +107,7 @@ public Manager(IRlmNetwork network, bool trackStats = false)
solution_queue = new BlockingCollection<Solution>();
case_queue = new BlockingCollection<Case>();
rlmDb = new RlmDbMgr(network.DatabaseName);
rlmDb = (network.PersistData) ? new RlmDbMgr(network.DatabaseName) : null;
rlmDbEnqueuer = new RlmObjectEnqueuer();
ctSourceSessions = new CancellationTokenSource();
@@ -803,7 +803,6 @@ public void StopRlmDbWorkersSessions()
savedSession_queue.CompleteAdding();
ctSourceSessions.Cancel();
ctSourceSessions.Dispose();
sessionsDone = true;
totalSessionsCount = Sessions.Count;
@@ -816,7 +815,6 @@ public void StopRlmDbWorkersCases()
case_queue.CompleteAdding();
ctSourceCases.Cancel();
ctSourceCases.Dispose();
dbSavingTime.Stop();
@@ -49,6 +49,8 @@ public interface IManager
GetSolutionResult GetSolutionFromOutputs(IEnumerable<RlmIOWithValue> outputs);
void SetSolutionWithOutputs(Solution solution);
void StartRlmDbWorkers();
void StopRlmDbWorkersSessions();
void StopRlmDbWorkersCases();
void TrainingDone();
void InitStorage(List<Input> inputs, List<Output> outputs);
void SetProgressInterval(int milliseconds);
@@ -10,7 +10,7 @@ public interface IRlmNetwork
{
event DataPersistenceCompleteDelegate DataPersistenceComplete;
event DataPersistenceProgressDelegate DataPersistenceProgress;
bool PersistData { get; }
long CurrentNetworkID { get; }
string CurrentNetworkName { get; }
string DatabaseName { get; }
@@ -17,5 +17,6 @@ public class RlmIODetails
public long CaseId { get; set; }
public double CycleScore { get; set; }
public long SessionId { get; set; }
public long CycleOrder { get; set; }
}
}

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.
View
@@ -35,12 +35,15 @@ public class RlmNetwork : IRlmNetwork
const int CACHE_MARGIN = 0;
const bool USE_MOM_AVG = false;
protected bool consoleDisplay = false;
//Events
public event SessionCompleteDelegate SessionComplete;
public event CycleCompleteDelegate CycleComplete;
public event DataPersistenceCompleteDelegate DataPersistenceComplete;
public event DataPersistenceProgressDelegate DataPersistenceProgress;
public bool PersistData { get; private set; }
public IManager MemoryManager { get; private set; }
public Case CurrentCase { get; internal set; }
@@ -295,9 +298,12 @@ public static bool Exists(string databaseName)
/// <summary>
/// default contstructor, creates "RyskampLearningMachine" database
/// </summary>
public RlmNetwork()
/// <param name="persistData">Allows you to turn on/off the data persistence feature of the RLM. Turned on by default.</param>
public RlmNetwork(bool persistData = true)
{
DatabaseName = RlmDbEntities.DetermineDbName();
PersistData = persistData;
if (PersistData)
DatabaseName = RlmDbEntities.DetermineDbName();
Initialize();
}
/// <summary>
@@ -306,6 +312,7 @@ public RlmNetwork()
/// <param name="databaseName">database name</param>
public RlmNetwork(string databaseName)
{
PersistData = true;
DatabaseName = databaseName;
Initialize();
//MemoryManager.StartRnnDbWorkers();
@@ -334,9 +341,10 @@ public void NewNetwork(string name, IEnumerable<RlmIO> inputs, IEnumerable<RlmIO
CurrentNetworkName = newnet.Name;
// initialize Case Order
CaseOrder = 0;
Console.WriteLine("Create new network: " + newnet.Name);
CaseOrder = 0;
if (consoleDisplay)
Console.WriteLine("Create new network: " + newnet.Name);
//Inputs
var inputsForDb = new List<Input>();
@@ -384,7 +392,10 @@ public void NewNetwork(string name, IEnumerable<RlmIO> inputs, IEnumerable<RlmIO
SessionCountInitial = SessionCount;
//create new network
MemoryManager.NewNetwork(newnet, ioTypesForDb, inputsForDb, outputsForDb, this);
if (PersistData)
{
MemoryManager.NewNetwork(newnet, ioTypesForDb, inputsForDb, outputsForDb, this);
}
}
/// <summary>
@@ -419,17 +430,24 @@ public bool LoadNetwork()
/// <returns>Returns true if network is successfully loaded</returns>
public bool LoadNetwork(string name)
{
var result = MemoryManager.LoadNetwork(name);
bool retVal = false;
if (result.Loaded)
if (PersistData)
{
CurrentNetworkID = result.CurrentNetworkId;
CurrentNetworkName = result.CurrentNetworkName;
CaseOrder = result.CaseOrder;
SessionCountInitial = SessionCount = result.SessionCount;
var result = MemoryManager.LoadNetwork(name);
if (result.Loaded)
{
CurrentNetworkID = result.CurrentNetworkId;
CurrentNetworkName = result.CurrentNetworkName;
CaseOrder = result.CaseOrder;
SessionCountInitial = SessionCount = result.SessionCount;
}
retVal = result.Loaded;
}
return result.Loaded;
return retVal;
}
public void ResetNetwork()
@@ -481,7 +499,10 @@ public virtual long SessionStart()
if (MemoryManager.Sessions.TryAdd(session.ID, session))
{
//save session to db
MemoryManager.AddSessionToQueue(CurrentSessionID, session);
if (PersistData)
{
MemoryManager.AddSessionToQueue(CurrentSessionID, session);
}
// reset input momentums
foreach(var item in InputMomentums)
@@ -551,7 +572,10 @@ public void SessionEnd(double finalSessionScore)
session.Hidden = false;
//update session to db
MemoryManager.AddSessionUpdateToQueue(session);
if (PersistData)
{
MemoryManager.AddSessionUpdateToQueue(session);
}
//Throw the endsession event
if (SessionComplete != null) SessionComplete(CurrentSessionID, this);
@@ -597,7 +621,10 @@ public void ScoreCycle(long cycleId, double cycleScore)
MemoryManager.BestSolutionStaging.Add(bsol);
//save case to db
MemoryManager.AddCaseToQueue(cycleId, CurrentCase);
if (PersistData)
{
MemoryManager.AddCaseToQueue(cycleId, CurrentCase);
}
CurrentCase = null;
}
@@ -612,7 +639,10 @@ public void ScoreCycle(long cycleId, double cycleScore)
/// </summary>
public void TrainingDone()
{
MemoryManager.TrainingDone();
if (PersistData)
{
MemoryManager.TrainingDone();
}
}
/// <summary>
@@ -642,7 +672,8 @@ private object ProcessNewIO(Rnetwork net, RlmIO io, Boolean ProcessAsOutput = fa
//Create Type
iot = new Input_Output_Type() { ID = Util.GenerateHashKey(io.DotNetType), Name = io.DotNetType, DotNetTypeName = io.DotNetType };
Console.WriteLine("Creating new Input_Output_Type: " + io.DotNetType);
if (consoleDisplay)
Console.WriteLine("Creating new Input_Output_Type: " + io.DotNetType);
if (!ProcessAsOutput)
{
@@ -652,7 +683,8 @@ private object ProcessNewIO(Rnetwork net, RlmIO io, Boolean ProcessAsOutput = fa
Input newio = new Input() { ID = Util.GenerateHashKey(io.Name), Name = io.Name, Rnetwork_ID = net.ID, Input_Output_Type_ID = iot.ID, Input_Output_Type = iot, Min = io.Min, Max = io.Max, Type = io.Type };
io.ID = newio.ID;
retVal = newio;
Console.WriteLine("Create new Input: " + newio.Name);
if (consoleDisplay)
Console.WriteLine("Create new Input: " + newio.Name);
}
else
{
@@ -662,7 +694,8 @@ private object ProcessNewIO(Rnetwork net, RlmIO io, Boolean ProcessAsOutput = fa
Output newio = new Output() { ID = Util.GenerateHashKey(io.Name), Name = io.Name, Rnetwork_ID = net.ID, Input_Output_Type_ID = iot.ID, Input_Output_Type = iot, Min = io.Min, Max = io.Max };
io.ID = newio.ID;
retVal = newio;
Console.WriteLine("Create new Output: " + newio.Name);
if (consoleDisplay)
Console.WriteLine("Create new Output: " + newio.Name);
}
return retVal;
Oops, something went wrong.

0 comments on commit 87061a8

Please sign in to comment.