diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/1cda3e19-091b-43dc-9eb5-bc57dd343483.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/1cda3e19-091b-43dc-9eb5-bc57dd343483.vsidx new file mode 100644 index 000000000..1df183e18 Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/1cda3e19-091b-43dc-9eb5-bc57dd343483.vsidx differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/2d6370f9-4edd-41a2-9d7a-fa82c6d732fa.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/2d6370f9-4edd-41a2-9d7a-fa82c6d732fa.vsidx new file mode 100644 index 000000000..23a467bc0 Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/2d6370f9-4edd-41a2-9d7a-fa82c6d732fa.vsidx differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/cf03d050-1bde-4014-9b27-c6233e9ba340.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/a9c23058-be4c-49df-b446-a0f3fbf61bda.vsidx similarity index 50% rename from AgroBase/.vs/AgroBase/FileContentIndex/cf03d050-1bde-4014-9b27-c6233e9ba340.vsidx rename to AgroBase/.vs/AgroBase/FileContentIndex/a9c23058-be4c-49df-b446-a0f3fbf61bda.vsidx index 9bd8d89f1..384e97593 100644 Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/cf03d050-1bde-4014-9b27-c6233e9ba340.vsidx and b/AgroBase/.vs/AgroBase/FileContentIndex/a9c23058-be4c-49df-b446-a0f3fbf61bda.vsidx differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/cdd0b8bf-98fb-4228-90f8-6921b76a6696.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/cdd0b8bf-98fb-4228-90f8-6921b76a6696.vsidx deleted file mode 100644 index 24d43b7cb..000000000 Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/cdd0b8bf-98fb-4228-90f8-6921b76a6696.vsidx and /dev/null differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/d06ecca4-86cb-4d3f-93c9-b3d958677279.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/d06ecca4-86cb-4d3f-93c9-b3d958677279.vsidx deleted file mode 100644 index f8d6ea46d..000000000 Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/d06ecca4-86cb-4d3f-93c9-b3d958677279.vsidx and /dev/null differ diff --git a/AgroBase/.vs/AgroBase/v17/.suo b/AgroBase/.vs/AgroBase/v17/.suo index 98db53f82..d49bb80b9 100644 Binary files a/AgroBase/.vs/AgroBase/v17/.suo and b/AgroBase/.vs/AgroBase/v17/.suo differ diff --git a/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json b/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json index 0dc0f9db4..c8b9797f2 100644 --- a/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json +++ b/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json @@ -1 +1 @@ -{"RootPath":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase","ProjectFileName":"AgroBase.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Forms\\Atuador\\frmAtuCalibragem.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCalibragem.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuConfig.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuConfig.Designer.cs"},{"SourceFile":"Forms\\Direcional\\frmDirConfig.cs"},{"SourceFile":"Forms\\Direcional\\frmDirConfig.Designer.cs"},{"SourceFile":"Forms\\Direcional\\frmDirPlot.cs"},{"SourceFile":"Forms\\Direcional\\frmDirPlot.Designer.cs"},{"SourceFile":"Forms\\frmA05Config.cs"},{"SourceFile":"Forms\\frmA05Config.Designer.cs"},{"SourceFile":"Forms\\frmAcompanhamento.cs"},{"SourceFile":"Forms\\frmAcompanhamento.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.Designer.cs"},{"SourceFile":"Forms\\frmBLD.cs"},{"SourceFile":"Forms\\frmBLD.Designer.cs"},{"SourceFile":"Forms\\frmEthernet.cs"},{"SourceFile":"Forms\\frmEthernet.Designer.cs"},{"SourceFile":"Forms\\frmGPS.cs"},{"SourceFile":"Forms\\frmGPS.Designer.cs"},{"SourceFile":"Forms\\frmKinect.cs"},{"SourceFile":"Forms\\frmKinect.Designer.cs"},{"SourceFile":"Forms\\frmLoraConfig.cs"},{"SourceFile":"Forms\\frmLoraConfig.Designer.cs"},{"SourceFile":"Forms\\frmMapa.cs"},{"SourceFile":"Forms\\frmMapa.Designer.cs"},{"SourceFile":"Forms\\frmMKS.cs"},{"SourceFile":"Forms\\frmMKS.Designer.cs"},{"SourceFile":"Forms\\frmMvdConfig.cs"},{"SourceFile":"Forms\\frmMvdConfig.Designer.cs"},{"SourceFile":"Forms\\frmOID.cs"},{"SourceFile":"Forms\\frmOID.Designer.cs"},{"SourceFile":"Forms\\frmPinout.cs"},{"SourceFile":"Forms\\frmPinout.Designer.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.Designer.cs"},{"SourceFile":"Forms\\frmTreinamentoIA.cs"},{"SourceFile":"Forms\\frmTreinamentoIA.Designer.cs"},{"SourceFile":"Forms\\frmWT901C.cs"},{"SourceFile":"Forms\\frmWT901C.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmAjustes.cs"},{"SourceFile":"Forms\\IHM\\frmAjustes.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmDiagnosticos.cs"},{"SourceFile":"Forms\\IHM\\frmDiagnosticos.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmDialogoMapa.cs"},{"SourceFile":"Forms\\IHM\\frmDialogoMapa.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmIHM.cs"},{"SourceFile":"Forms\\IHM\\frmIHM.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovCamera.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovCamera.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovDiagnosticos.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovDiagnosticos.Designer.cs"},{"SourceFile":"Forms\\frmInstancial.cs"},{"SourceFile":"Forms\\frmInstancial.Designer.cs"},{"SourceFile":"Forms\\frmJoystick.cs"},{"SourceFile":"Forms\\frmJoystick.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovConfig.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovConfig.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovPlot.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovPlot.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmInicioOperacao.cs"},{"SourceFile":"Forms\\IHM\\frmInicioOperacao.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoManual.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoManual.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoMapaGPS.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoSeguidorLinha.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmParametrizacaoOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\frmParametrizacaoOperacao.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmResultadosOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\frmResultadosOperacao.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenCamera.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenCamera.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenConfig.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenConfig.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSonar.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSonar.Designer.cs"},{"SourceFile":"Models\\AlarmeModel.cs"},{"SourceFile":"Models\\AsyncTaskTimerModel.cs"},{"SourceFile":"Models\\BLD300RModel.cs"},{"SourceFile":"Models\\CameraCaminhoModel.cs"},{"SourceFile":"Models\\CameraModel.cs"},{"SourceFile":"Models\\CameraSoloModel.cs"},{"SourceFile":"Models\\DispositivosModel.cs"},{"SourceFile":"Models\\GPSModel.cs"},{"SourceFile":"Models\\GraficoInterativoModel.cs"},{"SourceFile":"Models\\KalmanFilter.cs"},{"SourceFile":"Models\\KinectModel.cs"},{"SourceFile":"Models\\LoRaModel.cs"},{"SourceFile":"Models\\MapaDinamicoModel.cs"},{"SourceFile":"Models\\MapasModel.cs"},{"SourceFile":"Models\\MensagemFilaModel.cs"},{"SourceFile":"Models\\MKS057DModel.cs"},{"SourceFile":"Models\\ModbusModel.cs"},{"SourceFile":"Models\\Modules\\AtuadorModel.cs"},{"SourceFile":"Models\\Modules\\DispositivoBaseModel.cs"},{"SourceFile":"Models\\Enums.cs"},{"SourceFile":"Models\\GeneralJoystick.cs"},{"SourceFile":"Models\\Modules\\MovimentacaoUnificadoModel.cs"},{"SourceFile":"Models\\Modules\\PinoutModel.cs"},{"SourceFile":"Models\\Modules\\SensoriamentoModel.cs"},{"SourceFile":"Models\\MotorComum.cs"},{"SourceFile":"Models\\MPCController.cs"},{"SourceFile":"Models\\MPCControllerSimple.cs"},{"SourceFile":"Models\\OAKCameraModel.cs"},{"SourceFile":"Models\\OIDModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoManualModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoMapaGPSModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoParametrosModel.cs"},{"SourceFile":"Models\\PerformanceModel.cs"},{"SourceFile":"Models\\PIDModel.cs"},{"SourceFile":"Models\\PZEMModel.cs"},{"SourceFile":"Models\\SonarModel.cs"},{"SourceFile":"Models\\SyncDataModel.cs"},{"SourceFile":"Models\\TrajetoriaMapaOperacaoModel.cs"},{"SourceFile":"Models\\TreinamentoIAModel.cs"},{"SourceFile":"Models\\UltrasonicA05Model.cs"},{"SourceFile":"Models\\Variaveis.cs"},{"SourceFile":"Models\\VariaveisMonitoramento.cs"},{"SourceFile":"Models\\VersionamentoModel.cs"},{"SourceFile":"Models\\Visualizador3DModel.cs"},{"SourceFile":"Models\\WT901CModel.cs"},{"SourceFile":"Services\\APIService.cs"},{"SourceFile":"Services\\BLD300RService.cs"},{"SourceFile":"Services\\CameraService.cs"},{"SourceFile":"Services\\CoulombCounterService.cs"},{"SourceFile":"Services\\DispositivosService.cs"},{"SourceFile":"Forms\\frmPrincipal.cs"},{"SourceFile":"Forms\\frmPrincipal.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Services\\DispositivosServiceFactory.cs"},{"SourceFile":"Services\\EthernetService.cs"},{"SourceFile":"Services\\FilaService.cs"},{"SourceFile":"Services\\GPSService.cs"},{"SourceFile":"Services\\IDispositivosService.cs"},{"SourceFile":"Services\\KinectService.cs"},{"SourceFile":"Services\\LoRaSerializer.cs"},{"SourceFile":"Services\\LoRaService.cs"},{"SourceFile":"Services\\MapasService.cs"},{"SourceFile":"Services\\MKS057DService.cs"},{"SourceFile":"Services\\ModbusService.cs"},{"SourceFile":"Services\\MqttService.cs"},{"SourceFile":"Services\\OAKCameraService.cs"},{"SourceFile":"Services\\OIDService.cs"},{"SourceFile":"Services\\PythonService.cs"},{"SourceFile":"Services\\PZEMService.cs"},{"SourceFile":"Services\\SerialService.cs"},{"SourceFile":"Services\\SyncDataService.cs"},{"SourceFile":"Services\\UltrasonicA05Service.cs"},{"SourceFile":"Services\\UsrDR302Service.cs"},{"SourceFile":"Services\\VersionamentoService.cs"},{"SourceFile":"Services\\Visualizador3DService.cs"},{"SourceFile":"Services\\WifiService.cs"},{"SourceFile":"Services\\WT901CService.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\AForge.2.2.5\\lib\\AForge.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\AForge.Video.DirectShow.2.2.5\\lib\\AForge.Video.DirectShow.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\AForge.Video.2.2.5\\lib\\AForge.Video.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\AssimpNet.4.1.0\\lib\\net40\\AssimpNet.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\CefSharp.Common.119.4.30\\lib\\net462\\CefSharp.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\CefSharp.Common.119.4.30\\lib\\net462\\CefSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\CefSharp.WinForms.119.4.30\\lib\\net462\\CefSharp.WinForms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\Emgu.CV.Bitmap.4.4.0.4099\\lib\\netstandard2.0\\Emgu.CV.Bitmap.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\Emgu.CV.4.4.0.4099\\lib\\netstandard2.0\\Emgu.CV.Platform.NetStandard.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\MathNet.Numerics.5.0.0\\lib\\net461\\MathNet.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\Microsoft.Bcl.AsyncInterfaces.8.0.0\\lib\\net462\\Microsoft.Bcl.AsyncInterfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Microsoft.DirectX.DirectInput.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Microsoft.DirectX.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft SDKs\\Kinect\\v1.8\\Assemblies\\Microsoft.Kinect.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\MQTTnet.3.1.1\\lib\\net461\\MQTTnet.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\OpenCvSharp4.4.10.0.20240616\\lib\\netstandard2.0\\OpenCvSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\OpenCvSharp4.Extensions.4.10.0.20240616\\lib\\netstandard2.0\\OpenCvSharp.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\OpenHardwareMonitorLib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\OpenTK.1.1.2225.0\\lib\\net20\\OpenTK.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\OpenTK.GLControl.1.1.2225.0\\lib\\net20\\OpenTK.GLControl.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\SharpDX.DirectInput.4.2.0\\lib\\net45\\SharpDX.DirectInput.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\SharpDX.4.2.0\\lib\\net45\\SharpDX.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.CodeDom.8.0.0\\lib\\net462\\System.CodeDom.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.Composition.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Drawing.Common.8.0.1\\lib\\net462\\System.Drawing.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Drawing.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Memory.4.5.5\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Runtime.CompilerServices.Unsafe.6.0.0\\lib\\net461\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.InteropServices.RuntimeInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Text.Encodings.Web.8.0.0\\lib\\net462\\System.Text.Encodings.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Text.Json.8.0.1\\lib\\net462\\System.Text.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.Threading.Tasks.Extensions.4.5.4\\lib\\net461\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\System.ValueTuple.4.5.0\\lib\\net47\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.DataVisualization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\WINDOWS\\System32\\WinMetadata\\Windows.Gaming.winmd","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\ZedGraph.5.1.5\\lib\\ZedGraph.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\bin\\Debug\\AgroBase.exe","OutputItemRelativePath":"AgroBase.exe"},{"OutputItemFullPath":"C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\bin\\Debug\\AgroBase.pdb","OutputItemRelativePath":"AgroBase.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file +{"RootPath":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase","ProjectFileName":"AgroBase.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Forms\\Atuador\\frmAtuCalibragem.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCalibragem.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuConfig.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuConfig.Designer.cs"},{"SourceFile":"Forms\\Direcional\\frmDirConfig.cs"},{"SourceFile":"Forms\\Direcional\\frmDirConfig.Designer.cs"},{"SourceFile":"Forms\\Direcional\\frmDirPlot.cs"},{"SourceFile":"Forms\\Direcional\\frmDirPlot.Designer.cs"},{"SourceFile":"Forms\\frmA05Config.cs"},{"SourceFile":"Forms\\frmA05Config.Designer.cs"},{"SourceFile":"Forms\\frmAcompanhamento.cs"},{"SourceFile":"Forms\\frmAcompanhamento.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.Designer.cs"},{"SourceFile":"Forms\\frmBLD.cs"},{"SourceFile":"Forms\\frmBLD.Designer.cs"},{"SourceFile":"Forms\\frmEthernet.cs"},{"SourceFile":"Forms\\frmEthernet.Designer.cs"},{"SourceFile":"Forms\\frmGPS.cs"},{"SourceFile":"Forms\\frmGPS.Designer.cs"},{"SourceFile":"Forms\\frmKinect.cs"},{"SourceFile":"Forms\\frmKinect.Designer.cs"},{"SourceFile":"Forms\\frmLoraConfig.cs"},{"SourceFile":"Forms\\frmLoraConfig.Designer.cs"},{"SourceFile":"Forms\\frmMapa.cs"},{"SourceFile":"Forms\\frmMapa.Designer.cs"},{"SourceFile":"Forms\\frmMKS.cs"},{"SourceFile":"Forms\\frmMKS.Designer.cs"},{"SourceFile":"Forms\\frmMvdConfig.cs"},{"SourceFile":"Forms\\frmMvdConfig.Designer.cs"},{"SourceFile":"Forms\\frmOID.cs"},{"SourceFile":"Forms\\frmOID.Designer.cs"},{"SourceFile":"Forms\\frmPinout.cs"},{"SourceFile":"Forms\\frmPinout.Designer.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.Designer.cs"},{"SourceFile":"Forms\\frmTreinamentoIA.cs"},{"SourceFile":"Forms\\frmTreinamentoIA.Designer.cs"},{"SourceFile":"Forms\\frmWT901C.cs"},{"SourceFile":"Forms\\frmWT901C.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmAjustes.cs"},{"SourceFile":"Forms\\IHM\\frmAjustes.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmDiagnosticos.cs"},{"SourceFile":"Forms\\IHM\\frmDiagnosticos.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmDialogoMapa.cs"},{"SourceFile":"Forms\\IHM\\frmDialogoMapa.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmIHM.cs"},{"SourceFile":"Forms\\IHM\\frmIHM.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovCamera.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovCamera.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovDiagnosticos.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovDiagnosticos.Designer.cs"},{"SourceFile":"Forms\\frmInstancial.cs"},{"SourceFile":"Forms\\frmInstancial.Designer.cs"},{"SourceFile":"Forms\\frmJoystick.cs"},{"SourceFile":"Forms\\frmJoystick.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovConfig.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovConfig.Designer.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovPlot.cs"},{"SourceFile":"Forms\\Movimentacao\\frmMovPlot.Designer.cs"},{"SourceFile":"Forms\\IHM\\frmInicioOperacao.cs"},{"SourceFile":"Forms\\IHM\\frmInicioOperacao.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoManual.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoManual.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoMapaGPS.cs"},{"SourceFile":"Forms\\Operacoes\\frmOperacaoSeguidorLinha.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmParametrizacaoOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\frmParametrizacaoOperacao.Designer.cs"},{"SourceFile":"Forms\\Operacoes\\frmResultadosOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\frmResultadosOperacao.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenCamera.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenCamera.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenConfig.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSenConfig.Designer.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSonar.cs"},{"SourceFile":"Forms\\Sensoriamento\\frmSonar.Designer.cs"},{"SourceFile":"Models\\AlarmeModel.cs"},{"SourceFile":"Models\\Components\\AsyncTaskTimerModel.cs"},{"SourceFile":"Models\\BLD300RModel.cs"},{"SourceFile":"Models\\CameraCaminhoModel.cs"},{"SourceFile":"Models\\CameraModel.cs"},{"SourceFile":"Models\\CameraSoloModel.cs"},{"SourceFile":"Models\\Components\\CustomDialog.cs"},{"SourceFile":"Models\\DispositivosModel.cs"},{"SourceFile":"Models\\GPSModel.cs"},{"SourceFile":"Models\\GraficoInterativoModel.cs"},{"SourceFile":"Models\\KalmanFilter.cs"},{"SourceFile":"Models\\KinectModel.cs"},{"SourceFile":"Models\\LoRaModel.cs"},{"SourceFile":"Models\\MapaDinamicoModel.cs"},{"SourceFile":"Models\\MapasModel.cs"},{"SourceFile":"Models\\MensagemFilaModel.cs"},{"SourceFile":"Models\\MKS057DModel.cs"},{"SourceFile":"Models\\ModbusModel.cs"},{"SourceFile":"Models\\Modules\\AtuadorModel.cs"},{"SourceFile":"Models\\Modules\\DirecionalModel.cs"},{"SourceFile":"Models\\Modules\\DispositivoBaseModel.cs"},{"SourceFile":"Models\\Enums.cs"},{"SourceFile":"Models\\GeneralJoystick.cs"},{"SourceFile":"Models\\Modules\\MovimentacaoModel.cs"},{"SourceFile":"Models\\Modules\\MovimentacaoUnificadoModel.cs"},{"SourceFile":"Models\\Modules\\PinoutModel.cs"},{"SourceFile":"Models\\Modules\\SensoriamentoModel.cs"},{"SourceFile":"Models\\MotorComum.cs"},{"SourceFile":"Models\\MPCController.cs"},{"SourceFile":"Models\\MPCControllerAprimorado.cs"},{"SourceFile":"Models\\MPCControllerSimple.cs"},{"SourceFile":"Models\\OAKCameraModel.cs"},{"SourceFile":"Models\\OIDModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoMapaGPSModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoParametrosModel.cs"},{"SourceFile":"Models\\PerformanceModel.cs"},{"SourceFile":"Models\\PIDModel.cs"},{"SourceFile":"Models\\PZEMModel.cs"},{"SourceFile":"Models\\SonarCamModel.cs"},{"SourceFile":"Models\\SonarModel.cs"},{"SourceFile":"Models\\SyncDataModel.cs"},{"SourceFile":"Models\\TrajetoriaMapaOperacaoModel.cs"},{"SourceFile":"Models\\TreinamentoIAModel.cs"},{"SourceFile":"Models\\UltrasonicA05Model.cs"},{"SourceFile":"Models\\Variaveis.cs"},{"SourceFile":"Models\\VariaveisMonitoramento.cs"},{"SourceFile":"Models\\VersionamentoModel.cs"},{"SourceFile":"Models\\Visualizador3DModel.cs"},{"SourceFile":"Models\\WT901CModel.cs"},{"SourceFile":"Services\\APIService.cs"},{"SourceFile":"Services\\BLD300RService.cs"},{"SourceFile":"Services\\CameraService.cs"},{"SourceFile":"Services\\CoulombCounterService.cs"},{"SourceFile":"Services\\DispositivosService.cs"},{"SourceFile":"Forms\\frmPrincipal.cs"},{"SourceFile":"Forms\\frmPrincipal.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Services\\DispositivosServiceFactory.cs"},{"SourceFile":"Services\\EthernetService.cs"},{"SourceFile":"Services\\FilaService.cs"},{"SourceFile":"Services\\GPSService.cs"},{"SourceFile":"Services\\IDispositivosService.cs"},{"SourceFile":"Services\\KinectService.cs"},{"SourceFile":"Services\\LoRaSerializer.cs"},{"SourceFile":"Services\\LoRaService.cs"},{"SourceFile":"Services\\MapasService.cs"},{"SourceFile":"Services\\MKS057DService.cs"},{"SourceFile":"Services\\ModbusService.cs"},{"SourceFile":"Services\\MqttService.cs"},{"SourceFile":"Services\\OAKCameraService.cs"},{"SourceFile":"Services\\OIDService.cs"},{"SourceFile":"Services\\PythonService.cs"},{"SourceFile":"Services\\PZEMService.cs"},{"SourceFile":"Services\\SerialService.cs"},{"SourceFile":"Services\\SonarService.cs"},{"SourceFile":"Services\\SyncDataService.cs"},{"SourceFile":"Services\\UltrasonicA05Service.cs"},{"SourceFile":"Services\\UsrDR302Service.cs"},{"SourceFile":"Services\\VersionamentoService.cs"},{"SourceFile":"Services\\Visualizador3DService.cs"},{"SourceFile":"Services\\WifiService.cs"},{"SourceFile":"Services\\WT901CService.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\AForge.2.2.5\\lib\\AForge.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\AForge.Video.DirectShow.2.2.5\\lib\\AForge.Video.DirectShow.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\AForge.Video.2.2.5\\lib\\AForge.Video.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\AssimpNet.4.1.0\\lib\\net40\\AssimpNet.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\CefSharp.Common.119.4.30\\lib\\net462\\CefSharp.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\CefSharp.Common.119.4.30\\lib\\net462\\CefSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\CefSharp.WinForms.119.4.30\\lib\\net462\\CefSharp.WinForms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\Emgu.CV.Bitmap.4.4.0.4099\\lib\\netstandard2.0\\Emgu.CV.Bitmap.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\Emgu.CV.4.4.0.4099\\lib\\netstandard2.0\\Emgu.CV.Platform.NetStandard.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\MathNet.Numerics.5.0.0\\lib\\net461\\MathNet.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\Microsoft.Bcl.AsyncInterfaces.8.0.0\\lib\\net462\\Microsoft.Bcl.AsyncInterfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase\\Microsoft.DirectX.DirectInput.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase\\Microsoft.DirectX.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft SDKs\\Kinect\\v1.8\\Assemblies\\Microsoft.Kinect.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\MQTTnet.3.1.1\\lib\\net461\\MQTTnet.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\OpenCvSharp4.4.10.0.20240616\\lib\\netstandard2.0\\OpenCvSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\OpenCvSharp4.Extensions.4.10.0.20240616\\lib\\netstandard2.0\\OpenCvSharp.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase\\OpenHardwareMonitorLib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\OpenTK.1.1.2225.0\\lib\\net20\\OpenTK.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\OpenTK.GLControl.1.1.2225.0\\lib\\net20\\OpenTK.GLControl.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\SharpDX.DirectInput.4.2.0\\lib\\net45\\SharpDX.DirectInput.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\SharpDX.4.2.0\\lib\\net45\\SharpDX.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.CodeDom.8.0.0\\lib\\net462\\System.CodeDom.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.Composition.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Drawing.Common.8.0.1\\lib\\net462\\System.Drawing.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Drawing.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Memory.4.5.5\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Runtime.CompilerServices.Unsafe.6.0.0\\lib\\net461\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.InteropServices.RuntimeInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Text.Encodings.Web.8.0.0\\lib\\net462\\System.Text.Encodings.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Text.Json.8.0.1\\lib\\net462\\System.Text.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.Threading.Tasks.Extensions.4.5.4\\lib\\net461\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\System.ValueTuple.4.5.0\\lib\\net47\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.DataVisualization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\WINDOWS\\System32\\WinMetadata\\Windows.Gaming.winmd","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\ZedGraph.5.1.5\\lib\\ZedGraph.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase\\bin\\Debug\\AgroBase.exe","OutputItemRelativePath":"AgroBase.exe"},{"OutputItemFullPath":"C:\\ZendionInc\\agrobot_base\\AgroBase\\AgroBase\\bin\\Debug\\AgroBase.pdb","OutputItemRelativePath":"AgroBase.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/AgroBase/AgroBase/AgroBase.csproj b/AgroBase/AgroBase/AgroBase.csproj index a3c432d55..f633b8c6e 100644 --- a/AgroBase/AgroBase/AgroBase.csproj +++ b/AgroBase/AgroBase/AgroBase.csproj @@ -485,6 +485,7 @@ + @@ -504,6 +505,7 @@ + diff --git a/AgroBase/AgroBase/Forms/frmMKS.Designer.cs b/AgroBase/AgroBase/Forms/frmMKS.Designer.cs index c8da28d30..8f0fc96b6 100644 --- a/AgroBase/AgroBase/Forms/frmMKS.Designer.cs +++ b/AgroBase/AgroBase/Forms/frmMKS.Designer.cs @@ -98,6 +98,9 @@ this.cmbModoLimite = new System.Windows.Forms.ComboBox(); this.label17 = new System.Windows.Forms.Label(); this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.btnEntradas = new System.Windows.Forms.Button(); + this.chbIN2 = new System.Windows.Forms.CheckBox(); + this.chbIN1 = new System.Windows.Forms.CheckBox(); this.btnSobre = new System.Windows.Forms.Button(); this.btnDesbloquear = new System.Windows.Forms.Button(); this.btnBloqueado = new System.Windows.Forms.Button(); @@ -126,17 +129,18 @@ this.label23 = new System.Windows.Forms.Label(); this.txtDirecao = new System.Windows.Forms.TextBox(); this.label22 = new System.Windows.Forms.Label(); - this.chbIN1 = new System.Windows.Forms.CheckBox(); - this.chbIN2 = new System.Windows.Forms.CheckBox(); - this.btnEntradas = new System.Windows.Forms.Button(); this.groupBox7 = new System.Windows.Forms.GroupBox(); - this.txtAnguloSP = new System.Windows.Forms.TextBox(); - this.label26 = new System.Windows.Forms.Label(); - this.label27 = new System.Windows.Forms.Label(); - this.txtAnguloAtual = new System.Windows.Forms.TextBox(); + this.btnCANtest = new System.Windows.Forms.Button(); + this.btnIniciarRef = new System.Windows.Forms.Button(); this.label28 = new System.Windows.Forms.Label(); this.txtSensor = new System.Windows.Forms.TextBox(); - this.btnIniciarRef = new System.Windows.Forms.Button(); + this.label27 = new System.Windows.Forms.Label(); + this.txtAnguloAtual = new System.Windows.Forms.TextBox(); + this.label26 = new System.Windows.Forms.Label(); + this.txtAnguloSP = new System.Windows.Forms.TextBox(); + this.btnSetZeroCAN = new System.Windows.Forms.Button(); + this.btnMovimentoCAN = new System.Windows.Forms.Button(); + this.lblLeituraMksCan = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); @@ -870,6 +874,38 @@ this.groupBox5.TabStop = false; this.groupBox5.Text = "Leitura Dados"; // + // btnEntradas + // + this.btnEntradas.Location = new System.Drawing.Point(112, 238); + this.btnEntradas.Name = "btnEntradas"; + this.btnEntradas.Size = new System.Drawing.Size(102, 23); + this.btnEntradas.TabIndex = 22; + this.btnEntradas.Text = "Entradas"; + this.btnEntradas.UseVisualStyleBackColor = true; + this.btnEntradas.Click += new System.EventHandler(this.btnEntradas_Click); + // + // chbIN2 + // + this.chbIN2.AutoSize = true; + this.chbIN2.Enabled = false; + this.chbIN2.Location = new System.Drawing.Point(63, 242); + this.chbIN2.Name = "chbIN2"; + this.chbIN2.Size = new System.Drawing.Size(43, 17); + this.chbIN2.TabIndex = 21; + this.chbIN2.Text = "IN2"; + this.chbIN2.UseVisualStyleBackColor = true; + // + // chbIN1 + // + this.chbIN1.AutoSize = true; + this.chbIN1.Enabled = false; + this.chbIN1.Location = new System.Drawing.Point(6, 242); + this.chbIN1.Name = "chbIN1"; + this.chbIN1.Size = new System.Drawing.Size(43, 17); + this.chbIN1.TabIndex = 20; + this.chbIN1.Text = "IN1"; + this.chbIN1.UseVisualStyleBackColor = true; + // // btnSobre // this.btnSobre.Location = new System.Drawing.Point(220, 238); @@ -1130,40 +1166,11 @@ this.label22.TabIndex = 10; this.label22.Text = "Direção"; // - // chbIN1 - // - this.chbIN1.AutoSize = true; - this.chbIN1.Enabled = false; - this.chbIN1.Location = new System.Drawing.Point(6, 242); - this.chbIN1.Name = "chbIN1"; - this.chbIN1.Size = new System.Drawing.Size(43, 17); - this.chbIN1.TabIndex = 20; - this.chbIN1.Text = "IN1"; - this.chbIN1.UseVisualStyleBackColor = true; - // - // chbIN2 - // - this.chbIN2.AutoSize = true; - this.chbIN2.Enabled = false; - this.chbIN2.Location = new System.Drawing.Point(63, 242); - this.chbIN2.Name = "chbIN2"; - this.chbIN2.Size = new System.Drawing.Size(43, 17); - this.chbIN2.TabIndex = 21; - this.chbIN2.Text = "IN2"; - this.chbIN2.UseVisualStyleBackColor = true; - // - // btnEntradas - // - this.btnEntradas.Location = new System.Drawing.Point(112, 238); - this.btnEntradas.Name = "btnEntradas"; - this.btnEntradas.Size = new System.Drawing.Size(102, 23); - this.btnEntradas.TabIndex = 22; - this.btnEntradas.Text = "Entradas"; - this.btnEntradas.UseVisualStyleBackColor = true; - this.btnEntradas.Click += new System.EventHandler(this.btnEntradas_Click); - // // groupBox7 // + this.groupBox7.Controls.Add(this.btnMovimentoCAN); + this.groupBox7.Controls.Add(this.btnSetZeroCAN); + this.groupBox7.Controls.Add(this.btnCANtest); this.groupBox7.Controls.Add(this.btnIniciarRef); this.groupBox7.Controls.Add(this.label28); this.groupBox7.Controls.Add(this.txtSensor); @@ -1178,39 +1185,25 @@ this.groupBox7.TabStop = false; this.groupBox7.Text = "Referenciamento"; // - // txtAnguloSP + // btnCANtest // - this.txtAnguloSP.Location = new System.Drawing.Point(87, 19); - this.txtAnguloSP.Name = "txtAnguloSP"; - this.txtAnguloSP.ReadOnly = true; - this.txtAnguloSP.Size = new System.Drawing.Size(100, 20); - this.txtAnguloSP.TabIndex = 0; + this.btnCANtest.Location = new System.Drawing.Point(9, 304); + this.btnCANtest.Name = "btnCANtest"; + this.btnCANtest.Size = new System.Drawing.Size(178, 23); + this.btnCANtest.TabIndex = 24; + this.btnCANtest.Text = "Requisitar Dados CAN"; + this.btnCANtest.UseVisualStyleBackColor = true; + this.btnCANtest.Click += new System.EventHandler(this.btnCANtest_Click); // - // label26 + // btnIniciarRef // - this.label26.AutoSize = true; - this.label26.Location = new System.Drawing.Point(6, 22); - this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(57, 13); - this.label26.TabIndex = 18; - this.label26.Text = "Angulo SP"; - // - // label27 - // - this.label27.AutoSize = true; - this.label27.Location = new System.Drawing.Point(6, 48); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(67, 13); - this.label27.TabIndex = 20; - this.label27.Text = "Angulo Atual"; - // - // txtAnguloAtual - // - this.txtAnguloAtual.Location = new System.Drawing.Point(87, 45); - this.txtAnguloAtual.Name = "txtAnguloAtual"; - this.txtAnguloAtual.ReadOnly = true; - this.txtAnguloAtual.Size = new System.Drawing.Size(100, 20); - this.txtAnguloAtual.TabIndex = 19; + this.btnIniciarRef.Location = new System.Drawing.Point(9, 376); + this.btnIniciarRef.Name = "btnIniciarRef"; + this.btnIniciarRef.Size = new System.Drawing.Size(178, 23); + this.btnIniciarRef.TabIndex = 23; + this.btnIniciarRef.Text = "Iniciar Referenciamento"; + this.btnIniciarRef.UseVisualStyleBackColor = true; + this.btnIniciarRef.Click += new System.EventHandler(this.btnIniciarRef_Click); // // label28 // @@ -1229,21 +1222,75 @@ this.txtSensor.Size = new System.Drawing.Size(100, 20); this.txtSensor.TabIndex = 21; // - // btnIniciarRef + // label27 // - this.btnIniciarRef.Location = new System.Drawing.Point(9, 376); - this.btnIniciarRef.Name = "btnIniciarRef"; - this.btnIniciarRef.Size = new System.Drawing.Size(178, 23); - this.btnIniciarRef.TabIndex = 23; - this.btnIniciarRef.Text = "Iniciar Referenciamento"; - this.btnIniciarRef.UseVisualStyleBackColor = true; - this.btnIniciarRef.Click += new System.EventHandler(this.btnIniciarRef_Click); + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(6, 48); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(67, 13); + this.label27.TabIndex = 20; + this.label27.Text = "Angulo Atual"; + // + // txtAnguloAtual + // + this.txtAnguloAtual.Location = new System.Drawing.Point(87, 45); + this.txtAnguloAtual.Name = "txtAnguloAtual"; + this.txtAnguloAtual.ReadOnly = true; + this.txtAnguloAtual.Size = new System.Drawing.Size(100, 20); + this.txtAnguloAtual.TabIndex = 19; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(6, 22); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(57, 13); + this.label26.TabIndex = 18; + this.label26.Text = "Angulo SP"; + // + // txtAnguloSP + // + this.txtAnguloSP.Location = new System.Drawing.Point(87, 19); + this.txtAnguloSP.Name = "txtAnguloSP"; + this.txtAnguloSP.ReadOnly = true; + this.txtAnguloSP.Size = new System.Drawing.Size(100, 20); + this.txtAnguloSP.TabIndex = 0; + // + // btnSetZeroCAN + // + this.btnSetZeroCAN.Location = new System.Drawing.Point(9, 246); + this.btnSetZeroCAN.Name = "btnSetZeroCAN"; + this.btnSetZeroCAN.Size = new System.Drawing.Size(178, 23); + this.btnSetZeroCAN.TabIndex = 25; + this.btnSetZeroCAN.Text = "Set Zero CAN"; + this.btnSetZeroCAN.UseVisualStyleBackColor = true; + this.btnSetZeroCAN.Click += new System.EventHandler(this.btnSetZeroCAN_Click); + // + // btnMovimentoCAN + // + this.btnMovimentoCAN.Location = new System.Drawing.Point(9, 275); + this.btnMovimentoCAN.Name = "btnMovimentoCAN"; + this.btnMovimentoCAN.Size = new System.Drawing.Size(178, 23); + this.btnMovimentoCAN.TabIndex = 26; + this.btnMovimentoCAN.Text = "Executar Movimento CAN"; + this.btnMovimentoCAN.UseVisualStyleBackColor = true; + this.btnMovimentoCAN.Click += new System.EventHandler(this.btnMovimentoCAN_Click); + // + // lblLeituraMksCan + // + this.lblLeituraMksCan.AutoSize = true; + this.lblLeituraMksCan.Location = new System.Drawing.Point(12, 425); + this.lblLeituraMksCan.Name = "lblLeituraMksCan"; + this.lblLeituraMksCan.Size = new System.Drawing.Size(39, 13); + this.lblLeituraMksCan.TabIndex = 15; + this.lblLeituraMksCan.Text = "Leitura"; // // frmMKS // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1051, 432); + this.ClientSize = new System.Drawing.Size(1051, 447); + this.Controls.Add(this.lblLeituraMksCan); this.Controls.Add(this.groupBox7); this.Controls.Add(this.groupBox6); this.Controls.Add(this.groupBox5); @@ -1269,6 +1316,7 @@ this.groupBox7.ResumeLayout(false); this.groupBox7.PerformLayout(); this.ResumeLayout(false); + this.PerformLayout(); } @@ -1383,5 +1431,9 @@ private System.Windows.Forms.Label label28; private System.Windows.Forms.TextBox txtSensor; private System.Windows.Forms.Button btnIniciarRef; + private System.Windows.Forms.Button btnCANtest; + private System.Windows.Forms.Button btnSetZeroCAN; + private System.Windows.Forms.Button btnMovimentoCAN; + private System.Windows.Forms.Label lblLeituraMksCan; } } \ No newline at end of file diff --git a/AgroBase/AgroBase/Forms/frmMKS.cs b/AgroBase/AgroBase/Forms/frmMKS.cs index f9b3c5677..4c9c64793 100644 --- a/AgroBase/AgroBase/Forms/frmMKS.cs +++ b/AgroBase/AgroBase/Forms/frmMKS.cs @@ -2,6 +2,7 @@ using AgroBase.Services; using System; using System.Collections; +using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Threading.Tasks; @@ -329,7 +330,7 @@ namespace AgroBase.Forms DataSended = Convert.ToByte(MyButton.Tag); //SendRelevantData(QueryCommand[DataSended]); - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoSetZero(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); + MKS057DRs485Service.AdicionarComandoNaFila(MKS057DRs485Service.MontarComandoSetZero(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); } private void btnIrParaZero_Click(object sender, EventArgs e) @@ -347,7 +348,7 @@ namespace AgroBase.Forms DataSended = Convert.ToByte(MyButton.Tag); //SendRelevantData(QueryCommand[DataSended]); - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoMovimento(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16), Convert.ToDouble(txtValor.Text), Convert.ToInt32(cmbVelocidadePosicao.Text), rdbHorarioPosicao.Checked ? Sentido.Horario : Sentido.Antihorario)); + MKS057DRs485Service.AdicionarComandoNaFila(MKS057DRs485Service.MontarComandoMovimento(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16), Convert.ToDouble(txtValor.Text), Convert.ToInt32(cmbVelocidadePosicao.Text), rdbHorarioPosicao.Checked ? Sentido.Horario : Sentido.Antihorario)); } @@ -377,8 +378,8 @@ namespace AgroBase.Forms DataSended = Convert.ToByte(MyButton.Tag); //SendRelevantData(QueryCommand[DataSended]); - MKS057DService.AddrRef = 0x00; - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoParada(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); + MKS057DRs485Service.AddrRef = 0x00; + MKS057DRs485Service.AdicionarComandoNaFila(MKS057DRs485Service.MontarComandoParada(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); } private void btnModoControle_Click(object sender, EventArgs e) @@ -536,7 +537,7 @@ namespace AgroBase.Forms await SendRelevantData(QueryCommand[DataSended]); await Task.Delay(100);*/ - MKS057DService.AdicionarComandoNaFila(new Models.MKS057ComandoModel() + MKS057DRs485Service.AdicionarComandoNaFila(new Models.MKS057ComandoModel() { Comando = data, Endereco = Convert.ToByte(addr, 16), @@ -1575,7 +1576,7 @@ namespace AgroBase.Forms DataSended = Convert.ToByte(MyButton.Tag); //SendRelevantData(QueryCommand[DataSended]); - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoIO(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); + MKS057DRs485Service.AdicionarComandoNaFila(MKS057DRs485Service.MontarComandoRequisicaoIO(Convert.ToByte(cmbEndereco.Text.Replace("0x", ""), 16))); } private void Text_display() @@ -1660,7 +1661,7 @@ namespace AgroBase.Forms str = Convert.ToString(data32, 10); txtNumeroPulsos.AppendText(str); - txtAnguloAtual.Text = Math.Round(MKS057DService.PulsosParaAngulo(Convert.ToInt32(txtNumeroPulsos.Text)), 2).ToString(); + txtAnguloAtual.Text = Math.Round(MKS057DRs485Service.PulsosParaAngulo(Convert.ToInt32(txtNumeroPulsos.Text)), 2).ToString(); } else { @@ -2372,6 +2373,95 @@ namespace AgroBase.Forms } + private bool MKSIniciado() + { + if (!CanService.IsConnected) + { + CanService.AbrirComunicacao(new SerialPort(cmbPorta.Text, Convert.ToInt32(cmbBaud.Text))); + } + + if (CanService.IsConnected) + { + MKS057DCanService.RequisitarDado(Convert.ToByte(cmbEndereco.Text), MKS057DCanService.MksHandler.MksFuncCode.Versao); + } + + return CanService.IsConnected; + } + + private void btnMovimentoCAN_Click(object sender, EventArgs e) + { + if (MKSIniciado()) + { + double.TryParse(txtValor.Text, out double angulo); + double.TryParse(cmbVelocidadePosicao.Text, out double velocidade); + Sentido sentido = rdbHorarioPosicao.Checked ? Sentido.Horario : Sentido.Antihorario; + ModosControle modo = (ModosControle)(cmbModo.SelectedIndex + 1); + + MKS057DCanService.Movimento(Convert.ToByte(cmbEndereco.Text), angulo, (int)velocidade, sentido, modo); + } + } + + private void btnSetZeroCAN_Click(object sender, EventArgs e) + { + if (MKSIniciado()) + { + MKS057DCanService.SetZero(Convert.ToByte(cmbEndereco.Text)); + } + } + + AsyncTaskTimerModel tmrReq; + MKS057DModel dadosLeitura; + + private void btnCANtest_Click(object sender, EventArgs e) + { + if (tmrReq == null) + { + tmrReq = new AsyncTaskTimerModel("tmrReqMksCan", tmrReq_Tick, 1000, this); + tmrReq.Start(); + } + else if (tmrReq.IsRunning) + { + tmrReq.Stop(); + } + else + { + tmrReq.Start(); + } + } + + private async Task tmrReq_Tick() + { + tmrReq.SetInterval(200); + + if (MKSIniciado()) + { + MKS057DCanService.RequisitarDado(Convert.ToByte(cmbEndereco.Text), MKS057DCanService.MksHandler.MksFuncCode.PulsosRecebidos); + //mks.RequisitarDado(endereco, MKS057DCanService.MksHandler.MksFuncCode.EncoderCarregado); + //mks.RequisitarDado(endereco, MKS057DCanService.MksHandler.MksFuncCode.EncoderAcumulado); + MKS057DCanService.RequisitarDado(Convert.ToByte(cmbEndereco.Text), MKS057DCanService.MksHandler.MksFuncCode.IO); + //mks.RequisitarDado(endereco, MKS057DCanService.MksHandler.MksFuncCode.RPM); + + dadosLeitura = MKS057DCanService.DadosLeitura.FirstOrDefault(x => x.Endereco == Convert.ToByte(cmbEndereco.Text)); + + if (dadosLeitura != null) + { + string a = + $"Versão: {dadosLeitura.FV}, " + + $"RPM: {dadosLeitura.Velocidade}, " + + $"Pulsos: {dadosLeitura.NumeroPulsos}, " + + $"Angulo: {dadosLeitura.AnguloPulsos}, " + + $"Pulsos Relativo: {dadosLeitura.NumeroPulsosRelativo}, " + + $"Angulo Relativo: {dadosLeitura.AnguloPulsosRelativo}, " + + $"Pulsos Absoluto: {dadosLeitura.NumeroPulsosAbsoluto}, " + + $"Angulo Absoluto: {dadosLeitura.AnguloPulsosAbsoluto}, " + + $"Entradas: {string.Join(",", (dadosLeitura.Entradas ?? new List()).Select(x => x ? "1" : "0"))}," + + $"Saidas: {string.Join(",", (dadosLeitura.Saidas ?? new List()).Select(x => x ? "1" : "0"))},"; + + lblLeituraMksCan.Text = a; + } + } + } + } } diff --git a/AgroBase/AgroBase/Models/GeneralJoystick.cs b/AgroBase/AgroBase/Models/GeneralJoystick.cs index bf3990326..b0254b38b 100644 --- a/AgroBase/AgroBase/Models/GeneralJoystick.cs +++ b/AgroBase/AgroBase/Models/GeneralJoystick.cs @@ -481,7 +481,7 @@ namespace AgroBase !frmDiagnosticos.Diagnosticando && !ForcarComando && ( Variaveis.OperacaoEmAndamento.Modo == ModoOperacao.Manual && ( - MKS057DService.Referenciando || + MKS057DCanService.Referenciando || !Variaveis.OperacaoEmAndamento.OperacaoLiberada || !Variaveis.OperacaoEmAndamento.Iniciado || !VerificaComandoValidoSonar(Tecla) diff --git a/AgroBase/AgroBase/Models/MKS057DModel.cs b/AgroBase/AgroBase/Models/MKS057DModel.cs index 43b4a131f..aa795218b 100644 --- a/AgroBase/AgroBase/Models/MKS057DModel.cs +++ b/AgroBase/AgroBase/Models/MKS057DModel.cs @@ -13,7 +13,7 @@ namespace AgroBase.Models get { // Houve comandos recebidos do driver dentro dos ultimos 10 segundos - int tempo = MKS057DService.UltimoReferenciamento.AddSeconds(10) > DateTime.Now || MKS057DService.Referenciando ? 120 : 10; + int tempo = MKS057DCanService.UltimoReferenciamento.AddSeconds(10) > DateTime.Now || MKS057DCanService.Referenciando ? 120 : 10; return UltimoComandoRecebido.AddSeconds(tempo) > DateTime.Now; } } @@ -25,7 +25,12 @@ namespace AgroBase.Models public double RPM { get; set; } public string RPM_Hex { get; set; } public int NumeroPulsos { get; set; } + public double AnguloPulsos { get; set; } public string NumeroPulsos_Hex { get; set; } + public int NumeroPulsosAbsoluto { get; set; } + public double AnguloPulsosAbsoluto { get; set; } + public int NumeroPulsosRelativo { get; set; } + public double AnguloPulsosRelativo { get; set; } public double ErroAngulo { get; set; } public string ErroAngulo_Hex { get; set; } public Estado StatusDriver { get; set; } diff --git a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs index cca95e93e..181c4413f 100644 --- a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs +++ b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using static AgroBase.Models.Enums; @@ -62,7 +61,7 @@ namespace AgroBase.Models.Modules { get { - return MKS057DService.PulsosParaAngulo(Leitura?.NumeroPulsos ?? 0); + return Leitura?.AnguloPulsos ?? 0; } } public double RPM @@ -101,7 +100,7 @@ namespace AgroBase.Models.Modules { get { - _leitura = MKS057DService.DadosLeitura?.FirstOrDefault(x => x.Endereco == EnderecoByte); + _leitura = MKS057DCanService.DadosLeitura?.FirstOrDefault(x => x.Endereco == EnderecoByte); return _leitura; } set @@ -313,7 +312,8 @@ namespace AgroBase.Models.Modules return; } - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoMovimento(EnderecoByte, Angulo_SP, Velocidade, Sentido_SP)); + //MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoMovimento(EnderecoByte, Angulo_SP, Velocidade, Sentido_SP)); + MKS057DCanService.Movimento(EnderecoByte, Angulo_SP, Velocidade, Sentido_SP); UltimoComandoEnviado = DateTime.Now; } @@ -323,12 +323,13 @@ namespace AgroBase.Models.Modules { byte Addr = EnderecoByte; - MKS057DService.AddrRef = Addr; - MKS057DService.UltimoReferenciamento = DateTime.Now; + MKS057DCanService.AddrRef = Addr; + MKS057DCanService.UltimoReferenciamento = DateTime.Now; await Task.Delay(2000); - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoSetZero(Addr)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoSetZero(Addr)); + MKS057DCanService.SetZero(Addr); await Task.Delay(500); @@ -359,16 +360,17 @@ namespace AgroBase.Models.Modules if (!Sucesso) { - while (!Sucesso && tentativas < MaxTentativas && DateTime.Now < TimeoutGeral && MKS057DService.Referenciando) + while (!Sucesso && tentativas < MaxTentativas && DateTime.Now < TimeoutGeral && MKS057DCanService.Referenciando) { // Se o angulo ja foi visitado, entao pode se mover mais rapido, senao, se move mais devagar int VelocidadeGiro = DefineVelocidadeReferenciamento(EstadoInicial, anguloMaxVisitado, anguloMinVisitado); - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _angulo, VelocidadeGiro, _sentido)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _angulo, VelocidadeGiro, _sentido)); + MKS057DCanService.Movimento(Addr, _angulo, VelocidadeGiro, _sentido); DateTime Inicio = DateTime.Now; bool inverterGiro = false; - while (!Sucesso && !inverterGiro && Inicio.AddSeconds(120) > DateTime.Now && MKS057DService.Referenciando) + while (!Sucesso && !inverterGiro && Inicio.AddSeconds(120) > DateTime.Now && MKS057DCanService.Referenciando) { bool _ref = IN1_Atuado; @@ -425,14 +427,17 @@ namespace AgroBase.Models.Modules if (Sucesso) { - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + MKS057DCanService.Parar(Addr); await Task.Delay(1500); int _centro = Convert.ToInt32((_anguloEntrada + _anguloSaida) / 2.0); - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _centro, 36, Sentido.Horario)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _centro, 36, Sentido.Horario)); + MKS057DCanService.Movimento(Addr, _centro, 36, Sentido.Horario); await Task.Delay(2500); - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoSetZero(Addr)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoSetZero(Addr)); + MKS057DCanService.SetZero(Addr); await Task.Delay(1000); break; } @@ -446,7 +451,8 @@ namespace AgroBase.Models.Modules (_velocidadeAnterior != VelocidadeGiro) // Verifica se mudou a velocidade de giro do motor de acordo com o angulo atual ) { - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _angulo, VelocidadeGiro, _sentido)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoMovimento(Addr, _angulo, VelocidadeGiro, _sentido)); + MKS057DCanService.Movimento(Addr, _angulo, VelocidadeGiro, _sentido); } _anguloAnterior = Angulo; @@ -463,7 +469,8 @@ namespace AgroBase.Models.Modules if (!Sucesso && inverterGiro) { - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + MKS057DCanService.Parar(Addr); await Task.Delay(500); _sentido = _sentido == Sentido.Horario ? Sentido.Antihorario : Sentido.Horario; @@ -477,11 +484,12 @@ namespace AgroBase.Models.Modules if (!Sucesso) { - await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + //await MKS057DService.EnviarComandoControle(MKS057DService.MontarComandoParada(Addr)); + MKS057DCanService.Parar(Addr); } - MKS057DService.AddrRef = 0x00; - MKS057DService.UltimoReferenciamento = DateTime.Now; + MKS057DCanService.AddrRef = 0x00; + MKS057DCanService.UltimoReferenciamento = DateTime.Now; } private int DefineVelocidadeReferenciamento(bool EstadoInicial, double anguloMaxVisitado, double anguloMinVisitado) diff --git a/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs b/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs index a53de1a14..f182d1c16 100644 --- a/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs +++ b/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs @@ -235,7 +235,7 @@ namespace AgroBase.Models.Modules tmrRegistradorMOV = new AsyncTaskTimerModel("tmrRegistrador_" + T_Code.Mov.ToString(), tmrRegistradorMOV_Tick, OIDService.TaxaAmostragem); tmrRegistradorMOV.Start(); - tmrRegistradorDIR = new AsyncTaskTimerModel("tmrRegistrador_" + T_Code.Dir.ToString(), tmrRegistradorDIR_Tick, MKS057DService.TaxaAmostragem); + tmrRegistradorDIR = new AsyncTaskTimerModel("tmrRegistrador_" + T_Code.Dir.ToString(), tmrRegistradorDIR_Tick, MKS057DCanService.TaxaAmostragem); tmrRegistradorDIR.Start(); } } @@ -328,13 +328,14 @@ namespace AgroBase.Models.Modules return; } - if (!MKS057DService.Iniciado && SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Mks)) + if (!MKS057DCanService.Iniciado && SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Mks)) { - await MKS057DService.InicializarEthernetService(); + //await MKS057DService.InicializarEthernetService(); - foreach (var Leitura in MKS057DService.DadosLeitura.Where(x => x.UltimoComandoRecebido.AddSeconds(10) < DateTime.Now)) + foreach (var Leitura in MKS057DCanService.DadosLeitura.Where(x => x.UltimoComandoRecebido.AddSeconds(10) < DateTime.Now)) { - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoPulsos(Leitura.Endereco)); + //MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoPulsos(Leitura.Endereco)); + MKS057DCanService.RequisitarDado(Leitura.Endereco, MKS057DCanService.MksHandler.MksFuncCode.PulsosRecebidos); } tmrRegistradorDIR.SetInterval(3000); @@ -344,13 +345,15 @@ namespace AgroBase.Models.Modules foreach (var Modulo in Modulos.Where(x => x.DirMotor.Inicializado)) { byte modAddr = Modulo.DirMotor.EnderecoByte; - if (!MKS057DService.Referenciando || (MKS057DService.Referenciando && MKS057DService.AddrRef == modAddr)) + if (!MKS057DCanService.Referenciando || (MKS057DCanService.Referenciando && MKS057DCanService.AddrRef == modAddr)) { - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoPulsos(modAddr)); - MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoIO(modAddr)); + //MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoPulsos(modAddr)); + MKS057DCanService.RequisitarDado(modAddr, MKS057DCanService.MksHandler.MksFuncCode.PulsosRecebidos); + //MKS057DService.AdicionarComandoNaFila(MKS057DService.MontarComandoRequisicaoIO(modAddr)); + MKS057DCanService.RequisitarDado(modAddr, MKS057DCanService.MksHandler.MksFuncCode.IO); // Verifica se o angulo de set point do motor em questao e diferente do angulo atual, e se for, reenvia o comando para garantir que o motor esteja coerente com o set point - if (!MKS057DService.Referenciando && (Modulo.DirMotor.UltimoComandoEnviado.AddMilliseconds(MKS057DService.TaxaAmostragem) < DateTime.Now) && !Modulo.DirMotor.AtingiuAnguloSP) + if (!MKS057DCanService.Referenciando && (Modulo.DirMotor.UltimoComandoEnviado.AddMilliseconds(MKS057DCanService.TaxaAmostragem) < DateTime.Now) && !Modulo.DirMotor.AtingiuAnguloSP) { var Controle = Variaveis.OperacaoEmAndamento.Controle.TiposControle?.FirstOrDefault(x => x.Tipo == T_Code.Dir); if (Controle != null) @@ -361,8 +364,8 @@ namespace AgroBase.Models.Modules } } - MKS057DService.TaxaAmostragem = MKS057DService.Referenciando ? 200 : 500; - tmrRegistradorDIR.SetInterval(MKS057DService.TaxaAmostragem); + MKS057DCanService.TaxaAmostragem = MKS057DCanService.Referenciando ? 200 : 500; + tmrRegistradorDIR.SetInterval(MKS057DCanService.TaxaAmostragem); } @@ -417,7 +420,7 @@ namespace AgroBase.Models.Modules public async Task RealizarReferenciamentoDirecional() { - if (!MKS057DService.Referenciando) + if (!MKS057DCanService.Referenciando) { TipoMovimentoDirecional tipoControle = Variaveis.OperacaoEmAndamento.Controle.TipoMovimento; diff --git a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs index 4e3b11472..dab91c815 100644 --- a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs +++ b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs @@ -1272,7 +1272,7 @@ namespace AgroBase.Models var _Controle = Variaveis.OperacaoEmAndamento.Controle; - bool MovimentoLiberado = Variaveis.OperacaoEmAndamento.StatusAtual == StatusOperacao.EmAndamento && !MKS057DService.Referenciando; + bool MovimentoLiberado = Variaveis.OperacaoEmAndamento.StatusAtual == StatusOperacao.EmAndamento && !MKS057DCanService.Referenciando; if (MovimentoLiberado || ForcarEnvio) { diff --git a/AgroBase/AgroBase/Models/Variaveis.cs b/AgroBase/AgroBase/Models/Variaveis.cs index 4542e35c8..742cebed2 100644 --- a/AgroBase/AgroBase/Models/Variaveis.cs +++ b/AgroBase/AgroBase/Models/Variaveis.cs @@ -54,7 +54,7 @@ namespace AgroBase.Models public static List DispositivosConectados { get; set; } = new List(); public static OperacaoModel OperacaoEmAndamento { get; set; } = new OperacaoModel(ModoOperacao.Manual); public static MqttService MqttService { get; set; } = new MqttService("localhost", 1883); - public static LoRaService ConexaoLoRa = new LoRaService(); + public static LoRaService ConexaoLoRa { get; set; } = new LoRaService(); public static string FaixaIPwifi { get; set; } = "192.168.100"; public static string FaixaIPethernet { get; set; } = "192.168.105"; public static string IP_Host { get; set; } = FaixaIPwifi + ".105"; diff --git a/AgroBase/AgroBase/Services/CANService.cs b/AgroBase/AgroBase/Services/CANService.cs new file mode 100644 index 000000000..d399238b6 --- /dev/null +++ b/AgroBase/AgroBase/Services/CANService.cs @@ -0,0 +1,351 @@ +using AgroBase.Models; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO.Ports; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using static AgroBase.Models.Enums; + +namespace AgroBase.Services +{ + public class CanMessage + { + public DateTime Momento { get; set; } + public T_Code Dispositivo { get; set; } + public byte Id { get; set; } + public byte funcCode { get; set; } + public byte[] DataTx { get; set; } + public byte[] DataRx { get; set; } + public bool Enviado { get; set; } + public DateTime EnviadoEm { get; set; } + public bool ComResposta { get; set; } + public bool Respondido { get; set; } + public DateTime RespondidoEm { get; set; } + } + + public interface ICanMessageHandler + { + void ProcessarMensagem(CanMessage mensagem); + } + + public class CanService : IDisposable + { + private static SerialPort _serialPort; + public static string _portName; + private static int _baudRate; + private static object _lock = new object(); + public static bool IsConnected { get; private set; } + private static AsyncTaskTimerModel tmrEnviarCAN; + private static AsyncTaskTimerModel tmrOuvirCAN; + private static StringBuilder SerialCANBuffer = new StringBuilder(); + private static readonly ConcurrentDictionary _roteadores = new ConcurrentDictionary(); + private static byte? _ultimoIdEnviado = null; + + private static List Mensagens = new List(); + + public CanService() + { + + } + + public static void RegistrarHandler(T_Code dispositivo, ICanMessageHandler handler) + { + _roteadores[dispositivo] = handler; + } + + public static void AbrirComunicacao(SerialPort porta) + { + try + { + porta.Close(); + + _portName = porta.PortName; + _baudRate = 115200; + + _serialPort = new SerialPort(_portName, _baudRate, Parity.None, 8, StopBits.One); + _serialPort.Open(); + + EnviarComando("S6\r"); // 500Kbps + Thread.Sleep(100); + EnviarComando("O\r"); // Open CAN + Thread.Sleep(100); + + tmrOuvirCAN?.Dispose(); + tmrOuvirCAN = new AsyncTaskTimerModel("tmrOuvirCAN", OuvirCAN, 10); + tmrOuvirCAN.Start(); + + tmrEnviarCAN?.Dispose(); + tmrEnviarCAN = new AsyncTaskTimerModel("tmrEnviarCAN", EnviarCAN, 10); + tmrEnviarCAN.Start(); + + IsConnected = true; + } + catch (Exception ex) + { + Console.WriteLine($"Erro ao abrir comunicacao CAN: {ex.Message}"); + tmrOuvirCAN?.Dispose(); + IsConnected = false; + } + } + + private static async Task OuvirCAN() + { + if (_serialPort.BytesToRead > 0) + { + byte[] tempBuffer = await SerialService.LerDadosDaPortaSerialAsync(_serialPort, _serialPort.BytesToRead); + + foreach (byte b in tempBuffer) + { + char c = (char)b; + + if (c == '\r') + { + var frame = SerialCANBuffer.ToString(); + SerialCANBuffer.Clear(); + + if (!string.IsNullOrWhiteSpace(frame)) + { + ProcessarFrameCAN(frame); + } + } + else + { + SerialCANBuffer.Append(c); + } + } + } + } + + private static void ProcessarFrameCAN(string frame) + { + // Ex: t00183301020304 + if (!frame.StartsWith("t")) return; + + try + { + if (frame.Length < 5) return; + + int id = Convert.ToInt32(frame.Substring(1, 3), 16); + int len = int.Parse(frame.Substring(4, 1)); + + byte[] data = new byte[len]; + for (int i = 0; i < len; i++) + { + data[i] = Convert.ToByte(frame.Substring(5 + i * 2, 2), 16); + } + + byte funcCode = data[0]; + var mensagem = new CanMessage(); + + lock (Mensagens) + { + mensagem = Mensagens.OrderByDescending(x => x.EnviadoEm).FirstOrDefault(x => x.Id == id && x.funcCode == funcCode && x.Enviado && !x.Respondido); + } + + if (mensagem == null) + { + mensagem = new CanMessage { Id = (byte)id, DataRx = data }; + } + + mensagem.DataRx = data; + mensagem.Respondido = true; + mensagem.RespondidoEm = DateTime.Now; + + if (_roteadores.TryGetValue(mensagem.Dispositivo, out var handler)) + { + handler.ProcessarMensagem(mensagem); + } + else + { + Console.WriteLine($"[CAN] FuncCode não tratado: 0x{funcCode:X2}"); + } + } + catch (Exception ex) + { + Console.WriteLine($"[CAN] Erro ao processar frame: {ex.Message}"); + } + } + + public static void AdicionarMensagemNaFila(T_Code Dispositivo, byte id, byte funcCode, byte[] payload = null, bool get = true) + { + if (_serialPort?.IsOpen != true) return; + + var dados = new List { funcCode }; + if (payload != null) + dados.AddRange(payload); + + byte crc = CalcularChecksum(id, dados.ToArray()); + dados.Add(crc); + + //Console.WriteLine($"[CAN OUT] ID: {id:X2} | Func: {funcCode:X2} | Payload: {BitConverter.ToString(dados.ToArray())}"); + + var msg = new CanMessage + { + Momento = DateTime.Now, + Dispositivo = Dispositivo, + Id = id, + funcCode = funcCode, + DataTx = dados.ToArray(), + ComResposta = get + }; + + lock (Mensagens) + { + if (Mensagens.Any(x => + x.Id == msg.Id && // do mesmo Id + x.funcCode == msg.funcCode && // da mesma funcao + x.DataTx.SequenceEqual(msg.DataTx) && // com os mesmos comandos + (!x.Enviado || (x.ComResposta && !x.Respondido)) // ainda nao enviadas ou que aguarda uma resposta + )) + { + return; + } + else + { + Mensagens.Add(msg); + } + } + } + + private static CanMessage ObterProximaMensagem() + { + lock (Mensagens) + { + var idsDisponiveis = Mensagens + .Where(x => !x.Enviado) + .Select(x => x.Id) + .Distinct() + .OrderBy(id => id) + .ToList(); + + if (!idsDisponiveis.Any()) + return null; + + byte proximoId; + + if (!_ultimoIdEnviado.HasValue || !idsDisponiveis.Contains(_ultimoIdEnviado.Value)) + { + // Começa pelo menor ID disponível + proximoId = idsDisponiveis.First(); + } + else + { + // Busca o próximo ID após o último usado + var index = idsDisponiveis.IndexOf(_ultimoIdEnviado.Value); + if (index + 1 < idsDisponiveis.Count) + proximoId = idsDisponiveis[index + 1]; + else + proximoId = idsDisponiveis.First(); // ciclo completo + } + + var msg = Mensagens + .Where(x => !x.Enviado && x.Id == proximoId) + .OrderBy(x => x.Momento) + .FirstOrDefault(); + + return msg; + } + } + + private static async Task EnviarCAN() + { + LimparMensagensAntigas(); + + if (_serialPort?.IsOpen != true) return; + + CanMessage msg = ObterProximaMensagem(); + + if (msg != null) + { + string frame = CriarFrame(msg); + + if (_ultimoIdEnviado.HasValue && msg.Id == _ultimoIdEnviado.Value) + { + await Task.Delay(50); + } + + lock (_lock) + { + EnviarComando(frame); + + msg.Enviado = true; + msg.EnviadoEm = DateTime.Now; + _ultimoIdEnviado = msg.Id; + } + } + } + + private static string CriarFrame(CanMessage msg) + { + string frame = $"t{msg.Id:X3}{msg.DataTx.Length}"; + foreach (byte b in msg.DataTx) + frame += b.ToString("X2"); + + frame += "\r"; + + return frame; + } + + private static void EnviarComando(string comando) + { + if (_serialPort?.IsOpen == true) + { + _serialPort.Write(comando); + } + } + + private static void LimparMensagensAntigas() + { + lock (Mensagens) + { + var limite = DateTime.Now.AddSeconds(-5); + Mensagens.RemoveAll(x => + (!x.ComResposta && x.Enviado) || // mensagens enviadas que nao exigem resposta + (x.Respondido && x.RespondidoEm < limite) || // mensagens respondidas a mais de 5 segundos + (x.Enviado && x.EnviadoEm < limite && !x.Respondido) // mensagens enviadas e nao respondidas a mais de 5 segundos + ); + } + } + + public static void Fechar() + { + tmrOuvirCAN?.Dispose(); + tmrEnviarCAN?.Dispose(); + + lock (Mensagens) + { + Mensagens.Clear(); + } + + SerialCANBuffer.Clear(); + _roteadores.Clear(); + _ultimoIdEnviado = null; + + if (_serialPort?.IsOpen == true) + { + EnviarComando("C\r"); + _serialPort.Close(); + } + + IsConnected = false; + } + + public void Dispose() + { + Fechar(); + } + + private static byte CalcularChecksum(byte id, byte[] data) + { + int soma = id; + foreach (var b in data) + soma += b; + return (byte)(soma & 0xFF); + } + + + } +} \ No newline at end of file diff --git a/AgroBase/AgroBase/Services/MKS057DCanService.cs b/AgroBase/AgroBase/Services/MKS057DCanService.cs new file mode 100644 index 000000000..a128da2e2 --- /dev/null +++ b/AgroBase/AgroBase/Services/MKS057DCanService.cs @@ -0,0 +1,385 @@ +using AgroBase.Models; +using System; +using System.Collections.Generic; +using System.IO.Ports; +using System.Linq; +using System.Threading.Tasks; +using static AgroBase.Models.Enums; +using static AgroBase.Services.MKS057DCanService.MksHandler; + +namespace AgroBase.Services +{ + public class MKS057DCanService + { + public static List DadosLeitura = new List(); + private static int _MStep { get; set; } = 16; + private static T_Code Dispositivo { get; set; } = T_Code.Mks; + private static MksHandler _MksHandler { get; set; } = new MksHandler(); + + public static bool Iniciado + { + get + { + return CanService.IsConnected && SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Dir) && DadosLeitura.Any(x => x.Iniciado); + } + } + public static byte AddrRef = 0x00; + public static bool Referenciando + { + get + { + return AddrRef > 0x00; + } + } + public static DateTime UltimoReferenciamento = DateTime.MinValue; + public static int TaxaAmostragem { get; set; } = 500; + + + public MKS057DCanService() + { + + } + + public static async Task VerificaPortaMKS(SerialPort porta) + { + if (!CanService.IsConnected) + { + CanService.AbrirComunicacao(porta); + CanService.RegistrarHandler(Dispositivo, _MksHandler); + } + + if (CanService.IsConnected) + { + List Mod_IDs = new List(); + + // Verifica e inicializa cada módulo conectado + foreach (var Modulo in Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.Where(x => !x.DirMotor.Inicializado)) + { + byte Addr = Modulo.DirMotor.EnderecoByte; + + // Envia comando relevante para verificar o dispositivo + RequisitarDado(Addr, MksFuncCode.Versao); + + await Task.Delay(1000); + + if (DadosLeitura.Any(x => x.Endereco == Addr && x.Iniciado)) + { + Mod_IDs.Add(Modulo.Modulo_ID); + } + } + + // Define os dispositivos inicializados na lista de dispositivos mapeados + if (Mod_IDs.Any()) + { + DefinirDispositivo(Mod_IDs); + } + } + else + { + return false; + } + + if (!Iniciado) + { + CanService.Fechar(); + } + + return Iniciado; + } + + private static void DefinirDispositivo(List Mod_IDs) + { + foreach (var Mod_ID in Mod_IDs) + { + var Modulo = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => x.Modulo_ID == Mod_ID); + byte Addr = Modulo.DirMotor.EnderecoByte; + + if (!SerialService.DispositivosMapeados.Any(x => x.Dispositivo == T_Code.Dir && x.Mod_ID == Mod_ID)) + { + var Leitura = DadosLeitura.FirstOrDefault(x => x.Endereco == Addr); + if (Leitura != null) + { + SerialService.DispositivosMapeados.Add(new DispositivoDetalhesModel() + { + Endereco = CanService._portName, + Dispositivo = T_Code.Dir, + Erro = (Leitura.Mensagem ?? "") != "", + Versao = (Leitura.FV ?? "").ToString(), + Mod_ID = Mod_ID, + }); + } + } + } + } + + + #region UTILS + + private static int ConverterAnguloParaValor(double _angulo, ModosControle modo) + { + int val = 0; + + if (modo == ModosControle.Pulsos) + { + double pulsos = _MStep * 200.0; + double relacao = (pulsos * VariaveisEquipamento.ReducaoDirecional) / 360.0; + val = Convert.ToInt32(_angulo * relacao); + } + else + { + val = Convert.ToInt32(_angulo * VariaveisEquipamento.ReducaoDirecional); + } + + return val; + } + + #endregion + + #region COMANDOS + + private static void EnviarComando(T_Code Dispositivo, byte id, byte funcCode, byte[] payload = null, bool get = true) + { + CanService.AdicionarMensagemNaFila(Dispositivo, id, funcCode, payload, get); + } + + public static void SetModoOperacao(byte id, byte modo) + { + EnviarComando(Dispositivo, id, 0x82, new byte[] { modo }, false); + } + + public static void RequisitarDado(byte id, MksFuncCode dado) + { + EnviarComando(Dispositivo, id, (byte)dado); + } + + public static void SetZero(byte id) + { + EnviarComando(Dispositivo, id, (byte)MksFuncCode.SetZero, null, false); + } + + public static void Parar(byte id, ModosControle modo = ModosControle.AnguloAbsoluto) + { + byte funcCode = + modo == ModosControle.Pulsos ? (byte)MksFuncCode.ModoControlePulsos : + modo == ModosControle.AnguloRelativo ? (byte)MksFuncCode.ModoControleAnguloRelativo : + (byte)MksFuncCode.ModoControleAnguloAbsoluto; + + EnviarComando(Dispositivo, id, funcCode, new byte[] { 0x00 }, false); + } + + public static void Movimento(byte id, double angulo, int velocidade, Sentido sentido = Sentido.Horario, ModosControle modo = ModosControle.AnguloAbsoluto) + { + List payload = new List(); + + ushort vel = (ushort)velocidade; + byte[] VelocidadeBytes = BitConverter.GetBytes(vel); + + byte acc = 2; + + if (modo == ModosControle.Pulsos) + { + byte _Sentido = sentido == Sentido.Horario ? (byte)0x80 : (byte)0x00; + + uint pulsos = (uint)ConverterAnguloParaValor(angulo, modo); + + byte[] PulsosBytes = BitConverter.GetBytes(pulsos); // Little Endian padrão [0]=LSB + + // Igual no RS485: sentido no bit alto da velocidade alta (VelocidadeBytes[1]) + VelocidadeBytes[1] |= _Sentido; + + // Ordem dos bytes: [MSB, LSB] da velocidade + payload.Add(VelocidadeBytes[1]); + payload.Add(VelocidadeBytes[0]); + payload.Add(acc); + + // Agora: ordem dos pulsos → Big Endian (MSB → LSB), igual ao driver RS485 + payload.Add(PulsosBytes[2]); + payload.Add(PulsosBytes[1]); + payload.Add(PulsosBytes[0]); + + EnviarComando(Dispositivo, id, (byte)MksFuncCode.ModoControlePulsos, payload.ToArray(), false); + } + else + { + int pos = ConverterAnguloParaValor(angulo, modo); + + long AbsAxisText = Convert.ToInt32(pos.ToString(), 10); + byte[] AbsAxis = BitConverter.GetBytes(AbsAxisText * 16384 / 360); + byte[] posInt24 = new byte[] { AbsAxis[2], AbsAxis[1], AbsAxis[0] }; + + payload.AddRange(new byte[] { VelocidadeBytes[1], VelocidadeBytes[0] }); // 2 bytes + payload.Add(acc); // 1 byte + payload.AddRange(posInt24); // 3 bytes + + byte funcCode = modo == ModosControle.AnguloRelativo ? (byte)MksFuncCode.ModoControleAnguloRelativo : (byte)MksFuncCode.ModoControleAnguloAbsoluto; + EnviarComando(Dispositivo, id, funcCode, payload.ToArray(), false); + } + } + + public static void AlterarStatusMotor(byte id, bool Habilitado) + { + byte comando = (Habilitado ? (byte)0x01 : (byte)0x00); + EnviarComando(Dispositivo, id, (byte)MksFuncCode.HabilitarMotor, new byte[] { comando }, false); + } + + #endregion + + public class MksHandler : ICanMessageHandler + { + public enum MksFuncCode : byte + { + EncoderCarregado = 0x30, + EncoderAcumulado = 0x31, + RPM = 0x32, + PulsosRecebidos = 0x33, + IO = 0x34, + Versao = 0x40, + ErroAcumulado = 0x36, + SetZero = 0x92, + HabilitarMotor = 0xF3, + ModoControleAnguloRelativo = 0xF4, + ModoControleAnguloAbsoluto = 0xF5, + ModoControlePulsos = 0xFD + } + + private long DecodeInt48(byte[] data, int startIndex) + { + byte[] buffer = new byte[8]; + + // inverter a ordem dos 6 bytes (big endian → little endian) + for (int i = 0; i < 6; i++) + buffer[i] = data[startIndex + 5 - i]; // inverter os 6 bytes + + // Preencher os dois bytes restantes com sinal (baseado no MSB original) + buffer[6] = (buffer[5] & 0x80) != 0 ? (byte)0xFF : (byte)0x00; + buffer[7] = buffer[6]; // mesmo valor para byte 7 + + return BitConverter.ToInt64(buffer, 0); + } + + private static ushort DecodeUInt16BE(byte[] data, int startIndex) + { + return (ushort)((data[startIndex] << 8) | data[startIndex + 1]); + } + + private double PulsosRecebidosParaAngulo(int valor) + { + double reducao = VariaveisEquipamento.ReducaoDirecional; + + double pulsos = _MStep * 200.0; + double relacao = (pulsos * reducao) / 360.0; + double angulo = valor / relacao; + + return angulo; + } + + private double PulsosEncoderParaAngulo(int valor) + { + return valor * 360.0 / 16384.0; + } + + private MKS057DModel ObterOuCriar(byte id) + { + lock (DadosLeitura) + { + var item = DadosLeitura.FirstOrDefault(x => x.Endereco == id); + if (item == null) + { + item = new MKS057DModel { Endereco = id }; + DadosLeitura.Add(item); + } + return item; + } + } + + public void ProcessarMensagem(CanMessage mensagem) + { + MksFuncCode func = (MksFuncCode)mensagem.DataRx[0]; + byte id = mensagem.Id; + var data = mensagem.DataRx; + + var item = ObterOuCriar(id); + + switch (func) + { + case MksFuncCode.EncoderCarregado: + if (data != null && data.Length >= 7) + { + int carry = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4]; // bytes 1–4 Quantas voltas completas em torno do eixo + ushort value = (ushort)((data[5] << 8) | data[6]); // bytes 5–6 Quantos pulsos por volta + + int pulsos = (int)(carry * 16384.0) + value; + + item.NumeroPulsosRelativo = pulsos; + item.AnguloPulsosRelativo = PulsosEncoderParaAngulo(pulsos); + } + break; + + case MksFuncCode.EncoderAcumulado: + if (data != null && data.Length >= 7) + { + long pulsos = DecodeInt48(data, 1); // lê [1]..[6] + item.NumeroPulsosAbsoluto = (int)pulsos; + item.AnguloPulsosAbsoluto = PulsosEncoderParaAngulo((int)pulsos); + } + break; + + case MksFuncCode.RPM: + if (data != null && data.Length >= 3) + { + item.Velocidade = DecodeUInt16BE(data, 1); + } + break; + + case MksFuncCode.PulsosRecebidos: + if (data != null && data.Length >= 6) + { + int pulsos = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4]; + if ((data[1] & 0x80) != 0) // se MSB estiver setado, é número negativo + { + pulsos |= unchecked((int)0xFF000000); // preencher sinal + } + + item.NumeroPulsos = pulsos; + item.AnguloPulsos = PulsosRecebidosParaAngulo(pulsos); + } + break; + + case MksFuncCode.IO: + if (data != null && data.Length >= 3) + { + byte status = data[1]; + item.Entradas = new List() { false, false }; + item.Entradas[0] = (status & 0b00000001) != 0; + item.Entradas[1] = (status & 0b00000010) != 0; + item.Saidas = new List() { false, false }; + item.Saidas[0] = (status & 0b00000100) != 0; + item.Saidas[1] = (status & 0b00001000) != 0; + } + break; + + case MksFuncCode.ErroAcumulado: + if (data != null && data.Length >= 3) + { + item.ErroAcumulado = DecodeUInt16BE(data, 1); + } + break; + + case MksFuncCode.Versao: + if (data != null && data.Length >= 6) + { + string versao = $"{data[1]}.{data[2]}.{data[3]}.{data[4]}"; + item.FV = versao; + } + break; + } + + item.UltimoComandoRecebido = DateTime.Now; + } + } + } + + + + +} diff --git a/AgroBase/AgroBase/Services/MKS057DService.cs b/AgroBase/AgroBase/Services/MKS057DService.cs index e1e3e8c0a..9d27dc8b0 100644 --- a/AgroBase/AgroBase/Services/MKS057DService.cs +++ b/AgroBase/AgroBase/Services/MKS057DService.cs @@ -9,7 +9,7 @@ using static AgroBase.Models.Enums; namespace AgroBase.Services { - public class MKS057DService + public class MKS057DRs485Service { private static EthernetService _ethernetService; public static bool Iniciado diff --git a/AgroBase/AgroBase/Services/SerialService.cs b/AgroBase/AgroBase/Services/SerialService.cs index 0fa4280f2..73dac9df0 100644 --- a/AgroBase/AgroBase/Services/SerialService.cs +++ b/AgroBase/AgroBase/Services/SerialService.cs @@ -252,6 +252,12 @@ namespace AgroBase.Services continue; } } + + bool DispMks = await ProcuraDispositivoMKS(_Porta); + if (DispMks) + { + continue; + } } catch (Exception ex) { @@ -706,11 +712,11 @@ namespace AgroBase.Services ethernetEncontrado = true; } - bool DispMks = await ProcuraDispositivoMKS(); + /*bool DispMks = await ProcuraDispositivoMKS(); if (DispMks) { ethernetEncontrado = true; - } + }*/ return ethernetEncontrado; } @@ -822,12 +828,12 @@ namespace AgroBase.Services return OIDService.Iniciado; } - private static async Task ProcuraDispositivoMKS() + private static async Task ProcuraDispositivoMKS(SerialPort porta) { - if (!MKS057DService.Referenciando && (!MKS057DService.Iniciado || MKS057DService.DadosLeitura.Count(x => x.Iniciado) < (Variaveis.OperacaoEmAndamento.DispMvd?.Dados?.Modulos?.Count() ?? 4))) + if (!MKS057DCanService.Referenciando && (!MKS057DCanService.Iniciado || MKS057DCanService.DadosLeitura.Count(x => x.Iniciado) < (Variaveis.OperacaoEmAndamento.DispMvd?.Dados?.Modulos?.Count() ?? 4))) { AtualizarConsole("Procurando dispositivos MKS"); - bool Encontrado = await MKS057DService.VerificaPortaMKS(); + bool Encontrado = await MKS057DCanService.VerificaPortaMKS(porta); if (Encontrado) { AtualizarConsole("Dispositivo MKS encontrado"); @@ -835,7 +841,7 @@ namespace AgroBase.Services } } - return MKS057DService.Iniciado; + return MKS057DCanService.Iniciado; } diff --git a/AgroBase/AgroBase/bin/Debug/AgroBase.pdb b/AgroBase/AgroBase/bin/Debug/AgroBase.pdb index 2ddb2e507..3376290d3 100644 Binary files a/AgroBase/AgroBase/bin/Debug/AgroBase.pdb and b/AgroBase/AgroBase/bin/Debug/AgroBase.pdb differ diff --git a/AgroBase/AgroBase/bin/Debug/DawnCache/data_1 b/AgroBase/AgroBase/bin/Debug/DawnCache/data_1 index c4a9a30b7..3b92a287c 100644 Binary files a/AgroBase/AgroBase/bin/Debug/DawnCache/data_1 and b/AgroBase/AgroBase/bin/Debug/DawnCache/data_1 differ diff --git a/AgroBase/AgroBase/bin/Debug/GPUCache/data_1 b/AgroBase/AgroBase/bin/Debug/GPUCache/data_1 index 9067d3cac..5bac77356 100644 Binary files a/AgroBase/AgroBase/bin/Debug/GPUCache/data_1 and b/AgroBase/AgroBase/bin/Debug/GPUCache/data_1 differ diff --git a/AgroBase/AgroBase/bin/Debug/Parametros/parametersAtu-1_0.par b/AgroBase/AgroBase/bin/Debug/Parametros/parametersAtu-1_0.par index d9e7fda04..cfd53af91 100644 --- a/AgroBase/AgroBase/bin/Debug/Parametros/parametersAtu-1_0.par +++ b/AgroBase/AgroBase/bin/Debug/Parametros/parametersAtu-1_0.par @@ -1 +1 @@ -{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00.0003149"},"Modulo_ID":"Atu","IP":"192.168.100.13","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.02674584437758935,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector_oak-1_0.py","DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpSInstantanea":0.0,"VazaoFluxoMLpSMedia":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0,"PercentualErvasTerreno":0.0} \ No newline at end of file +{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00"},"Modulo_ID":"Atu","IP":"192.168.100.13","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.02674584437758935,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector_oak-1_0.py","DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpSInstantanea":0.0,"VazaoFluxoMLpSMedia":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0,"PercentualErvasTerreno":0.0} \ No newline at end of file diff --git a/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par b/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par index d2984d2ad..d5e2e51e3 100644 --- a/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par +++ b/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par @@ -1 +1 @@ -{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mvd","TimeTick":"00:00:00"},"tmrRegistradorMOV":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mov","TimeTick":"00:00:00"},"tmrRegistradorDIR":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Dir","TimeTick":"00:00:00"},"Conectado":false,"DistanciaPercorridaOperacao":0.0,"TempoEmAtividade":0.0,"DistanciaPercorridaTotal":0.0,"DistanciaPercorridaParcial":0.0,"VelocidadeMedia":0.0,"DiametroRoda":0.365,"ReducaoMotorBLDC":5.0,"RPM_Max_MotorBLDC":500.0,"IP_Mov":"192.168.105.10","IP_Dir":"192.168.105.11","Modulos":[{"Modulo_ID":"ET","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:04:57.1797208-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"EF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:07:18.0325552-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DT","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:04:57.1814613-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:07:18.0355466-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}}]} \ No newline at end of file +{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mvd","TimeTick":"00:00:00"},"tmrRegistradorMOV":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mov","TimeTick":"00:00:00"},"tmrRegistradorDIR":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Dir","TimeTick":"00:00:00"},"Conectado":true,"DistanciaPercorridaOperacao":0.0,"TempoEmAtividade":0.0,"DistanciaPercorridaTotal":0.0,"DistanciaPercorridaParcial":0.0,"VelocidadeMedia":0.0,"DiametroRoda":0.365,"ReducaoMotorBLDC":5.0,"RPM_Max_MotorBLDC":500.0,"IP_Mov":"192.168.105.10","IP_Dir":"192.168.105.11","Modulos":[{"Modulo_ID":"ET","Disponivel":false,"RequisitarDados":false,"Conectado":true,"MovMotor":{"ID":"Mov","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":true,"Leitura":{"Endereco":1,"Iniciado":true,"UltimoComandoRecebido":"2025-04-04T15:08:44.5115756-03:00","ErroCarregado":0.0,"ErroCarregado_Hex":null,"ErroAcumulado":0.0,"ErroAcumulado_Hex":null,"RPM":0.0,"RPM_Hex":null,"NumeroPulsos":0,"AnguloPulsos":0.0,"NumeroPulsos_Hex":null,"NumeroPulsosAbsoluto":0,"AnguloPulsosAbsoluto":0.0,"NumeroPulsosRelativo":0,"AnguloPulsosRelativo":0.0,"ErroAngulo":0.0,"ErroAngulo_Hex":null,"StatusDriver":0,"StatusModoLimiteZero":0,"StatusTravaMotor":0,"StatusBloqueioMotor":0,"StatusMovimentoMotor":0,"Sentido":0,"Velocidade":0.0,"Aceleracao":0.0,"Mensagem":null,"HV":null,"FV":"20.1.0.6","Entradas":[true,true],"Saidas":[true,true]},"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-04T15:08:39.6929572-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"EF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:07:18.0325552-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DT","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:04:57.1814613-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","Sentido_SP":0,"Angulo_SP":0.0,"Angulo_Offset":0.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-02T09:07:18.0355466-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}}]} \ No newline at end of file diff --git a/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html b/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html index 5de504641..eccf328f7 100644 --- a/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html +++ b/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html @@ -25,7 +25,7 @@