diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-08-04 14:35:57 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-08-04 14:35:57 +0300 |
| commit | db9119d86fa9e2efd2c3dfab8ac2c49c2ee4da70 (patch) | |
| tree | 6edfb51c6fde983291a415b8b19a972b2aa78548 /Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs | |
| parent | 76d311ad4690b9f88ae71ff097c6592190b65012 (diff) | |
| download | Tango-db9119d86fa9e2efd2c3dfab8ac2c49c2ee4da70.tar.gz Tango-db9119d86fa9e2efd2c3dfab8ac2c49c2ee4da70.zip | |
Added DB, Observables, PMR Hardware Break Sensors & Break Sensors.
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs')
| -rw-r--r-- | Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs | 78 |
1 files changed, 78 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 274a381a6..c96b94dad 100644 --- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs @@ -41,6 +41,8 @@ namespace Tango.PMRGenerator.CLI GenerateHardwareDispensers(db, pmrFolder); GenerateHardwareWinders(db, pmrFolder); GenerateHardwareSpeedSensors(db, pmrFolder); + GenerateHardwareBlowers(db, pmrFolder); + GenerateHardwareBreakSensors(db, pmrFolder); GenerateLiquidTypes(db, pmrFolder); GenerateWindingMethods(db, pmrFolder); GenerateSpoolTypes(db, pmrFolder); @@ -291,6 +293,82 @@ namespace Tango.PMRGenerator.CLI File.WriteAllText(Path.Combine(pmrFolder, "Hardware", messageFile.Name + ".proto"), messageString); } + private static void GenerateHardwareBlowers(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Hardware Blower Types..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "HardwareBlowerType"; + enumFile.Package = "Tango.PMR.Hardware"; + + foreach (var field in db.HardwareBlowerTypes.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Value = field.Code, + Description = field.Description, + }); + } + + Console.WriteLine("Generating Hardware Blowers..."); + ProtoMessageFile messageFile = new ProtoMessageFile(); + messageFile.Name = "HardwareBlower"; + messageFile.Package = "Tango.PMR.Hardware"; + messageFile.Imports.Add("HardwareBlowerType.proto"); + + messageFile.Properties.Add(new ProtoProperty("HardwareBlowerType", "HardwareBlowerType")); + + foreach (var prop in typeof(HardwareBlowerType).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) + { + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareBlowerType>(prop))); + } + + 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 GenerateHardwareBreakSensors(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Hardware Break Sensor Types..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "HardwareBreakSensorType"; + enumFile.Package = "Tango.PMR.Hardware"; + + foreach (var field in db.HardwareBreakSensorTypes.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Value = field.Code, + Description = field.Description, + }); + } + + Console.WriteLine("Generating Hardware Break Sensor..."); + ProtoMessageFile messageFile = new ProtoMessageFile(); + messageFile.Name = "HardwareBreakSensor"; + messageFile.Package = "Tango.PMR.Hardware"; + messageFile.Imports.Add("HardwareBreakSensorType.proto"); + + messageFile.Properties.Add(new ProtoProperty("HardwareBreakSensorType", "HardwareBreakSensorType")); + + foreach (var prop in typeof(HardwareBreakSensor).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) + { + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareBreakSensor>(prop))); + } + + 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..."); |
