aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StartDebugLogRequest.pb.h
blob: ff629e6116a4fffafd85d5a33e901bb0d26119fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: StartDebugLogRequest.proto

#ifndef PROTOBUF_StartDebugLogRequest_2eproto__INCLUDED
#define PROTOBUF_StartDebugLogRequest_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3004000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
namespace Tango {
namespace PMR {
namespace Debugging {
class StartDebugLogRequest;
class StartDebugLogRequestDefaultTypeInternal;
extern StartDebugLogRequestDefaultTypeInternal _StartDebugLogRequest_default_instance_;
}  // namespace Debugging
}  // namespace PMR
}  // namespace Tango

namespace Tango {
namespace PMR {
namespace Debugging {

namespace protobuf_StartDebugLogRequest_2eproto {
// Internal implementation detail -- do not call these.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[];
  static const ::google::protobuf::uint32 offsets[];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static void InitDefaultsImpl();
};
void AddDescriptors();
void InitDefaults();
}  // namespace protobuf_StartDebugLogRequest_2eproto

// ===================================================================

class StartDebugLogRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Debugging.StartDebugLogRequest) */ {
 public:
  StartDebugLogRequest();
  virtual ~StartDebugLogRequest();

  StartDebugLogRequest(const StartDebugLogRequest& from);

