aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs
blob: 5e6bffa823c4f99a34b71f8fbe26054649c2c0d6 (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
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Xml.Serialization;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Core.Commands;
using Tango.Core.ExtensionMethods;
using Tango.SharedUI.Helpers;

namespace Tango.MachineStudio.Technician.TechItems
{
    /// <summary>
    /// Represents a process parameters table item.
    /// </summary>
    /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" />
    [TechItem(20)]
    public class ProcessParametersItem : TechItem
    {
        public static ObservableCollection<ProcessParametersTable> ProcessParametersTables { get; set; }

        static ProcessParametersItem()
        {
            ProcessParametersTables = new ObservableCollection<ProcessParametersTable>();
        }

        public class ParameterIndex
        {
            public String Name { get; set; }
            public int Index { get; set; }
        }

        private static int _counter = 0;

        public event EventHandler<ProcessParametersTable> PushParametersPressed;

        private ProcessParametersTable _processParameters;
        /// <summary>
        /// Gets or sets the process parameters.
        /// </summary>
        public ProcessParametersTable ProcessParameters
        {
            get { return _processParameters; }
            set { _processParameters = value; RaisePropertyChangedAuto(); }
        }

        /// <summary>
        /// Gets or sets the parameters indices.
        /// </summary>
        public List<ParameterIndex> ParametersIndices { get; set; }

        /// <summary>
        /// Gets or sets the push parameters command.
        /// </summary>
        [XmlIgnore]
        public RelayCommand PushParametersCommand { get; set; }

        private Rml _selectedResetRml;
        /// <summary>
        /// Gets or sets the selected reset RML.
        /// </summary>
        [XmlIgnore]
        public Rml SelectedResetRML
        {
            get { return _selectedResetRml; }
            set { _selectedResetRml = value; RaisePropertyChangedAuto(); ResetToRMLCommand.RaiseCanExecuteChanged(); }
        }


        /// <summary>
        /// Gets or sets the push parameters command.
        /// </summary>
        [XmlIgnore]
        public RelayCommand ResetToRMLCommand { get; set; }

        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessParametersItem"/> class.
        /// </summary>
        public ProcessParametersItem() : base()
        {
            ParametersIndices = new List<ParameterIndex>();
            Name = "Process Parameters";
            Description = "Process parameters table";
            Image = ResourceHelper.GetImageFromResources("Images/process-params.png");
            ProcessParameters = new ProcessParametersTable();
            ProcessParameters.Name = "Process parameters " + _counter++;
            Color = Colors.DodgerBlue;
            PushParametersCommand = new RelayCommand(() => PushParametersPressed?.Invoke(this, ProcessParameters));

            ResetToRMLCommand = new RelayCommand(ResetToRml, () => SelectedResetRML != null);

            if (_counter > 1)
            {
                String name = ProcessParameters.Name;
                ProcessParametersTables.Add(ProcessParameters);
                ProcessParameters.Name = name;
            }
        }

        private void ResetToRml()
        {
            if (SelectedResetRML != null)
            {
                using (ObservablesContext db = ObservablesContext.CreateDefault())
                {
                    var group = db.Adapter.GetRmlActiveProcessParametersTablesGroup(SelectedResetRML.Guid);

                    if (group != null)
                    {
                        var table = group.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault();

                        if (table != null)
                        {
                            table.MapPrimitivesTo(ProcessParameters);
                        }
                    }
                }
            }
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessParametersItem"/> class.
        /// </summary>
        /// <param name="processParameters">The process parameters.</param>
        public ProcessParametersItem(ProcessParametersTable processParameters) : this()
        {

        }

        public override TechItem Clone()
        {
            ProcessParametersItem cloned = base.Clone() as ProcessParametersItem;
            cloned.ProcessParameters = ProcessParameters.Clone();
            cloned.ParametersIndices = ParametersIndices.Select(x => new ParameterIndex() { Index = x.Index, Name = x.Name }).ToList();
            return cloned;
        }

    }
}
(&_StubExtFlashWriteResponse_default_instance_), }; namespace { void protobuf_AssignDescriptors() { AddDescriptors(); ::google::protobuf::MessageFactory* factory = NULL; AssignDescriptors( "StubExtFlashWriteResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory, file_level_metadata, NULL, NULL); } void protobuf_AssignDescriptorsOnce() { static GOOGLE_PROTOBUF_DECLARE_ONCE(once); ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors); } void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD; void protobuf_RegisterTypes(const ::std::string&) { protobuf_AssignDescriptorsOnce(); ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 1); } } // namespace void TableStruct::InitDefaultsImpl() { GOOGLE_PROTOBUF_VERIFY_VERSION; ::google::protobuf::internal::InitProtobufDefaults(); _StubExtFlashWriteResponse_default_instance_._instance.DefaultConstruct(); ::google::protobuf::internal::OnShutdownDestroyMessage( &_StubExtFlashWriteResponse_default_instance_);} void InitDefaults() { static GOOGLE_PROTOBUF_DECLARE_ONCE(once); ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl); } namespace { void AddDescriptorsImpl() { InitDefaults(); static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = { "\n\037StubExtFlashWriteResponse.proto\022\017Tango" ".PMR.Stubs\"\?\n\031StubExtFlashWriteResponse\022" "\016\n\006Status\030\001 \001(\t\022\022\n\nStatusWord\030\002 \001(\rB\033\n\031c" "om.twine.tango.pmr.stubsb\006proto3" }; ::google::protobuf::DescriptorPool::InternalAddGeneratedFile( descriptor, 152); ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( "StubExtFlashWriteResponse.proto", &protobuf_RegisterTypes); } } // anonymous namespace void AddDescriptors() { static GOOGLE_PROTOBUF_DECLARE_ONCE(once); ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl); } // Force AddDescriptors() to be called at dynamic initialization time. struct StaticDescriptorInitializer { StaticDescriptorInitializer() { AddDescriptors(); } } static_descriptor_initializer; } // namespace protobuf_StubExtFlashWriteResponse_2eproto // =================================================================== #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int StubExtFlashWriteResponse::kStatusFieldNumber; const int StubExtFlashWriteResponse::kStatusWordFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 StubExtFlashWriteResponse::StubExtFlashWriteResponse() : ::google::protobuf::Message(), _internal_metadata_(NULL) { if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) { protobuf_StubExtFlashWriteResponse_2eproto::InitDefaults(); } SharedCtor(); // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubExtFlashWriteResponse) } StubExtFlashWriteResponse::StubExtFlashWriteResponse(const StubExtFlashWriteResponse& from) : ::google::protobuf::Message(), _internal_metadata_(NULL), _cached_size_(0) { _internal_metadata_.MergeFrom(from._internal_metadata_); status_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (from.status().size() > 0) { status_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.status_); } statusword_ = from.statusword_; // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubExtFlashWriteResponse) } void StubExtFlashWriteResponse::SharedCtor() { status_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); statusword_ = 0u; _cached_size_ = 0; } StubExtFlashWriteResponse::~StubExtFlashWriteResponse() { // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubExtFlashWriteResponse) SharedDtor(); } void StubExtFlashWriteResponse::SharedDtor() { status_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void StubExtFlashWriteResponse::SetCachedSize(int size) const { GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); _cached_size_ = size; GOOGLE_SAFE_CONCURRENT_WRITES_END(); } const ::google::protobuf::Descriptor* StubExtFlashWriteResponse::descriptor() { protobuf_StubExtFlashWriteResponse_2eproto::protobuf_AssignDescriptorsOnce(); return protobuf_StubExtFlashWriteResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor; } const StubExtFlashWriteResponse& StubExtFlashWriteResponse::default_instance() { protobuf_StubExtFlashWriteResponse_2eproto::InitDefaults(); return *internal_default_instance(); } StubExtFlashWriteResponse* StubExtFlashWriteResponse::New(::google::protobuf::Arena* arena) const { StubExtFlashWriteResponse* n = new StubExtFlashWriteResponse; if (arena != NULL) { arena->Own(n); } return n; } void StubExtFlashWriteResponse::Clear() { // @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) ::google::protobuf::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; status_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); statusword_ = 0u; _internal_metadata_.Clear(); } bool StubExtFlashWriteResponse::MergePartialFromCodedStream( ::google::protobuf::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure ::google::protobuf::uint32 tag; // @@protoc_insertion_point(parse_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) for (;;) { ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; if (!p.second) goto handle_unusual; switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { // string Status = 1; case 1: { if (static_cast< ::google::protobuf::uint8>(tag) == static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( input, this->mutable_status())); DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->status().data(), static_cast<int>(this->status().length()), ::google::protobuf::internal::WireFormatLite::PARSE, "Tango.PMR.Stubs.StubExtFlashWriteResponse.Status")); } else { goto handle_unusual; } break; } // uint32 StatusWord = 2; case 2: { if (static_cast< ::google::protobuf::uint8>(tag) == static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) { DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( input, &statusword_))); } else { goto handle_unusual; } break; } default: { handle_unusual: if (tag == 0) { goto success; } DO_(::google::protobuf::internal::WireFormat::SkipField( input, tag, _internal_metadata_.mutable_unknown_fields())); break; } } } success: // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubExtFlashWriteResponse) return true; failure: // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubExtFlashWriteResponse) return false; #undef DO_ } void StubExtFlashWriteResponse::SerializeWithCachedSizes( ::google::protobuf::io::CodedOutputStream* output) const { // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; // string Status = 1; if (this->status().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->status().data(), static_cast<int>(this->status().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "Tango.PMR.Stubs.StubExtFlashWriteResponse.Status"); ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( 1, this->status(), output); } // uint32 StatusWord = 2; if (this->statusword() != 0) { ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->statusword(), output); } if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output); } // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubExtFlashWriteResponse) } ::google::protobuf::uint8* StubExtFlashWriteResponse::InternalSerializeWithCachedSizesToArray( bool deterministic, ::google::protobuf::uint8* target) const { (void)deterministic; // Unused // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; // string Status = 1; if (this->status().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->status().data(), static_cast<int>(this->status().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "Tango.PMR.Stubs.StubExtFlashWriteResponse.Status"); target = ::google::protobuf::internal::WireFormatLite::WriteStringToArray( 1, this->status(), target); } // uint32 StatusWord = 2; if (this->statusword() != 0) { target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->statusword(), target); } if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target); } // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubExtFlashWriteResponse) return target; } size_t StubExtFlashWriteResponse::ByteSizeLong() const { // @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) size_t total_size = 0; if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) { total_size += ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance())); } // string Status = 1; if (this->status().size() > 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( this->status()); } // uint32 StatusWord = 2; if (this->statusword() != 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::UInt32Size( this->statusword()); } int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); _cached_size_ = cached_size; GOOGLE_SAFE_CONCURRENT_WRITES_END(); return total_size; } void StubExtFlashWriteResponse::MergeFrom(const ::google::protobuf::Message& from) { // @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) GOOGLE_DCHECK_NE(&from, this); const StubExtFlashWriteResponse* source = ::google::protobuf::internal::DynamicCastToGenerated<const StubExtFlashWriteResponse>( &from); if (source == NULL) { // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubExtFlashWriteResponse) ::google::protobuf::internal::ReflectionOps::Merge(from, this); } else { // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubExtFlashWriteResponse) MergeFrom(*source); } } void StubExtFlashWriteResponse::MergeFrom(const StubExtFlashWriteResponse& from) { // @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; if (from.status().size() > 0) { status_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.status_); } if (from.statusword() != 0) { set_statusword(from.statusword()); } } void StubExtFlashWriteResponse::CopyFrom(const ::google::protobuf::Message& from) { // @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) if (&from == this) return; Clear(); MergeFrom(from); } void StubExtFlashWriteResponse::CopyFrom(const StubExtFlashWriteResponse& from) { // @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubExtFlashWriteResponse) if (&from == this) return; Clear(); MergeFrom(from); } bool StubExtFlashWriteResponse::IsInitialized() const { return true; } void StubExtFlashWriteResponse::Swap(StubExtFlashWriteResponse* other) { if (other == this) return; InternalSwap(other); } void StubExtFlashWriteResponse::InternalSwap(StubExtFlashWriteResponse* other) { using std::swap; status_.Swap(&other->status_); swap(statusword_, other->statusword_); _internal_metadata_.Swap(&other->_internal_metadata_); swap(_cached_size_, other->_cached_size_); } ::google::protobuf::Metadata StubExtFlashWriteResponse::GetMetadata() const { protobuf_StubExtFlashWriteResponse_2eproto::protobuf_AssignDescriptorsOnce(); return protobuf_StubExtFlashWriteResponse_2eproto::file_level_metadata[kIndexInFileMessages]; } #if PROTOBUF_INLINE_NOT_IN_HEADERS // StubExtFlashWriteResponse // string Status = 1; void StubExtFlashWriteResponse::clear_status() { status_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } const ::std::string& StubExtFlashWriteResponse::status() const { // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) return status_.GetNoArena(); } void StubExtFlashWriteResponse::set_status(const ::std::string& value) { status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) } #if LANG_CXX11 void StubExtFlashWriteResponse::set_status(::std::string&& value) { status_.SetNoArena( &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) } #endif void StubExtFlashWriteResponse::set_status(const char* value) { GOOGLE_DCHECK(value != NULL); status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) } void StubExtFlashWriteResponse::set_status(const char* value, size_t size) { status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(reinterpret_cast<const char*>(value), size)); // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) } ::std::string* StubExtFlashWriteResponse::mutable_status() { // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) return status_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } ::std::string* StubExtFlashWriteResponse::release_status() { // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) return status_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void StubExtFlashWriteResponse::set_allocated_status(::std::string* status) { if (status != NULL) { } else { } status_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), status); // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubExtFlashWriteResponse.Status) } // uint32 StatusWord = 2; void StubExtFlashWriteResponse::clear_statusword() { statusword_ = 0u; } ::google::protobuf::uint32 StubExtFlashWriteResponse::statusword() const { // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashWriteResponse.StatusWord) return statusword_; } void StubExtFlashWriteResponse::set_statusword(::google::protobuf::uint32 value) { statusword_ = value; // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashWriteResponse.StatusWord) } #endif // PROTOBUF_INLINE_NOT_IN_HEADERS // @@protoc_insertion_point(namespace_scope) } // namespace Stubs } // namespace PMR } // namespace Tango // @@protoc_insertion_point(global_scope)