diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-05-16 13:57:15 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-05-16 13:57:15 +0300 |
| commit | 5dba4e859e2806ce74d806fbd5dda37b7fa628d5 (patch) | |
| tree | 4e5bf391476a7dfc2c1cd13d020a2e581bd7e032 /Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs | |
| parent | fe19ef2694d92c91a493b9f3d1f41bc57ebbe6a2 (diff) | |
| download | Tango-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.cs | 39 |
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..."); |