  inline StartDebugLogRequest& operator=(const StartDebugLogRequest& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  StartDebugLogRequest(StartDebugLogRequest&& from) noexcept
    : StartDebugLogRequest() {
    *this = ::std::move(from);
  }

  inline StartDebugLogRequest& operator=(StartDebugLogRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StartDebugLogRequest& default_instance();

  static inline const StartDebugLogRequest* internal_default_instance() {
    return reinterpret_cast<const StartDebugLogRequest*>(
               &_StartDebugLogRequest_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    0;

  void Swap(StartDebugLogRequest* other);
  friend void swap(StartDebugLogRequest& a, StartDebugLogRequest& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline StartDebugLogRequest* New() const PROTOBUF_FINAL { return New(NULL); }

  StartDebugLogRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const StartDebugLogRequest& from);
  void MergeFrom(const StartDebugLogRequest& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(StartDebugLogRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Tango.PMR.Debugging.StartDebugLogRequest)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  mutable int _cached_size_;
  friend struct protobuf_StartDebugLogRequest_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// StartDebugLogRequest

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)


}  // namespace Debugging
}  // namespace PMR
}  // namespace Tango

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_StartDebugLogRequest_2eproto__INCLUDED
ass="p">, pmrFolder); GenerateHeaterTypes(db, pmrFolder); GenerateValves(db, pmrFolder); GenerateValvesStates(db, pmrFolder); GenerateColorLabColorSpaces(db, pmrFolder); GenerateColorLabLiquidTypes(db, pmrFolder); GenerateDiagnosticsValueComponents(db, pmrFolder); GenerateDiagnosticsMonitors(db, pmrFolder); GenerateEventTypes(db, pmrFolder); GenerateInterfaceIOs(db, pmrFolder); } Console.WriteLine("Done"); } private static void GenerateHardwareMotors(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Hardware Motor Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HardwareMotorType"; enumFile.Package = "Tango.PMR.Hardware"; foreach (var field in db.HardwareMotorTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, Description = field.Description, }); } Console.WriteLine("Generating Hardware Motor..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwareMotor"; messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareMotorType.proto"); messageFile.Properties.Add(new ProtoProperty("HardwareMotorType", "HardwareMotorType")); foreach (var prop in typeof(HardwareMotorBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareMotorBase>(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 GenerateHardwareDancers(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Hardware Dancer Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HardwareDancerType"; enumFile.Package = "Tango.PMR.Hardware"; foreach (var field in db.HardwareDancerTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, Description = field.Description, }); } Console.WriteLine("Generating Hardware Dancer..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwareDancer"; messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareDancerType.proto"); messageFile.Properties.Add(new ProtoProperty("HardwareDancerType", "HardwareDancerType")); foreach (var prop in typeof(HardwareDancerBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareDancerBase>(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 GenerateHardwarePidControls(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Hardware PID Control Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HardwarePidControlType"; enumFile.Package = "Tango.PMR.Hardware"; foreach (var field in db.HardwarePidControlTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, Description = field.Description, }); } Console.WriteLine("Generating Hardware PID Control..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwarePidControl"; messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwarePidControlType.proto"); messageFile.Properties.Add(new ProtoProperty("HardwarePidControlType", "HardwarePidControlType")); foreach (var prop in typeof(HardwarePidControlBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwarePidControlBase>(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 GenerateHardwareDispensers(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Hardware Dispenser Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HardwareDispenserType"; enumFile.Package = "Tango.PMR.Hardware"; foreach (var field in db.DispenserTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } Console.WriteLine("Generating Hardware Dispenser..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwareDispenser"; messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareDispenserType.proto"); messageFile.Properties.Add(new ProtoProperty("HardwareDispenserType", "HardwareDispenserType")); messageFile.Properties.Add(new ProtoProperty("Index", "int32")); foreach (var prop in typeof(DispenserTypeBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { if (prop.Name != "Name" && prop.Name != "Code") { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<DispenserTypeBase>(prop))); } } foreach (var prop in typeof(DispenserBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { if (prop.Name != nameof(Dispenser.IsInstalled)) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<DispenserBase>(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 GenerateHardwareWinders(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Hardware Winder Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HardwareWinderType"; enumFile.Package = "Tango.PMR.Hardware"; foreach (var field in db.HardwareWinderTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, Description = field.Description, }); } Console.WriteLine("Generating Hardware Winder..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwareWinder"; messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareWinderType.proto"); messageFile.Properties.Add(new ProtoProperty("HardwareWinderType", "HardwareWinderType")); foreach (var prop in typeof(HardwareWinderBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareWinderBase>(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 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(HardwareSpeedSensorBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareSpeedSensorBase>(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 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(HardwareBlowerBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareBlowerBase>(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(HardwareBreakSensorBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive && x.Name != "Active")) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<HardwareBreakSensorBase>(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..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "DispenserLiquidType"; enumFile.Package = "Tango.PMR.Printing"; foreach (var field in db.LiquidTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Printing", enumFile.Name + ".proto"), enumString); } private static void GenerateWindingMethods(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Winding Methods..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "JobWindingMethod"; enumFile.Package = "Tango.PMR.Printing"; foreach (var field in db.WindingMethods.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, Description = field.Description, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Printing", enumFile.Name + ".proto"), enumString); } private static void GenerateHeaterTypes(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Heater Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "HeaterType"; enumFile.Package = "Tango.PMR.Diagnostics"; foreach (var field in db.TechHeaters.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static void GenerateValves(ObservablesContext db, string pmrFolder) { Console.WriteLine("Generating Valve Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "ValveType"; enumFile.Package = "Tango.PMR.Diagnostics"; foreach (var field in db.TechValves.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static void GenerateValvesStates(ObservablesContext db, string pmrFolder) { Console.WriteLine("Generating Valve State Codes..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "ValveStateCode"; enumFile.Package = "Tango.PMR.Diagnostics"; List<String> states = new List<string>(); foreach (var item in db.TechValves.ToList().OrderBy(x => x.Code)) { if (!states.Contains(item.State1)) { states.Add(item.State1); } if (!states.Contains(item.State2)) { states.Add(item.State2); } } int code = 0; foreach (var state in states) { enumFile.Fields.Add(new EnumerationField() { Name = state.Replace(" ", ""), Value = code++, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static void GenerateSpoolTypes(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Spool Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "JobSpoolType"; enumFile.Package = "Tango.PMR.Printing"; foreach (var field in db.SpoolTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } Console.WriteLine("Generating Spool..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "JobSpool"; messageFile.Package = "Tango.PMR.Printing"; messageFile.Imports.Add("JobSpoolType.proto"); messageFile.Properties.Add(new ProtoProperty("JobSpoolType", "JobSpoolType")); foreach (var prop in typeof(SpoolTypeBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { if (prop.Name != "Name" && prop.Name != "Code") { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } } foreach (var prop in typeof(SpoolBase).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, "Printing", enumFile.Name + ".proto"), enumString); File.WriteAllText(Path.Combine(pmrFolder, "Printing", messageFile.Name + ".proto"), messageString); } private static void GenerateProcessParameters(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Process Parameters..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "ProcessParameters"; messageFile.Package = "Tango.PMR.Printing"; foreach (var prop in typeof(ProcessParametersTableBase).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType), GetDbDescription<ProcessParametersTableBase>(prop))); } String messageString = messageFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Printing", messageFile.Name + ".proto"), messageString); } private static void GenerateColorLabColorSpaces(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating ColorLab Color Spaces..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "ColorSpace"; enumFile.Package = "Tango.PMR.ColorLab"; foreach (var field in db.ColorSpaces.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "ColorLab", enumFile.Name + ".proto"), enumString); } private static void GenerateColorLabLiquidTypes(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating ColorLab Liquid Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "LiquidType"; enumFile.Package = "Tango.PMR.ColorLab"; foreach (var field in db.LiquidTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "ColorLab", enumFile.Name + ".proto"), enumString); } private static void GenerateDiagnosticsValueComponents(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Diagnostics Value Component..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "ValueComponent"; enumFile.Package = "Tango.PMR.Diagnostics"; foreach (var field in db.TechControllers.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Description = field.Description + String.Format(" (Min = {0}, Max = {1})", field.Min, field.Max), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static void GenerateDiagnosticsMonitors(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Monitors..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "DiagnosticsMonitors"; messageFile.Package = "Tango.PMR.Diagnostics"; messageFile.Imports.Add("DoubleArray.proto"); foreach (var monitor in db.TechMonitors.ToList().OrderBy(x => x.Code)) { var prop = new ProtoProperty(); prop.Name = monitor.Name.Replace(" ", ""); prop.Description = monitor.Description + String.Format(" (Min = {0}, Max = {1}, PPF = {2})", monitor.Min, monitor.Max, monitor.PointsPerFrame); prop.Repeated = true; if (!monitor.MultiChannel) { prop.Type = "double"; } else { prop.Type = "DoubleArray"; prop.Description += String.Format(" Channel Count = {0}", monitor.ChannelCount); } messageFile.Properties.Add(prop); } String messageString = messageFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", messageFile.Name + ".proto"), messageString); } private static void GenerateInterfaceIOs(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Interface IOs..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "InterfaceIOs"; enumFile.Package = "Tango.PMR.Diagnostics"; foreach (var tech_io in db.TechIos.OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = tech_io.Name.Replace(" ", ""), Description = $"Designator: {tech_io.Designator}", Value = tech_io.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static void GenerateEventTypes(ObservablesContext db, String pmrFolder) { Console.WriteLine("Generating Event Types..."); ProtoEnumFile enumFile = new ProtoEnumFile(); enumFile.Name = "EventType"; enumFile.Package = "Tango.PMR.Diagnostics"; enumFile.Fields.Add(new EnumerationField() { Name = "None", Description = "Must contain a 0 value", Value = 0, }); foreach (var field in db.EventTypes.ToList().OrderBy(x => x.Code)) { enumFile.Fields.Add(new EnumerationField() { Name = field.Name.Replace(" ", ""), Description = field.Description + String.Format(" (Group = {0}, Category = {1})", field.Group.ToString(), field.Category.ToString()), Value = field.Code, }); } String enumString = enumFile.GenerateCode(); File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); } private static String CoercePropertyType(Type type) { if (type == typeof(bool)) { return "bool"; } else { return type.Name.ToLower(); } } private static String GetDbDescription<T>(PropertyInfo prop) { String tableName = typeof(T).GetCustomAttribute<TableAttribute>().Name; String columnName = prop.GetCustomAttribute<ColumnAttribute>().Name; var db_des = _dbDescriptions.FirstOrDefault(x => x.TableName == tableName && x.ColumnName == columnName); if (db_des != null) { return db_des.ColumnDescription.ToLines().Take(1).Concat(db_des.ColumnDescription.ToLines().Skip(1).Select(x => "//" + x)).Join(Environment.NewLine); } return null; } } }