aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-05-16 13:57:15 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-05-16 13:57:15 +0300
commit5dba4e859e2806ce74d806fbd5dda37b7fa628d5 (patch)
tree4e5bf391476a7dfc2c1cd13d020a2e581bd7e032 /Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
parentfe19ef2694d92c91a493b9f3d1f41bc57ebbe6a2 (diff)
downloadTango-5dba4e859e2806ce74d806fbd5dda37b7fa628d5.tar.gz
Tango-5dba4e859e2806ce74d806fbd5dda37b7fa628d5.zip
Improved Tango Build Engine VS Extension.
Added HardwareSpeedSensor to DB Entities & PMR. Added progress to proto folder compiler.
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
index 6a63d6591..ae18bb6f4 100644
--- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
@@ -31,6 +31,7 @@ namespace Tango.PMRGenerator.CLI
GenerateHardwarePidControls(db, pmrFolder);
GenerateHardwareDispensers(db, pmrFolder);
GenerateHardwareWinders(db, pmrFolder);
+ GenerateHardwareSpeedSensors(db, pmrFolder);
GenerateLiquidTypes(db, pmrFolder);
GenerateWindingMethods(db, pmrFolder);
GenerateSpoolTypes(db, pmrFolder);
@@ -243,6 +244,44 @@ namespace Tango.PMRGenerator.CLI
File.WriteAllText(Path.Combine(pmrFolder, "Hardware", messageFile.Name + ".proto"), messageString);
}
+ private static void GenerateHardwareSpeedSensors(ObservablesContext db, String pmrFolder)
+ {
+ Console.WriteLine("Generating Hardware Speed Sensor Types...");
+
+ ProtoEnumFile enumFile = new ProtoEnumFile();
+ enumFile.Name = "HardwareSpeedSensorType";
+ enumFile.Package = "Tango.PMR.Hardware";
+
+ foreach (var field in db.HardwareSpeedSensorTypes.ToList().OrderBy(x => x.Code))
+ {
+ enumFile.Fields.Add(new EnumerationField()
+ {
+ Name = field.Name.Replace(" ", ""),
+ Value = field.Code,
+ Description = field.Description,
+ });
+ }
+
+ Console.WriteLine("Generating Hardware Speed Sensor...");
+ ProtoMessageFile messageFile = new ProtoMessageFile();
+ messageFile.Name = "HardwareSpeedSensor";
+ messageFile.Package = "Tango.PMR.Hardware";
+ messageFile.Imports.Add("HardwareSpeedSensorType.proto");
+
+ messageFile.Properties.Add(new ProtoProperty("HardwareSpeedSensorType", "HardwareSpeedSensorType"));
+
+ foreach (var prop in typeof(HardwareSpeedSensor).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive))
+ {
+ messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType)));
+ }
+
+ String enumString = enumFile.GenerateCode();
+ String messageString = messageFile.GenerateCode();
+
+ File.WriteAllText(Path.Combine(pmrFolder, "Hardware", enumFile.Name + ".proto"), enumString);
+ File.WriteAllText(Path.Combine(pmrFolder, "Hardware", messageFile.Name + ".proto"), messageString);
+ }
+
private static void GenerateLiquidTypes(ObservablesContext db, String pmrFolder)
{
Console.WriteLine("Generating Dispenser Liquid Types...");