From f3e5992433a57892217aca46c911500b4247abfb Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 15 May 2024 11:20:09 +0200 Subject: [PATCH] Agregado de toolbar a MainWindow --- CtrEditor.csproj | 10 ++++ Icons/connect.png | Bin 0 -> 8622 bytes Icons/disconnect.png | Bin 0 -> 9334 bytes Icons/save.png | Bin 0 -> 12249 bytes Icons/start.png | Bin 0 -> 11515 bytes Icons/stop.png | Bin 0 -> 13847 bytes MainViewModel.cs | 65 +++++++++++++++++++++--- MainWindow.xaml | 72 ++++++++++++++++++++++++--- ObjetosSim/osBase.cs | 16 ++++++ ObjetosSim/ucTransporteGuias.xaml.cs | 15 ++---- ObjetosSim/ucTransporteTTop.xaml.cs | 11 +--- Siemens/PLCControl.xaml.cs | 27 ++++++---- 12 files changed, 171 insertions(+), 45 deletions(-) create mode 100644 Icons/connect.png create mode 100644 Icons/disconnect.png create mode 100644 Icons/save.png create mode 100644 Icons/start.png create mode 100644 Icons/stop.png diff --git a/CtrEditor.csproj b/CtrEditor.csproj index 36e5d46..eab6b69 100644 --- a/CtrEditor.csproj +++ b/CtrEditor.csproj @@ -15,6 +15,11 @@ + + + + + @@ -48,6 +53,11 @@ + + + + + diff --git a/Icons/connect.png b/Icons/connect.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0bf70172926cf9d3f1896792ea21ffafca3d13 GIT binary patch literal 8622 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 M)=oR_ZVx#9fAdd3D*ylh literal 0 HcmV?d00001 diff --git a/Icons/disconnect.png b/Icons/disconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6be8a3855e2046145c1d61dccbc78f28c8643c GIT binary patch literal 9334 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 literal 0 HcmV?d00001 diff --git a/Icons/start.png b/Icons/start.png new file mode 100644 index 0000000000000000000000000000000000000000..c43be3fe11e3b8de783069407b87a57a35c2e716 GIT binary patch literal 11515 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 literal 0 HcmV?d00001 diff --git a/Icons/stop.png b/Icons/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7d7566012b7557aab425b73bb18e03a1e5665c GIT binary patch literal 13847 zcmYkjc|6qL7eD@*8ADmK?}R~Q&%VF24iRH)SxZFrtYw**6xkW1EGZ^gvSr_=x9y#h zY!P81`yMh`f3NBD{e6GGKRmqV-q*eNoO92)_bks>yoI?D11%3N000a~V|^3=K*2{S zaE==Mw--Ko2>v@CU~C@*0E}IfKS-Z{$!)NaJJ`T3*vj7{IPB&MtLLbM)~RmKs@TKfZ0Xjz`qc(+ z>o+%sMt;{dER^_aElmtKJ36r&^pvq@K76YzC48~`iLPB&iY`m7yX z3sD7Of2Id_BX!32TgA*h{vABJKXY`_eh?(9W!yh~+x54r5924OvcR#rrU$Ub6rE4& zLv@Ykxb=rJP@F`bx$FAv$yPgb4`PZN$BknbVq9FfnGoqq==R!33?^Dl@}JVp{;#FR?jw2+ z^k%*E*Hy_OhK_gb?Wi@WKM69Yrqe!BnL}li4M2787F1xhuv&3Z(=^YxpQGa|gxR6H zSen?Vs0&=@KADzL(E+9RGjLA0M*3a>B82cGGGs=9WJ}LZ)d_4uZ4AXkvy$Oh#SQ`2 zJEXLmH7at_3KA7=>;bX?Gyxg`yxX3hhNwj;fKXq-#7Enf{7NNK=UeuOFiJi^W4rc! z)#a;K@CvseFI#dUeAIjpKJy3j2P08R`{@Gwj&$Fl-}P^_TpGi}v8x^mE3Buj)blUj zZXy#MiZz1blAurV@m{n8uVlj%)+ zK(clp7Y4lpyh;Dvl&$V7>LvW6hw#u92~I2z_U1k(s2m-@`bbGpJvR(;t^_b|yS$Bf ziO-a#1G3(uNz-Jc%YBC{3IRf1w@LdG!Gs-q;F7HtA>_{zuqDEext!JWk;sJXAxgh* zHZFPxSok#{7`8Bv>J}=|p{c+uO~-jn_PoSBUJjrioKA}vhtxaCxHXclUMScUi#~VE zmCY{s42~7{g-2c>N4e&b90`6mfJi!W80o{8YiI`!V70-S#82!qWoj%{(*8xA^|r3pRv*`R;Ojd-63CwjkcE}@nJM!huBv^Ow(&%pK3)TYQ( znp4JbWo35c-I;Vk{g)FWZ|qG){>wOjAVL`Vd`*a-7(};||K=uI!cVNdfv-L*GfRTN z5V6QSYsq7nH7_vi?MsVi^OW3{AaT!W70FNDqB zg{V~!QdULz|Jyyc!(VWdOK*p&^g;lq8Pd1jlG;T8d z{RQqz5?j9!upg?hElX?|iZ@PUM{2pY@>m=u*COz!XL=K#;LG!)L%xIGMHt3XVwW!qH)! zD680m(u4UWn(J2tal8KU)t&sbBo?`wJ!&73E^t22h=n8^>>NdAAHPOr-i!Ln4k^D%F;AYHA0sS|{wyjCGNM@id40|d=Ph;x-Ji9}iiA@E5 zg~@pp&YFY5M#a29pp_sXUpc zDDDdJs>dpj&glviL(cRk-5l^`>l%cjSX+H@R2T=a(*TJ+$H$WY1QGIKnz%w3gVN4v z12rjBoByg{ko)(50CDqR#sxksm-p{qXN)V~o*~8t4hi`%+aI{ALXlKoqSj!uVgpaI z5U;0U7@8$`a28xQ%$L@YmJg%{;l9X7(rR+i9k&C52R{?DVq8R#YY(8R%;9qC>FNP2 zu3_LI*}IV2iAdfUAXLPp(ta-DkOI`Vu90qhA9TU<)W~nMlGc~?%RXBJ`6IB%^t$(h znG^}3#UO9e4~KYTf=Z>9fZ$#F_JEg= z;O~Pg#s^Y_>n`-CTijiz(PCa~-Wl(oY0Y7(&L=w6PpKd^XewVU(~R-aVSncuOb(tc zgGymij`W`!grugjT!)<8{AT9k<{D>t>+aBDTlK7X;tE@!5a7;u*bQEtesw2ju7T?>b{$WMa zzIIjtYFkq@=_biz_+D|r51hDxFN9D3hG9fEso+h@5pP)xCpIkIkZKf4hyA*7{l+^5 z4Rz+nc7})O&P9eZu}Jf85?73?8kOMh9dIg-JqVZRaAB|mP%}I@fC@G6>QLOdzW?RA zde1t~aAayL7CbLjy;%Y-t~77 %`GGY;*pwQM#TiKA>dfSz{#riXQ!CS$)@0$?lh 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 listaImagenes { get; private set; } // Publicación de las claves del diccionario public ObservableCollection ListaOsBase { get; } = new ObservableCollection(); private ObservableCollection _objetosSimulables = new ObservableCollection(); - public PLCViewModel _plcViewModelData; + public PLCViewModel plcViewModelData; public Stopwatch stopwatch; + private bool isSimulationRunning; + private bool isConnected; public SimulationManagerFP simulationManager = new SimulationManagerFP(); @@ -49,6 +51,11 @@ namespace CtrEditor public ICommand StopSimulationCommand { get; } public ICommand ItemDoubleClickCommand { get; private set; } + public ICommand TBStartSimulationCommand { get; } + public ICommand TBStopSimulationCommand { get; } + public ICommand TBSaveCommand { get; } + public ICommand TBConnectPLCCommand { get; } + public ICommand TBDisconnectPLCCommand { get; } // Evento que se dispara cuando se selecciona una nueva imagen public event EventHandler ImageSelected; @@ -61,8 +68,8 @@ namespace CtrEditor datosDeTrabajo = new DatosDeTrabajo(); // Inicializa el PLCViewModel - _plcViewModelData = new PLCViewModel(); - _plcViewModelData.RefreshEvent += OnRefreshEvent; + plcViewModelData = new PLCViewModel(); + plcViewModelData.RefreshEvent += OnRefreshEvent; InitializeTipoSimulableList(); @@ -75,6 +82,12 @@ namespace CtrEditor StartSimulationCommand = new RelayCommand(StartSimulation); StopSimulationCommand = new RelayCommand(StopSimulation); + TBStartSimulationCommand = new RelayCommand(StartSimulation, () => !IsSimulationRunning); + TBStopSimulationCommand = new RelayCommand(StopSimulation, () => IsSimulationRunning); + TBSaveCommand = new RelayCommand(Save); + TBConnectPLCCommand = new RelayCommand(ConnectPLC, () => !IsConnected); + TBDisconnectPLCCommand = new RelayCommand(DisconnectPLC, () => IsConnected); + stopwatch = new Stopwatch(); } @@ -128,6 +141,27 @@ namespace CtrEditor } } + public bool IsSimulationRunning + { + get => isSimulationRunning; + set + { + isSimulationRunning = value; + OnPropertyChanged(nameof(IsSimulationRunning)); + CommandManager.InvalidateRequerySuggested(); // Notificar que el estado de los comandos ha cambiado + } + } + + public bool IsConnected + { + get => isConnected; + set + { + isConnected = value; + OnPropertyChanged(nameof(IsConnected)); + CommandManager.InvalidateRequerySuggested(); + } + } private void StartSimulation() { @@ -138,12 +172,14 @@ namespace CtrEditor _timerSimulacion.Start(); simulationManager.stopwatch.Start(); + IsSimulationRunning = true; } private void StopSimulation() { _timerSimulacion.Stop(); simulationManager.stopwatch.Stop(); + IsSimulationRunning = false; } private void OnTickSimulacion(object sender, EventArgs e) @@ -159,10 +195,23 @@ namespace CtrEditor } + private void ConnectPLC() + { + plcViewModelData.Connect(); + } + + private void DisconnectPLC() + { + plcViewModelData.Disconnect(); + IsConnected = false; + } + private void OnRefreshEvent(object sender, EventArgs e) { - if (_plcViewModelData.IsConnected) + if (plcViewModelData.IsConnected) { + if (!isConnected) + IsConnected = true; // Detener el cronómetro y obtener el tiempo transcurrido en milisegundos stopwatch.Stop(); float elapsedMilliseconds = (float)stopwatch.Elapsed.TotalMilliseconds; @@ -171,7 +220,7 @@ namespace CtrEditor stopwatch.Restart(); foreach (var objetoSimulable in ObjetosSimulables) - objetoSimulable.UpdatePLC(_plcViewModelData.PLCInterface, (int) elapsedMilliseconds); + objetoSimulable.UpdatePLC(plcViewModelData.PLCInterface, (int) elapsedMilliseconds); } else stopwatch.Stop(); @@ -206,10 +255,10 @@ namespace CtrEditor public PLCViewModel PLCViewModel { - get { return _plcViewModelData; } + get { return plcViewModelData; } set { - _plcViewModelData = value; + plcViewModelData = value; OnPropertyChanged(nameof(PLCViewModel)); } } @@ -350,7 +399,7 @@ namespace CtrEditor PixelToMeter.Instance.calc = simulationData.UnitConverter; // Re-register to the events - _plcViewModelData.RefreshEvent += OnRefreshEvent; + plcViewModelData.RefreshEvent += OnRefreshEvent; // Recorrer la colección de objetos simulables foreach (var objetoSimulable in ObjetosSimulables) diff --git a/MainWindow.xaml b/MainWindow.xaml index 7cdae76..d7a6a26 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -9,15 +9,35 @@ Height="900" Width="1600" ResizeMode="CanResize" Title="{Binding directorioTrabajo}"> - - - - - + + + + + + + + + + + @@ -60,7 +80,47 @@ - + + + + + + + + + + + + + + + + diff --git a/ObjetosSim/osBase.cs b/ObjetosSim/osBase.cs index 30ecf0a..d89efec 100644 --- a/ObjetosSim/osBase.cs +++ b/ObjetosSim/osBase.cs @@ -70,6 +70,22 @@ namespace CtrEditor.ObjetosSim public SimulationManagerFP simulationManager; + protected osBase ObtenerLink(string NameLink, Type tipoOsBase) + { + if (!string.IsNullOrEmpty(NameLink) && _mainViewModel != null) + { + foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables) + { + if (tipoOsBase.IsInstanceOfType(objetoSimulable) && ((osBase)objetoSimulable).Nombre == NameLink) + { + return (osBase)objetoSimulable; + } + } + } + return null; + } + + public void CanvasSetLeftinMeter(float left) { if (_visualRepresentation != null) diff --git a/ObjetosSim/ucTransporteGuias.xaml.cs b/ObjetosSim/ucTransporteGuias.xaml.cs index 95552cb..c2b2881 100644 --- a/ObjetosSim/ucTransporteGuias.xaml.cs +++ b/ObjetosSim/ucTransporteGuias.xaml.cs @@ -196,24 +196,17 @@ namespace CtrEditor.ObjetosSim public override void UpdateControl() { } - public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds) + public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds) { if (_osMotor != null) { if (_osMotor is osVMmotorSim motor) VelocidadActual = motor.Velocidad; - } else - { - if (Motor.Length > 0) - if (_mainViewModel != null) - foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables) - if (objetoSimulable.Nombre == _motor) - { - _osMotor = objetoSimulable; - break; - } } + else + _osMotor = ObtenerLink(_motor, typeof(osVMmotorSim)); } + public override void ucLoaded() { // El UserControl ya se ha cargado y podemos obtener las coordenadas para diff --git a/ObjetosSim/ucTransporteTTop.xaml.cs b/ObjetosSim/ucTransporteTTop.xaml.cs index c5c4fb6..219305b 100644 --- a/ObjetosSim/ucTransporteTTop.xaml.cs +++ b/ObjetosSim/ucTransporteTTop.xaml.cs @@ -153,16 +153,7 @@ namespace CtrEditor.ObjetosSim VelocidadActual = motor.Velocidad; } else - { - if (Motor.Length > 0) - if (_mainViewModel != null) - foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables) - if (objetoSimulable.Nombre == _motor) - { - _osMotor = objetoSimulable; - break; - } - } + _osMotor = ObtenerLink(_motor, typeof(osVMmotorSim)); } public override void UpdateControl() diff --git a/Siemens/PLCControl.xaml.cs b/Siemens/PLCControl.xaml.cs index 19e338f..f083d72 100644 --- a/Siemens/PLCControl.xaml.cs +++ b/Siemens/PLCControl.xaml.cs @@ -104,17 +104,24 @@ namespace CtrEditor.Siemens public void Connect() { - // Implementa la conexión utilizando PLCModel - PLCInterface.Instance = SimulationRuntimeManager.CreateInterface(Name); - PLCInterface.Instance.OnSoftwareConfigurationChanged += Instance_OnSoftwareConfigurationChanged; - //_plcModel.Instance.CommunicationInterface = ECommunicationInterface.Softbus; - - if (PLCInterface.Instance != null) + try { - PLCInterface.UpdateTagList(); - _timer.Start(); - ConnectionStatus = "connected"; - IsConnected = true; + // Implementa la conexión utilizando PLCModel + PLCInterface.Instance = SimulationRuntimeManager.CreateInterface(Name); + PLCInterface.Instance.OnSoftwareConfigurationChanged += Instance_OnSoftwareConfigurationChanged; + //_plcModel.Instance.CommunicationInterface = ECommunicationInterface.Softbus; + + if (PLCInterface.Instance != null) + { + PLCInterface.UpdateTagList(); + _timer.Start(); + ConnectionStatus = "connected"; + IsConnected = true; + } + } catch (Exception ex) + { + LastError = ex.Message; + ConnectionStatus = "offline"; } }