diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/4c227218-a963-45d8-8756-3c7cf941baf4.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/4c227218-a963-45d8-8756-3c7cf941baf4.vsidx
new file mode 100644
index 000000000..70aef67a0
Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/4c227218-a963-45d8-8756-3c7cf941baf4.vsidx differ
diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/727dd755-5732-46fe-bb11-abf176c6c38a.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/727dd755-5732-46fe-bb11-abf176c6c38a.vsidx
new file mode 100644
index 000000000..d1bb6e6c3
Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/727dd755-5732-46fe-bb11-abf176c6c38a.vsidx differ
diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/bf07e494-4543-4606-8d2a-61b4692a7a56.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/bf07e494-4543-4606-8d2a-61b4692a7a56.vsidx
new file mode 100644
index 000000000..70aef67a0
Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/bf07e494-4543-4606-8d2a-61b4692a7a56.vsidx differ
diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/c61d22f2-167f-475c-8e2b-58efb226b237.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/c61d22f2-167f-475c-8e2b-58efb226b237.vsidx
deleted file mode 100644
index 85b0780e9..000000000
Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/c61d22f2-167f-475c-8e2b-58efb226b237.vsidx and /dev/null differ
diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/e5d42f86-224d-4a75-b882-798c826d5a98.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/e5d42f86-224d-4a75-b882-798c826d5a98.vsidx
new file mode 100644
index 000000000..3875bb9cb
Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/e5d42f86-224d-4a75-b882-798c826d5a98.vsidx differ
diff --git a/AgroBase/.vs/AgroBase/v17/.suo b/AgroBase/.vs/AgroBase/v17/.suo
index adb2c0c45..66d81b5e1 100644
Binary files a/AgroBase/.vs/AgroBase/v17/.suo and b/AgroBase/.vs/AgroBase/v17/.suo differ
diff --git a/AgroBase/.vs/AgroBase/v17/DocumentLayout.json b/AgroBase/.vs/AgroBase/v17/DocumentLayout.json
index b97ec5338..ddfaa8753 100644
--- a/AgroBase/.vs/AgroBase/v17/DocumentLayout.json
+++ b/AgroBase/.vs/AgroBase/v17/DocumentLayout.json
@@ -2,6 +2,14 @@
"Version": 1,
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
"Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\frmkinect.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmkinect.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\frmkinect.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+ "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmkinect.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+ },
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\frmpinout.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmpinout.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -19,12 +27,37 @@
{
"$type": "Document",
"DocumentIndex": 0,
+ "Title": "frmKinect.cs",
+ "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmKinect.cs",
+ "RelativeDocumentMoniker": "AgroBase\\Forms\\frmKinect.cs",
+ "ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmKinect.cs",
+ "RelativeToolTip": "AgroBase\\Forms\\frmKinect.cs",
+ "ViewState": "AQIAAAsBAAAAAAAAAADwv4sAAAAMAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-05-13T16:12:47.193Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "frmKinect.cs [Design]",
+ "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmKinect.cs",
+ "RelativeDocumentMoniker": "AgroBase\\Forms\\frmKinect.cs",
+ "ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmKinect.cs [Design]",
+ "RelativeToolTip": "AgroBase\\Forms\\frmKinect.cs [Design]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-05-13T16:12:16.688Z",
+ "EditorCaption": " [Design]"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
"Title": "frmPinout.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmPinout.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
"RelativeToolTip": "AgroBase\\Forms\\frmPinout.cs",
- "ViewState": "AQIAALcAAAAAAAAAAAAYwB8BAAAMAAAA",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAEBAABbAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-10T11:31:13.293Z",
"EditorCaption": ""
diff --git a/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json b/AgroBase/AgroBase/.vs/AgroBase.csproj.dtbcache.json
index 81982cbd5..b9593d080 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\\frmAcompanhamento.cs"},{"SourceFile":"Forms\\frmAcompanhamento.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.Designer.cs"},{"SourceFile":"Forms\\frmGPS.cs"},{"SourceFile":"Forms\\frmGPS.Designer.cs"},{"SourceFile":"Forms\\frmMapa.cs"},{"SourceFile":"Forms\\frmMapa.Designer.cs"},{"SourceFile":"Forms\\frmPinout.cs"},{"SourceFile":"Forms\\frmPinout.Designer.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.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\\Operacoes\\frmInicioOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\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\\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\\CameraCaminhoModel.cs"},{"SourceFile":"Models\\CameraModel.cs"},{"SourceFile":"Models\\CameraSoloModel.cs"},{"SourceFile":"Models\\GPSModel.cs"},{"SourceFile":"Models\\MapasModel.cs"},{"SourceFile":"Models\\MensagemFilaModel.cs"},{"SourceFile":"Models\\Modules\\AtuadorModel.cs"},{"SourceFile":"Models\\Modules\\DirecionalModel.cs"},{"SourceFile":"Models\\Modules\\DispositivoBaseModel.cs"},{"SourceFile":"Models\\Enuns.cs"},{"SourceFile":"Models\\GeneralJoystick.cs"},{"SourceFile":"Models\\Modules\\MovimentacaoModel.cs"},{"SourceFile":"Models\\Modules\\PinoutModel.cs"},{"SourceFile":"Models\\Modules\\SensoriamentoModel.cs"},{"SourceFile":"Models\\MotorComum.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoManualModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoMapaGPSModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoModel.cs"},{"SourceFile":"Models\\PIDModel.cs"},{"SourceFile":"Models\\PZEMModel.cs"},{"SourceFile":"Models\\SonarModel.cs"},{"SourceFile":"Models\\Variaveis.cs"},{"SourceFile":"Services\\APIService.cs"},{"SourceFile":"Services\\CameraService.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\\FilaService.cs"},{"SourceFile":"Services\\GPSService.cs"},{"SourceFile":"Services\\IDispositivosService.cs"},{"SourceFile":"Services\\MapasService.cs"},{"SourceFile":"Services\\MqttService.cs"},{"SourceFile":"Services\\PythonService.cs"},{"SourceFile":"Services\\PZEMService.cs"},{"SourceFile":"Services\\SerialService.cs"},{"SourceFile":"Services\\SocketService.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.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\\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.4.8.1.5350\\lib\\netstandard2.0\\Emgu.CV.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionInc\\agrobot_base\\AgroBase\\packages\\Microsoft.Bcl.AsyncInterfaces.7.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.7.2\\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:\\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.7.2\\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\\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.7.2\\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.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.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.7.0.3\\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.7.2\\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.7.2\\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.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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\\frmAcompanhamento.cs"},{"SourceFile":"Forms\\frmAcompanhamento.Designer.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.cs"},{"SourceFile":"Forms\\Atuador\\frmAtuCamera.Designer.cs"},{"SourceFile":"Forms\\frmGPS.cs"},{"SourceFile":"Forms\\frmGPS.Designer.cs"},{"SourceFile":"Forms\\frmMapa.cs"},{"SourceFile":"Forms\\frmMapa.Designer.cs"},{"SourceFile":"Forms\\frmPinout.cs"},{"SourceFile":"Forms\\frmPinout.Designer.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.cs"},{"SourceFile":"Forms\\frmSimulacaoMapaGPS.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\\Operacoes\\frmInicioOperacao.cs"},{"SourceFile":"Forms\\Operacoes\\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\\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\\CameraCaminhoModel.cs"},{"SourceFile":"Models\\CameraModel.cs"},{"SourceFile":"Models\\CameraSoloModel.cs"},{"SourceFile":"Models\\GPSModel.cs"},{"SourceFile":"Models\\MapasModel.cs"},{"SourceFile":"Models\\MensagemFilaModel.cs"},{"SourceFile":"Models\\Modules\\AtuadorModel.cs"},{"SourceFile":"Models\\Modules\\DirecionalModel.cs"},{"SourceFile":"Models\\Modules\\DispositivoBaseModel.cs"},{"SourceFile":"Models\\Enuns.cs"},{"SourceFile":"Models\\GeneralJoystick.cs"},{"SourceFile":"Models\\Modules\\MovimentacaoModel.cs"},{"SourceFile":"Models\\Modules\\PinoutModel.cs"},{"SourceFile":"Models\\Modules\\SensoriamentoModel.cs"},{"SourceFile":"Models\\MotorComum.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoManualModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoMapaGPSModel.cs"},{"SourceFile":"Models\\Operacoes\\OperacaoModel.cs"},{"SourceFile":"Models\\PIDModel.cs"},{"SourceFile":"Models\\PZEMModel.cs"},{"SourceFile":"Models\\SonarModel.cs"},{"SourceFile":"Models\\Variaveis.cs"},{"SourceFile":"Services\\APIService.cs"},{"SourceFile":"Services\\CameraService.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\\FilaService.cs"},{"SourceFile":"Services\\GPSService.cs"},{"SourceFile":"Services\\IDispositivosService.cs"},{"SourceFile":"Services\\MapasService.cs"},{"SourceFile":"Services\\MqttService.cs"},{"SourceFile":"Services\\PythonService.cs"},{"SourceFile":"Services\\PZEMService.cs"},{"SourceFile":"Services\\SerialService.cs"},{"SourceFile":"Services\\SocketService.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.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\\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.4.8.1.5350\\lib\\netstandard2.0\\Emgu.CV.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\ZendionINC\\agrobot_base\\AgroBase\\packages\\Microsoft.Bcl.AsyncInterfaces.7.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.7.2\\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:\\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.7.2\\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\\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.7.2\\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.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.2\\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.7.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.7.0.3\\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.7.2\\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.7.2\\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.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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 6fcee226f..93f3c920e 100644
--- a/AgroBase/AgroBase/AgroBase.csproj
+++ b/AgroBase/AgroBase/AgroBase.csproj
@@ -87,6 +87,7 @@
False
.\Microsoft.DirectX.DirectInput.dll
+
..\packages\MQTTnet.3.1.1\lib\net461\MQTTnet.dll
@@ -210,6 +211,12 @@
frmGPS.cs
+
+ Form
+
+
+ frmKinect.cs
+
Form
@@ -529,6 +536,9 @@
frmGPS.cs
+
+ frmKinect.cs
+
frmMapa.cs
diff --git a/AgroBase/AgroBase/Forms/frmKinect.Designer.cs b/AgroBase/AgroBase/Forms/frmKinect.Designer.cs
new file mode 100644
index 000000000..6f088f1b6
--- /dev/null
+++ b/AgroBase/AgroBase/Forms/frmKinect.Designer.cs
@@ -0,0 +1,109 @@
+namespace AgroBase.Forms
+{
+ partial class frmKinect
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.picProfundidade = new System.Windows.Forms.PictureBox();
+ this.picRGB = new System.Windows.Forms.PictureBox();
+ this.trackBarAngle = new System.Windows.Forms.TrackBar();
+ this.gridDados = new System.Windows.Forms.DataGridView();
+ ((System.ComponentModel.ISupportInitialize)(this.picProfundidade)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.picRGB)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.trackBarAngle)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridDados)).BeginInit();
+ this.SuspendLayout();
+ //
+ // picProfundidade
+ //
+ this.picProfundidade.Location = new System.Drawing.Point(12, 57);
+ this.picProfundidade.Name = "picProfundidade";
+ this.picProfundidade.Size = new System.Drawing.Size(666, 569);
+ this.picProfundidade.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.picProfundidade.TabIndex = 0;
+ this.picProfundidade.TabStop = false;
+ //
+ // picRGB
+ //
+ this.picRGB.Location = new System.Drawing.Point(694, 57);
+ this.picRGB.Name = "picRGB";
+ this.picRGB.Size = new System.Drawing.Size(476, 396);
+ this.picRGB.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.picRGB.TabIndex = 1;
+ this.picRGB.TabStop = false;
+ //
+ // trackBarAngle
+ //
+ this.trackBarAngle.Location = new System.Drawing.Point(694, 459);
+ this.trackBarAngle.Name = "trackBarAngle";
+ this.trackBarAngle.Orientation = System.Windows.Forms.Orientation.Vertical;
+ this.trackBarAngle.Size = new System.Drawing.Size(56, 167);
+ this.trackBarAngle.TabIndex = 2;
+ this.trackBarAngle.TickFrequency = 5;
+ this.trackBarAngle.TickStyle = System.Windows.Forms.TickStyle.Both;
+ this.trackBarAngle.Scroll += new System.EventHandler(this.trackBarAngle_Scroll);
+ //
+ // gridDados
+ //
+ this.gridDados.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.gridDados.Location = new System.Drawing.Point(1188, 57);
+ this.gridDados.Name = "gridDados";
+ this.gridDados.RowHeadersWidth = 51;
+ this.gridDados.RowTemplate.Height = 24;
+ this.gridDados.Size = new System.Drawing.Size(360, 569);
+ this.gridDados.TabIndex = 4;
+ //
+ // frmKinect
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1560, 657);
+ this.Controls.Add(this.gridDados);
+ this.Controls.Add(this.trackBarAngle);
+ this.Controls.Add(this.picRGB);
+ this.Controls.Add(this.picProfundidade);
+ this.Name = "frmKinect";
+ this.Text = "frmKinect";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmKinect_FormClosing);
+ this.Load += new System.EventHandler(this.frmKinect_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.picProfundidade)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.picRGB)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.trackBarAngle)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridDados)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.PictureBox picProfundidade;
+ private System.Windows.Forms.PictureBox picRGB;
+ private System.Windows.Forms.TrackBar trackBarAngle;
+ private System.Windows.Forms.DataGridView gridDados;
+ }
+}
\ No newline at end of file
diff --git a/AgroBase/AgroBase/Forms/frmKinect.cs b/AgroBase/AgroBase/Forms/frmKinect.cs
new file mode 100644
index 000000000..07d1ba559
--- /dev/null
+++ b/AgroBase/AgroBase/Forms/frmKinect.cs
@@ -0,0 +1,426 @@
+using Microsoft.Kinect;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace AgroBase.Forms
+{
+ public partial class frmKinect : Form
+ {
+ private KinectSensor kinectSensor;
+
+
+ double dt = 0.5;
+ double[] velocidade = new double[3];
+ double[] aceleracaoAnterior = new double[3];
+ DateTime UltimaLeitura = DateTime.Now;
+ DateTime UltimaLeituraObstaculo = DateTime.Now;
+ List Obstaculos = new List();
+
+
+ public frmKinect()
+ {
+ InitializeComponent();
+ }
+
+ private void frmKinect_Load(object sender, EventArgs e)
+ {
+ // Inicialize o Kinect Sensor
+ kinectSensor = KinectSensor.KinectSensors.FirstOrDefault();
+
+ if (kinectSensor != null)
+ {
+ // Habilitar a câmera RGB
+ kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
+
+ // Habilitar a câmera de profundidade
+ kinectSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
+
+ // Associar eventos de captura de imagem
+ kinectSensor.AllFramesReady += KinectSensor_AllFramesReady;
+
+ // Iniciar o sensor
+ kinectSensor.Start();
+
+
+
+ trackBarAngle.Maximum = kinectSensor.MaxElevationAngle;
+ trackBarAngle.Minimum = kinectSensor.MinElevationAngle;
+ trackBarAngle.Value = kinectSensor.ElevationAngle;
+
+ gridDados.Columns.Clear();
+ gridDados.Rows.Clear();
+ gridDados.Columns.Add("clDado", "Dado");
+ gridDados.Columns.Add("clValor", "Valor");
+ gridDados.Rows.Add(new string[] { "Elevação", "0" });
+ gridDados.Rows.Add(new string[] { "Acelerômetro X", "0" });
+ gridDados.Rows.Add(new string[] { "Acelerômetro Y", "0" });
+ gridDados.Rows.Add(new string[] { "Acelerômetro Z", "0" });
+ gridDados.Rows.Add(new string[] { "Inclinação Frontal", "0" });
+ gridDados.Rows.Add(new string[] { "Inclinação Lateral", "0" });
+ gridDados.Rows.Add(new string[] { "Giro Lateral", "0" });
+ gridDados.Rows.Add(new string[] { "Velocidade X", "0" });
+ gridDados.Rows.Add(new string[] { "Velocidade Y", "0" });
+ gridDados.Rows.Add(new string[] { "Velocidade Z", "0" });
+ gridDados.Rows.Add(new string[] { "Colisão", "Não" });
+ }
+ else
+ {
+ MessageBox.Show("Kinect não detectado.");
+ }
+ }
+
+ private void KinectSensor_AllFramesReady(object sender, AllFramesReadyEventArgs e)
+ {
+ using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
+ using (DepthImageFrame depthFrame = e.OpenDepthImageFrame())
+ {
+ if (colorFrame == null || depthFrame == null)
+ return;
+
+ // Converter os quadros para Bitmaps
+ Bitmap colorBitmap = ConvertColorFrameToBitmap(colorFrame);
+ Bitmap depthBitmap = ConvertDepthFrameToBitmap(depthFrame);
+
+ // Exibir os Bitmaps nos Picture Boxes
+ picRGB.Image = colorBitmap;
+ //picProfundidade.Image = depthBitmap;
+
+ AtualizarGrid();
+
+ // Detectar obstáculos
+
+ Obstaculos = DetectarObstaculos(depthFrame);
+ // Desenhar border boxes nos obstáculos detectados
+ using (Graphics g = Graphics.FromImage(depthBitmap))
+ {
+ foreach (var obstaculo in Obstaculos)
+ {
+ DesenharBorderBox(g, obstaculo, depthFrame.Width, depthFrame.Height, picProfundidade);
+ }
+ }
+
+ picProfundidade.Image = depthBitmap;
+ }
+ }
+
+
+ private void AtualizarGrid()
+ {
+ if (UltimaLeitura.AddSeconds(dt) > DateTime.Now || kinectSensor.Status != KinectStatus.Connected)
+ {
+ return;
+ }
+ UltimaLeitura = DateTime.Now;
+
+ var a = kinectSensor.CoordinateMapper;
+
+ var Acelerometro = kinectSensor.AccelerometerGetCurrentReading();
+
+ double pitch = Math.Atan2(Acelerometro.Y, Math.Sqrt(Math.Pow(Acelerometro.X, 2) + Math.Pow(Acelerometro.Z, 2))) * (180 / Math.PI);
+ double roll = Math.Atan2(Acelerometro.X, Math.Sqrt(Math.Pow(Acelerometro.Y, 2) + Math.Pow(Acelerometro.Z, 2))) * (180 / Math.PI);
+ double yaw = Math.Atan2(Acelerometro.Z, Math.Sqrt(Math.Pow(Acelerometro.X, 2) + Math.Pow(Acelerometro.Y, 2))) * (180 / Math.PI);
+
+ aceleracaoAnterior[0] = Acelerometro.X;
+ aceleracaoAnterior[1] = Acelerometro.Y;
+ aceleracaoAnterior[2] = Acelerometro.Z;
+
+ // Loop para calcular a velocidade em cada eixo
+ velocidade[0] += (Acelerometro.X + aceleracaoAnterior[0]) / 2 * dt;
+ velocidade[1] += (Acelerometro.Y + aceleracaoAnterior[1]) / 2 * dt;
+ velocidade[2] += (Acelerometro.Z + aceleracaoAnterior[2]) / 2 * dt;
+
+ double totalAcceleration = Math.Sqrt(Math.Pow(Acelerometro.X, 2) + Math.Pow(Acelerometro.Y, 2) + Math.Pow(Acelerometro.Z, 2));
+ double threshold = 1.2;
+
+ gridDados.Rows[0].Cells[1].Value = kinectSensor.ElevationAngle;
+ gridDados.Rows[1].Cells[1].Value = Acelerometro.X;
+ gridDados.Rows[2].Cells[1].Value = Acelerometro.Y;
+ gridDados.Rows[3].Cells[1].Value = Acelerometro.Z;
+ gridDados.Rows[4].Cells[1].Value = pitch;
+ gridDados.Rows[5].Cells[1].Value = roll;
+ gridDados.Rows[6].Cells[1].Value = yaw;
+ gridDados.Rows[7].Cells[1].Value = velocidade[0];
+ gridDados.Rows[8].Cells[1].Value = velocidade[1];
+ gridDados.Rows[9].Cells[1].Value = velocidade[2];
+ gridDados.Rows[10].Cells[1].Value = totalAcceleration > threshold ? "Sim" : "Não";
+ }
+
+ private void frmKinect_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (kinectSensor != null)
+ {
+ kinectSensor.Stop();
+ }
+ }
+
+
+ private Bitmap ConvertColorFrameToBitmap(ColorImageFrame colorFrame)
+ {
+ if (colorFrame == null)
+ return null;
+
+ // Criar um array para os pixels de cor
+ byte[] pixels = new byte[colorFrame.PixelDataLength];
+
+ // Copiar os pixels do quadro para o array
+ colorFrame.CopyPixelDataTo(pixels);
+
+ // Criar um bitmap
+ Bitmap bitmap = new Bitmap(colorFrame.Width, colorFrame.Height, PixelFormat.Format32bppRgb);
+
+ // Bloquear o bitmap para escrita
+ BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, colorFrame.Width, colorFrame.Height), ImageLockMode.WriteOnly, bitmap.PixelFormat);
+
+ // Copiar os pixels para o bitmap
+ IntPtr ptr = bitmapData.Scan0;
+ Marshal.Copy(pixels, 0, ptr, pixels.Length);
+
+ // Desbloquear o bitmap
+ bitmap.UnlockBits(bitmapData);
+
+ return bitmap;
+ }
+
+ private Bitmap ConvertDepthFrameToBitmap(DepthImageFrame depthFrame)
+ {
+ if (depthFrame == null)
+ return null;
+
+ // Criar um array para os pixels de profundidade
+ short[] depthPixels = new short[depthFrame.PixelDataLength];
+
+ // Copiar os pixels do quadro para o array
+ depthFrame.CopyPixelDataTo(depthPixels);
+
+ // Criar um bitmap
+ Bitmap bitmap = new Bitmap(depthFrame.Width, depthFrame.Height, PixelFormat.Format32bppRgb);
+
+ // Definir as cores para a imagem de profundidade
+ Color[] depthColors = new Color[depthPixels.Length];
+
+ // Mapear os valores de profundidade para as cores
+ for (int i = 0; i < depthPixels.Length; i++)
+ {
+ // Obter o valor de profundidade em metros
+ float depthInMeters = (float)depthPixels[i] / 1000.0f;
+
+ // Mapear o valor de profundidade para uma cor de escala de cinza
+ byte intensity = (byte)(255 - (255 * Math.Min(1.0f, depthInMeters / 4.0f)));
+
+ // Criar uma cor de escala de cinza
+ depthColors[i] = Color.FromArgb(intensity, intensity, intensity);
+ }
+
+ // Bloquear o bitmap para escrita
+ BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, depthFrame.Width, depthFrame.Height), ImageLockMode.WriteOnly, bitmap.PixelFormat);
+
+ // Copiar os pixels para o bitmap
+ byte[] pixelData = new byte[depthColors.Length * 4]; // RGBA (4 bytes por pixel)
+ for (int i = 0; i < depthColors.Length; i++)
+ {
+ pixelData[i * 4] = depthColors[i].R;
+ pixelData[i * 4 + 1] = depthColors[i].G;
+ pixelData[i * 4 + 2] = depthColors[i].B;
+ pixelData[i * 4 + 3] = 255; // Alpha
+ }
+ Marshal.Copy(pixelData, 0, bitmapData.Scan0, pixelData.Length);
+
+ // Desbloquear o bitmap
+ bitmap.UnlockBits(bitmapData);
+
+ return bitmap;
+ }
+
+ private void trackBarAngle_Scroll(object sender, EventArgs e)
+ {
+ if (kinectSensor != null && kinectSensor.Status == KinectStatus.Connected)
+ {
+ try
+ {
+ kinectSensor.ElevationAngle = trackBarAngle.Value;
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ else
+ {
+ MessageBox.Show("O Kinect não está conectado ou não está em um estado adequado.");
+ }
+ }
+
+
+
+ private List DetectarObstaculos(DepthImageFrame depthFrame)
+ {
+ if (UltimaLeituraObstaculo.AddSeconds(dt) > DateTime.Now || kinectSensor.Status != KinectStatus.Connected)
+ {
+ return Obstaculos;
+ }
+ UltimaLeituraObstaculo = DateTime.Now;
+
+ // Pré-processamento: Converter dados brutos em matriz 2D
+ float[,] depthMatrix = ConvertDepthFrameToMatrix(depthFrame);
+
+ // Segmentação: Aplicar limiarização adaptativa para identificar obstáculos
+ float limiarDeProfundidade = 3000f; // 3 metros
+ float[,] segmentedMatrix = AplicarLimiarizacao(depthMatrix, limiarDeProfundidade);
+
+ // Agrupamento: Identificar regiões contíguas que representam obstáculos
+ List _Obstaculos = IdentificarObstaculos(depthMatrix, segmentedMatrix);
+
+ return _Obstaculos;
+ }
+
+ private float[,] ConvertDepthFrameToMatrix(DepthImageFrame depthFrame)
+ {
+ // Inicializar a matriz 2D com as dimensões do frame de profundidade
+ int width = depthFrame.Width;
+ int height = depthFrame.Height;
+ float[,] depthMatrix = new float[width, height];
+ short[] rawDepthData = new short[depthFrame.PixelDataLength];
+ depthFrame.CopyPixelDataTo(rawDepthData);
+
+ for (int i = 0; i < rawDepthData.Length; i++)
+ {
+ int x = i % width;
+ int y = i / width;
+ depthMatrix[x, y] = (rawDepthData[i] >> DepthImageFrame.PlayerIndexBitmaskWidth) / 1000.0f;
+ }
+
+ return depthMatrix;
+ }
+
+ private float[,] AplicarLimiarizacao(float[,] depthMatrix, float limiar)
+ {
+ int width = depthMatrix.GetLength(0);
+ int height = depthMatrix.GetLength(1);
+ float[,] segmentedMatrix = new float[width, height];
+
+ for (int x = 0; x < width; x++)
+ {
+ for (int y = 0; y < height; y++)
+ {
+ float distancia = depthMatrix[x, y];
+ // Aplicar limiar: Se a profundidade for menor que o limiar, considerar como obstáculo (1), senão como fundo (0)
+ segmentedMatrix[x, y] = distancia > 0 && distancia < limiar ? 1 : 0;
+ }
+ }
+
+ return segmentedMatrix;
+ }
+
+ private List IdentificarObstaculos(float[,] depthMatrix, float[,] segmentedMatrix)
+ {
+ int width = segmentedMatrix.GetLength(0);
+ int height = segmentedMatrix.GetLength(1);
+ bool[,] visited = new bool[width, height];
+ List obstaculos = new List();
+
+ for (int x = 0; x < width; x++)
+ {
+ for (int y = 0; y < height; y++)
+ {
+ if (segmentedMatrix[x, y] == 1 && !visited[x, y])
+ {
+ Obstaculo obstaculo = ExplorarObstaculo(depthMatrix, segmentedMatrix, visited, x, y, width, height);
+ if (obstaculo != null)
+ {
+ obstaculos.Add(obstaculo);
+ }
+ }
+ }
+ }
+
+ return obstaculos;
+ }
+
+ private Obstaculo ExplorarObstaculo(float[,] depths, float[,] matrix, bool[,] visited, int startX, int startY, int width, int height)
+ {
+ Queue<(int, int)> pixels = new Queue<(int, int)>();
+ pixels.Enqueue((startX, startY));
+ visited[startX, startY] = true;
+
+ int minX = startX, maxX = startX, minY = startY, maxY = startY;
+ float totalDepth = 0;
+ int count = 0;
+
+ while (pixels.Count > 0)
+ {
+ (int x, int y) = pixels.Dequeue();
+ totalDepth += depths[x, y];
+ count++;
+
+ minX = Math.Min(minX, x);
+ maxX = Math.Max(maxX, x);
+ minY = Math.Min(minY, y);
+ maxY = Math.Max(maxY, y);
+
+ // Verificar vizinhos
+ for (int nx = Math.Max(x - 1, 0); nx <= Math.Min(x + 1, width - 1); nx++)
+ {
+ for (int ny = Math.Max(y - 1, 0); ny <= Math.Min(y + 1, height - 1); ny++)
+ {
+ if (matrix[nx, ny] == 1 && !visited[nx, ny])
+ {
+ pixels.Enqueue((nx, ny));
+ visited[nx, ny] = true;
+ }
+ }
+ }
+ }
+
+ if (count > 0) // Verifica se realmente encontrou um obstáculo
+ {
+ return new Obstaculo
+ {
+ X = minX,
+ Y = minY,
+ Width = maxX - minX + 1,
+ Height = maxY - minY + 1,
+ Distance = totalDepth / count // Média da profundidade
+ };
+ }
+
+ return null;
+ }
+
+
+ private void DesenharBorderBox(Graphics g, Obstaculo obstaculo, int originalWidth, int originalHeight, PictureBox picBox)
+ {
+ // Calcular o fator de escala
+ float scaleX = (float)picBox.Width / originalWidth;
+ float scaleY = (float)picBox.Height / originalHeight;
+
+ // Ajustar as coordenadas e dimensões do obstáculo de acordo com a escala
+ int adjustedX = (int)(obstaculo.X * scaleX);
+ int adjustedY = (int)(obstaculo.Y * scaleY);
+ int adjustedWidth = (int)(obstaculo.Width * scaleX);
+ int adjustedHeight = (int)(obstaculo.Height * scaleY);
+
+ // Definir a cor e a espessura da linha da border box
+ Pen pen = new Pen(Color.Red, 2);
+
+ // Desenhar o retângulo ao redor do obstáculo
+ g.DrawRectangle(pen, adjustedX, adjustedY, adjustedWidth, adjustedHeight);
+ }
+
+
+ }
+
+
+ class Obstaculo
+ {
+ public int X { get; set; }
+ public int Y { get; set; }
+ public int Width { get; set; }
+ public int Height { get; set; }
+ public float Distance { get; set; }
+ }
+}
diff --git a/AgroBase/AgroBase/Forms/frmKinect.resx b/AgroBase/AgroBase/Forms/frmKinect.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/AgroBase/AgroBase/Forms/frmKinect.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/AgroBase/AgroBase/Forms/frmPrincipal.Designer.cs b/AgroBase/AgroBase/Forms/frmPrincipal.Designer.cs
index 02cdbada2..5bd18f6e6 100644
--- a/AgroBase/AgroBase/Forms/frmPrincipal.Designer.cs
+++ b/AgroBase/AgroBase/Forms/frmPrincipal.Designer.cs
@@ -90,6 +90,7 @@ namespace AgroBase
this.btnIniciarOperacao = new System.Windows.Forms.Button();
this.lblModoOperacao = new System.Windows.Forms.Label();
this.cmbModoOperacao = new System.Windows.Forms.ComboBox();
+ this.btnKinect = new System.Windows.Forms.Button();
this.gpbAcoes.SuspendLayout();
this.erroStrip.SuspendLayout();
this.pnlLateral.SuspendLayout();
@@ -114,11 +115,11 @@ namespace AgroBase
this.gpbAcoes.Controls.Add(this.erroStrip);
this.gpbAcoes.Controls.Add(this.pnlLateral);
this.gpbAcoes.Dock = System.Windows.Forms.DockStyle.Right;
- this.gpbAcoes.Location = new System.Drawing.Point(441, 0);
- this.gpbAcoes.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbAcoes.Location = new System.Drawing.Point(588, 0);
+ this.gpbAcoes.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbAcoes.Name = "gpbAcoes";
- this.gpbAcoes.Padding = new System.Windows.Forms.Padding(2);
- this.gpbAcoes.Size = new System.Drawing.Size(587, 609);
+ this.gpbAcoes.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbAcoes.Size = new System.Drawing.Size(783, 750);
this.gpbAcoes.TabIndex = 0;
this.gpbAcoes.TabStop = false;
this.gpbAcoes.Text = "Conexão";
@@ -128,17 +129,17 @@ namespace AgroBase
this.erroStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
this.erroStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.lblStripErro});
- this.erroStrip.Location = new System.Drawing.Point(2, 585);
+ this.erroStrip.Location = new System.Drawing.Point(3, 722);
this.erroStrip.Name = "erroStrip";
- this.erroStrip.Padding = new System.Windows.Forms.Padding(1, 0, 10, 0);
- this.erroStrip.Size = new System.Drawing.Size(583, 22);
+ this.erroStrip.Padding = new System.Windows.Forms.Padding(1, 0, 13, 0);
+ this.erroStrip.Size = new System.Drawing.Size(777, 26);
this.erroStrip.TabIndex = 1;
this.erroStrip.Text = "statusStrip1";
//
// lblStripErro
//
this.lblStripErro.Name = "lblStripErro";
- this.lblStripErro.Size = new System.Drawing.Size(49, 17);
+ this.lblStripErro.Size = new System.Drawing.Size(62, 20);
this.lblStripErro.Text = "Iniciado";
//
// pnlLateral
@@ -152,18 +153,19 @@ namespace AgroBase
this.pnlLateral.Controls.Add(this.gpbNovoDispositivo);
this.pnlLateral.Controls.Add(this.btnNovoDispositivo);
this.pnlLateral.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pnlLateral.Location = new System.Drawing.Point(2, 15);
- this.pnlLateral.Margin = new System.Windows.Forms.Padding(2);
+ this.pnlLateral.Location = new System.Drawing.Point(3, 17);
+ this.pnlLateral.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.pnlLateral.Name = "pnlLateral";
- this.pnlLateral.Size = new System.Drawing.Size(583, 592);
+ this.pnlLateral.Size = new System.Drawing.Size(777, 731);
this.pnlLateral.TabIndex = 0;
//
// chbConexaoautomatica
//
this.chbConexaoautomatica.AutoSize = true;
- this.chbConexaoautomatica.Location = new System.Drawing.Point(172, 28);
+ this.chbConexaoautomatica.Location = new System.Drawing.Point(229, 34);
+ this.chbConexaoautomatica.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chbConexaoautomatica.Name = "chbConexaoautomatica";
- this.chbConexaoautomatica.Size = new System.Drawing.Size(123, 17);
+ this.chbConexaoautomatica.Size = new System.Drawing.Size(152, 20);
this.chbConexaoautomatica.TabIndex = 21;
this.chbConexaoautomatica.Text = "Conexão automática";
this.chbConexaoautomatica.UseVisualStyleBackColor = true;
@@ -171,11 +173,11 @@ namespace AgroBase
// gpbDispositivos
//
this.gpbDispositivos.Controls.Add(this.lstDisponiveis);
- this.gpbDispositivos.Location = new System.Drawing.Point(161, 78);
- this.gpbDispositivos.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbDispositivos.Location = new System.Drawing.Point(215, 96);
+ this.gpbDispositivos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbDispositivos.Name = "gpbDispositivos";
- this.gpbDispositivos.Padding = new System.Windows.Forms.Padding(2);
- this.gpbDispositivos.Size = new System.Drawing.Size(413, 133);
+ this.gpbDispositivos.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbDispositivos.Size = new System.Drawing.Size(551, 164);
this.gpbDispositivos.TabIndex = 3;
this.gpbDispositivos.TabStop = false;
this.gpbDispositivos.Text = "Dispositivos disponíveis";
@@ -183,20 +185,20 @@ namespace AgroBase
// lstDisponiveis
//
this.lstDisponiveis.HideSelection = false;
- this.lstDisponiveis.Location = new System.Drawing.Point(11, 20);
- this.lstDisponiveis.Margin = new System.Windows.Forms.Padding(2);
+ this.lstDisponiveis.Location = new System.Drawing.Point(15, 25);
+ this.lstDisponiveis.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.lstDisponiveis.Name = "lstDisponiveis";
- this.lstDisponiveis.Size = new System.Drawing.Size(252, 102);
+ this.lstDisponiveis.Size = new System.Drawing.Size(335, 125);
this.lstDisponiveis.TabIndex = 0;
this.lstDisponiveis.UseCompatibleStateImageBehavior = false;
this.lstDisponiveis.View = System.Windows.Forms.View.List;
//
// btnRemover
//
- this.btnRemover.Location = new System.Drawing.Point(87, 50);
- this.btnRemover.Margin = new System.Windows.Forms.Padding(2);
+ this.btnRemover.Location = new System.Drawing.Point(116, 62);
+ this.btnRemover.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnRemover.Name = "btnRemover";
- this.btnRemover.Size = new System.Drawing.Size(62, 23);
+ this.btnRemover.Size = new System.Drawing.Size(83, 28);
this.btnRemover.TabIndex = 12;
this.btnRemover.Text = "Remover";
this.btnRemover.UseVisualStyleBackColor = true;
@@ -205,10 +207,9 @@ namespace AgroBase
// lblDispositivos
//
this.lblDispositivos.AutoSize = true;
- this.lblDispositivos.Location = new System.Drawing.Point(20, 10);
- this.lblDispositivos.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblDispositivos.Location = new System.Drawing.Point(27, 12);
this.lblDispositivos.Name = "lblDispositivos";
- this.lblDispositivos.Size = new System.Drawing.Size(63, 13);
+ this.lblDispositivos.Size = new System.Drawing.Size(81, 16);
this.lblDispositivos.TabIndex = 11;
this.lblDispositivos.Text = "Dispositivos";
//
@@ -216,10 +217,10 @@ namespace AgroBase
//
this.cmbDispositivos.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbDispositivos.FormattingEnabled = true;
- this.cmbDispositivos.Location = new System.Drawing.Point(22, 26);
- this.cmbDispositivos.Margin = new System.Windows.Forms.Padding(2);
+ this.cmbDispositivos.Location = new System.Drawing.Point(29, 32);
+ this.cmbDispositivos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDispositivos.Name = "cmbDispositivos";
- this.cmbDispositivos.Size = new System.Drawing.Size(128, 21);
+ this.cmbDispositivos.Size = new System.Drawing.Size(169, 24);
this.cmbDispositivos.TabIndex = 10;
this.cmbDispositivos.SelectedIndexChanged += new System.EventHandler(this.cmbDispositivos_SelectedIndexChanged);
//
@@ -231,11 +232,11 @@ namespace AgroBase
this.gpbNovoDispositivo.Controls.Add(this.lblDescricao);
this.gpbNovoDispositivo.Controls.Add(this.lblTipo);
this.gpbNovoDispositivo.Enabled = false;
- this.gpbNovoDispositivo.Location = new System.Drawing.Point(16, 78);
- this.gpbNovoDispositivo.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbNovoDispositivo.Location = new System.Drawing.Point(21, 96);
+ this.gpbNovoDispositivo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbNovoDispositivo.Name = "gpbNovoDispositivo";
- this.gpbNovoDispositivo.Padding = new System.Windows.Forms.Padding(2);
- this.gpbNovoDispositivo.Size = new System.Drawing.Size(141, 133);
+ this.gpbNovoDispositivo.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbNovoDispositivo.Size = new System.Drawing.Size(188, 164);
this.gpbNovoDispositivo.TabIndex = 9;
this.gpbNovoDispositivo.TabStop = false;
this.gpbNovoDispositivo.Text = "Novo Dispositivo";
@@ -244,18 +245,18 @@ namespace AgroBase
//
this.cmbTipos.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbTipos.FormattingEnabled = true;
- this.cmbTipos.Location = new System.Drawing.Point(7, 37);
- this.cmbTipos.Margin = new System.Windows.Forms.Padding(2);
+ this.cmbTipos.Location = new System.Drawing.Point(9, 46);
+ this.cmbTipos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbTipos.Name = "cmbTipos";
- this.cmbTipos.Size = new System.Drawing.Size(128, 21);
+ this.cmbTipos.Size = new System.Drawing.Size(169, 24);
this.cmbTipos.TabIndex = 2;
//
// btnSalvar
//
- this.btnSalvar.Location = new System.Drawing.Point(7, 101);
- this.btnSalvar.Margin = new System.Windows.Forms.Padding(2);
+ this.btnSalvar.Location = new System.Drawing.Point(9, 124);
+ this.btnSalvar.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnSalvar.Name = "btnSalvar";
- this.btnSalvar.Size = new System.Drawing.Size(127, 20);
+ this.btnSalvar.Size = new System.Drawing.Size(169, 25);
this.btnSalvar.TabIndex = 9;
this.btnSalvar.Text = "Salvar";
this.btnSalvar.UseVisualStyleBackColor = true;
@@ -263,38 +264,36 @@ namespace AgroBase
//
// txtDescricao
//
- this.txtDescricao.Location = new System.Drawing.Point(7, 76);
- this.txtDescricao.Margin = new System.Windows.Forms.Padding(2);
+ this.txtDescricao.Location = new System.Drawing.Point(9, 94);
+ this.txtDescricao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtDescricao.Name = "txtDescricao";
- this.txtDescricao.Size = new System.Drawing.Size(128, 20);
+ this.txtDescricao.Size = new System.Drawing.Size(169, 22);
this.txtDescricao.TabIndex = 3;
//
// lblDescricao
//
this.lblDescricao.AutoSize = true;
- this.lblDescricao.Location = new System.Drawing.Point(4, 60);
- this.lblDescricao.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblDescricao.Location = new System.Drawing.Point(5, 74);
this.lblDescricao.Name = "lblDescricao";
- this.lblDescricao.Size = new System.Drawing.Size(55, 13);
+ this.lblDescricao.Size = new System.Drawing.Size(69, 16);
this.lblDescricao.TabIndex = 2;
this.lblDescricao.Text = "Descrição";
//
// lblTipo
//
this.lblTipo.AutoSize = true;
- this.lblTipo.Location = new System.Drawing.Point(4, 20);
- this.lblTipo.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblTipo.Location = new System.Drawing.Point(5, 25);
this.lblTipo.Name = "lblTipo";
- this.lblTipo.Size = new System.Drawing.Size(28, 13);
+ this.lblTipo.Size = new System.Drawing.Size(35, 16);
this.lblTipo.TabIndex = 0;
this.lblTipo.Text = "Tipo";
//
// btnNovoDispositivo
//
- this.btnNovoDispositivo.Location = new System.Drawing.Point(22, 50);
- this.btnNovoDispositivo.Margin = new System.Windows.Forms.Padding(2);
+ this.btnNovoDispositivo.Location = new System.Drawing.Point(29, 62);
+ this.btnNovoDispositivo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnNovoDispositivo.Name = "btnNovoDispositivo";
- this.btnNovoDispositivo.Size = new System.Drawing.Size(60, 23);
+ this.btnNovoDispositivo.Size = new System.Drawing.Size(80, 28);
this.btnNovoDispositivo.TabIndex = 8;
this.btnNovoDispositivo.Text = "Novo dispositivo";
this.btnNovoDispositivo.UseVisualStyleBackColor = true;
@@ -309,41 +308,41 @@ namespace AgroBase
this.lblStripOperacao,
this.lblStripOperacaoStatus,
this.lblStripMqtt});
- this.generalStrip.Location = new System.Drawing.Point(0, 587);
+ this.generalStrip.Location = new System.Drawing.Point(0, 724);
this.generalStrip.Name = "generalStrip";
- this.generalStrip.Padding = new System.Windows.Forms.Padding(1, 0, 10, 0);
- this.generalStrip.Size = new System.Drawing.Size(441, 22);
+ this.generalStrip.Padding = new System.Windows.Forms.Padding(1, 0, 13, 0);
+ this.generalStrip.Size = new System.Drawing.Size(588, 26);
this.generalStrip.TabIndex = 1;
this.generalStrip.Text = "statusStrip1";
//
// lblStripJoystick
//
this.lblStripJoystick.Name = "lblStripJoystick";
- this.lblStripJoystick.Size = new System.Drawing.Size(129, 17);
+ this.lblStripJoystick.Size = new System.Drawing.Size(161, 20);
this.lblStripJoystick.Text = "Joystick: Desconectado";
//
// lblStripJoystickComando
//
this.lblStripJoystickComando.Name = "lblStripJoystickComando";
- this.lblStripJoystickComando.Size = new System.Drawing.Size(16, 17);
+ this.lblStripJoystickComando.Size = new System.Drawing.Size(18, 20);
this.lblStripJoystickComando.Text = "...";
//
// lblStripOperacao
//
this.lblStripOperacao.Name = "lblStripOperacao";
- this.lblStripOperacao.Size = new System.Drawing.Size(104, 17);
+ this.lblStripOperacao.Size = new System.Drawing.Size(130, 20);
this.lblStripOperacao.Text = "Operação: Manual";
//
// lblStripOperacaoStatus
//
this.lblStripOperacaoStatus.Name = "lblStripOperacaoStatus";
- this.lblStripOperacaoStatus.Size = new System.Drawing.Size(74, 17);
+ this.lblStripOperacaoStatus.Size = new System.Drawing.Size(94, 20);
this.lblStripOperacaoStatus.Text = "Não iniciado";
//
// lblStripMqtt
//
this.lblStripMqtt.Name = "lblStripMqtt";
- this.lblStripMqtt.Size = new System.Drawing.Size(119, 15);
+ this.lblStripMqtt.Size = new System.Drawing.Size(150, 20);
this.lblStripMqtt.Text = "MQTT: Desconectado";
//
// gpbMovimentacao
@@ -352,11 +351,11 @@ namespace AgroBase
this.gpbMovimentacao.Controls.Add(this.trkKmh);
this.gpbMovimentacao.Controls.Add(this.trkRPM);
this.gpbMovimentacao.Controls.Add(this.lblRPM);
- this.gpbMovimentacao.Location = new System.Drawing.Point(9, 63);
- this.gpbMovimentacao.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbMovimentacao.Location = new System.Drawing.Point(12, 78);
+ this.gpbMovimentacao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbMovimentacao.Name = "gpbMovimentacao";
- this.gpbMovimentacao.Padding = new System.Windows.Forms.Padding(2);
- this.gpbMovimentacao.Size = new System.Drawing.Size(330, 85);
+ this.gpbMovimentacao.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbMovimentacao.Size = new System.Drawing.Size(440, 105);
this.gpbMovimentacao.TabIndex = 2;
this.gpbMovimentacao.TabStop = false;
this.gpbMovimentacao.Text = "Controle Movimentação";
@@ -364,20 +363,19 @@ namespace AgroBase
// lblKmh
//
this.lblKmh.AutoSize = true;
- this.lblKmh.Location = new System.Drawing.Point(166, 20);
- this.lblKmh.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblKmh.Location = new System.Drawing.Point(221, 25);
this.lblKmh.Name = "lblKmh";
- this.lblKmh.Size = new System.Drawing.Size(100, 13);
+ this.lblKmh.Size = new System.Drawing.Size(122, 16);
this.lblKmh.TabIndex = 23;
this.lblKmh.Text = "Velocidade: 3 km/h";
//
// trkKmh
//
- this.trkKmh.Location = new System.Drawing.Point(168, 37);
- this.trkKmh.Margin = new System.Windows.Forms.Padding(2);
+ this.trkKmh.Location = new System.Drawing.Point(224, 46);
+ this.trkKmh.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.trkKmh.Maximum = 34;
this.trkKmh.Name = "trkKmh";
- this.trkKmh.Size = new System.Drawing.Size(158, 45);
+ this.trkKmh.Size = new System.Drawing.Size(211, 56);
this.trkKmh.TabIndex = 22;
this.trkKmh.TickFrequency = 2;
this.trkKmh.Value = 3;
@@ -385,12 +383,12 @@ namespace AgroBase
//
// trkRPM
//
- this.trkRPM.Location = new System.Drawing.Point(4, 37);
- this.trkRPM.Margin = new System.Windows.Forms.Padding(2);
+ this.trkRPM.Location = new System.Drawing.Point(5, 46);
+ this.trkRPM.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.trkRPM.Maximum = 500;
this.trkRPM.Minimum = 5;
this.trkRPM.Name = "trkRPM";
- this.trkRPM.Size = new System.Drawing.Size(158, 45);
+ this.trkRPM.Size = new System.Drawing.Size(211, 56);
this.trkRPM.TabIndex = 20;
this.trkRPM.TickFrequency = 20;
this.trkRPM.Value = 5;
@@ -399,20 +397,19 @@ namespace AgroBase
// lblRPM
//
this.lblRPM.AutoSize = true;
- this.lblRPM.Location = new System.Drawing.Point(2, 20);
- this.lblRPM.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblRPM.Location = new System.Drawing.Point(3, 25);
this.lblRPM.Name = "lblRPM";
- this.lblRPM.Size = new System.Drawing.Size(43, 13);
+ this.lblRPM.Size = new System.Drawing.Size(50, 16);
this.lblRPM.TabIndex = 21;
this.lblRPM.Text = "RPM: 5";
//
// tkbAngulo
//
- this.tkbAngulo.Location = new System.Drawing.Point(4, 95);
- this.tkbAngulo.Margin = new System.Windows.Forms.Padding(2);
+ this.tkbAngulo.Location = new System.Drawing.Point(5, 117);
+ this.tkbAngulo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.tkbAngulo.Maximum = 180;
this.tkbAngulo.Name = "tkbAngulo";
- this.tkbAngulo.Size = new System.Drawing.Size(314, 45);
+ this.tkbAngulo.Size = new System.Drawing.Size(419, 56);
this.tkbAngulo.TabIndex = 17;
this.tkbAngulo.TickFrequency = 5;
this.tkbAngulo.ValueChanged += new System.EventHandler(this.tkbRampa_ValueChanged);
@@ -420,31 +417,29 @@ namespace AgroBase
// lblAngulo
//
this.lblAngulo.AutoSize = true;
- this.lblAngulo.Location = new System.Drawing.Point(2, 79);
- this.lblAngulo.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblAngulo.Location = new System.Drawing.Point(3, 97);
this.lblAngulo.Name = "lblAngulo";
- this.lblAngulo.Size = new System.Drawing.Size(56, 13);
+ this.lblAngulo.Size = new System.Drawing.Size(67, 16);
this.lblAngulo.TabIndex = 16;
this.lblAngulo.Text = "Angulo: 0º";
//
// lblVelocidade
//
this.lblVelocidade.AutoSize = true;
- this.lblVelocidade.Location = new System.Drawing.Point(2, 19);
- this.lblVelocidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblVelocidade.Location = new System.Drawing.Point(3, 23);
this.lblVelocidade.Name = "lblVelocidade";
- this.lblVelocidade.Size = new System.Drawing.Size(80, 13);
+ this.lblVelocidade.Size = new System.Drawing.Size(102, 16);
this.lblVelocidade.TabIndex = 15;
this.lblVelocidade.Text = "Velocidade: 1%";
//
// tkbVelocidade
//
- this.tkbVelocidade.Location = new System.Drawing.Point(4, 35);
- this.tkbVelocidade.Margin = new System.Windows.Forms.Padding(2);
+ this.tkbVelocidade.Location = new System.Drawing.Point(5, 43);
+ this.tkbVelocidade.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.tkbVelocidade.Maximum = 100;
this.tkbVelocidade.Minimum = 1;
this.tkbVelocidade.Name = "tkbVelocidade";
- this.tkbVelocidade.Size = new System.Drawing.Size(314, 45);
+ this.tkbVelocidade.Size = new System.Drawing.Size(419, 56);
this.tkbVelocidade.TabIndex = 14;
this.tkbVelocidade.TickFrequency = 5;
this.tkbVelocidade.Value = 1;
@@ -452,10 +447,10 @@ namespace AgroBase
//
// btnVer
//
- this.btnVer.Location = new System.Drawing.Point(256, 20);
- this.btnVer.Margin = new System.Windows.Forms.Padding(2);
+ this.btnVer.Location = new System.Drawing.Point(341, 25);
+ this.btnVer.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnVer.Name = "btnVer";
- this.btnVer.Size = new System.Drawing.Size(63, 20);
+ this.btnVer.Size = new System.Drawing.Size(84, 25);
this.btnVer.TabIndex = 13;
this.btnVer.Text = "Ver";
this.btnVer.UseVisualStyleBackColor = true;
@@ -463,10 +458,10 @@ namespace AgroBase
//
// btnJoyAtt
//
- this.btnJoyAtt.Location = new System.Drawing.Point(121, 20);
- this.btnJoyAtt.Margin = new System.Windows.Forms.Padding(2);
+ this.btnJoyAtt.Location = new System.Drawing.Point(161, 25);
+ this.btnJoyAtt.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnJoyAtt.Name = "btnJoyAtt";
- this.btnJoyAtt.Size = new System.Drawing.Size(63, 20);
+ this.btnJoyAtt.Size = new System.Drawing.Size(84, 25);
this.btnJoyAtt.TabIndex = 12;
this.btnJoyAtt.Text = "Atualizar";
this.btnJoyAtt.UseVisualStyleBackColor = true;
@@ -474,10 +469,10 @@ namespace AgroBase
//
// btnJoyEdt
//
- this.btnJoyEdt.Location = new System.Drawing.Point(188, 20);
- this.btnJoyEdt.Margin = new System.Windows.Forms.Padding(2);
+ this.btnJoyEdt.Location = new System.Drawing.Point(251, 25);
+ this.btnJoyEdt.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnJoyEdt.Name = "btnJoyEdt";
- this.btnJoyEdt.Size = new System.Drawing.Size(63, 20);
+ this.btnJoyEdt.Size = new System.Drawing.Size(84, 25);
this.btnJoyEdt.TabIndex = 11;
this.btnJoyEdt.Text = "Editar";
this.btnJoyEdt.UseVisualStyleBackColor = true;
@@ -487,10 +482,10 @@ namespace AgroBase
//
this.cmbJoysticks.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbJoysticks.FormattingEnabled = true;
- this.cmbJoysticks.Location = new System.Drawing.Point(4, 21);
- this.cmbJoysticks.Margin = new System.Windows.Forms.Padding(2);
+ this.cmbJoysticks.Location = new System.Drawing.Point(5, 26);
+ this.cmbJoysticks.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbJoysticks.Name = "cmbJoysticks";
- this.cmbJoysticks.Size = new System.Drawing.Size(112, 21);
+ this.cmbJoysticks.Size = new System.Drawing.Size(148, 24);
this.cmbJoysticks.TabIndex = 3;
//
// timerDispositivos
@@ -505,11 +500,11 @@ namespace AgroBase
| System.Windows.Forms.AnchorStyles.Right)));
this.gpbSensoriamento.Controls.Add(this.lblSenMotores);
this.gpbSensoriamento.Controls.Add(this.gridSenMotores);
- this.gpbSensoriamento.Location = new System.Drawing.Point(9, 413);
- this.gpbSensoriamento.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbSensoriamento.Location = new System.Drawing.Point(12, 508);
+ this.gpbSensoriamento.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbSensoriamento.Name = "gpbSensoriamento";
- this.gpbSensoriamento.Padding = new System.Windows.Forms.Padding(2);
- this.gpbSensoriamento.Size = new System.Drawing.Size(428, 172);
+ this.gpbSensoriamento.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbSensoriamento.Size = new System.Drawing.Size(571, 212);
this.gpbSensoriamento.TabIndex = 13;
this.gpbSensoriamento.TabStop = false;
this.gpbSensoriamento.Text = "Sensoriamento";
@@ -517,10 +512,9 @@ namespace AgroBase
// lblSenMotores
//
this.lblSenMotores.AutoSize = true;
- this.lblSenMotores.Location = new System.Drawing.Point(9, 19);
- this.lblSenMotores.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblSenMotores.Location = new System.Drawing.Point(12, 23);
this.lblSenMotores.Name = "lblSenMotores";
- this.lblSenMotores.Size = new System.Drawing.Size(45, 13);
+ this.lblSenMotores.Size = new System.Drawing.Size(56, 16);
this.lblSenMotores.TabIndex = 1;
this.lblSenMotores.Text = "Motores";
//
@@ -530,20 +524,20 @@ namespace AgroBase
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gridSenMotores.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.gridSenMotores.Location = new System.Drawing.Point(4, 35);
- this.gridSenMotores.Margin = new System.Windows.Forms.Padding(2);
+ this.gridSenMotores.Location = new System.Drawing.Point(5, 43);
+ this.gridSenMotores.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gridSenMotores.Name = "gridSenMotores";
this.gridSenMotores.RowHeadersWidth = 51;
this.gridSenMotores.RowTemplate.Height = 24;
- this.gridSenMotores.Size = new System.Drawing.Size(419, 132);
+ this.gridSenMotores.Size = new System.Drawing.Size(559, 162);
this.gridSenMotores.TabIndex = 0;
//
// btnDiagnosticos
//
- this.btnDiagnosticos.Location = new System.Drawing.Point(4, 17);
- this.btnDiagnosticos.Margin = new System.Windows.Forms.Padding(2);
+ this.btnDiagnosticos.Location = new System.Drawing.Point(5, 21);
+ this.btnDiagnosticos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnDiagnosticos.Name = "btnDiagnosticos";
- this.btnDiagnosticos.Size = new System.Drawing.Size(84, 20);
+ this.btnDiagnosticos.Size = new System.Drawing.Size(112, 25);
this.btnDiagnosticos.TabIndex = 14;
this.btnDiagnosticos.Text = "Diagnósticos";
this.btnDiagnosticos.UseVisualStyleBackColor = true;
@@ -551,10 +545,10 @@ namespace AgroBase
//
// btnAcompanhamento
//
- this.btnAcompanhamento.Location = new System.Drawing.Point(4, 42);
- this.btnAcompanhamento.Margin = new System.Windows.Forms.Padding(2);
+ this.btnAcompanhamento.Location = new System.Drawing.Point(5, 52);
+ this.btnAcompanhamento.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnAcompanhamento.Name = "btnAcompanhamento";
- this.btnAcompanhamento.Size = new System.Drawing.Size(84, 20);
+ this.btnAcompanhamento.Size = new System.Drawing.Size(112, 25);
this.btnAcompanhamento.TabIndex = 15;
this.btnAcompanhamento.Text = "Plotagem";
this.btnAcompanhamento.UseVisualStyleBackColor = true;
@@ -562,10 +556,10 @@ namespace AgroBase
//
// btnAtuCamera
//
- this.btnAtuCamera.Location = new System.Drawing.Point(4, 67);
- this.btnAtuCamera.Margin = new System.Windows.Forms.Padding(2);
+ this.btnAtuCamera.Location = new System.Drawing.Point(5, 82);
+ this.btnAtuCamera.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnAtuCamera.Name = "btnAtuCamera";
- this.btnAtuCamera.Size = new System.Drawing.Size(84, 20);
+ this.btnAtuCamera.Size = new System.Drawing.Size(112, 25);
this.btnAtuCamera.TabIndex = 16;
this.btnAtuCamera.Text = "Ver solo";
this.btnAtuCamera.UseVisualStyleBackColor = true;
@@ -573,10 +567,10 @@ namespace AgroBase
//
// btnMapas
//
- this.btnMapas.Location = new System.Drawing.Point(4, 118);
- this.btnMapas.Margin = new System.Windows.Forms.Padding(2);
+ this.btnMapas.Location = new System.Drawing.Point(5, 145);
+ this.btnMapas.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnMapas.Name = "btnMapas";
- this.btnMapas.Size = new System.Drawing.Size(84, 20);
+ this.btnMapas.Size = new System.Drawing.Size(112, 25);
this.btnMapas.TabIndex = 17;
this.btnMapas.Text = "Mapas";
this.btnMapas.UseVisualStyleBackColor = true;
@@ -584,10 +578,10 @@ namespace AgroBase
//
// btnSenCamera
//
- this.btnSenCamera.Location = new System.Drawing.Point(4, 93);
- this.btnSenCamera.Margin = new System.Windows.Forms.Padding(2);
+ this.btnSenCamera.Location = new System.Drawing.Point(5, 114);
+ this.btnSenCamera.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnSenCamera.Name = "btnSenCamera";
- this.btnSenCamera.Size = new System.Drawing.Size(84, 20);
+ this.btnSenCamera.Size = new System.Drawing.Size(112, 25);
this.btnSenCamera.TabIndex = 18;
this.btnSenCamera.Text = "Ver caminho";
this.btnSenCamera.UseVisualStyleBackColor = true;
@@ -599,11 +593,11 @@ namespace AgroBase
this.gpbJoystick.Controls.Add(this.btnJoyEdt);
this.gpbJoystick.Controls.Add(this.btnJoyAtt);
this.gpbJoystick.Controls.Add(this.btnVer);
- this.gpbJoystick.Location = new System.Drawing.Point(9, 10);
- this.gpbJoystick.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbJoystick.Location = new System.Drawing.Point(12, 12);
+ this.gpbJoystick.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbJoystick.Name = "gpbJoystick";
- this.gpbJoystick.Padding = new System.Windows.Forms.Padding(2);
- this.gpbJoystick.Size = new System.Drawing.Size(330, 49);
+ this.gpbJoystick.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbJoystick.Size = new System.Drawing.Size(440, 60);
this.gpbJoystick.TabIndex = 18;
this.gpbJoystick.TabStop = false;
this.gpbJoystick.Text = "Joystick";
@@ -614,17 +608,18 @@ namespace AgroBase
this.gpbControleDirecional.Controls.Add(this.tkbAngulo);
this.gpbControleDirecional.Controls.Add(this.lblAngulo);
this.gpbControleDirecional.Controls.Add(this.lblVelocidade);
- this.gpbControleDirecional.Location = new System.Drawing.Point(9, 154);
- this.gpbControleDirecional.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbControleDirecional.Location = new System.Drawing.Point(12, 190);
+ this.gpbControleDirecional.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbControleDirecional.Name = "gpbControleDirecional";
- this.gpbControleDirecional.Padding = new System.Windows.Forms.Padding(2);
- this.gpbControleDirecional.Size = new System.Drawing.Size(330, 149);
+ this.gpbControleDirecional.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbControleDirecional.Size = new System.Drawing.Size(440, 183);
this.gpbControleDirecional.TabIndex = 19;
this.gpbControleDirecional.TabStop = false;
this.gpbControleDirecional.Text = "Controle Direcional";
//
// gpbAtalhos
//
+ this.gpbAtalhos.Controls.Add(this.btnKinect);
this.gpbAtalhos.Controls.Add(this.btnSimulador);
this.gpbAtalhos.Controls.Add(this.btnSonar);
this.gpbAtalhos.Controls.Add(this.btnAtuCalibragem);
@@ -635,21 +630,21 @@ namespace AgroBase
this.gpbAtalhos.Controls.Add(this.btnSenCamera);
this.gpbAtalhos.Controls.Add(this.btnAtuCamera);
this.gpbAtalhos.Controls.Add(this.btnMapas);
- this.gpbAtalhos.Location = new System.Drawing.Point(344, 10);
- this.gpbAtalhos.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbAtalhos.Location = new System.Drawing.Point(459, 12);
+ this.gpbAtalhos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbAtalhos.Name = "gpbAtalhos";
- this.gpbAtalhos.Padding = new System.Windows.Forms.Padding(2);
- this.gpbAtalhos.Size = new System.Drawing.Size(93, 292);
+ this.gpbAtalhos.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbAtalhos.Size = new System.Drawing.Size(124, 359);
this.gpbAtalhos.TabIndex = 20;
this.gpbAtalhos.TabStop = false;
this.gpbAtalhos.Text = "Atalhos";
//
// btnSimulador
//
- this.btnSimulador.Location = new System.Drawing.Point(4, 236);
- this.btnSimulador.Margin = new System.Windows.Forms.Padding(2);
+ this.btnSimulador.Location = new System.Drawing.Point(5, 290);
+ this.btnSimulador.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnSimulador.Name = "btnSimulador";
- this.btnSimulador.Size = new System.Drawing.Size(84, 20);
+ this.btnSimulador.Size = new System.Drawing.Size(112, 25);
this.btnSimulador.TabIndex = 23;
this.btnSimulador.Text = "Simulador";
this.btnSimulador.UseVisualStyleBackColor = true;
@@ -657,10 +652,10 @@ namespace AgroBase
//
// btnSonar
//
- this.btnSonar.Location = new System.Drawing.Point(4, 213);
- this.btnSonar.Margin = new System.Windows.Forms.Padding(2);
+ this.btnSonar.Location = new System.Drawing.Point(5, 262);
+ this.btnSonar.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnSonar.Name = "btnSonar";
- this.btnSonar.Size = new System.Drawing.Size(84, 20);
+ this.btnSonar.Size = new System.Drawing.Size(112, 25);
this.btnSonar.TabIndex = 22;
this.btnSonar.Text = "Sonar";
this.btnSonar.UseVisualStyleBackColor = true;
@@ -668,10 +663,10 @@ namespace AgroBase
//
// btnAtuCalibragem
//
- this.btnAtuCalibragem.Location = new System.Drawing.Point(4, 189);
- this.btnAtuCalibragem.Margin = new System.Windows.Forms.Padding(2);
+ this.btnAtuCalibragem.Location = new System.Drawing.Point(5, 233);
+ this.btnAtuCalibragem.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnAtuCalibragem.Name = "btnAtuCalibragem";
- this.btnAtuCalibragem.Size = new System.Drawing.Size(84, 20);
+ this.btnAtuCalibragem.Size = new System.Drawing.Size(112, 25);
this.btnAtuCalibragem.TabIndex = 21;
this.btnAtuCalibragem.Text = "Atuador";
this.btnAtuCalibragem.UseVisualStyleBackColor = true;
@@ -679,10 +674,10 @@ namespace AgroBase
//
// btnContornos
//
- this.btnContornos.Location = new System.Drawing.Point(4, 166);
- this.btnContornos.Margin = new System.Windows.Forms.Padding(2);
+ this.btnContornos.Location = new System.Drawing.Point(5, 204);
+ this.btnContornos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnContornos.Name = "btnContornos";
- this.btnContornos.Size = new System.Drawing.Size(84, 20);
+ this.btnContornos.Size = new System.Drawing.Size(112, 25);
this.btnContornos.TabIndex = 20;
this.btnContornos.Text = "Contornos";
this.btnContornos.UseVisualStyleBackColor = true;
@@ -690,10 +685,10 @@ namespace AgroBase
//
// btnGPS
//
- this.btnGPS.Location = new System.Drawing.Point(4, 142);
- this.btnGPS.Margin = new System.Windows.Forms.Padding(2);
+ this.btnGPS.Location = new System.Drawing.Point(5, 175);
+ this.btnGPS.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnGPS.Name = "btnGPS";
- this.btnGPS.Size = new System.Drawing.Size(84, 20);
+ this.btnGPS.Size = new System.Drawing.Size(112, 25);
this.btnGPS.TabIndex = 19;
this.btnGPS.Text = "GPS";
this.btnGPS.UseVisualStyleBackColor = true;
@@ -707,21 +702,21 @@ namespace AgroBase
this.gpbOperacao.Controls.Add(this.btnIniciarOperacao);
this.gpbOperacao.Controls.Add(this.lblModoOperacao);
this.gpbOperacao.Controls.Add(this.cmbModoOperacao);
- this.gpbOperacao.Location = new System.Drawing.Point(9, 307);
- this.gpbOperacao.Margin = new System.Windows.Forms.Padding(2);
+ this.gpbOperacao.Location = new System.Drawing.Point(12, 378);
+ this.gpbOperacao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbOperacao.Name = "gpbOperacao";
- this.gpbOperacao.Padding = new System.Windows.Forms.Padding(2);
- this.gpbOperacao.Size = new System.Drawing.Size(428, 101);
+ this.gpbOperacao.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.gpbOperacao.Size = new System.Drawing.Size(571, 124);
this.gpbOperacao.TabIndex = 21;
this.gpbOperacao.TabStop = false;
this.gpbOperacao.Text = "Operação";
//
// btnIHM
//
- this.btnIHM.Location = new System.Drawing.Point(296, 63);
- this.btnIHM.Margin = new System.Windows.Forms.Padding(2);
+ this.btnIHM.Location = new System.Drawing.Point(395, 78);
+ this.btnIHM.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnIHM.Name = "btnIHM";
- this.btnIHM.Size = new System.Drawing.Size(122, 33);
+ this.btnIHM.Size = new System.Drawing.Size(163, 41);
this.btnIHM.TabIndex = 16;
this.btnIHM.Text = "IHM";
this.btnIHM.UseVisualStyleBackColor = true;
@@ -729,10 +724,10 @@ namespace AgroBase
//
// btnConfigurarOperacao
//
- this.btnConfigurarOperacao.Location = new System.Drawing.Point(121, 63);
- this.btnConfigurarOperacao.Margin = new System.Windows.Forms.Padding(2);
+ this.btnConfigurarOperacao.Location = new System.Drawing.Point(161, 78);
+ this.btnConfigurarOperacao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnConfigurarOperacao.Name = "btnConfigurarOperacao";
- this.btnConfigurarOperacao.Size = new System.Drawing.Size(122, 33);
+ this.btnConfigurarOperacao.Size = new System.Drawing.Size(163, 41);
this.btnConfigurarOperacao.TabIndex = 15;
this.btnConfigurarOperacao.Text = "Configurar Operação";
this.btnConfigurarOperacao.UseVisualStyleBackColor = true;
@@ -741,20 +736,20 @@ namespace AgroBase
// chbDebugMode
//
this.chbDebugMode.AutoSize = true;
- this.chbDebugMode.Location = new System.Drawing.Point(134, 40);
- this.chbDebugMode.Margin = new System.Windows.Forms.Padding(2);
+ this.chbDebugMode.Location = new System.Drawing.Point(179, 49);
+ this.chbDebugMode.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.chbDebugMode.Name = "chbDebugMode";
- this.chbDebugMode.Size = new System.Drawing.Size(109, 17);
+ this.chbDebugMode.Size = new System.Drawing.Size(135, 20);
this.chbDebugMode.TabIndex = 14;
this.chbDebugMode.Text = "Modo Depuração";
this.chbDebugMode.UseVisualStyleBackColor = true;
//
// btnIniciarOperacao
//
- this.btnIniciarOperacao.Location = new System.Drawing.Point(7, 63);
- this.btnIniciarOperacao.Margin = new System.Windows.Forms.Padding(2);
+ this.btnIniciarOperacao.Location = new System.Drawing.Point(9, 78);
+ this.btnIniciarOperacao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnIniciarOperacao.Name = "btnIniciarOperacao";
- this.btnIniciarOperacao.Size = new System.Drawing.Size(109, 33);
+ this.btnIniciarOperacao.Size = new System.Drawing.Size(145, 41);
this.btnIniciarOperacao.TabIndex = 13;
this.btnIniciarOperacao.Text = "Iniciar Operação";
this.btnIniciarOperacao.UseVisualStyleBackColor = true;
@@ -763,10 +758,9 @@ namespace AgroBase
// lblModoOperacao
//
this.lblModoOperacao.AutoSize = true;
- this.lblModoOperacao.Location = new System.Drawing.Point(4, 22);
- this.lblModoOperacao.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.lblModoOperacao.Location = new System.Drawing.Point(5, 27);
this.lblModoOperacao.Name = "lblModoOperacao";
- this.lblModoOperacao.Size = new System.Drawing.Size(34, 13);
+ this.lblModoOperacao.Size = new System.Drawing.Size(42, 16);
this.lblModoOperacao.TabIndex = 13;
this.lblModoOperacao.Text = "Modo";
//
@@ -774,18 +768,29 @@ namespace AgroBase
//
this.cmbModoOperacao.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbModoOperacao.FormattingEnabled = true;
- this.cmbModoOperacao.Location = new System.Drawing.Point(7, 38);
- this.cmbModoOperacao.Margin = new System.Windows.Forms.Padding(2);
+ this.cmbModoOperacao.Location = new System.Drawing.Point(9, 47);
+ this.cmbModoOperacao.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbModoOperacao.Name = "cmbModoOperacao";
- this.cmbModoOperacao.Size = new System.Drawing.Size(110, 21);
+ this.cmbModoOperacao.Size = new System.Drawing.Size(145, 24);
this.cmbModoOperacao.TabIndex = 13;
this.cmbModoOperacao.SelectedIndexChanged += new System.EventHandler(this.cmbModoOperacao_SelectedIndexChanged);
//
+ // btnKinect
+ //
+ this.btnKinect.Location = new System.Drawing.Point(5, 319);
+ this.btnKinect.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.btnKinect.Name = "btnKinect";
+ this.btnKinect.Size = new System.Drawing.Size(112, 25);
+ this.btnKinect.TabIndex = 24;
+ this.btnKinect.Text = "Kinect";
+ this.btnKinect.UseVisualStyleBackColor = true;
+ this.btnKinect.Click += new System.EventHandler(this.btnKinect_Click);
+ //
// frmPrincipal
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1028, 609);
+ this.ClientSize = new System.Drawing.Size(1371, 750);
this.Controls.Add(this.gpbOperacao);
this.Controls.Add(this.gpbAtalhos);
this.Controls.Add(this.gpbControleDirecional);
@@ -794,7 +799,7 @@ namespace AgroBase
this.Controls.Add(this.gpbSensoriamento);
this.Controls.Add(this.generalStrip);
this.Controls.Add(this.gpbAcoes);
- this.Margin = new System.Windows.Forms.Padding(2);
+ this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "frmPrincipal";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Agro Base";
@@ -894,6 +899,7 @@ namespace AgroBase
private System.Windows.Forms.Button btnAtuCalibragem;
private System.Windows.Forms.Button btnSonar;
private System.Windows.Forms.Button btnSimulador;
+ private System.Windows.Forms.Button btnKinect;
}
}
diff --git a/AgroBase/AgroBase/Forms/frmPrincipal.cs b/AgroBase/AgroBase/Forms/frmPrincipal.cs
index f10fdcaf7..1b7321fed 100644
--- a/AgroBase/AgroBase/Forms/frmPrincipal.cs
+++ b/AgroBase/AgroBase/Forms/frmPrincipal.cs
@@ -319,5 +319,11 @@ namespace AgroBase
frmSimulacaoMapaGPS frm = new frmSimulacaoMapaGPS();
frm.Show();
}
+
+ private void btnKinect_Click(object sender, EventArgs e)
+ {
+ frmKinect frmKinect = new frmKinect();
+ frmKinect.Show();
+ }
}
}
diff --git a/AgroBase/AgroBase/Services/DispositivosService.cs b/AgroBase/AgroBase/Services/DispositivosService.cs
index 501caef74..3a3a88b29 100644
--- a/AgroBase/AgroBase/Services/DispositivosService.cs
+++ b/AgroBase/AgroBase/Services/DispositivosService.cs
@@ -213,7 +213,10 @@ namespace AgroBase.Comum
public void AdicionarMensagemFila(string Dados)
{
- FilaService.AdicionarMensagemFila(Dispositivo, Dados);
+ if (PortaCOM() != "")
+ {
+ FilaService.AdicionarMensagemFila(Dispositivo, Dados);
+ }
}
public Control InstanciarDispositivo(int index)
diff --git a/AgroBase/AgroBase/bin/Debug/AgroBase.pdb b/AgroBase/AgroBase/bin/Debug/AgroBase.pdb
index ec4491d21..d8b718ced 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/Microsoft.Kinect.dll b/AgroBase/AgroBase/bin/Debug/Microsoft.Kinect.dll
new file mode 100644
index 000000000..6bd6ec357
Binary files /dev/null and b/AgroBase/AgroBase/bin/Debug/Microsoft.Kinect.dll differ
diff --git a/AgroBase/AgroBase/bin/Debug/Microsoft.Kinect.xml b/AgroBase/AgroBase/bin/Debug/Microsoft.Kinect.xml
new file mode 100644
index 000000000..b09a309ff
--- /dev/null
+++ b/AgroBase/AgroBase/bin/Debug/Microsoft.Kinect.xml
@@ -0,0 +1,9886 @@
+
+
+
+ Microsoft.Kinect
+
+
+
+
+ A frame used specifically for color images.
+ It provides access to the dimensions, format and pixel data for a color frame.
+
+
+
+
+ A container for per-frame sensor data buffers.
+
+
+
+
+ Tracks whether this instance is disposed. 0 == false, 1 == true.
+ We need to use int (vs. bool) for Interlocked.Exchange.
+
+
+
+
+ Initializes a new instance of the ImageFrame class that represents this frame's data.
+
+ The ImageType for this frame.
+ The ImageResolution for this frame.
+ The frame number of this frame.
+ The timestamp of this frame.
+ The frame flags of this frame.
+
+
+
+ Disposes the image frame.
+
+
+
+
+ Finalizes an instance of the ImageFrame class.
+ This is used to notify the developer that they forgot to dispose the frame.
+
+
+
+
+ To be implemented by derived classes to return data to free lists.
+
+ Specify true to indicate that the class should clean up all resources.
+
+
+
+ Gets the time of this ImageFrame.
+
+
+
+
+ Gets the frame identification.
+
+
+
+
+ Gets the width in pixels of this ImageFrame.
+
+
+
+
+ Gets the height in pixels of this ImageFrame.
+
+
+
+
+ Gets the bytes per pixel of this ImageFrame.
+
+
+
+
+ Gets the total length of the pixel data buffer of this ImageFrame.
+
+
+
+
+ Gets the frame's source stream.
+
+
+
+
+ Gets the frame's flags.
+
+
+
+
+ The underlying stream object.
+
+
+
+
+ The related frame data.
+
+
+
+
+ The lock object used to synchronize access as necessary.
+
+
+
+
+ Initializes a new instance of the ColorImageFrame class.
+
+ The underlying stream object.
+ The current frame number.
+ The timestamp of the frame.
+ The frame flags.
+ The actual pixel data.
+
+
+
+ Construct a ColorImageFrame for the frameNumber provided, if possible.
+ If the data is not available for the specified frameNumber, this returns null.
+ If this method succeeds, the result must be disposed.
+
+ The associated ColorImageStream.
+ The frameNumber to retrieve.
+ The timestamp of the frame to retrieve.
+ The frame flags of the frame.
+ Null upon failure, a ColorImageStream upon success, which must be Disposed.
+
+
+
+ This method provides the raw array that contains the color frame's pixel data.
+
+ A byte array of the color frame's pixel data.
+
+
+
+ This method copies the frame's pixel data to a pre-allocated byte array.
+
+ The byte array to receive the data.
+ It must be exactly PixelDataLength in length.
+
+
+
+ This method copies the frame's pixel data to a pre-allocated byte array.
+
+ The IntPtr of the byte array.
+ The count of Bytes to copy to pixelData. This must be equal to the frame’s PixelDataLength.
+
+
+
+ Disposes the frame object.
+
+ Specify true to indicate that the class should clean up all resources.
+
+
+
+ Gets this frame's Framerate and Resolution.
+
+
+
+
+ Gets the total length of the pixel data buffer of this ImageFrame.
+
+
+
+
+ The frame's source stream.
+
+
+
+
+ Maps between Skeleton, Depth, and Color space for a KinectSensor.
+
+
+
+
+ Privately held reference to the KinectSensor for performing mapping operations.
+
+
+
+
+ Initializes a new instance of the CoordinateMapper class from the given parameters.
+
+ Binary parameters.
+
+
+
+ Method to handle RelationalParametersChanged event. Re-fires to INPC.
+
+ The object that sent the event.
+ Generic event parameters.
+
+
+
+ Initializes a new instance of the CoordinateMapper class.
+
+ The KinectSensor to perform mappings for.
+
+
+
+ Based off the function NuiTransformDepthImageToSkeleton from NuiSkeleton.h, which is inline
+ so it is neither directly possible nor is it performant to p-invoke it from managed.
+
+ X coordinate from the depth image.
+ Y coordinate from the depth image.
+ Depth value from the depth image.
+ A Vector indicating the point on the skeleton corresponding to the depth pixel.
+
+
+
+ Based off the function NuiTransformSkeletonToDepthImage from NuiSkeleton.h, which is inline
+ so it is neither directly possible nor is it performant to p-invoke it from managed.
+
+ Vector from skeleton to transform.
+ Resulting X coordinate for skeleton point.
+ Resulting Y coordinate for skeleton point.
+ Resulting depth value for skeleton point.
+
+
+
+ Extracts the ImageType from the ColorImageFormat.
+
+ The ColorImageFormat to convert.
+ The converted ImageType.
+
+
+
+ Maps the entire color frame to depth space. Each element will be the result
+ of mapping the corresponding color pixel into the specified depth frame.
+ Will be equal in length to the number of color pixels. Any color pixel
+ without a corresponding depth pixel will result in a sentinel value. The resulting
+ depth points can be tested by calling KinectSensor.IsKnownPoint().
+
+ The desired target image format.
+ The depth format of the source.
+
+ The depth frame pixel data as retrieved from DepthImageFrame.CopyPixelDataTo.
+ Must be equal in length to Width*Height of the depth format specified by depthImageFormat.
+
+
+ The DepthImagePoint array to receive the data. Must be equal in length to
+ Width*Height of the color format specified by colorImageFormat.
+
+
+ Because depth image data and color image data come from separate sensors, pixels in the
+ two images may not always line up exactly. The two sensors may have different fields of view,
+ or may not be aimed precisely in the same direction. This means that a point near the edge of
+ the depth image may correspond to a pixel just beyond the edge of the color image, or vice
+ versa.
+ This function accepts coordinates outside the bounds of the depth image. It may return
+ pixels outside the color image. This means that you can use data from the two images in
+ combination, even when the two images do not line up completely. You must verify that the
+ coordinates that are returned lie within the color image before using the coordinates to
+ reference pixels in that color image.
+ The depth image coordinates you specify are not required to be within the bounds of the
+ depth frame image, but they should not be too far outside the depth frame image bounds. If the
+ coordinates are far outside the depth frame image, they are unlikely to map to coordinates
+ inside the bounds of the color image. This function will then return color image coordinates
+ that are unlikely to be useful.
+
+
+
+
+ Maps the entire color frame to skeleton space. Each element will be the result of
+ mapping the corresponding color pixel into the specified depth frame and then into
+ skeleton space. Will be equal in length to the number of color pixels. Any color
+ pixel without a corresponding depth pixel will result in a sentinel value. The resulting
+ skeleton points can be tested by calling KinectSensor.IsKnownPoint().
+
+ The desired target image format.
+ The depth format of the source.
+
+ The depth frame pixel data, as retrieved from DepthImageFrame.CopyPixelDataTo.
+ Must be equal in length to Width*Height of the depth format specified by depthImageFormat.
+
+
+ The SkeletonPoint array to receive the data. Must be equal in length to Width*Height
+ of the color format specified by colorImageFormat.
+
+
+ Because depth image data and color image data come from separate sensors, pixels in the
+ two images may not always line up exactly. The two sensors may have different fields of view,
+ or may not be aimed precisely in the same direction. This means that a point near the edge of
+ the depth image may correspond to a pixel just beyond the edge of the color image, or vice
+ versa.
+ This function accepts coordinates outside the bounds of the depth image. It may return
+ pixels outside the color image. This means that you can use data from the two images in
+ combination, even when the two images do not line up completely. You must verify that the
+ coordinates that are returned lie within the color image before using the coordinates to
+ reference pixels in that color image.
+ The depth image coordinates you specify are not required to be within the bounds of the
+ depth frame image, but they should not be too far outside the depth frame image bounds. If the
+ coordinates are far outside the depth frame image, they are unlikely to map to coordinates
+ inside the bounds of the color image. This function will then return color image coordinates
+ that are unlikely to be useful.
+
+
+
+
+ Maps the entire depth frame to color space. Each element will be the result of
+ mapping the corresponding DepthImagePixel into color space. Will be equal in length
+ to the number of DepthImagePixels. Any DepthImagePixel without a corresponding
+ color pixel will result in a sentinel value. The resulting ColorImagePoints can
+ be tested by calling KinectSensor.IsKnownPoint().
+
+ The depth format of the source.
+
+ The depth frame pixel data, as retrieved from DepthImageFrame.CopyPixelDataTo.
+ Must be equal in length to Width*Height of the depth format specified by depthImageFormat.
+
+ The desired target image format.
+
+ The ColorImagePoint array to receive the data. Must be equal in length to Width*Height
+ of the depth format specified by depthImageFormat.
+
+
+ Because depth image data and color image data come from separate sensors, pixels in the
+ two images may not always line up exactly. The two sensors may have different fields of view,
+ or may not be aimed precisely in the same direction. This means that a point near the edge of
+ the depth image may correspond to a pixel just beyond the edge of the color image, or vice
+ versa.
+ This function accepts coordinates outside the bounds of the depth image. It may return
+ pixels outside the color image. This means that you can use data from the two images in
+ combination, even when the two images do not line up completely. You must verify that the
+ coordinates that are returned lie within the color image before using the coordinates to
+ reference pixels in that color image.
+ The depth image coordinates you specify are not required to be within the bounds of the
+ depth frame image, but they should not be too far outside the depth frame image bounds. If the
+ coordinates are far outside the depth frame image, they are unlikely to map to coordinates
+ inside the bounds of the color image. This function will then return color image coordinates
+ that are unlikely to be useful.
+
+
+
+
+ Maps the entire depth frame to skeleton space. Each element will be the result of mapping
+ the corresponding DepthImagePixel from the specified depth frame into skeleton space. Will be
+ equal in length to the number of depth pixels. Any depth pixel without corresponding skeleton
+ point will result in a sentinel value. The resulting SkeletonPoints can be tested by calling
+ KinectSensor.IsKnownPoint().
+
+ The depth format of the source.
+
+ The depth frame pixel data, as retrieved from DepthImageFrame.CopyPixelDataTo.
+ Must be equal in length to Width*Height of the depth format specified by depthImageFormat.
+
+
+ The SkeletonPoint array to receive the data. Must be equal in length to Width*Height of the
+ depth format specified by depthImageFormat.
+
+
+
+
+ Maps from a DepthImagePoint to the corresponding ColorImagePoint.
+
+ The depth format of the source.
+ The depth point to map.
+ The desired target image format.
+ The ColorImagePoint corresponding to the point in DepthImage space.
+
+ Because depth image data and color image data come from separate sensors, pixels in the
+ two images may not always line up exactly. The two sensors may have different fields of view,
+ or may not be aimed precisely in the same direction. This means that a point near the edge of
+ the depth image may correspond to a pixel just beyond the edge of the color image, or vice
+ versa.
+ This function accepts coordinates outside the bounds of the depth image. It may return
+ pixels outside the color image. This means that you can use data from the two images in
+ combination, even when the two images do not line up completely. You must verify that the
+ coordinates that are returned lie within the color image before using the coordinates to
+ reference pixels in that color image.
+ The depth image coordinates you specify are not required to be within the bounds of the
+ depth frame image, but they should not be too far outside the depth frame image bounds. If the
+ coordinates are far outside the depth frame image, they are unlikely to map to coordinates
+ inside the bounds of the color image. This function will then return color image coordinates
+ that are unlikely to be useful.
+
+
+
+
+ Maps from a DepthImagePoint to the corresponding SkeletonPoint.
+
+ The the depth format to use in the conversion.
+ The depth image point for the depth frame.
+ The skeleton point for the given DepthImagePoint and format.
+
+
+
+ Maps from a SkeletonPoint to the corresponding ColorImagePoint.
+
+ The SkeletonPoint to map.
+ The desired target image format.
+ The ColorImagePoint for the given skeleton point and format.
+
+ Because depth image data and color image data come from separate sensors, pixels in the
+ two images may not always line up exactly. The two sensors may have different fields of view,
+ or may not be aimed precisely in the same direction. This means that a point near the edge of
+ the depth image may correspond to a pixel just beyond the edge of the color image, or vice
+ versa.
+ This function accepts coordinates outside the bounds of the depth image. It may return
+ pixels outside the color image. This means that you can use data from the two images in
+ combination, even when the two images do not line up completely. You must verify that the
+ coordinates that are returned lie within the color image before using the coordinates to
+ reference pixels in that color image.
+ The depth image coordinates you specify are not required to be within the bounds of the
+ depth frame image, but they should not be too far outside the depth frame image bounds. If the
+ coordinates are far outside the depth frame image, they are unlikely to map to coordinates
+ inside the bounds of the color image. This function will then return color image coordinates
+ that are unlikely to be useful.
+
+
+
+
+ Maps from a SkeletonPoint to the corresponding DepthImagePoint.
+
+ The supplied skeleton point.
+ The depth format to convert to.
+ The DepthImagePoint for the given skeleton point.
+
+
+
+ Gets the binary paramters associated with this instance of CoordinateMapper.
+
+ Binary parameters.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ This enum has all of the available backlight compensation modes.
+
+
+
+
+ Favors the average brightness.
+
+
+
+
+ Favors the center of the scene.
+
+
+
+
+ Favors lowlights.
+
+
+
+
+ Favors the center only.
+
+
+
+
+ This allows for flicker reduction due to power line frequency.
+
+
+
+
+ Disables flicker reduction.
+
+
+
+
+ Used for power line frequencies of 50 hertz.
+
+
+
+
+ Used for power line frequencies of 60 hertz.
+
+
+
+
+ This class contains all of the available color camera settings.
+
+
+
+
+ This holds a reference to the associated sensor.
+
+
+
+
+ Initializes a new instance of the ColorCameraSettings class.
+
+ The sensor these settings relate to.
+
+
+
+ Resets all color camera settings to their defaults.
+
+
+
+
+ This triggers the NotifyPropertyChanged if the value is different.
+
+ The old value.
+ The new value.
+ The property name.
+
+
+
+ This triggers the NotifyPropertyChanged if the value is different.
+
+ The old value.
+ The new value.
+ The property name.
+
+
+
+ This triggers the NotifyPropertyChanged if the value is different.
+
+ The old value.
+ The new value.
+ The property name.
+
+
+
+ This triggers the NotifyPropertyChanged if the value is different.
+
+ The old value.
+ The new value.
+ The property name.
+
+
+
+ Notifies the client of property changes.
+
+ The name of the property that changed.
+
+
+
+ Gets or sets a value indicating whether the auto exposure is enabled.
+
+
+
+
+ Gets or sets a value for the exposure time.
+
+ This property takes effect only when AutoExposure is false.
+
+
+
+ Gets the minimum exposure time.
+
+
+
+
+ Gets the maximum exposure time.
+
+
+
+
+ Gets or sets a value for the frame interval.
+
+ This property takes effect only when AutoExposure is false.
+
+
+
+ Gets the minimum frame interval.
+
+
+
+
+ Gets the maximum frame interval.
+
+
+
+
+ Gets or sets a value for the brightness.
+
+ This property takes effect only when AutoExposure is true.
+
+
+
+ Gets the minimum brightness.
+
+
+
+
+ Gets the maximum brightness.
+
+
+
+
+ Gets or sets the desired backlight compensation mode.
+
+ This property takes effect only when AutoExposure is true.
+
+
+
+ Gets or sets the desired power line frequency.
+
+ This property takes effect only when AutoExposure is true.
+
+
+
+ Gets or sets a value for the gain.
+
+ This property takes effect only when AutoExposure is false.
+
+
+
+ Gets the minimum gain.
+
+
+
+
+ Gets the maximum gain.
+
+
+
+
+ Gets or sets a value indicating whether the white balance is automatic or not.
+
+
+
+
+ Gets or sets a value for the white balance.
+
+ This property takes effect only when AutoWhiteBalance is false.
+
+
+
+ Gets the minimum white balance.
+
+
+
+
+ Gets the maximum white balance.
+
+
+
+
+ Gets or sets a value for the white balance.
+
+
+
+
+ Gets the minimum white balance.
+
+
+
+
+ Gets the maximum white balance.
+
+
+
+
+ Gets or sets a value for the white balance.
+
+
+
+
+ Gets the minimum hue.
+
+
+
+
+ Gets the maximum hue.
+
+
+
+
+ Gets or sets a value for the saturation.
+
+
+
+
+ Gets the minimum saturation.
+
+
+
+
+ Gets the maximum saturation.
+
+
+
+
+ Gets or sets a value for the gamma.
+
+
+
+
+ Gets the minimum gamma.
+
+
+
+
+ Gets the maximum gamma.
+
+
+
+
+ Gets or sets a value for the sharpness.
+
+
+
+
+ Gets the minimum sharpness.
+
+
+
+
+ Gets the maximum sharpness.
+
+
+
+
+ This event triggers when a related property changes.
+
+
+
+
+ The generic DataPool class for a key with three values.
+
+ The key type.
+ The first value type.
+ The second value type.
+ The third value type.
+
+
+
+ The generic DataPool class for a key with four values.
+
+ The key type.
+ The first value type.
+ The second value type.
+ The third value type.
+ The fourth value type.
+
+
+
+ The array of private entries.
+
+
+
+
+ The next available entry.
+
+
+
+
+ The lock object used to synchronize access.
+
+
+
+
+ Initializes a new instance of the DataPool class.
+
+ The number of pool entries to manage.
+
+
+
+ Returns a free entry, allocating if necessary.
+ Must be checked in via CheckInEntryForUpdate.
+
+ A new Entry to be updated and checked in via CheckInEntryForUpdate.
+
+
+
+ Marks an entry as fully updated, ready to be retrieved via TryLockEntry.
+
+
+ The entry that is done being updated, as retrived from CHeckOutFreeEntryForUpdate.
+ The Key may not be null.
+
+
+
+
+ Attempt to find and lock an entry given the provided Key. If successful, must be unlocked
+ via UnlockEntry.
+
+ The Key to use to look up an entry. Cannot be null.
+ The entry if found, null otherwise.
+ True if a matching entry is found, false otherwise.
+
+
+
+ Unlocks an entry retrieved via TryLockEntry. Must be an Entry retrieved from this DataPool instance.
+
+ The entry to unlock.
+
+
+
+ A basic Key/Value pair.
+
+
+
+
+ Gets or sets the key of the entry.
+
+
+
+
+ Gets or sets the first value.
+
+
+
+
+ Gets or sets the second value.
+
+
+
+
+ Gets or sets the third value.
+
+
+
+
+ Gets or sets the fourth value.
+
+
+
+
+ Private subclass of Entry, used for additional bookkeping.
+
+
+
+
+ The current reference count.
+
+
+
+
+ Adds a reference count to the entry.
+
+
+
+
+ Releases a reference count from the entry.
+
+
+
+
+ Gets a value indicating whether the object is locked or not.
+
+
+
+
+ Gets or sets a value indicating whether the object is in a pool.
+
+
+
+
+ Gets or sets a value indicating whether the object is valid.
+
+
+
+
+ Initializes a new instance of the DataPool class.
+
+ The number of pool entries to manage.
+
+
+
+ A structure representing a pixel in a DepthImageFrame.
+
+
+
+
+ The value for an unknown depth.
+
+
+
+
+ This gets the hash code for a given depth image pixel.
+
+ The calculated hash code.
+
+
+
+ This method compares two depth image pixel objects.
+
+ The object to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image pixel objects.
+
+ The DepthImagePixel to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image pixel objects.
+
+ The first DepthImagePixel to compare.
+ The second DepthImagePixel to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image pixel objects.
+
+ The first DepthImagePixel to compare.
+ The second DepthImagePixel to compare.
+ It returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the player index for the pixel.
+
+
+
+
+ Gets or sets the depth (in millimeters) for the pixel.
+
+
+
+
+ Gets a value indicating whether the Depth value is a known value.
+
+
+
+
+ A frame used specifically for depth images.
+ It provides access to the dimensions, format and pixel data for a depth frame,
+ and allows for mapping of coordinates between skeleton frames and color frames.
+
+
+
+
+ A bitmask for extracting the player index bit field from the depth value.
+
+
+
+
+ The width of the player index bitmask.
+
+
+
+
+ The underlying depth image stream.
+
+
+
+
+ The underlying depth frame data.
+
+
+
+
+ The lock object used to synchronize access as necessary.
+
+
+
+
+ Initializes a new instance of the DepthImageFrame class.
+
+ The related depth stream.
+ The current frame number.
+ The current timestamp.
+ The current frame flags.
+ The pixel data.
+
+
+
+ Construct a DepthImageFrame for the frameNumber provided, if possible.
+ If the data is not available for the specified frameNumber, this returns null.
+ If this method succeeds, the result must be disposed.
+
+ The associated DepthImageStream.
+ The frameNumber to retrieve.
+ The timestamp of the frame to retrieve.
+ The flags for the frame.
+ Null upon failure, a DepthImageStream upon success, which must be Disposed.
+
+
+
+ This method provides the DepthImagePixel array that contains the depth image's pixel data.
+
+ A DepthImagePixel array of the depth frame's pixel data.
+
+
+
+ Private helper function used by CopyPixelDataTo and Copy DepthImagePixelDataTo.
+
+ Type of elements to copy.
+ Destination array.
+ Function to perform the copy.
+
+
+
+ Private helper function used by CopyPixelDataTo and Copy DepthImagePixelDataTo.
+
+ Type of data to copy.
+ Destination array.
+ The length of the destination array.
+ Function to perform the copy.
+
+
+
+ This method copies the frame's pixel data to a pre-allocated pixel array.
+
+ The pixel array to receive the data.
+ It must be exactly PixelDataLength in length.
+
+
+
+ This method copies the frame's pixel data to a pre-allocated pixel array.
+
+ The pixel array to receive the data.
+ It must be exactly PixelDataLength in length.
+
+
+
+ This method copies the frame's pixel data to a pre-allocated byte array.
+
+ The IntPtr of the byte array.
+ The count of Int16s to copy to pixelData. This must be equal to the frame’s PixelDataLength.
+
+
+
+ This method copies the frame's DepthImagePixel data to a pre-allocated byte array.
+
+ The IntPtr of the byte array.
+ The count of DepthImagePixels to copy to pixelData. This must be equal to the frame’s PixelDataLength.
+
+
+
+ This maps a depth coordinate to a color coordinate.
+
+ The X coordinate of the depth frame.
+ The Y coordinate of the depth frame.
+ The color format being used.
+ An ImagePoint that contains the X, Y locations in the color frame.
+
+
+
+ Looks up the depth frame coordinates for a given skeleton point.
+
+ The supplied skeleton point.
+ The ImagePoint that contains the X, Y and depth value of the given skeleton point.
+
+
+
+ Looks up the skeleton point location of the given depth X, Y.
+
+ The X coordinate of the depth frame.
+ The Y coordinate of the depth frame.
+ The skeleton point for the given X, Y.
+
+
+
+ Disposes the frame object.
+
+ Specify true to indicate that the class should clean up all resources.
+
+
+
+ Gets this frame's Framerate and Resolution.
+
+
+
+
+ Gets the depth sensor range with which this frame was captured.
+
+
+
+
+ Gets the maximum reliable Depth value in mm for the depth sensor range setting used to capture this frame.
+
+
+
+
+ Gets the minimum reliable Depth value in mm for the depth sensor range setting used to capture this frame.
+
+
+
+
+ Total length of the pixel data buffer of this ImageFrame.
+
+
+
+
+ Gets the depth filter that was applied to the frame.
+
+
+
+
+ The frame's source stream.
+
+
+
+
+ This struct represents a given X, Y, and depth value in a depth frame.
+
+
+
+
+ Backing field for X.
+
+
+
+
+ Backing field for Y.
+
+
+
+
+ Backing field for Depth.
+
+
+
+
+ Padding for compat with unmanaged object.
+
+
+
+
+ This gets the hash code for a given depth image point.
+
+ The calculated hash code.
+
+
+
+ This method compares two depth image point objects.
+
+ The object to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image point objects.
+
+ The DepthImagePoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image point objects.
+
+ The first DepthImagePoint to compare.
+ The second DepthImagePoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two depth image point objects.
+
+ The first DepthImagePoint to compare.
+ The second DepthImagePoint to compare.
+ It returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the X location.
+
+
+
+
+ Gets or sets the Y location.
+
+
+
+
+ Gets or sets the depth value.
+
+
+
+
+ Gets a reserved value. Do not use.
+
+
+
+
+ This struct represents a given X, Y in a color frame.
+
+
+
+
+ This gets the hash code for a given color image point.
+
+ The calculated hash code.
+
+
+
+ This method compares two color image point objects.
+
+ The object to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two color image point objects.
+
+ The ColorImagePoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two color image point objects.
+
+ The first ColorImagePoint to compare.
+ The second ColorImagePoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two color image point objects.
+
+ The first ColorImagePoint to compare.
+ The second ColorImagePoint to compare.
+ It returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the X location.
+
+
+
+
+ Gets or sets the Y location.
+
+
+
+
+ Wrapper that holds a collection of event handlers for a specific type and associates
+ a context with them.
+
+ EventArgs for the specific event.
+
+
+
+ Initializes a new instance of the ContextEventHandler class.
+
+ Determines whether the context will use Post or Send. Default is Post.
+
+
+
+ Adds an event handler and associates it with the current context.
+
+ The new event to add to the list of handlers.
+
+
+
+ Removes the event handler associated with the current context.
+
+ The event to remove from the list of handlers.
+
+
+
+ Invokes all registered event handlers.
+
+ The sender of the message.
+ The event arguments to be passed to the handler.
+
+
+
+ This method marks the object as disposed.
+
+
+
+
+ This holds the list of context to handler mappings.
+
+
+
+
+ This is the method used process the message by the synchronization context.
+
+
+
+
+ This keeps track of the disposed state of the object.
+
+
+
+
+ Internal handler that matches the delegates for SynchronizationContext.Post/Send.
+
+ State packed as ContextEventHandlerArgsWrapper ( handler + sender + args ).
+
+
+
+ Gets a value indicating whether this wrapper has any actual handlers registered.
+
+
+
+
+ The possible methods for sending data to the synchronization context.
+
+
+
+
+ The send method is used to pass synchronous message to the context.
+
+
+
+
+ The post method is used to pass an asynchronous message to the context.
+
+
+
+
+ Container class to hold event handler, sender and args so that it can be
+ marshalled using the Synchronization context.
+
+
+
+
+ Initializes a new instance of the ContextEventHandlerArgsWrapper class.
+
+ The event handler.
+ The sending object.
+ The argument object.
+
+
+
+ Gets the associated event handler.
+
+
+
+
+ Gets the sending object.
+
+
+
+
+ Gets the event arguments object.
+
+
+
+
+ Identifies a SynchronizationContext taking the potential that it is a DispatcherSynchronizationContext
+ into account. In .NET 4.5, WPF made a breaking change to that class that affects stability of the
+ actual value of a SynchronizationContext in WPF apps. While the actual SynchronizationContext instance
+ may change, the internal referenced Dispatcher will not, so we use this for determining identity when available.
+
+
+
+
+ Name of the internal field in DispatcherSynchronizationContext to reflect on when
+ comparing SynchronizationContextIdentifiers.
+
+
+
+
+ The unqualified name of the DispatcherSynchronizationContext type.
+
+
+
+
+ Storage for the Dispatcher object, if one exists.
+
+
+
+
+ Initializes a new instance of the SynchronizationContextIdentifier class.
+
+ The SynchronizationContext to extract identity for.
+
+
+
+ Gets the hashcode of the object.
+
+ Hashcode of the SynchronizationContextIdentifier.
+
+
+
+ Returns whether this SynchronizationContextIdentifier is equivalent to obj.
+
+ The object to compare for equivalence.
+ True if this SynchronizationContextIdentifier is equivalent to obj, false otherwise.
+
+
+
+ Returns whether this SynchronizationContextIdentifier is equivalent to obj.
+
+ The object to compare for equivalence.
+ True if this SynchronizationContextIdentifier is equivalent to obj, false otherwise.
+
+
+
+ This method compares two SynchronizationContextIdentifiers.
+
+ The first SynchronizationContextIdentifier to compare.
+ The second SynchronizationContextIdentifier to compare.
+ Returns true if they are equal, false otherwise.
+
+
+
+ This method compares two SynchronizationContextIdentifiers.
+
+ The first SynchronizationContextIdentifier to compare.
+ The second SynchronizationContextIdentifier to compare.
+ Returns false if they are equal, true otherwise.
+
+
+
+ Gets the SynchronizationContext held by the SynchronizationContextIdentifier.
+
+
+
+
+ Container class to associate an event handler with a context so that they
+ act as a single key in a list.
+
+
+
+
+ Initializes a new instance of the ContextHandlerPair class.
+
+ The target handler.
+ The target context identifier.
+
+
+
+ Gets the associated synchronization context identifier.
+
+
+
+
+ Gets the associated event handler.
+
+
+
+
+ The interface of a filter to be applied to depth frame data.
+
+
+
+
+ Processes a frame of depth data.
+
+ Timestamp of the depth frame.
+ Width of the depth frame, in pixels.
+ Height of the depth frame, in pixels.
+ Depth frame data.
+ true if the depth frame was modified; false otherwise.
+
+
+
+ Gets or sets the native depth filter interface.
+
+
+
+
+ Arguments for the DepthFrameReady events.
+
+
+
+
+ The related depth stream.
+
+
+
+
+ The related frame number.
+
+
+
+
+ The related timestamp.
+
+
+
+
+ The frame flags.
+
+
+
+
+ Indicates if the arguments are valid.
+
+
+
+
+ Initializes a new instance of the DepthImageFrameReadyEventArgs class with a reference to the source Stream
+ and the frame number and timestamp, which allows us to retrieve instance of DepthImageFrames on demand.
+
+ The source DepthImageStream.
+ The frameNumber for this event.
+ The timestamp for this event.
+ The frame flags for this event.
+ Whether this instance is known a priori to be invalid.
+
+
+
+ Create an instance of DepthImageFrameReadyEventArgs.
+ This must only be called by the owning DepthImageStream, and only after the stream has
+ attempted to retrieve the native frame, otherwise OpenDepthImageFrame will fail.
+
+ The depth image stream.
+ The frame number.
+ The timestamp.
+ The frame flags.
+ A new DepthImageFrameReadyEventArgs object.
+
+
+
+ Create an instance of DepthImageFrameReadyEventArgs which is known to be invalid.
+ OpenDepthImageFrame will return null.
+
+ An invalid event arguments.
+
+
+
+ Container for one frame's worth of depth sensor image data
+ Can return null if the data is not available.
+ Upon success, returns the DepthImageFrame corresponding to this event, which must be Disposed.
+
+ An a new depth image frame.
+
+
+
+ Arguments for the ColorFrameReady events.
+
+
+
+
+ The related color stream.
+
+
+
+
+ The related frame number.
+
+
+
+
+ The related timestamp.
+
+
+
+
+ The frame flags.
+
+
+
+
+ Indicates if the arguments are valid.
+
+
+
+
+ Initializes a new instance of the ColorImageFrameReadyEventArgs class with a reference to the source Stream
+ and the frame number and timestamp, which allows us to retrieve instance of ColorImageFrames on demand.
+
+ The source ColorImageStream.
+ The frameNumber for this event.
+ The timestamp for this event.
+ The frame flags for this event.
+ Whether this instance is known a priori to be invalid.
+
+
+
+ Create an instance of ColorImageFrameReadyEventArgs.
+ This must only be called by the owning ColorImageStream, and only after the stream has
+ attempted to retrieve the native frame, otherwise OpenColorImageFrame will fail.
+
+ The color stream.
+ The frame number.
+ The timestamp.
+ The frame flags.
+ A new ColorImageFrameReadyEventArgs object.
+
+
+
+ Create an instance of ColorImageFrameReadyEventArgs which is known to be invalid.
+ OpenColorImageFrame will return null.
+
+ An invalid ColorImageFrameReadyEventArgs.
+
+
+
+ Container for one frame's worth of color sensor image data
+ Can return null if the data is not available.
+ Upon success, returns the ColorImageFrame corresponding to this event, which must be Disposed.
+
+ A new ColorImageFrame.
+
+
+
+ The event arguments used when a skeletion frame is ready.
+
+
+
+
+ The related skeleton stream.
+
+
+
+
+ The related frame number.
+
+
+
+
+ The related timestamp.
+
+
+
+
+ The tracking mode in which the frame was captured.
+
+
+
+
+ Indicates if the arguments are valid.
+
+
+
+
+ Initializes a new instance of the SkeletonFrameReadyEventArgs class with a reference to the source Stream
+ and the frame number and timestamp, which allows us to retrieve instance of SkeletonFrames on demand.
+
+ The source SkeletonStream.
+ The frameNumber for this event.
+ The timestamp for this event.
+ The tracking mode in which the frame was captured.
+ Whether this instance is known a priori to be invalid.
+
+
+
+ Create an instance of SkeletonFrameReadyEventArgs.
+ This must only be called by the owning SkeletonStream, and only after the stream has
+ attempted to retrieve the native frame, otherwise OpenSkeletonFrame will fail.
+
+ The skeleton stream.
+ The frame number.
+ The timestamp.
+ The tracking mode in which the frame was captured.
+ A new SkeletonFrameReadyEventArgs object.
+
+
+
+ Create an instance of SkeletonFrameReadyEventArgs which is known to be invalid.
+ OpenSkeletonFrame will return null.
+
+ An invalid SkeletonFrameReadyEventArgs object.
+
+
+
+ Container for one frame's worth of skeleton sensor image data
+ Can return null if the data is not available.
+ Upon success, returns the SkeletonFrame corresponding to this event, which must be Disposed.
+
+ A new SkeletonFrame.
+
+
+
+ Arguments for the Kinect sensor's AllFramesReady event.
+
+
+
+
+ The related color image frame event arguments.
+
+
+
+
+ The related depth image frame event arguments.
+
+
+
+
+ The related skeleton frame event arguments.
+
+
+
+
+ Initializes a new instance of the AllFramesReadyEventArgs class.
+
+ The related color event arguments.
+ The related depth event arguments.
+ The related skeletion event arguments.
+
+
+
+ The most recent frame from the Kinect sensor's color image stream.
+ Can be null if the data is no longer available.
+ Upon success, the value must be Disposed.
+
+ A new ColorImageFrame.
+
+
+
+ The most recent frame from the Kinect sensor's depth image stream.
+ Can be null if the data is no longer available.
+ Upon success, the value must be Disposed.
+
+ A new DepthImageFrame.
+
+
+
+ The most recent frame from the Kinect sensor's skeleton stream.
+ Can be null if the data is no longer available.
+ Upon success, the value must be Disposed.
+
+ A new SkeletonFrame.
+
+
+
+ Default facade will create a DMO object using registered COM server, and will call native layer directly.
+
+
+
+
+ Wrapper interface used to abstract DMO object creation, destruction and other native calls, to allow for mocking.
+
+
+
+
+ Creates an instance of Kinect DMO object.
+
+
+ DMO object created. Can never be null.
+
+
+
+
+ Destroy DMO object previously created via .
+
+ DMO object which should be destroyed.
+
+
+
+ Get metadata about the available microphone array devices.
+
+
+ Array to hold audio device metadata. If null, only is populated.
+
+
+ Number of available microphone array devices.
+
+
+
+
+ Get metadata about the available speaker devices.
+
+
+ Array to hold audio device metadata. If null, only is populated.
+
+
+ Number of available speaker devices.
+
+
+
+
+ Determines if the specified microphone device corresponds to the Kinect™ sensor
+ associated with this .
+
+
+ Microphone array device to match against this sensor.
+
+
+ true if microphone array device matches the associated Kinect™ sensor.
+ false otherwise.
+
+
+ false is always returned for null device IDs.
+
+
+
+
+ Create an event used to signal the to stop streaming.
+
+
+ A new .
+
+
+
+
+ used to get audio microphone device and audio DMO information.
+
+
+
+
+ Initializes a new instance of the DmoAudioWrapper class.
+
+
+ used to get audio microphone device and audio DMO information.
+
+
+
+
+ Creates an instance of Kinect DMO object.
+
+
+ DMO object created. Can never be null.
+
+
+
+
+ Destroy DMO object previously created via .
+
+ DMO object which should be destroyed.
+
+ Implementation does nothing, since DMO object is managed by
+ underlying .
+
+
+
+
+ Get metadata about the available microphone array devices.
+
+
+ Array to hold audio device metadata. If null, only is populated.
+
+
+ Number of available microphone array devices.
+
+
+
+
+ Get metadata about the available speaker devices.
+
+
+ Array to hold audio device metadata. If null, only is populated.
+
+
+ Number of available speaker devices.
+
+
+
+
+ Determines if the specified microphone device corresponds to the Kinect™ sensor
+ associated with this .
+
+
+ Microphone array device to match against this sensor.
+
+
+ true if microphone array device matches the associated Kinect™ sensor.
+ false otherwise.
+
+
+ false is always returned for null device IDs.
+
+
+
+
+ Create an event used to signal the to stop streaming.
+
+
+ A new .
+
+
+
+
+ Class used to group native identifier definitions needed to interop with
+ a DMO.
+
+
+
+
+ Interface identifier for interface.
+
+
+
+
+ Interface identifier for interface.
+
+
+
+
+ This interface provides methods for manipulating a Microsoft DirectX Media
+ Object (DMO).
+
+
+
+
+ This method retrieves the number of input and output streams.
+
+
+ Receives the number of input streams.
+
+
+ Receives the number of output streams.
+
+
+
+
+ This method retrieves information about an input stream, such as any
+ restrictions on the number of samples per buffer, and whether the
+ stream performs a lookahead on the input data. This information never
+ changes.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Receives a bitwise combination of zero or more
+ DMO_INPUT_STREAM_INFO_FLAGS flags.
+
+
+
+
+ This method retrieves information about an output stream; for example,
+ whether the stream is discardable and whether it uses a fixed sample
+ size. This information never changes.
+
+
+ Zero-based index of an output stream on the DMO.
+
+
+ Receives a bitwise combination of zero or more
+ DMO_OUTPUT_STREAM_INFO_FLAGS flags.
+
+
+
+
+ This method retrieves a preferred media type for a specified input
+ stream.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Zero-based index on the set of acceptable media types.
+
+
+ Reference to a DMO_MEDIA_TYPE structure. The method fills the structure
+ with the media type information. The format block might be null, in
+ which case the format type GUID is GUID_NULL.
+
+
+
+
+ This method retrieves a preferred media type for a specified output
+ stream.
+
+
+ Zero-based index of an output stream on the DMO.
+
+
+ Zero-based index on the set of acceptable media types.
+
+
+ Reference to a DMO_MEDIA_TYPE structure. The method fills the structure
+ with the media type information. The format block might be null, in
+ which case the format type GUID is GUID_NULL.
+
+
+
+
+ This method sets the media type on an input stream or tests whether a
+ media type is acceptable.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ DMO_MEDIA_TYPE structure that specifies the media type.
+
+
+ Bitwise combination of zero or more flags from the DMO_SET_TYPE_FLAGS
+ enumeration.
+
+
+
+
+ This method sets the media type on an output stream or tests whether a
+ media type is acceptable.
+
+
+ Zero-based index of an output stream on the DMO.
+
+
+ DMO_MEDIA_TYPE structure that specifies the media type.
+
+
+ Bitwise combination of zero or more flags from the DMO_SET_TYPE_FLAGS
+ enumeration.
+
+
+
+
+ This method retrieves the media type that was set for an input stream,
+ if any.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Reference to a DMO_MEDIA_TYPE structure. The method fills the structure
+ with the media type information.
+
+
+
+
+ This method retrieves the media type that was set for an output stream,
+ if any.
+
+
+ Zero-based index of an output stream on the DMO.
+
+
+ Reference to a DMO_MEDIA_TYPE structure. The method fills the structure
+ with the media type information.
+
+
+
+
+ This method retrieves the buffer requirements for a specified input
+ stream.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Receives the minimum size of an input buffer for this stream, in bytes.
+
+
+ Receives the maximum amount of data that the DMO will hold for a
+ lookahead, in bytes. If the DMO does not perform a lookahead on the
+ stream, the value is zero.
+
+
+ Receives the required buffer alignment, in bytes. If the input stream
+ has no alignment requirement, the value is 1.
+
+
+
+
+ This method retrieves the buffer requirements for a specified output
+ stream.
+
+
+ Zero-based index of an output stream on the DMO.
+
+
+ Receives the minimum size of an output buffer for this stream, in bytes.
+
+
+ Receives the required buffer alignment, in bytes. If the output stream
+ has no alignment requirement, the value is 1.
+
+
+
+
+ This method retrieves the maximum latency on a specified input stream.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Receives the maximum latency.
+
+
+
+
+ This method sets the maximum latency on a specified input stream. For
+ the definition of maximum latency, see
+ .
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Maximum latency.
+
+
+
+
+ This method flushes all internally buffered data.
+
+
+
+
+ This method signals a discontinuity on the specified input stream.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+
+
+ This method allocates any resources needed by the DMO. Calling this
+ method is always optional.
+
+
+
+
+ This method frees resources allocated by the DMO. Calling this method
+ is always optional.
+
+
+
+
+ This method queries whether an input stream can accept more input data.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ Receives either zero or DMO_INPUT_STATUSF_ACCEPT_DATA.
+
+
+
+
+ This method delivers a buffer to the specified input stream.
+
+
+ Zero-based index of an input stream on the DMO.
+
+
+ interface for buffer.
+
+
+ Bitwise combination of zero or more flags from the
+ DMO_INPUT_DATA_BUFFER_FLAGS enumeration.
+
+
+ Time stamp that specifies the start time of the data in the buffer. If
+ the buffer has a valid time stamp, set the DMO_INPUT_DATA_BUFFERF_TIME
+ flag in the dwFlags parameter. Otherwise, the DMO ignores this value.
+
+
+ Reference time specifying the duration of the data in the buffer. If
+ this value is valid, set the DMO_INPUT_DATA_BUFFERF_TIMELENGTH flag in
+ the dwFlags parameter. Otherwise, the DMO ignores this value.
+
+
+
+
+ This method generates output from the current input data.
+
+
+ Bitwise combination of zero or more flags from the
+ DMO_PROCESS_OUTPUT_FLAGS enumeration.
+
+
+ Number of output buffers.
+
+
+ Array of DMO_OUTPUT_DATA_BUFFER structures containing the output buffers.
+ Specify the size of the array in the cOutputBufferCount parameter.
+
+
+ Receives a reserved value (zero). The application should ignore this
+ value.
+
+
+
+
+ This method acquires or releases a lock on the DMO. Call this method
+ to keep the DMO serialized when performing multiple operations.
+
+
+ Value that specifies whether to acquire or release the lock. If the
+ value is nonzero, a lock is acquired. If the value is zero, the lock
+ is released.
+
+
+
+
+ This structure describes an output buffer used by a DirectX DMO.
+
+
+
+
+ Value of pinned native pointer to the
+ interface of a buffer allocated by the application.
+
+
+
+
+ Status flags. After processing output, the DMO sets this member to a
+ bitwise combination of zero or more DMO_OUTPUT_DATA_BUFFER_FLAGS flags.
+
+
+
+
+ Time stamp that specifies the start time of the data in the buffer. If
+ the buffer has a valid time stamp, the DMO sets this member and also
+ sets the DMO_OUTPUT_DATA_BUFFERF_TIME flag in the dwStatus member.
+ Otherwise, ignore this member.
+
+
+
+
+ Reference time specifying the length of the data in the buffer. If the
+ DMO sets this member to a valid value, it also sets the
+ DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH flag in the dwStatus member.
+ Otherwise, ignore this member.
+
+
+
+
+ This interface provides methods for manipulating a data buffer. Any buffer passed to a
+ Microsoft DirectX Media Object (DMO) must implement this interface.
+
+
+
+
+ This method specifies the length of the data currently in the buffer.
+
+
+ Size of the data, in bytes. The value must not exceed the buffer's maximum size.
+ Call the method to obtain the maximum size.
+
+
+
+
+ This method retrieves the maximum number of bytes this buffer can hold.
+
+
+ Pointer to a variable that receives the buffer's maximum size, in bytes.
+
+
+
+
+ This method retrieves the buffer and the size of the valid data in the buffer.
+
+
+ that receives the native memory address of the
+ buffer array. The parameter can be IntPtr.Zero.
+
+
+ Reference to a variable that receives the size of the valid data,
+ in bytes.
+
+
+
+
+ This structure defines the format of waveform-audio data.
+
+
+
+
+ Waveform-audio format type.
+
+
+
+
+ Number of channels in the waveform-audio data. Monaural data uses one
+ channel and stereo data uses two channels.
+
+
+
+
+ Sample rate, in samples per second (Hertz), that each channel should be
+ played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values
+ for nSamplesPerSecare 8.0 kHz, 11.025 kHz, 22.05 kHz, and 44.1 kHz. For
+ non-PCM formats, this member must be computed according to the
+ manufacturer's specification of the format tag.
+
+
+
+
+ Required average data-transfer rate, in bytes per second, for the format
+ tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to
+ the product of nSamplesPerSec and nBlockAlign. For non-PCM formats, this
+ member must be computed according to the manufacturer's specification of
+ the format tag.
+ Playback and record software can estimate buffer sizes by using the
+ nAvgBytesPerSec member.
+
+
+
+
+ Block alignment, in bytes. The block alignment is the minimum atomic unit
+ of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM,
+ nBlockAlign should be equal to the product of nChannels and wBitsPerSample
+ divided by 8 (bits per byte). For non-PCM formats, this member must be
+ computed according to the manufacturer's specification of the format tag.
+ Playback and record software must process a multiple of nBlockAlign bytes
+ of data at a time. Data written and read from a device must always start
+ at the beginning of a block. For example, it is illegal to start playback
+ of PCM data in the middle of a sample (that is, on a non-block-aligned
+ boundary).
+
+
+
+
+ Bits per sample for the wFormatTag format type. If wFormatTag is
+ WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. For
+ non-PCM formats, this member must be set according to the manufacturer's
+ specification of the format tag. Some compression schemes cannot define a
+ value for wBitsPerSample, so this member can be zero.
+
+
+
+
+ Size, in bytes, of extra format information appended to the end of the
+ WAVEFORMATEX structure. This information can be used by non-PCM formats to
+ store extra attributes for the wFormatTag. If no extra information is
+ required by the wFormatTag, this member must be set to zero.
+ For WAVE_FORMAT_PCM formats only, this member is ignored.
+
+
+
+
+ This structure describes the format of the data used by a stream in a DirectX DMO.
+
+
+
+
+ Media major type GUID for audio types.
+
+
+
+
+ Media subtype GUID for PCM audio signals.
+
+
+
+
+ Media subtype GUID for wave audio signals.
+
+
+
+
+ Media format type GUID for WAVEFORMATEX formats.
+
+
+
+
+ A GUID identifying the stream's major media type.
+ This must be one of the DMO Media Types.
+
+
+
+
+ Subtype GUID of the stream.
+
+
+
+
+ If TRUE, samples are of a fixed size. This field is informational only.
+ For audio, it is generally set to TRUE. For video, it is usually TRUE
+ for uncompressed video and FALSE for compressed video.
+
+
+
+
+ If TRUE, samples are compressed using temporal (interframe) compression.
+ A value of TRUE indicates that not all frames are key frames.
+ This field is informational only.
+
+
+
+
+ Size of the sample, in bytes. For compressed data, the value can be zero.
+
+
+
+
+ GUID specifying the format type. The pbFormat member points to the
+ corresponding format structure.
+
+
+
+
+ This field is not used.
+
+
+
+
+ Size of the format block of the media type.
+
+
+
+
+ Pointer to the format structure. The structure type is specified by the
+ formattype member. The format structure must be present,
+ unless formattype is GUID_NULL or FORMAT_None.
+
+
+
+
+ Initializes a new instance of the DMO_MEDIA_TYPE class.
+
+
+
+
+ Associates this instance with the specified audio format, allocating
+ native memory as appropriate.
+
+
+ Audio format to associate with this instance.
+
+
+
+
+ Finalizes an instance of the DMO_MEDIA_TYPE class.
+
+
+
+
+ Frees native resources associated with this object, such as the memory
+ used to hold the format structure.
+
+
+
+
+ Frees native resources associated with this object, such as the memory
+ used to hold the format structure.
+
+
+ If false, the method has been called by the runtime from
+ inside the finalizer and you should not reference other objects.
+ Only unmanaged resources can be disposed.
+
+
+
+
+ This class represents a pre-allocated buffer, managed by the StaticMediaBuffer client.
+ Its main purpose is to present somebody else's buffer as a .
+
+
+
+
+ Native pointer to buffer data.
+
+
+
+
+ Maximum number of bytes that can be stored in buffer.
+
+
+
+
+ Number of bytes currently stored in buffer that are ready to be consumed.
+
+
+
+
+ Prevents a default instance of the StaticMediaBuffer class from being created.
+
+
+
+
+ Invalidates all buffer data, getting buffer ready to be written-to
+ again from the beginning.
+
+
+ New maximum size of buffer.
+
+
+
+
+ Initializes a new instance of the StaticMediaBuffer class from the
+ specified buffer data and size.
+
+
+ Native pointer to buffer data.
+
+
+ Number of bytes allocated for pointer.
+
+
+
+
+ This method specifies the length of the data currently in the buffer.
+
+
+ Size of the data, in bytes. The value must not exceed the buffer's maximum size.
+ Call the method to obtain the maximum size.
+
+
+
+
+ This method retrieves the maximum number of bytes this buffer can hold.
+
+
+ Pointer to a variable that receives the buffer's maximum size, in bytes.
+
+
+
+
+ This method retrieves the buffer and the size of the valid data in the buffer.
+
+
+ that receives the native memory address of the
+ buffer array. The parameter can be IntPtr.Zero.
+
+
+ Reference to a variable that receives the size of the valid data,
+ in bytes.
+
+
+
+
+ Exposes methods for enumerating, getting, and setting property values.
+
+
+
+
+ Gets the number of properties attached to the file.
+
+
+ Receives the number of properties in store.
+
+
+
+
+ Gets a property key from the store's array of properties.
+
+
+ The index of the property key in the array of
+ structures. This is a zero-based index.
+
+
+ Receives a structure that contains the unique
+ identifier for a property.
+
+
+
+
+ Gets data for a specific property.
+
+
+ structure that contains a unique identifier
+ for the property in question.
+
+
+ Receives an object that contains the property data.
+
+
+
+
+ Sets a new property value, or replaces or removes an existing value.
+
+
+ structure that contains a unique identifier
+ for the property in question.
+
+
+ Reference to an object that contains the new property data.
+
+
+
+
+ Saves a property change.
+
+
+
+
+ Specifies the FMTID/PID identifier that programmatically identifies a
+ property.
+
+
+
+
+ A unique GUID for the property.
+
+
+
+
+ A property identifier (PID). It is recommended that you set this value
+ to PID_FIRST_USABLE. Any value greater than or equal to 2 is
+ acceptable.
+
+
+
+
+ Provides ability to get/set audio beam direction for Kinect™
+ sensor, as well as the ability to get the position of current sound
+ source relative to sensor.
+
+
+
+
+ Gets the currently selected beam direction (i.e., angle that
+ Kinect™ audio sensor gives relative preference over other
+ angles).
+
+
+ Receives the horizontal angle (in degrees) of the currently selected
+ beam in camera coordinates, where the x-z axes define the horizontal
+ plane. The angle is relative to the z-axis, which is perpendicular to
+ the Kinect sensor.
+
+
+
+
+ Sets the currently selected beam direction (i.e., angle that
+ Kinect™ audio sensor gives relative preference over other
+ angles).
+
+
+ The horizontal angle (in degrees) to set as the new beam angle, in
+ camera coordinates, where the x-z axes define the horizontal plane.
+ The angle is relative to the z-axis, which is perpendicular to the
+ Kinect™ sensor.
+
+
+
+
+ Provides the best estimate of the sound source location relative to
+ the Kinect™ sensor.
+
+
+ Receives the estimated horizontal angle (in degrees) to the sound
+ source, in camera coordinates, where the x-z axes define the horizontal
+ plane. The angle is relative to the z-axis, which is perpendicular to
+ the Kinect™ sensor.
+
+
+ Receives a measure of the confidence (in [0.0,1.0] interval) in the
+ estimated value for .
+
+
+
+
+ Type of audio echo cancellation.
+
+
+
+
+ No echo cancellation or suppression.
+
+
+
+
+ Echo cancellation only.
+
+
+
+
+ Echo cancellation and echo suppression.
+
+
+
+
+ Type of beam angle determination.
+
+
+
+
+ Automatic Beam determination based on fixed coefficients.
+
+
+
+
+ Automatic Beam determination based on dynamic coefficients.
+
+
+
+
+ User set beam angle.
+
+
+
+
+ Argument for the BeamAngleChanged event.
+
+
+
+
+ Initializes a new instance of the BeamAngleChangedEventArgs class.
+
+
+ This constructor is internal to prevent external creation.
+
+
+
+
+ Gets the angle (in degrees) of the direction towards which the audio beam
+ is pointing, i.e.: the direction towards which the kinect sensor is listening.
+ When facing the Kinect:
+ 0: center
+ positive angles: right
+ negative angles: left
+ Range is -50 to +50 degrees.
+
+
+
+
+ Argument for the SoundSourceAngleChanged event.
+
+
+
+
+ Initializes a new instance of the SoundSourceAngleChangedEventArgs class.
+
+
+ This constructor is internal to prevent external creation.
+
+
+
+
+ Gets the angle (in degrees) from kinect sensor towards the current sound source.
+ When facing the Kinect:
+ 0: center
+ positive angles: right
+ negative angles: left
+ Range is -50 to +50 degrees.
+
+
+
+
+ Gets a measure of our confidence in the sound source angle.
+ This value is in the range [0,1], 1 being the highest possible confidence.
+
+
+
+
+ Main class for capturing audio from Kinect and get access to sound source localization.
+
+
+
+
+ Value of first valid DMO property ID.
+
+
+
+
+ ID of DMO property used to turn Acoustic Echo Cancellation mode on and off.
+
+
+
+
+ ID of DMO property used to toggle between source mode and filter mode.
+
+
+
+
+ ID of DMO property used to specify the indexes of microphone and speaker devices
+ that are bound to DMO.
+
+
+
+
+ ID of DMO property used to turn Feature mode on and off.
+
+
+
+
+ ID of DMO property used to turn Noise Suppression on and off.
+
+
+
+
+ ID of DMO property used to turn Automatic Gain Control on and off.
+
+
+
+
+ ID of DMO property used to configure how many times acoustic echo suppression algorithm is run.
+
+
+
+
+ ID of DMO property used to configure beamforming mode.
+
+
+
+
+ Gets the smallest possible value for .
+
+
+
+
+ Gets the largest possible value for .
+
+
+
+
+ Gets the smallest possible value for .
+
+
+
+
+ Gets the largest possible value for .
+
+
+
+
+ Name of audio capture thread.
+
+
+
+
+ Format GUID used to identify DMO property keys.
+
+
+
+
+ Returns a that corresponds to the specified property id.
+
+
+ ID of property for which corresponding will be returned.
+
+
+ corresponding to property ID.
+
+
+
+
+ Sets DMO property value in DMO property dictionary and flags properties
+ as pending to be applied to DMO object.
+
+ ID of property to set.
+ Value of property to set.
+
+
+
+ Gets DMO property value from DMO property dictionary.
+
+ ID of property to get.
+
+ Value of requested property. Will be null before first time property is set, so internal code should
+ handle this and also set appropriate defaults for all properties accessible to clients.
+
+
+
+
+ Method to be called in audio capture thread to apply DMO properties specified by client
+ in main thread.
+
+
+ Property store to which queued-up properties will be applied.
+
+
+ Whenever a property is set, we flag that we have properties pending to be applied to DMO.
+ Also, whenever a capture thread is started we also flag that we have properties pending
+ to be applied to DMO.
+ Then, whenever capture thread notices that this flag is set, it applies all property
+ values in property bag to DMO, not merely the ones that have changed since last time.
+ This won't result in a noticeable performance overhead, because there are only a handful
+ of DMO properties that we care about, and doing things this way is simpler than having a
+ mechanism to keep track of property diffs.
+
+
+
+
+ Throws an exception if feature mode is not turned on.
+ Called by setters for properties that require feature mode
+ to be turned on for proper functioning.
+
+
+
+
+ Default value for stale read threshold overridable in .
+
+
+
+
+ Dictionary of DMO property keys to property values.
+
+
+
+
+ true when there are properties set by client still pending to be applied to DMO.
+ false otherwise.
+
+
+
+
+ Facade object used to call into native layer in an easily mockable way.
+
+
+
+
+ Lock object used to protect DMO property get/set operations.
+
+
+
+
+ Lock object used to protect audio capture initialization, uninitialization and resource disposal.
+
+
+
+
+ actively capturing audio.
+ If null, no stream is currently being captured.
+
+
+
+
+ Sound source angle detected by DMO during audio capture.
+
+
+
+
+ Confidence measured by DMO for sound source angle value, during audio capture.
+
+
+
+
+ Beam angle detected by DMO during audio capture.
+
+
+
+
+ Manual beam angle specified by client.
+
+
+
+
+ Beam angle to set on DMO in capture thread.
+
+
+
+
+ The object that owns this audio source.
+
+
+
+
+ Handler for event that fires when the sound source changes.
+
+
+
+
+ Handler for event that fires when the sound source changes.
+
+
+
+
+ Initializes a new instance of the KinectAudioSource class.
+
+
+ that owns this audio source.
+
+
+ Facade to use for performing native call operations.
+
+
+ This constructor is internal and is injectable with different
+ objects for testing purposes.
+
+
+
+
+ Initializes a new instance of the KinectAudioSource class, with default properties set.
+
+
+ that owns this audio source.
+
+
+
+
+ Starts capturing audio from the device. The data can be read using the returned stream.
+
+
+
+ If there are no reads to the stream for longer than this threshold the DMO discards
+ any buffered audio. This prevents stale data from being returned in scenarios such as speech recognition and dialog
+ systems, when the consumption of audio samples may stop for a while.
+
+
+ Higher values for this threshold (e.g.: multiple seconds) are advisable if clients notice dropped audio packets,
+ such as is more likely in high CPU-load scenarios.
+
+
+ Pass TimeSpan.MaxValue to avoid hitting this threshold.
+
+
+
+ A stream of audio samples, in 16khz, 16-bit PCM format.
+
+
+ If the stream data is not read and the buffered audio exceeds the size specified in ,
+ the oldest samples are discarded.
+
+
+
+
+ Starts capturing audio from the device. The data can be read using the returned stream.
+
+
+ A stream of audio samples, in 16khz, 16-bit PCM format.
+
+
+ If the data is not read for more than 500ms, buffered data is discarded to prevent returning old audio.
+
+
+
+
+ Stops the capturing and closes the stream.
+
+
+
+
+ The specified value that determines how the DMO
+ performs echo cancellation and suppression.
+
+
+
+
+ Change the echo cancellation and echo suppression configuration according to the
+ specified values.
+
+
+ Specifies how many times the DMO will perform acoustic echo suppression (AES) on
+ the residual signal after echo cancellation has been applied.
+ 0 implies echo suppression is turned off, and 1 and 2 are acceptable values used
+ to turn this on.
+
+
+ Specifies which acoustic echo cancellation mode we should use.
+ _AEC_SYSTEM_MODE.ArrayAndEchoCancellation turns AEC on and
+ _AEC_SYSTEM_MODE.ArrayOnly turns AEC off.
+
+
+
+
+ The specified value that determines how the beam angle
+ is controlled.
+
+
+
+
+ Updates the current beam angle and fires the event.
+
+ Beam angle, in radians.
+
+
+
+ Updates the current sound sounce angle and confidence values,
+ and fires the event if beyond a threshold.
+
+ Sound source angle, in radians.
+ ConfidenceLevel, in 0-1 range.
+
+
+
+ Returns the angle last set by the client and then clears it (sets it to double.MinValue).
+
+
+ The manual beam angle (in degrees) to be applied to DMO.
+
+
+
+
+ Enumerates all sound capture (e.g.: microphone) devices in system.
+
+
+ An enumeration of sound capture device metadata, where the metadata
+ returned for each enumerated device is enough to uniquely identify
+ capture device within system.
+
+
+
+
+ Returns the device index corresponding to the default speaker for the system.
+
+
+ An integer in range [0,{number of speaker devices}-1] representing the device
+ index for the default speaker device.
+
+
+
+
+ Finds the microphone index that matches the sensor associated with this audio source.
+
+
+ The index of the matching microphone array device, if a matching device was found.
+ null otherwise.
+
+
+
+
+ Stops audio capture, if necessary, and disposes all resources used by the
+ .
+
+
+
+
+ Gets a reference to the DMO wrapper, used internally by the audio stream.
+
+
+
+
+ Gets or sets microphone and speaker device indexes currently bound to DMO.
+ Maps to the DMO property MFPKEY_WMAAECMA_DEVICE_INDEXES.
+
+
+
+
+ Sets the index of microphone device associated with audio processing pipeline.
+
+
+ Internally used to match the sensor to its audio device.
+
+
+
+
+ Gets or sets a value indicating whether feature mode is turned on.
+ ON by default.
+ Maps to the DMO property MFPKEY_WMAAECMA_FEATURE_MODE.
+
+
+ If feature mode is enabled, this in turn enables turning on DMO features
+ such as noise suppression and acoustic gain control.
+
+
+
+
+ Sets the microphone array beam forming mode.
+ Requires FeatureMode set.
+ _MIC_ARRAY_MODE.SingleBeam by default.
+ Maps to the DMO property MFPKEY_WMAAECMA_FEATR_MICARR_MODE.
+
+
+
+
+ Event that fires when the beam angle changes.
+
+
+
+
+ Event that fires when the beam angle changes.
+
+
+
+
+ Gets the smallest possible value for .
+
+
+
+
+ Gets the largest possible value for .
+
+
+
+
+ Gets the smallest possible value for .
+
+
+
+
+ Gets the largest possible value for .
+
+
+
+
+ Gets or sets the echo cancellation and suppression mode.
+ Default is None (i.e.: echo cancellation and echo suppression are both turned off).
+
+
+
+
+ Gets or sets the beam angle mode that determines how the beam angle is controlled.
+ Default is Automatic.
+
+
+
+
+ Gets the most recent sound source position observed, in degrees.
+
+
+ This property gets updated continuously after calling Start().
+
+
+
+
+ Gets the most recent measurement of our confidence in the sound source position.
+ This value is in the range [0,1], 1 being the highest possible confidence.
+
+
+ This property gets updated continuously after calling Start().
+
+
+
+
+ Gets or sets index of speaker device used to identify the sound being
+ produced by computer in order to perform echo cancellation.
+
+
+
+
+ Gets or sets a value indicating whether Noise Suppression is enabled.
+ ON by default.
+ Maps to the DMO property MFPKEY_WMAAECMA_FEATR_NS.
+
+
+
+
+ Gets or sets a value indicating whether Automatic Gain Control is enabled.
+ OFF by default.
+ Recommended for non-speech scenarios.
+ Maps to the DMO property MFPKEY_WMAAECMA_FEATR_AGC.
+
+
+
+
+ Gets the sound source angle that the audio array is currently focusing on, in degrees.
+
+
+
+
+ Gets or sets manual Beam angle, in degrees.
+
+
+ Only valid when is set to Manual.
+
+
+
+
+ Beamforming mode for the microphone array.
+ Values map to the values of DMO property MFPKEY_WMAAECMA_FEATR_MICARR_MODE.
+
+
+
+
+ Single channel. Last 8 bits specify which channel to use - NOT USED.
+
+
+
+
+ Simply sum all channels - NOT USED.
+
+
+
+
+ Perform beamformer. Beam selected by internal source localizer.
+
+
+
+
+ Perform beamformer. Always select the center beam - NOT USED.
+
+
+
+
+ Perform beamformer. Beam selected externally by applications.
+
+
+
+
+ Perform adaptive beamformer. Beam selected by internal source localizer.
+
+
+
+
+ System mode for the microphone array echo cancellation pipeline.
+ Values map to the values of DMO property MFPKEY_WMAAECMA_FEATR_SYSTEM_MODE.
+
+
+
+
+ Audio data from microphone array will be streamed with NO AEC processing applied to it.
+
+
+
+
+ Audio data from microphone array will be streamed with AEC processing applied to it.
+
+
+
+
+ A Stream implementation to read data from the DMO output in a .NET friendly way.
+
+
+
+
+ Status flag returned by IMediaObject::ProcessOutput.
+
+
+
+
+ WASAPI error indicating that the specified capture device has become invalid.
+
+
+
+
+ Number of milliseconds' worth of data to allocate to each buffer in buffer pool.
+
+
+
+
+ Number of bytes to allocate to each buffer in buffer pool.
+
+
+
+
+ Minimum number of milliseconds' worth of captured audio to keep in buffer pool.
+
+
+
+
+ Maximum number of milliseconds' worth of captured audio to keep in buffer pool.
+
+
+
+
+ Number of milliseconds' worth of additional data to be discarded when we hit the
+ threshold for stale read data.
+
+
+ The DMO buffers 0.1 seconds of mic data on the input, but some of it may already
+ be making its way down the pipeline. Experimentally 250ms works best.
+
+
+
+
+ Event used to let capture thread know when it should stop capturing audio data.
+
+
+
+
+ that owns this stream.
+
+
+
+
+ Pool of data buffers waiting to be used for audio capture.
+
+
+
+
+ Queue of buffers with data pending to be read by stream client.
+
+
+
+
+ Object used to synchronize multithreaded access to data capture/read buffers.
+
+
+
+
+ Event used to wake up threads waiting to read from this stream.
+
+
+
+
+ true if we've ever started to capture audio data through
+ this stream instance.
+ false otherwise.
+
+
+
+
+ Audio capture thread.
+
+
+
+
+ Current audio data buffer from which client will read data.
+
+
+
+
+ Next data index within current audio data buffer from which
+ client will read data.
+
+
+
+
+ Number of bytes that have been read from this stream.
+
+
+
+
+ true if we're actively capturing audio data.
+ false otherwise.
+
+
+
+
+ Timestamp of last time that client stopped reading data.
+
+
+ Used in conjunction with _readStaleThreshold to
+ detect if the reader stopped reading data. If so, we want to discard old data on
+ the next read.
+
+
+
+
+ If nothing is read for this amount of time, we assume that the client has
+ purposefully stopped reading from stream, so we start with fresh data next time
+ they request to read data.
+
+
+
+
+ Exception, if any, encountered during capture thread execution.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ that owns the stream being created
+
+
+ If there are no reads to the stream for longer than this threshold the DMO discards
+ any buffered audio. This prevents stale data from being returned in scenarios such as speech recognition and dialog
+ systems, when the consumption of audio samples may stop for a while. Pass TimeSpan.MaxValue to avoid hitting this threshold.
+
+
+
+
+ Stops capture thread and truncates pending stream reads.
+
+
+
+
+ Starts capture thread and prepares stream for reading.
+
+
+
+
+ Resets tracking of stale data as if data had just been read, so that no data
+ will be discarded until {now + readStaleThreshold}.
+
+
+
+
+ Configure media type in media object and allocate streaming resources.
+
+
+ to initialize.
+
+
+
+
+ Get number of buffers appropriate to use in a write buffer pool that
+ keeps track of the specified number of milliseconds' worth of buffer.
+
+
+ Number of milliseconds in readStaleThreshold. See
+ .
+
+
+ Number of buffers in write buffer pool.
+
+
+
+
+ Thread procedure for audio capture thread.
+
+
+ UNUSED - Thread Procedure default parameter.
+
+
+ This thread creates a DMO and calls it in a loop to get captured audio.
+ Properties set on KinectAudioSource are read during the capture loop and applied
+ to DMO.
+ Thread handles audio device invalidation errors and generates a stream of silent
+ audio until device becomes valid again.
+
+
+
+
+ Enqueues the captured stream buffer into the data queue from which client will read stream.
+
+
+ Buffer that was produced by audio capture operation.
+
+
+
+
+ Gets a buffer from the write buffer pool, if possible. Otherwise it
+ gets the oldest buffer from the read buffer queue.
+
+
+ A buffer ready to be written-to.
+
+
+
+
+ Frees a if it has been initialized.
+
+
+ Handle to free.
+
+
+
+
+ When overridden in a derived class, clears all buffers for this stream
+ and causes any buffered data to be written to the underlying device.
+
+
+ Unsupported in this implementation.
+
+
+
+
+ Reads a sequence of bytes from the current stream and advances the position
+ within the stream by the number of bytes read.
+
+
+ An array of bytes. When this method returns, the buffer contains the specified
+ byte array with the values between and
+ ( + - 1) replaced by
+ the bytes read from the current source.
+
+
+ The zero-based byte offset in at which to begin
+ storing the data read from the current stream.
+
+
+ The maximum number of bytes to be read from the current stream.
+
+
+ The total number of bytes read into the buffer. This can be less than the number
+ of bytes requested if that many bytes are not currently available, or zero (0)
+ if the end of the stream has been reached.
+
+
+
+
+ Release an individual read buffer, returning it to the write buffer pool.
+
+
+ Buffer to release.
+
+
+
+
+ Release all read buffers, returning them to the write buffer pool.
+
+
+
+
+ Sets the position within the current stream.
+ This implementation represents a live stream, so this method just returns
+ the byte position relative to SeekOrigin.Current, without adjusting the
+ actual stream position.
+
+
+ Byte offset relative to SeekOrigin.Current.
+
+
+ A value of type SeekOrigin indicating the reference point used to obtain the new
+ position.
+ Parameter value is ignored in this implementation.
+
+
+ The new position within the current stream.
+
+
+
+
+ When overridden in a derived class, sets the length of the current stream.
+ Not supported in this implementation.
+
+
+ The desired length of the current stream in bytes.
+
+
+
+
+ When overridden in a derived class, writes a sequence of bytes to the current stream
+ and advances the current position within this stream by the number of bytes written.
+ Not supported in this implementation.
+
+
+ An array of bytes. This method copies bytes from
+ to the current stream.
+
+
+ The zero-based byte offset in at which to begin copying bytes
+ to the current stream.
+
+
+ The number of bytes to be written to the current stream.
+
+
+
+
+ Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
+
+
+
+
+ Gets the read buffer queue.
+
+
+
+
+ Gets a value indicating whether the current stream supports reading.
+
+
+
+
+ Gets a value indicating whether the current stream supports seeking.
+
+
+
+
+ Gets a value indicating whether the current stream supports writing.
+
+
+
+
+ Gets the length in bytes of the stream.
+
+
+ Always returns -1 in this implementation.
+
+
+
+
+ Gets or sets the position within the current stream.
+
+
+ Set is unsupported in this implementation.
+
+
+
+
+ Helper class that represents a data buffer used for capturing audio data
+ and making it available for clients to read.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Maximum number of bytes buffer can hold.
+
+
+
+
+ Gets or sets number of bytes of valid data contained in buffer.
+
+
+
+
+ Gets byte array containing buffer data.
+
+
+
+
+ Helper class to keep track of audio beam and sound source angle changes during audio capture.
+
+
+
+
+ Last observed value for beam angle.
+
+
+
+
+ Last observed value for sound source angle.
+
+
+
+
+ Last observed value for sound source confidence.
+
+
+
+
+ that owns this .
+
+
+
+
+ object used to get and set the audio beam angle.
+
+
+
+
+ Initializes a new instance of the AudioAngleTracker class.
+
+
+ that owns the new angle tracker.
+
+
+ object used to get and set the audio
+ beam angle.
+
+
+
+
+ Track changes in beam angle and sound source position, triggering events for client as appropriate.
+
+
+
+
+ Helper class to manage writing to the appropriate write buffer and queuing up
+ data into the read queue when it's ready to be read by stream clients.
+
+
+
+
+ Managed buffer that will receive data from native layer.
+
+
+
+
+ that owns this .
+
+
+
+
+ Initializes a new instance of the BufferManager class.
+
+
+ that owns the new buffer manager.
+
+
+
+
+ Write the specified data into the current write buffer, queuing
+ write buffer into read queue if it gets full.
+
+
+ Data to write into write buffer.
+
+
+ Number of bytes to write.
+
+
+
+
+ Write empty data (zeroes) into the current write buffer, queuing
+ write buffer into read queue if it gets full.
+
+
+ Number of bytes to write.
+
+
+
+
+ Performs the specified write action, queuing write buffers into
+ read queue as they get full.
+
+
+ Number of bytes to write into current write buffer.
+
+
+ Action to perform on current write buffer.
+
+
+
+
+ Queues any data lingering in current write buffer into the read buffer
+ queue, ready for client to read it.
+
+
+
+
+ Managed wrapper for ETW code.
+
+
+
+
+ This is the core provider responsible for the reports.
+
+
+
+
+ This is EventDescriptor for the GetSegmentationBegin event.
+
+
+
+
+ This is EventDescriptor for the GetSegmentationEnd event.
+
+
+
+
+ This is EventDescriptor for the ProcessInputBufferBegin event.
+
+
+
+
+ This is EventDescriptor for the ProcessInputBufferEnd event.
+
+
+
+
+ This is EventDescriptor for the NotifyFrameReadyStart event.
+
+
+
+
+ This is EventDescriptor for the NotifyFrameReadyEnd event.
+
+
+
+
+ This is EventDescriptor for the ProcessFrameStart event.
+
+
+
+
+ This is EventDescriptor for the ProcessFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the GetSkeletonsBegin event.
+
+
+
+
+ This is EventDescriptor for the GetSkeletonsEnd event.
+
+
+
+
+ This is EventDescriptor for the UnpackBayerStart event.
+
+
+
+
+ This is EventDescriptor for the UnpackBayerEnd event.
+
+
+
+
+ This is EventDescriptor for the FrameStart event.
+
+
+
+
+ This is EventDescriptor for the FrameEnd event.
+
+
+
+
+ This is EventDescriptor for the MapDepthFrameToColorFrameStart event.
+
+
+
+
+ This is EventDescriptor for the MapDepthFrameToColorFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the MapDepthToColorImagePointStart event.
+
+
+
+
+ This is EventDescriptor for the MapDepthToColorImagePointEnd event.
+
+
+
+
+ This is EventDescriptor for the MapSkeletonPointToColorStart event.
+
+
+
+
+ This is EventDescriptor for the MapSkeletonPointToColorEnd event.
+
+
+
+
+ This is EventDescriptor for the MapSkeletonPointToDepthStart event.
+
+
+
+
+ This is EventDescriptor for the MapSkeletonPointToDepthEnd event.
+
+
+
+
+ This is EventDescriptor for the MapDepthToSkeletonPointStart event.
+
+
+
+
+ This is EventDescriptor for the MapDepthToSkeletonPointEnd event.
+
+
+
+
+ This is EventDescriptor for the ManagedNuiTransformDepthImageToSkeletonStart event.
+
+
+
+
+ This is EventDescriptor for the ManagedNuiTransformDepthImageToSkeletonEnd event.
+
+
+
+
+ This is EventDescriptor for the ManagedNuiTransformSkeletonToDepthImageStart event.
+
+
+
+
+ This is EventDescriptor for the ManagedNuiTransformSkeletonToDepthImageEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolutionStart event.
+
+
+
+
+ This is EventDescriptor for the NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolutionEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiImageGetColorPixelCoordinateFrameFromDepthPixelFrameAtResolutionStart event.
+
+
+
+
+ This is EventDescriptor for the NuiImageGetColorPixelCoordinateFrameFromDepthPixelFrameAtResolutionEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamOpenStart event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamOpenEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamGetNextFrameStart event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamGetNextFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamReleaseFrameStart event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamReleaseFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the NuiInitializeStart event.
+
+
+
+
+ This is EventDescriptor for the NuiInitializeEnd event.
+
+
+
+
+ This is EventDescriptor for the AllFramesReady event.
+
+
+
+
+ This is EventDescriptor for the ColorFrameReady event.
+
+
+
+
+ This is EventDescriptor for the DepthFrameReady event.
+
+
+
+
+ This is EventDescriptor for the SkeletonFrameReady event.
+
+
+
+
+ This is EventDescriptor for the StopDeviceStart event.
+
+
+
+
+ This is EventDescriptor for the StopDeviceEnd event.
+
+
+
+
+ This is EventDescriptor for the SingleStreamStopStart event.
+
+
+
+
+ This is EventDescriptor for the SingleStreamStopEnd event.
+
+
+
+
+ This is EventDescriptor for the DetectGenuineDeviceStart event.
+
+
+
+
+ This is EventDescriptor for the DetectGenuineDeviceEnd event.
+
+
+
+
+ This is EventDescriptor for the CreateDeviceStart event.
+
+
+
+
+ This is EventDescriptor for the CreateDeviceEnd event.
+
+
+
+
+ This is EventDescriptor for the ReEnumerateDevicesStart event.
+
+
+
+
+ This is EventDescriptor for the ReEnumerateDevicesEnd event.
+
+
+
+
+ This is EventDescriptor for the OutputStreamInitStart event.
+
+
+
+
+ This is EventDescriptor for the OutputStreamInitEnd event.
+
+
+
+
+ This is EventDescriptor for the SingleStreamStartStart event.
+
+
+
+
+ This is EventDescriptor for the SingleStreamStartEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletalTrackerInitializeStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletalTrackerInitializeEnd event.
+
+
+
+
+ This is EventDescriptor for the KinectSensorInitializeStart event.
+
+
+
+
+ This is EventDescriptor for the KinectSensorInitializeEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageBGRStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageBGREnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageCDRPStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageCDRPEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageHeadDetectorStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageHeadDetectorEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageExemplarStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageExemplarEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageCentroidsStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageCentroidsEnd event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageModelFittingStart event.
+
+
+
+
+ This is EventDescriptor for the SkeletonStageModelFittingEnd event.
+
+
+
+
+ This is EventDescriptor for the FrameRequestDropped event.
+
+
+
+
+ This is EventDescriptor for the UnexpectedFrameRequestError event.
+
+
+
+
+ This is EventDescriptor for the FrameStateChanged event.
+
+
+
+
+ This is EventDescriptor for the FrameDropped event.
+
+
+
+
+ This is EventDescriptor for the NuiInitializeInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamOpenInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiShutdownTrace event.
+
+
+
+
+ This is EventDescriptor for the InternalNuiShutdownTrace event.
+
+
+
+
+ This is EventDescriptor for the NuiSkeletonTrackingEnableTrace event.
+
+
+
+
+ This is EventDescriptor for the NuiSkeletonTrackingDisableTrace event.
+
+
+
+
+ This is EventDescriptor for the NuiTransformSmoothInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiSkeletonSetTrackedSkeletonsInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiSetFrameEndEventInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamGetNextFrameInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiSkeletonGetNextFrameInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiDeviceConnectionIdInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiUniqueIdInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiCreateSensorByIndexInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiCreateSensorByIdInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiImageStreamSetImageFrameFlagsInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiAudioBeamGetBeamInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiAudioBeamGetPositionInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiAudioBeamSetBeamInfo event.
+
+
+
+
+ This is EventDescriptor for the NuiGetAudioSourceInfo event.
+
+
+
+
+ This is EventDescriptor for the AudioDmoSetPropertyInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedKinectSensorStartInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedImageStreamDisabledInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedFrameReadyEventAddedInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedFrameReadyEventRemovedInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedOpenNextFrameInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedOpenFrameFromEventInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedOpenFrameFromAllFramesEventInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedAllFramesReadyEventAddedInfo event.
+
+
+
+
+ This is EventDescriptor for the ManagedAllFramesReadyEventRemovedInfo event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToDepthFrameStart event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToDepthFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToDepthFrame_InterpolateGapsStart event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToDepthFrame_InterpolateGapsEnd event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToSkeletonFrameStart event.
+
+
+
+
+ This is EventDescriptor for the MapColorFrameToSkeletonFrameEnd event.
+
+
+
+
+ This is EventDescriptor for the MapDepthFrameToSkeletonFrameStart event.
+
+
+
+
+ This is EventDescriptor for the MapDepthFrameToSkeletonFrameEnd event.
+
+
+
+
+ Initializes static members of the KinectEtwProvider class.
+
+
+
+
+ This is the event method for GetSegmentationBegin.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for GetSegmentationEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ProcessInputBufferBegin.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ProcessInputBufferEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NotifyFrameReadyStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NotifyFrameReadyEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ProcessFrameStart.
+
+ The frameOverlapId parameter.
+ The streamId parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ProcessFrameEnd.
+
+ The frameOverlapId parameter.
+ The streamId parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for GetSkeletonsBegin.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for GetSkeletonsEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for UnpackBayerStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for UnpackBayerEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for FrameStart.
+
+ The streamType parameter.
+ The bufferIndex parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for FrameEnd.
+
+ The streamType parameter.
+ The bufferIndex parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthFrameToColorFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthFrameToColorFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthToColorImagePointStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthToColorImagePointEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapSkeletonPointToColorStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapSkeletonPointToColorEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapSkeletonPointToDepthStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapSkeletonPointToDepthEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthToSkeletonPointStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthToSkeletonPointEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedNuiTransformDepthImageToSkeletonStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedNuiTransformDepthImageToSkeletonEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedNuiTransformSkeletonToDepthImageStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedNuiTransformSkeletonToDepthImageEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolutionStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolutionEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageGetColorPixelCoordinateFrameFromDepthPixelFrameAtResolutionStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageGetColorPixelCoordinateFrameFromDepthPixelFrameAtResolutionEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamOpenStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamOpenEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamGetNextFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamGetNextFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamReleaseFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamReleaseFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiInitializeStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiInitializeEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for AllFramesReady.
+
+ The colorFrameTimestamp parameter.
+ The depthFrameTimestamp parameter.
+ The skeletonFrameTimestamp parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ColorFrameReady.
+
+ The timestamp parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for DepthFrameReady.
+
+ The timestamp parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonFrameReady.
+
+ The timestamp parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for StopDeviceStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for StopDeviceEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SingleStreamStopStart.
+
+ The streamType parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SingleStreamStopEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for DetectGenuineDeviceStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for DetectGenuineDeviceEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for CreateDeviceStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for CreateDeviceEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ReEnumerateDevicesStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ReEnumerateDevicesEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for OutputStreamInitStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for OutputStreamInitEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SingleStreamStartStart.
+
+ The streamType parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SingleStreamStartEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletalTrackerInitializeStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletalTrackerInitializeEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for KinectSensorInitializeStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for KinectSensorInitializeEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageBGRStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageBGREnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageCDRPStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageCDRPEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageHeadDetectorStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageHeadDetectorEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageExemplarStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageExemplarEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageCentroidsStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageCentroidsEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageModelFittingStart.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for SkeletonStageModelFittingEnd.
+
+ The streamId parameter.
+ The width parameter.
+ The height parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for FrameRequestDropped.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for UnexpectedFrameRequestError.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for FrameStateChanged.
+
+ The streamType parameter.
+ The frameNumber parameter.
+ The state parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for FrameDropped.
+
+ The streamType parameter.
+ The frameNumber parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiInitializeInfo.
+
+ The deviceId parameter.
+ The processName parameter.
+ The flags parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamOpenInfo.
+
+ The hStream parameter.
+ The imageType parameter.
+ The imageResolution parameter.
+ The imageFrameFlags parameter.
+ The hNextFrameEvent parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiShutdownTrace.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for InternalNuiShutdownTrace.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiSkeletonTrackingEnableTrace.
+
+ The hNextFrameEvent parameter.
+ The dwFlags parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiSkeletonTrackingDisableTrace.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiTransformSmoothInfo.
+
+ The smoothing parameter.
+ The correction parameter.
+ The prediction parameter.
+ The jitterRadius parameter.
+ The maxDeviationRadius parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiSkeletonSetTrackedSkeletonsInfo.
+
+ The skeleton1 parameter.
+ The skeleton2 parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiSetFrameEndEventInfo.
+
+ The hEvent parameter.
+ The dwFrameEventFlag parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamGetNextFrameInfo.
+
+ The hStream parameter.
+ The dwMillisecondsToWait parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiSkeletonGetNextFrameInfo.
+
+ The dwMillisecondsToWait parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiDeviceConnectionIdInfo.
+
+ The kinectId parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiUniqueIdInfo.
+
+ The kinectId parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiCreateSensorByIndexInfo.
+
+ The index parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiCreateSensorByIdInfo.
+
+ The strInstanceId parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiImageStreamSetImageFrameFlagsInfo.
+
+ The hStream parameter.
+ The dwImageFrameFlags parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiAudioBeamGetBeamInfo.
+
+ The dAngle parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiAudioBeamGetPositionInfo.
+
+ The dAngle parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiAudioBeamSetBeamInfo.
+
+ The dAngle parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for NuiGetAudioSourceInfo.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for AudioDmoSetPropertyInfo.
+
+ The pid parameter.
+ The value parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedKinectSensorStartInfo.
+
+ The deviceID parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedImageStreamDisabledInfo.
+
+ The type parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedFrameReadyEventAddedInfo.
+
+ The type parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedFrameReadyEventRemovedInfo.
+
+ The type parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedOpenNextFrameInfo.
+
+ The streamType parameter.
+ The millisecondsWait parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedOpenFrameFromEventInfo.
+
+ The type parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedOpenFrameFromAllFramesEventInfo.
+
+ The type parameter.
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedAllFramesReadyEventAddedInfo.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for ManagedAllFramesReadyEventRemovedInfo.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToDepthFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToDepthFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToDepthFrame_InterpolateGapsStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToDepthFrame_InterpolateGapsEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToSkeletonFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapColorFrameToSkeletonFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthFrameToSkeletonFrameStart.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is the event method for MapDepthFrameToSkeletonFrameEnd.
+
+ This method returns true if succeeded, and false otherwise.
+
+
+
+ This is a local wrapper for the EventProvider.
+
+
+
+
+ Initializes a new instance of the EventProviderVersionTwo class.
+
+ The guid of the provider.
+
+
+
+ This method determines if it needs to write the event.
+
+ The event description to write.
+ This returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the FrameData template.
+
+ The event description.
+ The value for the streamId parameter.
+ The value for the width parameter.
+ The value for the height parameter.
+ The value for the frameNumber parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the ProcessFrameData template.
+
+ The event description.
+ The value for the frameOverlapId parameter.
+ The value for the streamId parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the FrameLifecycleData template.
+
+ The event description.
+ The value for the streamType parameter.
+ The value for the bufferIndex parameter.
+ The value for the frameNumber parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the AllFramesReadyData template.
+
+ The event description.
+ The value for the colorFrameTimestamp parameter.
+ The value for the depthFrameTimestamp parameter.
+ The value for the skeletonFrameTimestamp parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the FrameReadyData template.
+
+ The event description.
+ The value for the timestamp parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the StreamTypeOnly template.
+
+ The event description.
+ The value for the streamType parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the FrameStateData template.
+
+ The event description.
+ The value for the streamType parameter.
+ The value for the frameNumber parameter.
+ The value for the state parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the FrameDroppedData template.
+
+ The event description.
+ The value for the streamType parameter.
+ The value for the frameNumber parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiImageStreamOpenData template.
+
+ The event description.
+ The value for the hStream parameter.
+ The value for the imageType parameter.
+ The value for the imageResolution parameter.
+ The value for the imageFrameFlags parameter.
+ The value for the hNextFrameEvent parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiInitializeData template.
+
+ The event description.
+ The value for the deviceId parameter.
+ The value for the processName parameter.
+ The value for the flags parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiSkeletonTrackingData template.
+
+ The event description.
+ The value for the hNextFrameEvent parameter.
+ The value for the dwFlags parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiTransformSmoothParams template.
+
+ The event description.
+ The value for the smoothing parameter.
+ The value for the correction parameter.
+ The value for the prediction parameter.
+ The value for the jitterRadius parameter.
+ The value for the maxDeviationRadius parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiSkeletonSetTrackedSkeletonsData template.
+
+ The event description.
+ The value for the skeleton1 parameter.
+ The value for the skeleton2 parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiSetFrameEndEventData template.
+
+ The event description.
+ The value for the hEvent parameter.
+ The value for the dwFrameEventFlag parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiImageStreamGetNextFrameData template.
+
+ The event description.
+ The value for the hStream parameter.
+ The value for the dwMillisecondsToWait parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiSkeletonGetNextFrameData template.
+
+ The event description.
+ The value for the dwMillisecondsToWait parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the KinectIdStringData template.
+
+ The event description.
+ The value for the kinectId parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiCreateSensorByIndexData template.
+
+ The event description.
+ The value for the index parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiCreateSensorByIdData template.
+
+ The event description.
+ The value for the strInstanceId parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the NuiImageStreamSetImageFrameFlagsData template.
+
+ The event description.
+ The value for the hStream parameter.
+ The value for the dwImageFrameFlags parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the AudioAngleData template.
+
+ The event description.
+ The value for the dAngle parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the AudioPropertyData template.
+
+ The event description.
+ The value for the pid parameter.
+ The value for the value parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the ManagedFramesReadyRegistrationData template.
+
+ The event description.
+ The value for the type parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the ManagedImageStreamData template.
+
+ The event description.
+ The value for the type parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the ManagedOpenNextFrameData template.
+
+ The event description.
+ The value for the streamType parameter.
+ The value for the millisecondsWait parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This method is a wrapper to marshal the data into the event
+ for the KinectSensorStartData template.
+
+ The event description.
+ The value for the deviceID parameter.
+ This method returns true if successful, and false otherwise.
+
+
+
+ This struct is used to marshal data into the native ETW service.
+
+
+
+
+ The event data's data pointer.
+
+
+
+
+ The event data size.
+
+
+
+
+ This field is reserverd.
+
+
+
+
+ Wrapper of a native filter to be applied to depth frame data.
+
+
+
+
+ Processes a frame of depth data.
+
+ Timestamp of the depth frame.
+ Width of the depth frame, in pixels.
+ Height of the depth frame, in pixels.
+ Depth frame data.
+ true if the depth frame was modified; false otherwise.
+
+
+
+ Gets or sets the native depth filter interface.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to A bad index or id was used when referencing a Kinect sensor..
+
+
+
+
+ Looks up a localized string similar to This API cannot be called when an event listener has been set..
+
+
+
+
+ Looks up a localized string similar to The capture has already been started.
+
+
+
+
+ Looks up a localized string similar to The capture has not been started.
+
+
+
+
+ Looks up a localized string similar to The Color Stream must be Enabled to get next Color image frame. Call KinectSensor.ColorStream.Enable().
+
+
+
+
+ Looks up a localized string similar to Depth filter must implement the native INuiDepthFilter interface.
+
+
+
+
+ Looks up a localized string similar to This Depth Stream must be Enabled to get next Depth image frame. Call KinectSensor.DepthStream.Enable().
+
+
+
+
+ Looks up a localized string similar to The attached Kinect device is not genuine..
+
+
+
+
+ Looks up a localized string similar to The attached Kinect device is not supported..
+
+
+
+
+ Looks up a localized string similar to Elevation angle must be between Elevation Minimum/Maximum.
+
+
+
+
+ Looks up a localized string similar to Native DLL failed in get device name.
+
+
+
+
+ Looks up a localized string similar to This API has returned an exception from an HRESULT: 0x{0:X}.
+
+
+
+
+ Looks up a localized string similar to The feature is not supported by this version of the hardware.
+
+
+
+
+ Looks up a localized string similar to The specified Image Format is not supported..
+
+
+
+
+ Looks up a localized string similar to Warning: An ImageFrame instance was not Disposed..
+
+
+
+
+ Looks up a localized string similar to JointType index value must match Joint.JointType.
+
+
+
+
+ Looks up a localized string similar to Unexpected value for BeamAngleMode.
+
+
+
+
+ Looks up a localized string similar to Unexpected value for EchoCancellationMode.
+
+
+
+
+ Looks up a localized string similar to Kinect is already in use in another process..
+
+
+
+
+ Looks up a localized string similar to Kinect must be running to control the motor.
+
+
+
+
+ Looks up a localized string similar to Kinect is not ready.
+
+
+
+
+ Looks up a localized string similar to The Kinect sensor plugged into your computer is for use on the Xbox 360.
+ You may continue using your Xbox 360 Kinect sensor on your computer for development purposes.
+ Microsoft does not guarantee full compatibility for Kinect for Windows applications and the Xbox 360 Kinect Sensor..
+
+
+
+
+ Looks up a localized string similar to The Kinect sensor plugged into your computer is for use on the Xbox 360.
+ To run a Kinect for Windows application, you must plug in a Kinect for Windows sensor..
+
+
+
+
+ Looks up a localized string similar to NativeStreamHandle can't be Zero.
+
+
+
+
+ Looks up a localized string similar to Feature mode needs to be set to True before setting this property.
+
+
+
+
+ Looks up a localized string similar to Could not find a Kinect audio device.
+
+
+
+
+ Looks up a localized string similar to The operation is not supported.
+
+
+
+
+ Looks up a localized string similar to The data buffer length must match the length required by the associated ImageFormat..
+
+
+
+
+ Looks up a localized string similar to KinectSensor must be running to get next frame. Call KinectSensor.Start().
+
+
+
+
+ Looks up a localized string similar to KinectSensor must be running in order to start audio stream.
+
+
+
+
+ Looks up a localized string similar to The data buffer must have length equal to SkeletonArrayLength..
+
+
+
+
+ Looks up a localized string similar to SkeletonEngine must be Enabled to get next skeleton frame. Call KinectSensor.SkeletonEngine.Enable().
+
+
+
+
+ Looks up a localized string similar to Warning: A SkeletonFrame instance was not Disposed..
+
+
+
+
+ Looks up a localized string similar to Could not access the hardware.
+
+
+
+
+ Looks up a localized string similar to Unexpected depth range.
+
+
+
+
+ Looks up a localized string similar to Unexpected UniqueDeviceName format.
+
+
+
+
+ Event data for the StatusChanged event.
+
+
+
+
+ Initializes a new instance of the StatusChangedEventArgs class.
+ Internal ctor to prevent external creation.
+
+
+
+
+ Gets the reported status for the sensor.
+
+
+
+
+ Gets the sensor that has changed status.
+
+
+
+
+ Internal class for arguments passed from NuiSensor.
+
+
+
+
+ Gets or sets the device instance id for the sensor hub.
+
+
+
+
+ Gets or sets the device instance id for the sensor camera.
+
+
+
+
+ Gets or sets the mapped status for the sensor.
+
+
+
+
+ Represents the collection of all Kinect™ sensors on the host.
+
+
+
+
+ Lock for the sensor collection.
+
+
+
+
+ List of acitve sensors.
+
+ This must be a ThreadSafeList because the base class (ReadOnlyCollection) may want to access it while s_sensorsLock is locked.
+
+
+
+
+
+ Static instance of this collection.
+
+
+
+
+ List of all sensors. Not all are active.
+
+
+
+
+ Caches native callback delegate to ensure it does not get garbage collected.
+
+
+
+
+ Called whenever a kinect changes status.
+
+
+
+
+ Prevents a default instance of the KinectSensorCollection class from being created.
+ Initializes a new instance of this collection.
+
+
+
+
+ Singleton accessor or KinectSensorCollection. Creates KinectSensor objects for all native INuiSensors.
+
+ The singleton instance of this class.
+
+
+
+ Callback function for getting status notifications from native.
+
+ HRESULT status from the sensor.
+ Sensor hub device instance id.
+ Sensor camera device instance id. May be null.
+ User data for the callback. Always null for this callback.
+
+
+
+ Fires the StatusChanged event.
+
+ InternalStatusChangedEventArgs object.
+
+
+
+ Updates the list of active sensors to contain all sensors that are connected.
+
+
+
+
+ Removes a sensor from the list, allowing the sensor object to be recreated.
+
+ KinectSensor to be removed.
+ Name of sensor to recreate.
+
+
+
+ IDisposable.Dispose implementation.
+
+
+
+
+ Gets the static instance of this collection.
+
+
+
+
+ Called whenever a kinect changes status. Sent from KinectSensorCollection.
+
+
+
+
+ Returns a sensor based on the DeviceConnectionId or UniqueKinectId.
+
+ Can pass in either the value from KinectSensor.DeviceConnectionId or KinectSensor.UniqueKinectId.
+ The sensor associated with the given id.
+
+
+
+ Keep in sync with _NUI_IMAGE_TYPE.
+
+
+
+
+ Depth and Player.
+
+
+
+
+ Color only.
+
+
+
+
+ Color in YUV format.
+
+
+
+
+ Color in YUV RAW format.
+
+
+
+
+ Depth only.
+
+
+
+
+ Infrared only.
+
+
+
+
+ Color in 8-bit Bayer format.
+
+
+
+
+ Keep in sync with _NUI_IMAGE_RESOLUTION.
+
+
+
+
+ Default or invalid.
+
+
+
+
+ 80x60 resolution.
+
+
+
+
+ 320x240 resolution.
+
+
+
+
+ 640x480 resolution.
+
+
+
+
+ 1280x960 resolution.
+
+
+
+
+ This MUST match the values defined in NUIImageCamera.h.
+
+
+
+
+ Empty value.
+
+
+
+
+ Depth frame was captured in near mode.
+
+
+
+
+ This MUST match the values defined in NUIImageCamera.h.
+
+
+
+
+ Empty value.
+
+
+
+
+ Return S_FALSE instead of E_NUI_FRAME_NO_DATA if NuiImageStreamGetNextFrame( ) doesn't have a frame ready and a timeout != INFINITE is used.
+
+
+
+
+ Set the depth stream to near mode.
+
+
+
+
+ Use distinct values for depth values that are either too close, too far or unknown.
+
+
+
+
+ The abstract ImageStream class.
+
+
+
+
+ Initializes a new instance of the ImageStream class.
+
+ The related sensor.
+ The ImageStreamFlags.
+
+
+
+ Used to indicate of a new frame is ready.
+
+
+
+
+ Indicates of the stream is capturing.
+
+
+
+
+ The native stream handle.
+
+
+
+
+ The current ImageStreamFlags.
+
+
+
+
+ The lock object used for synchronizing access to the stream.
+
+
+
+
+ Enable the stream.
+
+
+
+
+ Disable the stream.
+
+
+
+
+ Starts the stream.
+
+
+
+
+ Stops the stream.
+
+
+
+
+ Populates the FrameWidth and FrameHeight values.
+
+
+
+
+ Sets the width and height based on the given resolution.
+
+ The resolution.
+ The width.
+ The height.
+
+
+
+ Looks up the number of bytes per pixel.
+
+ The image type.
+ The number of bytes per pixel.
+
+
+
+ Opens the stream.
+
+
+
+
+ Closes the stream.
+
+
+
+
+ Override in base classes to store the pixel data during the window when it's available from
+ native code.
+
+ The frameNumber of the pixel data.
+ The native description of the pixel data.
+ The ImageType of the pixels.
+ The Resolution of the pixels.
+ The native stream handle.
+ The native image frame.
+
+
+
+ Retrieves the next frame from the sensor, and calls the abstract method "StorePixels" with the data, if present.
+ This allows the derived ImageStream classes to store the data.
+
+ Time to wait for a new frame from the sensor, in milliseconds.
+ The frameNumber of the new frame.
+ The timestamp of the new frame.
+ The frame flags of the new frame.
+ Returns true if the new frame was available, false otherwise.
+
+
+
+ Disposes the stream.
+
+
+
+
+ Gets the width in pixels of each ImageFrame from this ImageStream.
+
+
+
+
+ Gets the height in pixels of each ImageFrame from this ImageStream.
+
+
+
+
+ Gets or sets the bytes per pixel of each ImageFrame from this ImageStream.
+
+
+
+
+ Gets or sets the total length of the pixel data buffer of each ImageFrame from this ImageStream.
+
+
+
+
+ Gets the associated sensor.
+
+
+
+
+ Gets the buffer count.
+
+
+
+
+ Gets or sets the image resolution.
+
+
+
+
+ Gets the image type.
+
+
+
+
+ Gets a value indicating whether the ImageStream is enabled.
+
+
+
+
+ Gets or sets the ImageStreamFlags.
+
+
+
+
+ Native API declarations from Kinect10.dll and KinectAudio10.dll.
+
+
+
+
+ Success HRESULT code.
+
+
+
+
+ Sets a callback function that gets notified when the sensor connection status changes.
+ Use this method to handle the case of a user connecting or disconnecting a Kinect sensor.
+
+ Function pointer to the callback function.
+ Pointer to optional context data that will be passed to the callback.
+
+
+
+ Gets device information for the connected Kinect sensors.
+
+ Pointer to an array of NUI_MICROPHONE_ARRAY_DEVICE structures,
+ allocated by the caller, each of which receives the device information for a single connected
+ Kinect sensor. If you set this parameter to NULL, the piDeviceCount parameter will still
+ receive the number of connected Kinect sensors.
+ Size of the array pointed to by the pDeviceInfo parameter.
+ Receives the number of connected Kinect sensors. When this function returns,
+ this parameter is set to the number of structures in the array pointed to by the pDeviceInfo
+ parameter that contain valid information.
+
+
+
+ Gets the active speaker devices found on the system.
+
+ Pointer to an array of NUI_SPEAKER_DEVICE structures,
+ allocated by the caller, each of which receives the device information for a single
+ connected speaker device. If you set this parameter to NULL, the piDeviceCount parameter
+ will still receive the number of connected speaker devices.
+ Size of the array pointed to by the pDeviceInfo parameter.
+ Receives the number of connected speaker devices. When this function returns,
+ this parameter is set to the number of structures in the array pointed to by the pDeviceInfo
+ parameter that contain valid information.
+
+
+
+ Gets the number of kinects on the machine, including disconnected ones.
+
+ Pointer to an integer in which to return the number of Kinect sensors.
+ Returns S_OK if successful; otherwise, returns a failure code.
+
+
+
+ Creates an instance of the Kinect sensor with the specified index so that an application can open and use it.
+
+
+ Applications that support more than one Kinect sensor call NuiCreateSensorByIndex to access the
+ second and subsequent devices. This function returns a pointer to an INuiSensor interface,
+ which provides functions that are identical to those in NuiApi.h, NuiImageCamera.h, and NuiSkeleton.h.,
+ but operate on a particular device instance.
+
+ The zero-based index of the Kinect sensor to open. Valid values range from zero to one less than the value returned by the NuiGetSensorCount function.
+ A pointer that receives a reference to the created INuiSensor interface.
+ Returns S_OK if successful; otherwise, returns one of the failure codes in the following table.
+ E_OUTOFMEMORY - The maximum number of Kinect sensors are already open.
+ E_POINTER - The ppNuiSensor parameter does not represent a valid address.
+
+
+
+
+ Creates an instance of the Kinect sensor with the specified ID so that an application can open and use it.
+
+ Applications that support more than one Kinect sensor call NuiCreateSensorById to access the
+ second and subsequent devices. This function returns a pointer to an INuiSensor interface, which provides
+ functions that are identical to those in NuiApi.h, NuiImageCamera.h, and NuiSkeleton.h., but operate on a
+ particular device instance.
+
+ A pointer to the ID of the Kinect sensor to open.
+ A pointer that receives a reference to the created INuiSensor interface.
+ Returns S_OK if successful; otherwise, returns one of the failure codes in the following table.
+ E_OUTOFMEMORY - The maximum number of Kinect sensors are already open.
+ E_POINTER - The ppNuiSensor parameter does not represent a valid address.
+
+
+
+
+ Associates the calling thread with the specified task.
+
+
+ The name of the task to be performed. This name must match the name of one of the subkeys of the following
+ key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks.
+
+
+ The unique task identifier. The first time this function is called, this value must be 0 on input. The
+ index value is returned on output and can be used as input in subsequent calls.
+
+
+ If the function succeeds, it returns a handle to the task.
+ If the function fails, it returns 0. To retrieve extended error information, call GetLastError.
+
+
+
+
+ Indicates that a thread is no longer performing work associated with the specified task.
+
+
+ A handle to the task. This handle is returned by the AvSetMmThreadCharacteristics or
+ AvSetMmMaxThreadCharacteristics function.
+
+
+ If the function succeeds, the return value is nonzero.
+ If the function fails, the return value is zero. To get extended error information, call GetLastError.
+
+
+ This function must be called from the same thread that called the AvSetMmThreadCharacteristics or
+ AvSetMmMaxThreadCharacteristics function to create the handle. Otherwise, the function will fail.
+
+
+
+
+ Utility to retrieve the address of gFailureStack in Kinect10.dll to allow inspection of the
+ failure "flight recorder".
+
+
+ The address of Kinect10!gFailureStack as a UInt64.
+ In 32 bit, only the lower 4 bytes are used.
+
+
+
+
+ Calculate Bone Orientations.
+
+ Pointer to the skeleton data to calculate joint angles for.
+
+ Pointer to an array of _NUI_SKELETON_BONE_ORIENTATION of dimension NUI_SKELETON_POSITION_COUNT (20).
+ This array must be allocated by the user before calling this function.
+
+
+ Returns S_OK if successful; otherwise, returns one of the failure codes in the following table.
+ E_INVALIDARG - The parameter is NULL.
+ E_POINTER - The parameter is NULL.
+ S_FALSE - The joints required to calculate the skeleton root are not visible. Hierarchical bone rotations are set to Identity.
+
+
+
+
+ Declaration of native NuiStatusCallback typedef.
+
+ HRESULT status from the sensor.
+ Sensor hub device instance id.
+ Sensor camera device instance id. May be null.
+ User data registered with NuiSetDeviceStatusCallback.
+
+
+
+ A structure used by NuiGetMicrophoneArrayDevices to return the Kinect sensors found on the system.
+
+
+
+
+ Maximum length for device friendly name.
+
+
+
+
+ The device friendly name.
+
+
+
+
+ Device unique identifier.
+
+
+
+
+ This device index can be passed to KinectAudioSource.MicrophoneIndex.
+
+
+
+
+ A structure used by NuiGetSpeakerDevices to get the number of speaker devices.
+
+
+
+
+ String length for speaker device name.
+
+
+
+
+ The device friendly name.
+
+
+
+
+ This device index can be passed to KinectAudioSource.SpeakerIndex.
+
+
+
+
+ A Boolean value that indicates whether the speaker device is the default.
+
+
+
+
+ Status of the KinectSensor.
+
+
+
+
+ The status is undefined.
+
+
+
+
+ USB unplugged or device not found.
+
+
+
+
+ Kinect is fully connected and ready to use.
+
+
+
+
+ The device has been attached and is initializing.
+
+
+
+
+ The device returned an unexpected error.
+
+
+
+
+ Audio not found. Device likely unpowered.
+
+
+
+
+ Some part of the devices is not connected.
+
+
+
+
+ This device is not a genuine Kinect.
+
+
+
+
+ This device is not supported.
+
+
+
+
+ There is not enough bandwidth on the USB hub.
+
+
+
+
+ A Disposable wrapper for a ReaderWriterLockSlim, which provides for easy
+ scoped locking via a using block. Also provides Write Upgrade functionality.
+
+
+
+
+ Lockable object to lock and unlock.
+
+
+
+
+ Desired lock mode.
+
+
+
+
+ Initializes a new instance of the AutoLock struct. Enters the desired lock mode on the given lock.
+
+ Lock the given lock.
+ Lock mode to start with. If mode is upgradable, this may change.
+
+
+
+ Upgrades the lock from UpgradableRead to Write.
+
+ New AutoLock object with write lock.
+
+
+
+ Unlocks the given lock and sets the LockMode to none.
+
+
+
+
+ Kind of lock you need.
+
+
+
+
+ No lock is desired.
+
+
+
+
+ A Read lock is desired.
+
+
+
+
+ A Read lock that may be upgraded to Write lock is desired.
+
+
+
+
+ A Write lock is desired.
+
+
+
+
+ AutoLock extensions for ReaderWriterLockSlim.
+
+
+
+
+ Returns a read AutoLock on the given lock.
+
+ Slim to act upon.
+ New AutoLock object.
+
+
+
+ Returns an upgradable AutoLock for the given lock.
+
+ Slim to act upon.
+ New AutoLock object.
+
+
+
+ Returns an write AutoLock for the given lock.
+
+ Slim to act upon.
+ New AutoLock object.
+
+
+
+ A Microsoft Kinect™ sensor.
+
+
+
+
+ Index of color FrameStateHelper in the _frameHelpers array.
+
+
+
+
+ Index of depth FrameStateHelper in the _frameHelpers array.
+
+
+
+
+ Index of skeletal FrameStateHelper in the _frameHelpers array.
+
+
+
+
+ This is an pointer to the internal debug stack that is used for diagnosing
+ failures within the Kinect runtime.
+
+
+
+
+ We would like to use the _initLock for multi-reader/single writer access to this class.
+ Unfortunately, ReaderWriterLockSlim must itself be Disposed, meaning that we need a thread-safe
+ means to detect Disposal. So, we use a normal lock to check the IsDisposed state and acquire
+ the _initLock, which allows us to spend most of the time under the R/W lock rather than the full lock.
+ To ensure safe use of these locks, _initLock must always be acquired under a held _disposeLock, and
+ _disposeLock must never be acquired under _initLock.
+
+
+
+
+ Lock for disposing the sensor.
+
+
+
+
+ The KinectAudioSource object.
+
+
+
+
+ True if the unsupported message has been written to the debug stream.
+
+
+
+
+ Initializes a new instance of the KinectSensor class with the given INuiSensor.
+ Note that there should be ONLY one KinectSensor object per INuiSensor.
+
+ INuiSensor to wrap.
+
+
+
+ Replace the NuiSensor with another one. Used when a user plugs a sensor into a
+ different USB port.
+
+ New nuiSensor to wrap.
+
+
+
+ Creates the stream objects for this sensor.
+
+
+
+
+ Non-locking version of UniqueKinectId.
+
+ The camera device instance id.
+
+
+
+ Provides the USB hub device instance id. Non-locking.
+
+ USB hub device instance id.
+
+
+
+ Non-locking version of Status property.
+
+ The status of the sensor.
+
+
+
+ Maps the NuiStatus HRESULT to a KinectStatus.
+
+ The HRESULT to map.
+ Mapped KinectStatus.
+
+
+
+ The last status found for this sensor.
+
+
+
+
+ Event that fires when a new depth frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when a new color frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when a new skeleton frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when new frames are available from each of this Kinect sensor's active streams.
+
+
+
+
+ Privately cached reference to the associated CoordinateMapper object for the sensor.
+
+
+
+
+ Tests whether the DepthImagePixel has a known value.
+
+ The DepthImagePixel to test.
+ Returns true if the DepthImagePixel has a known value, false otherwise.
+
+
+
+ Tests whether the ColorImagePoint has a known value.
+
+ The ColorImagePoint to test.
+ Returns true if the ColorImagePoint has a known value, false otherwise.
+
+
+
+ Tests whether the DepthImagePoint has a known value.
+
+ The DepthImagePoint to test.
+ Rreturns false if depth value == 0.
+
+
+
+ Tests whether the SkeletonPoint has a known value.
+
+ The SkeletonPoint to test.
+ Returns true if the Skeleton point has a known value, false otherwise.
+
+
+
+ Gets the current accelerometer reading of the Kinect sensor.
+
+
+ A Vector4 pointing in the directon of gravity.
+
+
+ The accelerometer reading is returned as a 3d vector pointing in the direction of
+ gravity (i.e. floor (gravity) on a non-accelerating sensor). The unit of the vector
+ is in gravity units (g), 9.81m/s^2. The coordinate system is centered on the sensor,
+ right-handed coordinate system with positive-Z in the direction the sensor is pointing at.
+ In the default sensor rotation (horizontal, level placement), this will return the vector
+ (0, -1.0, 0, 0). The w value of the Vector4 is always set to 0.0.
+
+
+
+
+ Maps from a depth coordinate with depth value to color coordinates.
+
+ The depth format of the source.
+ The X coordinate of the depth frame.
+ The Y coordinate of the depth frame.
+ The value from the depth frame's pixel data at the given coordinates (depthX, depthY).
+ The desired target image format.
+ The ColorImagePoint corresponding to the point in DepthImage space.
+
+
+
+ Maps every point in a depth frame to the corresponding location in a ColorImageFormat coordinate space.
+
+ The depth format of the source.
+
+ The depth frame pixel data, as retrieved from DepthImageFrame.CopyPixelDataTo.
+ Must be equal in length to Width*Height of the depth format specified by depthImageFormat.
+
+ The desired target image format.
+
+ The ColorImagePoint array to receive the data. Each element will be be the result of mapping the
+ corresponding depthPixelDatum to the specified ColorImageFormat coordinate space.
+ Must be equal in length to depthPixelData.
+
+
+
+
+ Looks up the color frame coordinates for a given skeleton point.
+
+ The supplied skeleton point.
+ The color format to convert to.
+ The ColorImagePoint corresponding to the given skeleton point.
+
+
+
+ Looks up the depth frame coordinates for a given skeleton point.
+
+ The supplied skeleton point.
+ The depth format to convert to.
+ The DepthImagePoint that contains the X, Y and depth value of the given skeleton point.
+
+
+
+ Looks up the skeleton point location of the given depth X, Y.
+
+ The format to use in the conversion.
+ The X coordinate of the depth frame.
+ The Y coordinate of the depth frame.
+ The value from the depth frame's pixel data at the given coordinates (depthX, depthY).
+ The skeleton point for the given X, Y, depth and format.
+
+
+
+ Based off the function NuiTransformDepthImageToSkeleton from NuiSkeleton.h, which is inline
+ so it is neither directly possible nor is it performant to p-invoke it from managed.
+
+ X coordinate from the depth image.
+ Y coordinate from the depth image.
+ Depth value from the depth image.
+ A Vector indicating the point on the skeleton corresponding to the depth pixel.
+
+
+
+ Based off the function NuiTransformSkeletonToDepthImage from NuiSkeleton.h, which is inline
+ so it is neither directly possible nor is it performant to p-invoke it from managed.
+
+ Vector from skeleton to transform.
+ Resulting X coordinate for skeleton point.
+ Resulting Y coordinate for skeleton point.
+ Resulting depth value for skeleton point.
+
+
+
+ Event indiating that the thread should exit.
+ NOTE: moved from constructor to inside Initialize so that we can reuse this object after unInitialize.
+
+
+
+
+ Array of FrameStateHelpers for all frames.
+
+
+
+
+ Options desired for the sensor.
+
+
+
+
+ Options requested from the sensor.
+
+
+
+
+ Start streaming data from this Kinect. This needs to be called whether polling or registering for the events. It also needs to be called to get control of the Camera.
+ This API may throw System.IO.IOException if the KinectSensor is already in use by another process.
+
+
+
+
+ Stop streaming data from this Kinect.
+
+
+
+
+ This method is used by the SkeletonStream to inform the sensor that it wants the skeleton engine running.
+ This will re-call Initialize to fire up or shut down the skeleton engine if needed.
+
+ Indicates if the skeletal engine is should be turned on or off.
+
+
+
+ Calls NuiInitialize with the desired options.
+
+ Must be called under a _initLock in Write mode.
+ Must not be called if IsRunningInternal is true.
+
+
+ The desired optoins.
+
+
+
+ Must be called under a _initLock in Write mode.
+ Must not be called if IsRunningInternal is false.
+
+
+
+
+ The frame processing background thread.
+
+
+
+
+ Frame processing thread procedure.
+
+ ManualResetEvent tripped when the thread should exit.
+
+
+
+ Pulls a depth frame out of the NUI pipeline, if available.
+
+
+
+
+ Pulls a color frame out of the NUI pipeline, if available.
+
+
+
+
+ Pulls a skeletal frame out of the NUI pipeline, if available.
+
+
+
+
+ Frees all memory associated with the sensor. Terminates all streaming.
+
+
+
+
+ Throws an ObjectDisposedException if this instance is diposed.
+ If this instance is not disposed, will return an AutoLock entered for Read.
+
+ The read lock.
+
+
+
+ Throws an ObjectDisposedException if this instance is diposed.
+ If this instance is not disposed, will return an AutoLock entered for UpgradeableRead.
+
+ The upgradable lock.
+ Thrown if the object is disposed.
+
+
+
+ Throws an ObjectDisposedException if this instance is diposed.
+ If this instance is not disposed, will return an AutoLock entered for Write.
+
+ The write lock.
+
+
+
+ Throws an InvalidOperationEception is this instance is not disposed and is not running.
+ Must be called under _initLock for thread safety.
+
+ Thrown if the sensor is not running.
+
+
+
+ Gets the index of the nui device. Do not expose this to the end user.
+ NOTE: Clients of this method expect it to be non-locking.
+
+
+
+
+ Gets the collection of all Kinect™ sensors.
+
+
+
+
+ Gets the internal wrapper for INuiSensor.
+
+
+
+
+ Gets the unique device connection name for the sensor. This is the camera device instance id.
+
+
+
+
+ Gets the USB HUB device instance id.
+
+
+
+
+ Gets the reported status of the sensor.
+
+
+
+
+ Gets or sets the last status for this sensor.
+
+
+
+
+ Gets or sets a value indicating whether the sensor was running.
+
+
+
+
+ Event that fires when a new depth frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when a new color frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when a new skeleton frame is available from this Kinect sensor.
+
+
+
+
+ Event that fires when new frames are available from each of this Kinect sensor's active streams.
+
+
+
+
+ Gets a value indicating whether the depth frame handler has subscriptions.
+
+
+
+
+ Gets a value indicating whether the color frame handler has subscriptions.
+
+
+
+
+ Gets a value indicating whether the skeleton frame handler has subscriptions.
+
+
+
+
+ Gets a value indicating whether the AllFrames handler has subscriptions.
+
+
+
+
+ Gets the CoordinateMapper object for the sensor.
+
+
+
+
+ Gets the depth stream for the sensor.
+
+
+
+
+ Gets the color stream for the sensor.
+
+
+
+
+ Gets the skeleton stream for the sensor.
+
+
+
+
+ Gets the audio source for the sensor.
+
+
+
+
+ Gets the maximum camera elevation angle in degrees.
+
+
+
+
+ Gets the minimum camera elevation angle in degrees.
+
+
+
+
+ Gets or sets the desired camera elevation angle. See the documentation about
+ the limits of this property.
+
+
+
+
+ Gets or sets a value indicating whether the infrared emitter is disabled.
+ Default value of false.
+
+
+
+
+ Gets or sets a filter to be applied to each depth frame.
+
+
+
+
+ Gets a value indicating whether the Kinect is currently streaming data. To set it, call Start() or Stop().
+
+
+
+
+ Gets a value indicating whether the Kinect is currently streaming data.
+ Non-locking version of IsRunning.
+
+
+
+
+ Gets a value indicating whether this KinectSensor has been disposed.
+
+
+
+
+ This class and its more strongly typed subclass is a very specific utility for handling the multiple
+ frame types that KinectSensor managed, sorts and dispatches.
+
+
+
+
+ Set new args at the specified timestamp. HaveDispatchedEvent will become false.
+
+ The new args. Must match the correct type for this instance.
+ The timestamp of this args.
+ The framenumber of this args.
+
+
+
+ Invoke the current args with the handler supplied at construction time, if there are
+ listeners.
+ HaveDispatchedEvent will become true after this call even if there weren't any listeners.
+
+ The sender of the event.
+
+
+
+ Reset the instance to no args and no timestamp, returning the args (if present)
+ for the caller to use if desired.
+
+ The Args (if any) that were set in this instance.
+
+
+
+ Determine whether this FrameStateHelper is a candidate for invocation.
+ This happens if:
+ There are Args to dispatch and
+ We have not already dispatched the event and
+ The timestamp is earlier than the timestamp the caller provides.
+ Note that this does *not* imply that HasListeners is true - just that this instance
+ is the next candidate (based on timestamp and frame number).
+
+
+ The earliest timestamp being considered by the caller.
+ The timestamp must be < earliest, or == and framenumber < earliestframenumber.
+
+
+ The earliest framenumber being considered by the caller.
+ The timestamp must be < earliest, or == and framenumber < earliestframenumber.
+
+ Whether or not this FrameStateHelper is a candiate for invocation.
+
+
+
+ Gets or sets the most recent timestamp for this frame type.
+
+
+
+
+ Gets or sets the most recent framenumber for this frame type.
+
+
+
+
+ Gets a value indicating whether this instance is ready for updated args.
+ This can happen if the args are null or have already been dispatched, or if there are no type
+ specific listeners.
+ If this is false, we should not call SetArgs because we have data that needs to be dispatched.
+
+
+
+
+ Gets a value indicating whether there are currently args stored in this instance.
+
+
+
+
+ Gets or sets a value indicating whether the args currently held by this class have been dispatched.
+
+
+
+
+ Gets a value indicating whether the wrapped even handler has listeners.
+
+
+
+
+ This is used to help the FrameStateHelper determine which stream it belongs to.
+
+
+
+
+ The color stream.
+
+
+
+
+ The depth stream.
+
+
+
+
+ The skeleton stream.
+
+
+
+
+ The concrete, strongly typed version of FrameStateHelper, typed to the Args type.
+
+ The type of EventArgs handled by this instance.
+
+
+
+ Wrapped handler object.
+
+
+
+
+ Used for logging to tell which stream this frame belongs to.
+
+
+
+
+ Arguments for the wrapped handler.
+
+
+
+
+ Initializes a new instance of the FrameStateHelper class with a wrapped handler.
+
+ The frame type this helper is associated with.
+ The wrapped handler.
+
+
+
+ Set new args at the specified timestamp. HaveDispatchedEvent will become false.
+
+ The new args. Must match the correct type for this instance.
+ The timestamp of this args.
+ The framenumber of this args.
+
+
+
+ Invoke the current args with the handler supplied at construction time, if there are
+ listeners.
+ HaveDispatchedEvent will become true after this call even if there weren't any listeners.
+
+ The sender of the event.
+
+
+
+ Reset the instance to no args and no timestamp, returning the args (if present)
+ for the caller to use if desired.
+
+ The Args (if any) that were set in this instance.
+
+
+
+ Gets a value indicating whether there are currently args stored in this instance.
+
+
+
+
+ Gets a value indicating whether the wrapped even handler has listeners.
+
+
+
+
+ Options for initializing an INuiSensor. Must be in sync with NuiApi.h.
+
+
+
+
+ No options chosen.
+
+
+
+
+ Both depth and player index desired. Note that this uses the skeletal engine.
+
+
+
+
+ Color frames desired.
+
+
+
+
+ Skeletal frames desired.
+
+
+
+
+ Depth frames desired.
+
+
+
+
+ Audio capture (Microphone array) desired.
+
+
+
+
+ These are the possible states for a tracked skeleton.
+
+
+
+
+ This means the skeleton is not being tracked.
+
+
+
+
+ The skeleton is being tracked, but we only know the
+ general position, and we do not know the specific
+ joint locations.
+
+
+
+
+ The skeleton is being tracked and the joint data is
+ available for consumption.
+
+
+
+
+ These flags are used to indicate of a skeleton is passing outside of the frame.
+
+
+
+
+ All of the player's body is in frame.
+
+
+
+
+ Part of the player's body is out of frame to the camera's right.
+
+
+
+
+ Part of the player's body is out of frame to the camera's left.
+
+
+
+
+ Part of the player's body is out of frame above the camera's field of view.
+
+
+
+
+ Part of the player's body is out of frame below the camera's field of view.
+
+
+
+
+ This struct is used to setup the skeleton smoothing values.
+
+
+
+
+ Calculates the hash code of the TransformSmoothParameters.
+
+ The hash code.
+
+
+
+ Determines if the two objects are equal.
+
+ The object to compare to.
+ This method returns true if they are equal and false otherwise.
+
+
+
+ Determines if the two objects are equal.
+
+ The TransformSmoothParameters to compare to.
+ This method returns true if they are equal and false otherwise.
+
+
+
+ Determines if the two objects are equal.
+
+ The first TransformSmoothParamters to compare.
+ The second TransformSmoothParamters to compare.
+ This method returns true if they are equal and false otherwise.
+
+
+
+ Determines if the two objects are not equal.
+
+ The first TransformSmoothParamters to compare.
+ The second TransformSmoothParamters to compare.
+ This method returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the smoothing value.
+
+
+
+
+ Gets or sets the correction value.
+
+
+
+
+ Gets or sets the prediction value.
+
+
+
+
+ Gets or sets the jitter radius value.
+
+
+
+
+ Gets or sets the maximum deviation radius value.
+
+
+
+
+ This class contains the skeleton frame returned by the Kinect API.
+
+
+
+
+ The associated skeleton stream.
+
+
+
+
+ The associated skeleton data.
+
+
+
+
+ The data access lock.
+
+
+
+
+ Tracks whether this instance is disposed. 0 == false, 1 == true.
+ We need to use int (vs. bool) for Interlocked.Exchange.
+
+
+
+
+ Initializes a new instance of the SkeletonFrame class.
+
+ The associated SkeletonStream object.
+ The current frames number.
+ The timestamp on the frame.
+ The tracking mode in which the frame was captured.
+ The related SkeletonData.
+
+
+
+ Creates a new skeleton frame object.
+
+ The associated SkeletonStream.
+ The new frame number.
+ The frames timestamp.
+ The tracking mode in which the frame was captured.
+ The new SkeletonFrame object.
+
+
+
+ This method copies the skeleton data to an array of skeleton data.
+
+ The target array to receive the data.
+
+
+
+ This method disposes the skeleton frame.
+
+
+
+
+ Finalizes an instance of the SkeletonFrame class.
+ This destructor is used to notify the developer if they have forgotten to
+ dispose of the frame correctly.
+
+
+
+
+ To be used to return data to free lists. If SkeletonFrame is ever unsealed,
+ this must change to protected virtual.
+
+ Specify true to indicate that the class should dispose clean up all resources.
+
+
+
+ Gets or sets the timestamp for the frame.
+
+
+
+
+ Gets or sets the frame number for the frame.
+
+
+
+
+ Gets the tracking mode in which this frame was captured.
+
+
+
+
+ Gets or sets the floor's clip plane.
+ The floats should be in this order from the native type: x, y, z, w.
+
+
+
+
+ Gets the total length of the skeleton data buffer of this SkeletonFrame.
+
+
+
+
+ Gets the depth filter that was applied to the frame.
+
+
+
+
+ This class is used to track all of the known data about a skeleton
+ returned from the skeleton stream.
+
+
+
+
+ An array of all possible JointType values.
+
+
+
+
+ Initializes a new instance of the Skeleton class.
+
+ The native skeleton data.
+
+
+
+ Initializes a new instance of the Skeleton class.
+
+ The source skeleton to copy the data from.
+
+
+
+ Initializes a new instance of the Skeleton class with a default JointCollection.
+
+
+
+
+ Backing store for the BoneOrientations property.
+
+
+
+
+ This method copies the data from the native data.
+
+ The native skeleton data.
+
+
+
+ This method copies the data from another skeleton.
+
+ The source skeleton.
+
+
+
+ Invalidates the bone orientations, forcing them to be recalculated the next time they are requested.
+
+
+
+
+ This method calculates the hierarchical and absolute bone rotations for each joint in the skeleton.
+
+ The array of bone orientations to be updated.
+ Returns true if joint calculation successful, false otherwise.
+
+
+
+ Gets or sets the skeleton's current tracking state.
+
+
+
+
+ Gets or sets the skeleton's tracking ID.
+
+
+
+
+ Gets or sets the skeleton's position.
+
+
+
+
+ Gets or sets the skeleton's joints.
+
+
+
+
+ Gets or sets the skeleton's bone orientations.
+
+
+
+
+ Gets or sets the edges that this skeleton is clipped on.
+
+
+
+
+ This struct is used to describe a skeleton's joint.
+
+
+
+
+ This method calculates the hash code for a joint.
+
+ The joint's hash code.
+
+
+
+ This method compares two joint objects.
+
+ The object to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two joint objects.
+
+ The joint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two joint objects.
+
+ The first joint to compare.
+ The second joint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two joint objects.
+
+ The first joint to compare.
+ The second joint to compare.
+ It returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the joint's position.
+
+
+
+
+ Gets the joint's type.
+
+
+
+
+ Gets or sets the tracking state of this joint.
+
+
+
+
+ This contains all of the possible joint types.
+
+
+
+
+ The center of the hip.
+
+
+
+
+ The bottom of the spine.
+
+
+
+
+ The center of the shoulders.
+
+
+
+
+ The players head.
+
+
+
+
+ The left shoulder.
+
+
+
+
+ The left elbow.
+
+
+
+
+ The left wrist.
+
+
+
+
+ The left hand.
+
+
+
+
+ The right shoulder.
+
+
+
+
+ The right elbow.
+
+
+
+
+ The right wrist.
+
+
+
+
+ The right hand.
+
+
+
+
+ The left hip.
+
+
+
+
+ The left knee.
+
+
+
+
+ The left ankle.
+
+
+
+
+ The left foot.
+
+
+
+
+ The right hip.
+
+
+
+
+ The right knee.
+
+
+
+
+ The right ankle.
+
+
+
+
+ The right foot.
+
+
+
+
+ The tracking state of a specific joint.
+
+
+
+
+ The joint is not tracked and no data is known about this joint.
+
+
+
+
+ The joint location is inferred. The data should be used with the
+ understanding that the confidence level of the location is very low.
+
+
+
+
+ The joint is tracked and the data can be trusted.
+
+
+
+
+ Matrix4 is a row-major matrix containing the joint rotation information
+ in the top left 3x3 and zero for translation.
+
+
+
+
+ Compares two Matrix4 objects for equality.
+
+ The object to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Compares two Matrix4 objects for equality.
+
+ The Matrix4 to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Gets the hash code for a given Matrix4.
+
+ The calculated hash code.
+
+
+
+ Compares two Matrix4 objects for equality.
+
+ The first Matrix4 to compare.
+ The second Matrix4 to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Compares two Matrix4 objects for inequality.
+
+ The first Matrix4 to compare.
+ The second Matrix4 to compare.
+ Returns true if they are not equal and false otherwise.
+
+
+
+ Returns a Matrix4 that is a copy of a native _Matrix4 structure.
+
+ The native structure.
+ The managed structure.
+
+
+
+ Gets or sets Row 1, Column 1.
+
+
+
+
+ Gets or sets Row 1, Column 2.
+
+
+
+
+ Gets or sets Row 1, Column 3.
+
+
+
+
+ Gets or sets Row 1, Column 4.
+
+
+
+
+ Gets or sets Row 2, Column 1.
+
+
+
+
+ Gets or sets Row 2, Column 2.
+
+
+
+
+ Gets or sets Row 2, Column 3.
+
+
+
+
+ Gets or sets Row 2, Column 4.
+
+
+
+
+ Gets or sets Row 3, Column 1.
+
+
+
+
+ Gets or sets Row 3, Column 2.
+
+
+
+
+ Gets or sets Row 3, Column 3.
+
+
+
+
+ Gets or sets Row 3, Column 4.
+
+
+
+
+ Gets or sets Row 4, Column 1.
+
+
+
+
+ Gets or sets Row 4, Column 2.
+
+
+
+
+ Gets or sets Row 4, Column 3.
+
+
+
+
+ Gets or sets Row 4, Column 4.
+
+
+
+
+ Gets the identity matrix.
+
+
+
+
+ Vector4 is a 4-element vector.
+
+
+
+
+ Compares two Vector4 objects for equality.
+
+ The object to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Compares two Vector4 objects for equality.
+
+ The Vector4 to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Gets the hash code for a given Vector4.
+
+ The calculated hash code.
+
+
+
+ Compares two Vector4 objects for equality.
+
+ The first Vector4 to compare.
+ The second Vector4 to compare.
+ Returns true if they are equal and false otherwise.
+
+
+
+ Compares two Vector4 objects for inequality.
+
+ The first Vector4 to compare.
+ The second Vector4 to compare.
+ Returns true if they are not equal and false otherwise.
+
+
+
+ Returns a Vector4 that is a copy of a native _Vector4 structure.
+
+ The native structure.
+ The managed structure.
+
+
+
+ Gets or sets the X element.
+
+
+
+
+ Gets or sets the Y element.
+
+
+
+
+ Gets or sets the Z element.
+
+
+
+
+ Gets or sets the W element.
+
+
+
+
+ This class contains a collection of joints returned for a given skeleton.
+
+
+
+
+ The array of joint data.
+
+
+
+
+ Initializes a new instance of the JointCollection class.
+
+ Back reference to Skeleton class.
+
+
+
+ This method is used to enumerate the list of joints.
+
+ The related enumerator.
+
+
+
+ This method is used to enumerate the list of joints.
+
+ The related enumerator.
+
+
+
+ Back reference to Skeleton class to enable us to flag writes to joints and re-calculate joint angles.
+
+
+
+
+ Gets the number of joints available.
+
+
+
+
+ Accesses the requested joint.
+
+ The JointType being requested.
+ The requested joint.
+
+
+
+ Orientation information for an individual bone in a skeleton.
+
+
+
+
+ Initializes a new instance of the BoneOrientation class.
+
+ The joint corresponding to the endpoint of the bone.
+
+
+
+ Sets the confidence and rotations of the BoneOrientation to their default values.
+
+
+
+
+ Copies data from a native _NUI_SKELETON_BONE_ORIENTATION structure.
+
+ The native structure.
+
+
+
+ Copies data from another Bone Orientation class.
+
+ The bone orientation to copy.
+
+
+
+ Joint types representing the starting joint for each bone (the parent of the bone's endpoint joint).
+
+
+
+
+ Gets the skeleton joint at which the bone ends.
+
+
+
+
+ Gets the skeleton joint at which the bone starts.
+
+
+
+
+ Gets or sets the rotation of the bone relative to its "parent" bone in the skeleton.
+
+
+
+
+ Gets or sets the rotation of the bone relative to the camera coordinate system.
+
+
+
+
+ Rotation of an individual bone.
+
+
+
+
+ Gets or sets a matrix representation of the bone rotation.
+
+
+
+
+ Gets or sets a quaternion representation of the bone rotation.
+
+
+
+
+ This class contains a collection of bone orientations returned for a given skeleton.
+
+
+
+
+ The array of joint data.
+
+
+
+
+ Indicates whether the bone orientation data is valid (has been recalculated since the joint positions last changed).
+
+
+
+
+ Initializes a new instance of the BoneOrientationCollection class.
+
+ Back reference to Skeleton class.
+
+
+
+ This method is used to enumerate the list of bone orientations.
+
+ The related enumerator.
+
+
+
+ This method is used to enumerate the list of bone orientations.
+
+ The related enumerator.
+
+
+
+ Recalculates the bone orientations.
+
+
+
+
+ Invalidates the bone orientations, forcing them to be recalculated the next time they are requested.
+
+
+
+
+ Back reference to Skeleton class to enable us to re-calculate joint angles.
+
+
+
+
+ Gets the number of bone orientations available.
+
+
+
+
+ Gets or sets a value indicating whether the joint orientations are valid.
+
+
+
+
+ Accesses the requested bone orientation.
+
+ The JointType for the bone being requested.
+ The requested bone orientation.
+
+
+
+ Available skeleton tracking modes.
+
+
+
+
+ Default skeleton tracking (tracks all 20 joints).
+
+
+
+
+ Seated skeleton tracking (tracks only the upper 10 joints).
+
+
+
+
+ This class maintains the stream of data related to the skeleton.
+
+
+
+
+ This flag is returned in dwFlags of a skeleton frame that was captured while in seated mode.
+
+
+
+
+ This value prevents the INuiSensor::NuiSkeletonGetNextFrame method from returning E_NUI_FRAME_NO_DATA errors.
+ Instead, calls to NuiSkeletonGetNextFrame block execution until data is available or the timeout period passes.
+
+
+
+
+ This value disables the default player selection mode and enables the title to choose which detected skeletons are tracked.
+
+
+
+
+ This value is used to enable seated skeleton tracking support.
+
+
+
+
+ This value is used to enable skeleton tracking while the depth camera is in near mode.
+
+
+
+
+ This constant is the maximum number of trackable skeletons.
+
+
+
+
+ This is the associated KinectSensor.
+
+
+
+
+ This is the stream's pool for SkeletonData.
+
+
+
+
+ Initializes a new instance of the SkeletonStream class.
+
+ The associated KinectSensor.
+
+
+
+ This event is used to indicate the availability of a new skeleton frame.
+
+
+
+
+ This field indicates of the stream is enabled or not.
+
+
+
+
+ This field indicates if the app is choosing skeletons or not.
+
+
+
+
+ Indicates whether the pipeline is running in seated or default tracking mode.
+
+
+
+
+ Indicates whether skeleton tracking is enabled when the depth
+ camera is in near mode.
+
+
+
+
+ This method is called to enable the skeleton stream with the default smoothing values.
+
+
+
+
+ This method is called to enable the skeleton stream.
+
+ The desired smoothing parameters.
+
+
+
+ This method is called to disable the skeleton stream.
+
+
+
+
+ This private method sets the enable state.
+
+ The value to set it to.
+
+
+
+ This method sets the smoothing state.
+
+ The value to set it to.
+ The related smoothing parameters to use.
+
+
+
+ This method chooses the default skeletons.
+
+
+
+
+ This method chooses a skeleton to track.
+
+ The skeleton ID the application wishes to track.
+
+
+
+ This method chooses a skeleton to track.
+
+ The first skeleton ID the application wishes to track.
+ The second skeleton ID the application wishes to track.
+
+
+
+ This field indicates of the stream is tracking skeletons or not.
+
+
+
+
+ This private method begins tracking skeletons.
+
+
+
+
+ This private method stops tracking skeletons.
+
+
+
+
+ This internal method starts tracking.
+
+
+
+
+ This internal method stops tracking.
+
+
+
+
+ Retrieves the next SkeletonFrame from the sensor. The SkeletonFrame must be disposed.
+
+ The time to wait for a new frame from the sensor, in milliseconds.
+ The next ColorImageFrame, or null if the timeout has expired.
+
+
+
+ Used to store the skeleton data during the window when it's available from native code.
+
+ The frameNumber of the skeleton data.
+ The native description of the skeleton data.
+ The floorClipPlane of the new frame.
+
+
+
+ Retrieves the next frame from the sensor, and calls "StoreSkeletonData" with the data, if present.
+
+ The time to wait for a new frame from the sensor, in milliseconds.
+ The frameNumber of the new frame.
+ The timestamp of the new frame.
+ The tracking mode in which the frame was captured.
+ This method returns true if the method succeeded and false otherwise.
+
+
+
+ This method locks the associated skeleton frame.
+
+ The frame number to lock.
+ The available frame.
+
+
+
+ This method unlocks the frame data.
+
+ The skeleton frame to unlock.
+
+
+
+ This method disposes the SkeletonStream.
+
+
+
+
+ Gets the associated KinectSensor.
+
+
+
+
+ Gets a value indicating whether the skeleton stream is enabled.
+
+
+
+
+ Gets or sets a value indicating whether the application will be responsible for choosing skeletons or not.
+
+
+
+
+ Gets or sets the tracking mode.
+
+
+ The current tracking mode of the skeleton stream.
+ The default value is SkeletonTrackingMode.Default.
+
+
+ This property may be set at any time, regardless of the current
+ state of SkeletonStream.IsEnabled or KinectSensor.IsRunning.
+ If the tracking mode is changed while both SkeletonStream.IsEnabled
+ and KinectSensor.IsRunning are true, any skeletons currently being
+ tracked will be lost.
+
+
+ Indicates that the Kinect sensor is in a state that prevents
+ skeleton tracking from running.
+
+
+
+
+ Gets or sets a value indicating whether skeleton tracking is enabled
+ when the KinectSensor's DepthImageStream.Range is DepthRange.Near.
+
+
+ The current tracking mode of the flag.
+ The default value is false.
+
+
+ Indicates that the Kinect sensor is in a state that prevents
+ skeleton tracking from running.
+
+
+
+
+ Gets the associated smoothing parameters.
+
+
+
+
+ Gets a value indicating whether smoothing is enabled.
+
+
+
+
+ Gets the total length of the skeleton data buffer of each SkeletonFrame from this SkeletonStream.
+
+
+
+
+ IList implementation with locking on all operations.
+
+ Type of generic IList to implement.
+
+
+
+ Initializes a new instance of the ThreadSafeList class with a new lock.
+
+
+
+
+ Initializes a new instance of the ThreadSafeList class with an existing new lock.
+
+ Existing lock to use for this list.
+
+
+
+ Lock object to use for all operations.
+
+
+
+
+ Wrapped list object.
+
+
+
+
+ Adds the elements of the specified collection to the end of the ThreadSafeList<T>.
+
+
+ The collection whose elements should be added to the end of the ThreadSafeList<T>.
+ The collection itself cannot be null, but it can contain elements that are
+ null, if type T is a reference type.
+
+ Collection is null.
+
+
+
+ Searches for the specified object and returns the zero-based index of the
+ first occurrence within the entire ThreadSafeList<T>.
+
+
+ The object to locate in the ThreadSafeList<T>. The value
+ can be null for reference types.
+
+
+ The zero-based index of the first occurrence of item within the entire ThreadSafeList<T>,
+ if found; otherwise, –1.
+
+
+
+
+ Inserts an element into the ThreadSafeList<T> at the specified
+ index.
+
+
+ The zero-based index at which item should be inserted.
+
+
+ The object to insert. The value can be null for reference types.
+
+ Index is less than 0.-or-index is greater than ThreadSafeList<T>.Count.
+
+
+
+ Removes the element at the specified index of the ThreadSafeList<T>.
+
+ The zero-based index of the element to remove.
+ Index is less than 0.-or-index is equal to or greater than ThreadSafeList<T>.Count.
+
+
+
+ Adds an object to the end of the ThreadSafeList<T>.
+
+
+ The object to be added to the end of the ThreadSafeList<T>.
+ The value can be null for reference types.
+
+
+
+
+ Removes all elements from the ThreadSafeList<T>.
+
+
+
+
+ Determines whether an element is in the ThreadSafeList<T>.
+
+
+ The object to locate in the ThreadSafeList<T>. The value
+ can be null for reference types.
+
+
+ true if item is found in the ThreadSafeList<T>; otherwise,
+ false.
+
+
+
+
+ Copies the entire ThreadSafeList<T> to a compatible one-dimensional
+ array, starting at the beginning of the target array.
+
+
+ The one-dimensional System.Array that is the destination of the elements
+ copied from ThreadSafeList<T>. The System.Array must have
+ zero-based indexing.
+
+
+ The zero-based index in array at which copying begins.
+
+ Array is null.
+ ArrayIndex is less than 0.
+
+ The number of elements in the source ThreadSafeList<T> is
+ greater than the available space from arrayIndex to the end of the destination
+ array.
+
+
+
+
+ Copies the entire ThreadSafeList<Tgt; to a compatible one-dimensional
+ array, starting at the beginning of the target array.
+
+
+ The one-dimensional System.Array that is the destination of the elements
+ copied from System.Collections.Generic.List<Tgt;. The System.Array must have
+ zero-based indexing.
+
+ Array is null.
+
+ The number of elements in the source ThreadSafeList<Tgt; is
+ greater than the number of elements that the destination array can contain.
+
+
+
+
+ Removes the first occurrence of a specific object from the ThreadSafeList<T>.
+
+
+ The object to remove from the ThreadSafeList<T>. The value
+ can be null for reference types.
+
+
+ true if item is successfully removed; otherwise, false. This method also
+ returns false if item was not found in the ThreadSafeList<T>.
+
+
+
+
+ Returns an enumerator that iterates through the ThreadSafeList<T>.
+
+ This support function exists to satisfy code quality warning CA2000. Otherwise, it would be in-line.
+ A ThreadSafeList<T>.Enumerator for the ThreadSafeList<T>.
+
+
+
+ Returns an enumerator that iterates through the ThreadSafeList<T>.
+
+ This enumerator is a SNAPSHOT of the list. Keep this in mind when using this enumerator.
+ A ThreadSafeList<T>.Enumerator for the ThreadSafeList<T>.
+
+
+
+ Returns an enumerator that iterates through the ThreadSafeList<T>.
+
+ This enumerator is a SNAPSHOT of the list. Keep this in mind when using this enumerator.
+ A ThreadSafeList<T>.Enumerator for the ThreadSafeList<T>.
+
+
+
+ Gets or sets the element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The element at the specified index.
+
+
+
+ Gets the number of elements actually contained in the ThreadSafeList<T>.
+
+
+
+
+ Gets a value indicating whether the list is read only. Returns true.
+
+
+
+
+ Provides a SNAPSHOT enumerator of the list. Keep this in mind when using this enumerator.
+
+
+
+
+ Snapshot to enumerate.
+
+
+
+
+ Internal enumerator of the snapshot.
+
+
+
+
+ Initializes a new instance of the ThreadSafeEnumerator class, creating a snapshot of the given list.
+
+ List to snapshot.
+
+
+
+ Disposes the underlying enumerator. Does not set _list or _enum to null so calls will still
+ proxy to the disposed instance (and throw the proper exception).
+
+
+
+
+ Advances the enumerator to the next element of the collection.
+
+
+ true if the enumerator was successfully advanced to the next element; false
+ if the enumerator has passed the end of the collection.
+
+ The collection was modified after the enumerator was created.
+
+
+
+ Sets the enumerator to its initial position, which is before the first element
+ in the collection.
+
+ The collection was modified after the enumerator was created.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+ The element in the collection at the current position of the enumerator.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+ The element in the collection at the current position of the enumerator.
+
+
+
+ This struct describes a 3 dimensional point in skeleton space.
+
+
+
+
+ This method compares two skeleton point objects.
+
+ The object to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two skeleton point objects.
+
+ The SkeletonPoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This gets the hash code for a given skeleton point.
+
+ The calculated hash code.
+
+
+
+ This method compares two skeleton point objects.
+
+ The first SkeletonPoint to compare.
+ The second SkeletonPoint to compare.
+ It returns true if they are equal and false otherwise.
+
+
+
+ This method compares two skeleton point objects.
+
+ The first SkeletonPoint to compare.
+ The second SkeletonPoint to compare.
+ It returns true if they are not equal and false otherwise.
+
+
+
+ Gets or sets the X coordinate of the skeleton point.
+
+
+
+
+ Gets or sets the Y coordinate of the skeleton point.
+
+
+
+
+ Gets or sets the Z coordinate of the skeleton point.
+
+
+
+
+ Image formats for the Color Image Stream. It represents Image Data format, Framerate, and Resolution.
+
+
+
+
+ The image format is undefined.
+
+
+
+
+ RGB data (32 bits per pixel, layout corresponding to PixelFormats.Bgr32).
+ Resolution of 640 by 480 at 30 Frames per second.
+
+
+
+
+ RGB data (32 bits per pixel, layout corresponding to PixelFormats.Bgr32).
+ Resolution of 1280 by 960 at 12 Frames per second.
+
+
+
+
+ The data is collected from the Kinect as YUV, but it is translated to:
+ RGB data (32 bits per pixel, layout corresponding to PixelFormats.Bgr32).
+ Resolution of 640 by 480 at 15 Frames per second.
+
+
+
+
+ YUV data (32 bits per pixel, layout corresponding to D3DFMT_LIN_UYVY).
+ Resolution of 640 by 480 at 15 Frames per second.
+
+
+
+
+ Infrared data (16 bits per pxel)
+ Resolution of 640 by 480 at 30 Frames per second.
+
+
+
+
+ Bayer data (8 bits per pixel, layout in alternating pixels of red, green and blue).
+ Resolution of 640 by 480 at 30 Frames per second.
+
+
+
+
+ Bayer data (8 bits per pixel, layout in alternating pixels of red, green and blue).
+ Resolution of 1280 by 960 at 12 Frames per second.
+
+
+
+
+ Represents the stream of Color Image data from the Kinect.
+ It should only be used as a property of a KinectSensor.
+
+
+
+
+ The current image type of this stream.
+
+
+
+
+ The current image format of this stream.
+
+
+
+
+ The related color data pool.
+
+
+
+
+ The color camera settings field.
+
+
+
+
+ This method returns the resolution scale of the value provided.
+
+ The source value.
+ The scaled value based on a 640x480 resolution.
+
+
+
+ Initializes a new instance of the ColorImageStream class.
+
+ The sensor this stream relates to.
+
+
+
+ Enables the Color Image Stream for this Kinect Sensor using the default of
+ ColorImageFormat.RgbResolution640x480Fps30.
+
+
+
+
+ Enables the Color Image Stream for this Kinect Sensor, with the specified format.
+
+ The Image Data format, Framerate, and Resolution.
+
+
+
+ Retrieves the next ColorImageFrame from the sensor. The ColorImageFrame must be disposed.
+
+ The time to wait for a new frame from the sensor, in milliseconds.
+ The next ColorImageFrame, or null if the timeout has expired.
+
+
+
+ Store the pixel data during the window when it's available from native code.
+
+ The frameNumber of the pixel data.
+ The native description of the pixel data.
+ The ImageType of the pixels.
+ The Resolution of the pixels.
+ The native stream handle.
+ The native image frame.
+
+
+
+ This method locks the pixel data for a given frame number.
+
+ The frame number.
+ A locked pixel data if available.
+
+
+
+ This method unlocks the pixel data.
+
+ The data to unlock.
+
+
+
+ This method looks up the image resolution based on a given color format.
+
+ The color format.
+ The ImageResolution for the ColorImageFormat.
+
+
+
+ This method looks up the ColorImageFormat for the given ImageType and ImageResolution.
+
+ The image type.
+ The image resolution.
+ The ColorImageFormat for the combination.
+
+
+
+ Returns the required length for a pixel data array based on the provided ColorImageFormat.
+
+ The ColorImageFormat for which to lookup the required pixel data array length.
+ The required length for a pixel data array based on the provided ColorImageFormat.
+
+
+
+ Gets the nominal focal length of color image in pixels, adjusted for resolution.
+
+
+
+
+ Gets the inverse of the NominalFocalLengthInPixels, or 1/NominalFocalLengthInPixels.
+
+
+
+
+ Gets the nominal diagonal field of view of color image.
+
+
+
+
+ Gets the nominal horizontal field of view of color image.
+
+
+
+
+ Gets the nominal vertical field of view of color image.
+
+
+
+
+ Gets the color camera settings.
+
+
+
+
+ Gets the current Framerate and Resolution.
+
+
+
+
+ Gets the ImageType for the stream.
+
+
+
+
+ Possible Ranges for the Depth Sensor.
+
+
+
+
+ Default or XBox range: 800mm to 4000mm.
+
+
+
+
+ Range adjusted for up-close viewing: 400mm to 3000mm.
+
+
+
+
+ Image formats for the Depth Image Stream. It represents Framerate, and Resolution.
+
+
+
+
+ The image format is undefined.
+
+
+
+
+ Resolution of 640 by 480 at 30 Frames per second.
+
+
+
+
+ Resolution of 320 by 240 at 30 Frames per second.
+
+
+
+
+ Resolution of 80 by 60 at 30 Frames per second.
+
+
+
+
+ Represents the stream of Depth Image data from the Kinect.
+ It should only be used as a property of a KinectSensor.
+
+
+
+
+ The default minimum depth.
+
+
+
+
+ The default maximum depth.
+
+
+
+
+ The near mode minimum depth.
+
+
+
+
+ The near mode maximum depth.
+
+
+
+
+ The value indicating too near.
+
+
+
+
+ The value indicating too far.
+
+
+
+
+ The value for an unknown depth.
+
+
+
+
+ The depth bytes per pixel constant.
+
+
+
+
+ This method returns the resolution scale of the value provided.
+
+ The source value.
+ The scaled value based on a 320x240 resolution.
+
+
+
+ The current depth range mode.
+
+
+
+
+ The current minimum depth value.
+
+
+
+
+ The current maximum depth value.
+
+
+
+
+ The current depth image format.
+
+
+
+
+ The depth data pool.
+
+
+
+
+ Initializes a new instance of the DepthImageStream class.
+
+ The related sensor object.
+
+
+
+ Enables the Depth Image Stream for this Kinect Sensor using the default value of
+ DepthImageFormat.Resolution640x480Fps30.
+
+
+
+
+ Enables the Depth Image Stream for this Kinect Sensor, with the specified format.
+
+ The Framerate, and Resolution.
+
+
+
+ Retrieves the next DepthImageFrame from the sensor. The DepthImageFrame must be disposed.
+
+ Time to wait for a new frame from the sensor, in milliseconds.
+ The next DepthImageFrame, or null if the timeout has expired.
+
+
+
+ Store the pixel data during the window when it's available from native code.
+
+ The frameNumber of the pixel data.
+ The native description of the pixel data.
+ The ImageType of the pixels.
+ The Resolution of the pixels.
+ The native stream handle.
+ The native image frame.
+
+
+
+ This method locks the pixel data for a given frame number.
+
+ The frame number.
+ A locked pixel data if available.
+
+
+
+ This method unlocks the pixel data.
+
+ The data to unlock.
+
+
+
+ This method looks up the image resolution based on a given depth format.
+
+ The depth format.
+ The ImageResolution for the DepthImageFormat.
+
+
+
+ This method looks up the DepthImageFormat for the given ImageType and ImageResolution.
+
+ The image type.
+ The image resolution.
+ The DepthImageFormat for the combination.
+
+
+
+ Returns the required length for a pixel data array based on the provided DepthImageFormat.
+
+ The DepthImageFormat for which to lookup the required pixel data array length.
+ The required length for a pixel data array based on the provided DepthImageFormat.
+
+
+
+ Gets the nominal focal length of depth image in pixels, adjusted for resolution.
+
+
+
+
+ Gets the inverse of the NominalFocalLengthInPixels, or 1/NominalFocalLengthInPixels.
+
+
+
+
+ Gets the nominal diagonal field of view of depth image.
+
+
+
+
+ Gets the nominal horizontal field of view of depth image.
+
+
+
+
+ Gets the nominal vertical field of view of depth image.
+
+
+
+
+ Gets or sets the current sensitive range of the Depth Sensor.
+
+
+
+
+ Gets the current Framerate, and Resolution.
+
+
+
+
+ Gets the constant Depth value for data that is too near for the sensor to accurately track.
+ This value is guaranteed to be smaller than MinDepth. Note that objects very near
+ the sensor may actually return UnknownDepth.
+
+
+
+
+ Gets the constant Depth value for data that is too far beyond the sensor range.
+ This value is guaranteed to be larger than MaxDepth.
+
+
+
+
+ Gets the constant Depth value for data that is at an unknown distance.
+
+
+
+
+ Gets the minimum Depth value in mm for the current sensor range setting.
+
+
+
+
+ Gets the maximum Depth value in mm for the current sensor range setting.
+
+
+
+
+ This property can change based on external changes to Sensor.SkeletonStream,
+ and therefore must be queried every time the value is required.
+
+
+
+
+ IPropertyStore property indexes for INuiSensor.
+
+
+
+
+ Default value. Not used.
+
+
+
+
+ Internal IsSupported property for sensor.
+
+
+
+
+ Provides the location of a sound source.
+ Wrapper for INuiAudioBeam COM interface.
+
+
+
+
+ Initializes a new instance of the NuiAudioBeam class with the given audio device.
+
+ The audio device to wrap.
+
+
+
+ The wrapped audio device.
+
+
+
+
+ Gets the currently selected beam direction.
+
+ Receives the horizontal angle (in radians) of the currently selected
+ beam in camera coordinates, where the x-z axes define the horizontal plane. The angle is
+ relative to the z-axis, which is perpendicular to the Kinect sensor.
+
+
+
+ Sets the currently selected beam direction.
+ The KinectAudio DMO supports 11 beams. They have fixed directions ranging from −0.875
+ radians to +0.875 radians in .0175 radian increments, which corresponds to approximately
+ −50 degrees to +50 degrees, in ten degree increments.
+
+ The beam angle, in radians.
+ Important : To use SetBeam, you must set the KinectAudio DMO's MFPKEY_WMAAECMA_FEATR_MICARR_MODE
+ property key to MIC_ARRAY_MODE.MICARRAY_EXTERN_BEAM.
+
+
+
+ Provides the best estimate of the sound source location, as determined by the KinectAudio DMO's sound source localizer.
+
+ Receives the estimated horizontal angle (in radians) to the sound source
+ in camera coordinates, where the x-z axes define the horizontal plane. The angle is relative
+ to the z-axis, which is perpendicular to the Kinect sensor.
+ Receives the confidence value of the estimate.
+ You must call IMediaObject::ProcessOutput before calling GetPosition. This method
+ drives the processing of audio samples through the audio pipeline, which is required for
+ determining the source direction. GetPosition will be successful only if ProcessOutput has
+ returned S_OK. Do not simply check for success, because ProcessOutput can also return S_FALSE
+ if it lacks sufficient data to proceed. If ProcessOutput returns S_FALSE, continue calling the
+ method until it returns S_OK, and then call GetPosition.
+ GetPosition is based on a measurement queue. If the queue empties, the function returns zero
+ for both parameters.
+
+
+
+
+ Gets the wrapped audio device.
+
+
+
+
+ A class for performing mapping between depth space, color space, and skeleton space.
+
+
+
+
+ Privately cached copy of INuiCoordinateMapper interface.
+
+
+
+
+ Initializes a new instance of the NuiCoordinateMapper class.
+
+ The INuiCoordinateMapper interface to wrap.
+
+
+
+ Initializes a new instance of the NuiCoordinateMapper class.
+
+ The INuiCoordinateMapper interface to wrap.
+
+
+
+ Common constructor functionality.
+
+
+
+
+ Returns the relational parameters from native and copys them into a byte array.
+
+ The relational parameters.
+
+
+
+ Event variable for RelationalParametersChanged. Calls marshalled to main thread.
+
+
+
+
+ Gets the pixel coordinates in color space that correspond to the specified pixel coordinates in depth space, using the specified depth resolution.
+
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The DepthImagePoint to map to color space.
+ Color type.
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The ColorImagePoint to recieve the mapped value.
+
+
+
+ Converts a frame's worth of data from depth space to color space.
+
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The data from an entire depth frame .
+ Color type.
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ Array to hold the color frame X,Y coordinates for each pixel in the depth frame.
+
+
+
+ Gets the pixel coordinates in skeleton space that correspond to the specified pixel in color space, using the provided color and depth resolutions.
+
+ Color type.
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The input array of DepthImagePixels to map from, size should be equal to that specified by eDepthResolution.
+ The output array of SkeletonPoints, size should be equal to that specified by eColorResolution.
+
+
+
+ Gets the pixel coordinates in skeleton space that correspond to the specified pixel in depth space, using the provided depth resolution.
+
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The input array of DepthImagePixels to map from, size should be equal to that specified by eDepthResolution.
+ The output array of SkeletonPoints, size should be equal to that specified by eDepthResolution.
+
+
+
+ Gets the pixel coordinates in depth space that correspond to the specified pixel coordinates in color space, using the provided color and depth resolutions.
+
+ Color type.
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The input array of DepthImagePixels to map from, size should be equal to that specified by eDepthResolution.
+ The output array of DepthImagePoints, size should be equal to that specified by eColorResolution.
+
+
+
+ Called by the native runtime when the underlying parameters have changed.
+
+ Returns S_OK always.
+
+
+
+ Fires when the paramaters have been changed (e.g. by KinectStudio).
+
+
+
+
+ Wraps the native INuiSensor interface, which provides native access to a sensor.
+
+
+
+
+ The wrapped sensor.
+
+
+
+
+ The current depth filter.
+
+
+
+
+ All depth filters ever used by this sensor.
+
+
+
+
+ Initializes a new instance of the NuiSensor class.
+ Wrapper for INuiSensor. Slightly more managed friendly than a raw INuiSensor.
+
+ INuiSensor object to wrap.
+
+
+
+ Gets the zero-based sensor index.
+
+ Returns the sensor index.
+
+
+
+ Initializes the NUI engine.
+
+ The NUI subsystems to initialize, as a bitwise-OR combination of
+ the NUI_INITIALIZE constants.
+
+
+
+ Caches the INuiAudioBeam object for the sensor.
+
+
+
+
+ Gets the audio source from a specific sensor.
+
+ The INuiAudioBeam interface for the audio source.
+
+
+
+ Caches the INuiCoordinateMapper object for the sensor.
+
+
+
+
+ Gets the coordinate mapping object from a specific sensor.
+
+ The INuiCoordinateMapper interface for the sensor.
+
+
+
+ Shuts down the NUI engine.
+
+
+
+
+ Sets the event that signals the last frame.
+
+ A handle to the event.
+ The frame event options, as a bitwise-OR combination of the NUI_IMAGE_STREAM_FLAG constants.
+
+
+
+ Opens an image stream.
+
+ A NUI_IMAGE_TYPE value that specifies which image stream to open.
+ The valid values for this parameter depend on the flags that you passed to the dwFlags
+ parameter of the INuiSensor::NuiInitialize method.
+ A NUI_IMAGE_RESOLUTION value that specifies which resolution to
+ use for the image stream. The valid values for this parameter depend on the flags that you
+ passed to the dwFlags parameter of the INuiSensor::NuiInitialize method.
+ Not used; specify NULL.
+ The number of frames that the NUI runtime should buffer.
+ The maximum value is NUI_IMAGE_STREAM_FRAME_LIMIT_MAXIMUM. Most applications
+ should use a frame limit of two.
+ A handle to a manual reset event that will be fired when
+ the next frame in the stream is available.
+ A pointer that receives a handle to the opened stream.
+
+
+
+ Sets the image frame flags for the specified stream.
+
+ A handle to the stream.
+ The image frame flags.
+
+
+
+ Gets the image frame flags for the specified stream.
+
+ A handle to the stream.
+ A DWORD that receives the image frame flags.
+
+
+
+ Gets the next frame of data from the specified image stream.
+
+ A handle to the image stream. This stream must have been opened by a call to the NuiImageStreamOpen method.
+ The timeout (in milliseconds) before returning without a new frame.
+ A pointer to a NUI_IMAGE_FRAME structure that receives the next image
+ frame in the specified stream. The pFrameTexture member of the structure points to an
+ INuiFrameTexture instance that contains the frame data.
+ Returns S_OK if successful; otherwise, returns a failure code.
+
+
+
+ Releases the specified frame of data from the specified stream.
+
+ A handle to the stream. This stream must have been opened by a call to the INuiSensor::NuiImageStreamOpen method.
+ A pointer to the frame to release.
+
+
+
+ Returns a pointer to an INuiFrameTexture that contains the data of a depth frame
+ in NUI_DEPTH_IMAGE_PIXEL format (instead of packed USHORTs).
+
+ A handle to the open depth stream.
+
+ The NUI_IMAGE_FRAME for which the texture is being requested. This must be a valid
+ frame returned by a call to NuiImageStreamGetNextFrame on hStream, and not
+ yet released by a call to NuiImageStreamReleaseFrame.
+
+
+ Returns true if the frame was captured in near mode; false if it was captured in
+ default mode.
+
+
+ Returns a pointer to an INuiFrameTexture containing the depth pixels.
+ The lifetime of this texture is tied to the lifetime of pImageFrame;
+ application code must not access the texture after NuiImageStreamRelease has been
+ called on pImageFrame.
+
+
+
+
+ Gets the pixel coordinates in color space that correspond to the specified pixel coordinates in depth space, using the specified depth resolution.
+
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The optional zoom and pan settings of the color image, as a pointer
+ to a NUI_IMAGE_VIEW_AREA structure. To ensure that the settings are valid, use the ViewArea
+ member of the NUI_IMAGE_FRAME that you are registering pixels against. Do not instantiate
+ and populate this structure manually.
+ The X coordinate in depth image space.
+ The Y coordinate in depth image space.
+ The depth value in depth image space. This value is constrained
+ between NUI_IMAGE_DEPTH_MINIMUM and NUI_IMAGE_DEPTH_MINIMUM.
+ Pointer to a LONG value that receives the X coordinate of the pixel in
+ color image space. This pointer must be non-NULL when you call this function. If this method
+ does not return S_OK, this data is invalid. This value can be outside of the bounds of the
+ color image.
+ Pointer to a LONG value that receives the Y coordinate of the pixel
+ in color image space. This pointer must be non-NULL when you call this function. If this
+ method does not return S_OK, this data is invalid. This value can be outside of the bounds
+ of the color image.
+
+
+
+ Converts a frame's worth of data from depth space to color space.
+
+ The resolution of the color image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The resolution of the depth image, as a NUI_IMAGE_RESOLUTION enumeration constant.
+ The data from an entire depth frame .
+ Array to hold the color frame X,Y coordinates for each pixel in the depth frame.
+
+
+
+ Sets the elevation angle of the Kinect sensor.
+
+ The elevation angle relative to gravity, in degrees.
+ A value of zero indicates that the sensor array should point exactly horizontally.
+ Positive values indicate that the sensor array should point above the horizon, and
+ negative values indicate that the sensor array should point below the horizon. This
+ value is constrained between NUI_CAMERA_ELEVATION_MINIMUM and NUI_CAMERA_ELEVATION_MAXIMUM.
+
+
+
+ Gets the elevation angle of the Kinect sensor.
+
+
+ The current elevation angle relative to gravity, in degrees. The pointer must be non-NULL
+ when you call the function. After the function call returns, the LONG value contains the
+ elevation angle. Valid angles range from NUI_CAMERA_ELEVATION_MINIMUM to
+ NUI_CAMERA_ELEVATION_MAXIMUM.
+
+
+
+
+ Gets the current accelerometer reading of the Kinect sensor.
+
+
+ A Vector4 pointing in the directon of gravity.
+
+
+ The accelerometer reading is returned as a 3d vector pointing in the direction of
+ gravity (i.e. floor (gravity) on a non-accelerating sensor). The unit of the vector
+ is in gravity units (g), 9.81m/s^2. The coordinate system is centered on the sensor,
+ right-handed coordinate system with positive-Z in the direction the sensor is pointing at.
+ In the default sensor rotation (horizontal, level placement), this will return the vector
+ (0, -1.0, 0, 0). The w value of the Vector4 is always set to 0.0.
+
+
+
+
+ Enables skeletal tracking.
+
+ A handle to an application-allocated, manual reset event that
+ will be set whenever a new frame of skeleton data is available, and will be reset whenever
+ the latest frame data is returned. This can be NULL.
+
+ Flags that control skeleton tracking, as a bitwise-OR combination of the values
+ in the following table. Flag Description
+ NUI_SKELETON_TRACKING_FLAG_SUPPRESS_NO_FRAME_DATA - Prevents the
+ INuiSensor::NuiSkeletonGetNextFrame method from returning E_NUI_FRAME_NO_DATA errors.
+ Instead, calls to NuiSkeletonGetNextFrame block execution until data
+ is available or the timeout period passes.
+ NUI_SKELETON_TRACKING_FLAG_TITLE_SETS_TRACKED_SKELETONS - Disables the default player
+ selection mode and enables the title to choose which detected skeletons are tracked.
+
+
+
+
+ Disables skeleton tracking.
+
+ S_OK if successful; otherwise, returns a failure code.
+
+
+
+ Gets the next frame of data from the skeleton stream.
+
+ The timeout (in milliseconds) before returning without a new frame.
+ A pointer to a NUI_SKELETON_FRAME structure that receives the next image frame in the skeleton stream.
+ Returns S_OK if successful; otherwise, returns one of the following failure codes: E_POINTER, E_NUI_FRAME_NO_DATA.
+
+
+
+ Filters skeleton positions to reduce jitter between frames.
+
+ Points to a NUI_SKELETON_FRAME Structure that contains the skeleton data to be smoothed. On exit, the skeleton data in the structure has been replaced by smoothed data. If this function does not return S_OK, this data is unchanged.
+ The parameters for the smoothing function. See the NUI_TRANSFORM_SMOOTH_PARAMETERS structure for a description of the parameters.
+
+
+
+ Gets the sensor connection ID.
+
+ The hub device instance id.
+
+
+
+ Gets the unique ID for the sensor.
+
+ The camera device instance id.
+
+
+
+ Gets the audio array ID.
+
+ Returns the audio array ID.
+
+
+
+ Gets the connection status of the Kinect sensor.
+
+ Returns S_OK if successful; otherwise, returns one of the following failure codes: E_NUI_NOTCONNECTED.
+
+
+
+ Gets the flags that were passed to the INuiSensor::NuiInitialize method.
+
+ Returns the initialization flags.
+
+
+
+ Sets an array of IDs for skeletal tracking.
+
+ The tracking ID for the first skeleton.
+ The tracking ID for the second skeleton.
+
+
+
+ Retrieves the color camera settings native object.
+ This method will throw if the settings are not supported.
+
+ The color camera settings.
+
+
+
+ Returns the depth filter corresponding to a depth or skeleton frame captured at a
+ particular timestamp.
+
+ The timestamp at which the frame was captured.
+ The depth filter that was applied to the frame.
+
+
+
+ Gets a value indicating whether the device is a supported Kinect.
+
+
+
+
+ Returns a private property from the NuiSensors IPropertyStore.
+
+ Index of the property to retrieve.
+ The property value.
+
+
+
+ Gets or sets a value indicating whether the infrared emitter is disabled.
+ Default value of false.
+
+
+
+
+ Gets or sets a filter to be applied to each depth frame.
+
+
+
+
+ This is the wrapper class for the color camera settings.
+
+
+
+
+ This field holds on to the INuiColorCameraSettings object.
+
+
+
+
+ Initializes a new instance of the NuiColorCameraSettings class.
+
+ The underlying native settings object.
+
+
+
+ This method enables or disables the sensor's auto exposure setting.
+
+ The bool indicating if the setting is enabled or disabled.
+
+
+
+ Gets the current value for auto white balance.
+
+ Returns true if this is enabled, false otherwise.
+
+
+
+ Sets the white balance.
+
+ This property only works when AutoWhiteBalance is disabled.
+ The desired white balance.
+
+
+
+ Gets the current white balance setting.
+
+ If AutoWhiteBalance is true, this will only return the last known value.
+ The current value of the white balance setting.
+
+
+
+ Gets the minimum acceptable value for white balance.
+
+ The minimum value.
+
+
+
+ Gets the maximum acceptable value for white balance.
+
+ The maximum value.
+
+
+
+ Sets the desired contrast.
+
+ The desired contrast.
+
+
+
+ Gets the current contrast.
+
+ The current contrast.
+
+
+
+ Gets the minimum contrast.
+
+ The minimum.
+
+
+
+ Gets the maximum contrast.
+
+ The maximum.
+
+
+
+ Sets the desired hue.
+
+ The desired hue.
+
+
+
+ Gets the current hue.
+
+ The current hue.
+
+
+
+ Gets the minimum hue.
+
+ The minimum.
+
+
+
+ Gets the maximum hue.
+
+ The maximum.
+
+
+
+ Sets the desired saturation.
+
+ The desired saturation.
+
+
+
+ Gets the current saturation.
+
+ The current saturation.
+
+
+
+ Gets the minimum saturation.
+
+ The minimum.
+
+
+
+ Gets the maximum saturation.
+
+ The maximum.
+
+
+
+ Sets the desired gamma.
+
+ The desired gamma.
+
+
+
+ Gets the current gamma.
+
+ The current gamma.
+
+
+
+ Gets the minimum gamma.
+
+ The minimum.
+
+
+
+ Gets the maximum gamma.
+
+ The maximum.
+
+
+
+ Sets the desired sharpness.
+
+ The desired sharpness.
+
+
+
+ Gets the current sharpness.
+
+ The current sharpness.
+
+
+
+ Gets the minimum sharpness.
+
+ The minimum.
+
+
+
+ Gets the maximum sharpness.
+
+ The maximum.
+
+
+
+ This method enables or disables the sensor's auto exposure setting.
+
+ The bool indicating if the setting is enabled or disabled.
+
+
+
+ Gets the current value for auto exposure.
+
+ Returns true if enabled, false otherwise.
+
+
+
+ Sets the desired exposure time.
+
+ The desired exposure time.
+
+
+
+ Gets the current exposure time.
+
+ The current exposure time.
+
+
+
+ Gets the minimum exposure time.
+
+ The minimum.
+
+
+
+ Gets the maximum exposure time.
+
+ The maximum.
+
+
+
+ Sets the desired frame interval.
+
+ The desired frame interval.
+
+
+
+ Gets the current frame interval.
+
+ The current frame interval.
+
+
+
+ Gets the minimum frame interval.
+
+ The minimum.
+
+
+
+ Gets the maximum frame interval.
+
+ The maximum.
+
+
+
+ Sets the desired brightness.
+
+ The desired brightness..
+
+
+
+ Gets the current brightness.
+
+ The current brightness.
+
+
+
+ Gets the minimum brightness.
+
+ The minimum.
+
+
+
+ Gets the maximum brightness.
+
+ The maximum.
+
+
+
+ Sets the desired power line frequency.
+
+ The desired frequency.
+
+
+
+ Gets the current power line frequency.
+
+ The current frequency.
+
+
+
+ Sets the desired backlight compensation mode.
+
+ The desired mode.
+
+
+
+ Gets the current backlight compensation mode.
+
+ The current mode.
+
+
+
+ Sets the desired gain.
+
+ The desired gain.
+
+
+
+ Gets the current gain.
+
+ The current gain.
+
+
+
+ Gets the minimum gain.
+
+ The minimum.
+
+
+
+ Gets the maximum gain.
+
+ The maximum.
+
+
+
+ This resets the color camera settings to their defaults.
+
+
+
+
+ Translates HRESULTs from native NUI API's and COM interfaces to managed exceptions.
+
+
+
+
+ The sensor does not support the requested feature (e.g. near mode).
+
+
+
+
+ The given sensor is not a genuine Kinect™ sensor.
+
+
+
+
+ The given sensor is not a supported Kinect™ sensor. Probably an XBox Kinect™ on a non-developer machine.
+
+
+
+
+ Invalid index sent to NuiCreateSensorByIndex or NuiCreateSensorById.
+
+
+
+
+ A Win32 API returned ERROR_REQUEST_ABORTED.
+
+
+
+
+ This means that the per-device mutex has already been created in NuiInitialize, and therefore
+ we conclude that the device is already in use.
+
+
+
+
+ Throws a managed exception for the given native HRESULT from the NUI API.
+
+ Native HRESULT returned from API.
+
+
+
diff --git a/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen.par b/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen.par
index 3ac3b5cea..a139b3535 100644
--- a/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen.par
+++ b/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen.par
@@ -1 +1 @@
-{"Conectado":true,"Sensores":[{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.7454682-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.452567-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.1693178-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.8980591-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.3,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.6067199-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3097689-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.0379417-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.7429262-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4766041-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.1805516-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.44,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.8943883-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.6140561-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.3382374-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.0405549-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.7485829-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.4659113-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.175221-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.8856468-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.6107555-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.44,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.3226291-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.0347933-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.7599187-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.4649261-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.1776414-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.01,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.8993948-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6130897-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.79,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.3278301-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.06,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.0342159-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.26,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.7539997-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.87,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.4915961-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.76,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.1747246-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.9177571-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6192481-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.01,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.3327497-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.0452377-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7988676-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.79,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.465683-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.191616-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.9333465-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.6343131-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.3489193-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.0596334-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.11,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7621287-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4703772-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.192991-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.34,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9264133-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.6269848-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.69,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.3302634-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.0444595-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7618912-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4795726-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.1936694-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9021635-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.6353839-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.21,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.3374388-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.24,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0438732-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.09,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7651288-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.64,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.4936447-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.08,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1905158-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9132955-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVET","Prioridade":0,"Descricao":"Temperatura Motor Esquerdo Trás","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[15.02],"ValorMinimo":0.0,"ValorMaximo":373.42,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.7664676-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.475235-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.1878341-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.9170592-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.610909-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.52,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3300224-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.0399404-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.7579284-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4896363-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.85,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.1837263-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.8983886-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.617053-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.3422385-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.87,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.0435566-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.19,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.7515819-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.47,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.4690441-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.48,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.1952206-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.9096465-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.0,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.6227569-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.46,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.3349906-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.0487945-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":13.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.7709198-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.467926-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.1826417-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.26,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.9023939-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.629089-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.3318304-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.0455156-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.7560003-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.4956013-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.1807267-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.92,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.9067435-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6305314-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.06,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.3446156-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.0482378-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.8018677-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.4701951-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.1876159-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.9023444-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.6213121-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.333918-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.19,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.0636339-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7711276-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4883786-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.2049923-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9384136-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.6299836-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.3402655-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.0574601-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.64,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7668903-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4825732-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.2046701-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9071633-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.62,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.6383837-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.3404356-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":19.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0478725-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":18.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7621284-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.5086373-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1935152-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9252956-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVEF","Prioridade":0,"Descricao":"Temperatura Motor Esquerdo Frente","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[15.54],"ValorMinimo":0.0,"ValorMaximo":199.92,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.2347186-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":82.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.9424675-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":94.97,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.6491247-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":95.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4057025-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":99.13,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.1012254-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":115.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.794249-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":161.08,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.5182005-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":107.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.2333221-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":109.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.945464-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":84.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.6582924-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":151.41,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.3736087-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":125.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.0873931-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":139.92,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.8001679-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":277.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5215937-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":"NaN","Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2257256-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":202.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.939182-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":211.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.6482564-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":139.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.3623071-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":165.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.0856463-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":144.73,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.7938633-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":112.72,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5074328-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":134.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2197935-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":110.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.9315855-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":125.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6509254-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":128.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.360845-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":104.17,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.0803931-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":84.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.7900886-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":90.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.5017241-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":86.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.2240468-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":90.38,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.9311771-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":92.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.645749-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":97.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.3662854-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":88.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.0831106-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":96.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.7845112-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":104.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.5101285-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":117.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.2292381-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":169.65,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.9333952-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":195.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.6432052-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":150.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.3621589-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":140.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.3008748-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":118.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8589717-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":144.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.5158455-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":108.13,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.2242081-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":124.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.9381289-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":120.83,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.6583776-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":110.24,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.3699925-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":129.89,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.0894108-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":138.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8025599-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":156.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.5232644-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":219.67,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.2244606-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":126.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9368906-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":85.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.6575708-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":86.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.3669154-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.0901627-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":91.11,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.7946319-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":93.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.507436-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":80.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.2288714-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":76.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9332843-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.98,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.6596365-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.3695133-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":94.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVDT","Prioridade":0,"Descricao":"Temperatura Motor Direito Trás","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[94.4],"ValorMinimo":0.0,"ValorMaximo":277.25,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.3187186-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.946468-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.6767345-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.8082108-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.1065896-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.53,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.8144879-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.5208652-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.69,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.2363238-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.9484641-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.6721529-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.97,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.3806067-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.0953984-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.8117101-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.6,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5335942-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2377262-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.94,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.9474692-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.6756248-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.32,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.3763053-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.1016466-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.8153952-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.41,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5210087-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.83,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2337923-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.17,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.9515847-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.662925-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":13.65,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.3748448-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.93,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.0873932-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.8120884-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.5187231-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.235046-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.9527583-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.677249-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.32,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.3705025-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.04,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.09011-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.34,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.80156-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.5261995-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7072839-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":17.42,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.4236511-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":17.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.142007-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.8593448-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.586798-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.2926322-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.9996355-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7061281-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.5,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4263779-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.21,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.139497-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":13.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8784136-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.5649843-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.2762643-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9894604-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.94,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7204777-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4265725-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.1386699-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.8451647-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.5693854-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.42,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.2796316-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.3,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0328722-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7051286-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.4126363-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1355141-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.67,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.8485119-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVDF","Prioridade":0,"Descricao":"Temperatura Motor Direito Frente","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[16.27],"ValorMinimo":0.0,"ValorMaximo":276.68,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.0058369-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.48,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.0238819-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0358817-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.63,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0541656-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.37,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0357228-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.64,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.1021507-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.9,"Leitura2":3.28,"Leitura3":1698.0,"Leitura4":8.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0778405-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.67,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1386471-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.1,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1210746-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.62,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.154137-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.1,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.11,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1563819-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.62,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1580721-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.6,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.280096-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":204.7,"Leitura2":3.27,"Leitura3":266.0,"Leitura4":8.46,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.2229711-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.9,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.42,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2744342-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.0,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.2887621-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.29,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.303781-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":0.0,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.13,"AlarmeMaxima":false,"AlarmeMinima":true},{"Momento":"2024-05-13T07:37:52.2930942-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.9,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.43,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3558194-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.4,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3257188-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.6,"Leitura2":3.28,"Leitura3":288.0,"Leitura4":8.58,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3832091-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.7,"Leitura2":3.27,"Leitura3":288.0,"Leitura4":8.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4036162-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":9.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4274842-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.4132669-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.1,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.34,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.408902-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4594605-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.9,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.43,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4856078-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.5310514-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.95,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.4720881-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.05,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.4983137-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.23,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5400782-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.0,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5666359-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.61,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5367582-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.7,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.573536-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.3,"Leitura2":3.27,"Leitura3":1686.0,"Leitura4":8.31,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5809188-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6199272-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.44,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6108441-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.66,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6450883-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.9,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":64.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.658865-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.7,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6740443-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.0,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6862636-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.1,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":64.01,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.7703255-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.0,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.42,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7978701-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.2,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.51,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.8083304-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.9,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7803458-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":82.3,"Leitura2":3.28,"Leitura3":268.0,"Leitura4":8.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8423043-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.45,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8138953-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.28,"Leitura3":266.0,"Leitura4":20.47,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8301285-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.07,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.845497-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.66,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9094135-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.79,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.9195608-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.7,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.59,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9464654-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.7,"Leitura2":3.27,"Leitura3":288.0,"Leitura4":8.03,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9198896-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.56,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.9546705-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9681638-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.71,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9626331-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.2,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.05,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0318719-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.4,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.38,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.0042835-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.1,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.41,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.0665168-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.8,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:37.0222956-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":1662.0,"Leitura4":8.58,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB3V","Prioridade":10,"Descricao":"Corrente no Barramento 3V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x44"],["CI","219"]],"UnidadeMedida":"A","Leituras":[85.8,3.27,1662.0,8.58],"ValorMinimo":-3225.7,"ValorMaximo":204.7,"LimiteMaximo":3.2,"LimiteMinimo":2.8},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.018836-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.025883-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0478792-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0561658-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0587228-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.1251496-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0858476-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1536482-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1250745-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.1671342-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1583813-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1730741-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":101.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.2554793-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.2169713-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2401105-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.252221-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.2694417-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:52.2895883-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3278163-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":8.19,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3227191-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.1,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3695368-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.3797512-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4123222-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3864179-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.404902-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4464316-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4606063-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.451051-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.4660894-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.4863148-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5270838-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5426368-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5347574-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5475392-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5729196-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.5869248-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6078445-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6280881-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.6647253-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.6422773-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6982713-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":8.19,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.721571-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7718691-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":8.19,"Leitura3":210.0,"Leitura4":163.8,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7374564-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7623458-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.4,"Leitura2":5.05,"Leitura3":198.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.7693102-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.7958948-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8021282-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8354999-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8734127-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.858561-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.8634599-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.8998909-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.8976694-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9401624-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":-65026.0,"Leitura4":4.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9296339-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":0.12,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.953872-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9632972-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.984518-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9932959-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB5V","Prioridade":10,"Descricao":"Corrente no Barramento 5V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x41"],["CI","219"]],"UnidadeMedida":"A","Leituras":[41.5,5.05,210.0,4.17],"ValorMinimo":-3251.3,"ValorMaximo":102.3,"LimiteMaximo":5.2,"LimiteMinimo":4.8},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.0028344-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.0,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.0098848-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.6,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.34,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0338804-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.38,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0401665-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":14.8,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0307252-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":14.0,"Leitura2":7.24,"Leitura3":102.0,"Leitura4":1.29,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.0891502-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.04,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0648421-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1346455-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.25,"Leitura3":86.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1060753-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.8,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.1301361-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.6,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.23,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1323839-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.1,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.52,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1550766-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.4,"Leitura2":7.25,"Leitura3":98.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.2930954-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.6,"Leitura2":8.19,"Leitura3":88.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.255972-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2878377-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.6,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.08,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.3027612-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.5,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.3300616-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.1,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:52.310334-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.4,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3807079-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.25,"Leitura3":98.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3487178-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3970151-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.3,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.33,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4298659-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.25,"Leitura3":-2.0,"Leitura4":1.07,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4513209-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.4142994-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.4559112-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.2,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4738527-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4886063-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.5560525-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.6,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5085938-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.5003124-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5531924-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.0,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5796348-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":144.82,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5437565-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.5,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.576537-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.6,"Leitura2":7.25,"Leitura3":92.0,"Leitura4":1.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5989209-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.08,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6239255-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.2,"Leitura2":7.23,"Leitura3":76.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6128448-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6570873-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.6608644-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.5,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.670788-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.25,"Leitura3":82.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6790845-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.7571556-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7838677-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.0,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":145.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7953049-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":234.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.767345-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.7,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8235613-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8098937-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8261297-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8394986-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.11,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8764118-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.7,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.31,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8625598-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.12,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9104593-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.7,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9018932-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.33,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.9206697-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.12,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9551642-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9596311-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.3,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0198718-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.0012833-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.0,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.0535142-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.4,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:37.0192967-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB7V2","Prioridade":10,"Descricao":"Corrente no Barramento 7,2V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x40"],["CI","219"]],"UnidadeMedida":"A","Leituras":[12.2,7.24,78.0,1.2],"ValorMinimo":-2584.1,"ValorMaximo":102.3,"LimiteMaximo":7.4,"LimiteMinimo":7.0},{"LogGrafico":[],"ID":"AB12V","Prioridade":10,"Descricao":"Corrente no Barramento 12V","Componente":322,"Aferir":false,"DelayAmostragem":500,"Inicializado":false,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x45"],["CI","226"]],"UnidadeMedida":"A","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":12.5,"LimiteMinimo":11.5},{"LogGrafico":[],"ID":"TBAT","Prioridade":5,"Descricao":"Temperatura da bateria","Componente":411,"Aferir":false,"DelayAmostragem":500,"Inicializado":false,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","0.0000"]],"UnidadeMedida":"ºC","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":55.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"SUESQ","Prioridade":2,"Descricao":"Sensor Ultrassom Esquerdo","Componente":531,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31],"Parametros":[],"UnidadeMedida":"cm","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":0.0,"LimiteMinimo":15.0},{"LogGrafico":[],"ID":"SUDIR","Prioridade":2,"Descricao":"Sensor Ultrassom Direito","Componente":531,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31],"Parametros":[],"UnidadeMedida":"cm","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":0.0,"LimiteMinimo":15.0},{"LogGrafico":[{"Momento":"2024-05-13T07:35:32.948976-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.54,"Leitura2":-370.0,"Leitura3":5978.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:33.9648211-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1363.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:34.9809907-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.33,"Leitura2":-347.0,"Leitura3":5963.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:36.5231706-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.87,"Leitura2":-298.0,"Leitura3":5953.0,"Leitura4":-1395.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:37.0383135-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.31,"Leitura2":-345.0,"Leitura3":5968.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:42.0695235-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.45,"Leitura2":-360.0,"Leitura3":5966.0,"Leitura4":-1466.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:47.1729328-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5978.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:48.220548-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.28,"Leitura2":-342.0,"Leitura3":5963.0,"Leitura4":-1437.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:51.2381321-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.01,"Leitura2":-313.0,"Leitura3":5951.0,"Leitura4":-1388.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:51.780932-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.9,"Leitura2":-301.0,"Leitura3":5943.0,"Leitura4":-1343.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:52.26774-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.8,"Leitura2":-291.0,"Leitura3":5948.0,"Leitura4":-1352.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:52.7921943-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.19,"Leitura2":-332.0,"Leitura3":5966.0,"Leitura4":-1408.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:58.372312-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.59,"Leitura2":-375.0,"Leitura3":5973.0,"Leitura4":-1473.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:00.416498-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5973.0,"Leitura4":-1462.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:02.9090239-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.59,"Leitura2":-375.0,"Leitura3":5978.0,"Leitura4":-1468.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:03.4221253-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.95,"Leitura2":-306.0,"Leitura3":5941.0,"Leitura4":-1380.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:08.9758798-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.96,"Leitura2":-308.0,"Leitura3":5958.0,"Leitura4":-1388.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:10.9641693-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.97,"Leitura2":-308.0,"Leitura3":5946.0,"Leitura4":-1386.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:16.018039-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.01,"Leitura2":-313.0,"Leitura3":5961.0,"Leitura4":-1397.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:19.5406003-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.43,"Leitura2":-357.0,"Leitura3":5963.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:29.9492055-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.22,"Leitura2":-335.0,"Leitura3":5953.0,"Leitura4":-1406.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:30.9131791-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.23,"Leitura2":-337.0,"Leitura3":5971.0,"Leitura4":-1431.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:33.459947-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.41,"Leitura2":-355.0,"Leitura3":5966.0,"Leitura4":-1428.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:37.4556095-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.18,"Leitura2":-332.0,"Leitura3":5976.0,"Leitura4":-1426.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:42.1102113-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.27,"Leitura2":-340.0,"Leitura3":5958.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:44.1287455-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.28,"Leitura2":-342.0,"Leitura3":5966.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:59.1971747-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5971.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:00.2130967-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.86,"Leitura2":-298.0,"Leitura3":5956.0,"Leitura4":-1368.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:00.752561-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5956.0,"Leitura4":-1377.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:09.2598008-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5973.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:22.7222937-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.0,"Leitura2":-311.0,"Leitura3":5941.0,"Leitura4":-1380.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:26.740689-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.85,"Leitura2":-296.0,"Leitura3":5938.0,"Leitura4":-1335.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:27.2558052-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.76,"Leitura2":-286.0,"Leitura3":5941.0,"Leitura4":-1352.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:28.2738853-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.19,"Leitura2":-332.0,"Leitura3":5956.0,"Leitura4":-1426.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:33.4513353-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.88,"Leitura2":-301.0,"Leitura3":5973.0,"Leitura4":-1383.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.9767226-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.47,"Leitura2":-362.0,"Leitura3":5966.0,"Leitura4":-1460.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.7062377-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5966.0,"Leitura4":-1446.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.2441296-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.42,"Leitura2":-357.0,"Leitura3":5971.0,"Leitura4":-1451.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.7566374-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5973.0,"Leitura4":-1455.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2717241-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.8,"Leitura2":-291.0,"Leitura3":5946.0,"Leitura4":-1360.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2957944-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.7,"Leitura2":-281.0,"Leitura3":5951.0,"Leitura4":-1363.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.8119205-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5963.0,"Leitura4":-1417.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6563659-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.29,"Leitura2":-342.0,"Leitura3":5958.0,"Leitura4":-1420.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7112842-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.31,"Leitura2":-345.0,"Leitura3":5958.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.231996-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.38,"Leitura2":-352.0,"Leitura3":5968.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7720274-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.92,"Leitura2":-303.0,"Leitura3":5946.0,"Leitura4":-1386.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7643459-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.05,"Leitura2":-318.0,"Leitura3":5961.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.3128731-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.77,"Leitura2":-288.0,"Leitura3":5956.0,"Leitura4":-1323.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.855964-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1346.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8108954-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.32,"Leitura2":-345.0,"Leitura3":5951.0,"Leitura4":-1446.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8271293-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5958.0,"Leitura4":-1408.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8415022-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.7,"Leitura2":-281.0,"Leitura3":5963.0,"Leitura4":-1355.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8824122-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1337.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8965613-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5971.0,"Leitura4":-1462.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9124592-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.94,"Leitura2":-306.0,"Leitura3":5963.0,"Leitura4":-1366.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9038909-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5946.0,"Leitura4":-1391.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9521632-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.06,"Leitura2":-318.0,"Leitura3":5951.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9466329-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.95,"Leitura2":-306.0,"Leitura3":5946.0,"Leitura4":-1343.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.9548733-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.45,"Leitura2":-360.0,"Leitura3":5978.0,"Leitura4":-1466.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9672837-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.81,"Leitura2":-293.0,"Leitura3":5961.0,"Leitura4":-1375.0,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"SMAG","Prioridade":15,"Descricao":"Sensor Magnetômetro","Componente":855,"Aferir":true,"DelayAmostragem":1,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[],"UnidadeMedida":"º","Leituras":[92.81,-293.0,5961.0,-1375.0],"ValorMinimo":0.0,"ValorMaximo":360.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"SNR_F","Prioridade":20,"Descricao":"Sensor Sonar Frontal","Componente":532,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31,39,40],"Parametros":[["Angulo X Acrescentar","5"],["Angulo Y Acrescentar","30"]],"UnidadeMedida":"cm/º","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":9999.0,"LimiteMinimo":40.0}],"Sinaleiros":[{"ID":"LEDMN","Descricao":"Sinaleiro indicação de modo Manual ativo","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":1,"QtdPiscadas":0,"TempoMs":0,"PausaMs":0}},{"ID":"LEDAT","Descricao":"Sinaleiro indicação de modo Automático ativo","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":0,"QtdPiscadas":0,"TempoMs":0,"PausaMs":0}},{"ID":"LEDOP","Descricao":"Sinaleiro indicação do status da operação ativa","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":2,"QtdPiscadas":3,"TempoMs":200,"PausaMs":1000}}],"CameraID_Caminho":"USB\\VID_0C45&PID_6366&MI_00\\6&183AF011&1&0000","CameraID_SoloE":"Sem video","CameraID_SoloD":"Sem video"}
\ No newline at end of file
+{"Conectado":true,"Sensores":[{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.7454682-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.452567-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.1693178-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.8980591-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.3,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.6067199-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3097689-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.0379417-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.7429262-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4766041-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.1805516-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.44,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.8943883-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.6140561-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.3382374-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.0405549-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.7485829-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.4659113-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.175221-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":17.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.8856468-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":16.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.6107555-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.44,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.3226291-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.0347933-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.7599187-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.4649261-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.1776414-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.01,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.8993948-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6130897-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.79,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.3278301-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.06,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.0342159-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.26,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.7539997-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.87,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.4915961-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.76,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.1747246-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.9177571-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6192481-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.01,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.3327497-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.0452377-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7988676-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.79,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.465683-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.191616-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.9333465-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.6343131-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.3489193-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.0596334-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.11,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7621287-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4703772-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.192991-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.34,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9264133-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.6269848-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.69,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.3302634-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.0444595-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7618912-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":12.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4795726-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.1936694-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9021635-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.6353839-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.21,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.3374388-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.24,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0438732-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.09,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7651288-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.64,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.4936447-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":14.08,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1905158-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9132955-03:00","ComponenteID":"TMVET","Componente":411,"Leitura1":15.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVET","Prioridade":0,"Descricao":"Temperatura Motor Esquerdo Trás","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[15.02],"ValorMinimo":0.0,"ValorMaximo":373.42,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.7664676-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.475235-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.1878341-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.9170592-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.610909-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.52,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3300224-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.0399404-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.7579284-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4896363-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.85,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.1837263-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.8983886-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.617053-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.82,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.3422385-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.87,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.0435566-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.19,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.7515819-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.47,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.4690441-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.48,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.1952206-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":13.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.9096465-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.0,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.6227569-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.46,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.3349906-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.0487945-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":13.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.7709198-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.467926-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.1826417-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.26,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.9023939-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.629089-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.3318304-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.03,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.0455156-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.7560003-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.63,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.4956013-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.1807267-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.92,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.9067435-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6305314-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.06,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.3446156-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.99,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.0482378-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.8018677-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.4701951-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.1876159-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.9023444-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.6213121-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.333918-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":17.19,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.0636339-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7711276-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4883786-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.2049923-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9384136-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.6299836-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.3402655-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.0574601-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.64,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7668903-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4825732-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.2046701-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9071633-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.62,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.6383837-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.95,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.3404356-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":19.78,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0478725-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":18.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7621284-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":14.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.5086373-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.81,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1935152-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9252956-03:00","ComponenteID":"TMVEF","Componente":411,"Leitura1":15.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVEF","Prioridade":0,"Descricao":"Temperatura Motor Esquerdo Frente","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[15.54],"ValorMinimo":0.0,"ValorMaximo":199.92,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.2347186-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":82.16,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.9424675-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":94.97,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.6491247-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":95.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4057025-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":99.13,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.1012254-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":115.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.794249-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":161.08,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.5182005-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":107.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.2333221-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":109.54,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.945464-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":84.43,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.6582924-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":151.41,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.3736087-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":125.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.0873931-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":139.92,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.8001679-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":277.25,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5215937-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":"NaN","Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2257256-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":202.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.939182-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":211.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.6482564-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":139.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.3623071-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":165.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.0856463-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":144.73,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.7938633-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":112.72,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5074328-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":134.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2197935-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":110.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.9315855-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":125.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6509254-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":128.28,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.360845-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":104.17,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.0803931-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":84.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.7900886-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":90.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.5017241-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":86.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.2240468-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":90.38,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.9311771-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":92.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.645749-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":97.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.3662854-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":88.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.0831106-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":96.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.7845112-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":104.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.5101285-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":117.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.2292381-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":169.65,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.9333952-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":195.2,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.6432052-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":150.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.3621589-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":140.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.3008748-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":118.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8589717-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":144.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.5158455-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":108.13,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.2242081-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":124.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.9381289-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":120.83,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.6583776-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":110.24,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.3699925-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":129.89,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.0894108-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":138.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8025599-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":156.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.5232644-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":219.67,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.2244606-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":126.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9368906-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":85.18,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.6575708-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":86.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.3669154-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.0901627-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":91.11,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.7946319-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":93.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.507436-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":80.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.2288714-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":76.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9332843-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.98,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.6596365-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":81.75,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.3695133-03:00","ComponenteID":"TMVDT","Componente":411,"Leitura1":94.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVDT","Prioridade":0,"Descricao":"Temperatura Motor Direito Trás","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[94.4],"ValorMinimo":0.0,"ValorMaximo":277.25,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:54.3187186-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.946468-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.15,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.6767345-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.8082108-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.1065896-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.53,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.8144879-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.51,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.5208652-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.69,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.2363238-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.9484641-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.8,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.6721529-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.97,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.3806067-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.31,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.0953984-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.23,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.8117101-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.6,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5335942-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.68,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2377262-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.94,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.9474692-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.7,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.6756248-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.32,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.3763053-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.1016466-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.14,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.8153952-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.41,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5210087-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.83,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2337923-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.17,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.9515847-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.07,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.662925-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":13.65,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.3748448-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.93,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.0873932-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.8120884-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.86,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.5187231-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.235046-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.9527583-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.39,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:15.677249-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.32,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.3705025-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.04,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.09011-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.34,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.80156-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.35,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.5261995-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7072839-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":17.42,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.4236511-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":17.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.142007-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.88,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.8593448-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.49,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.586798-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.74,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.2926322-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.36,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.9996355-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.45,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.7061281-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.5,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.4263779-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":12.21,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.139497-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":13.58,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8784136-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.33,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.5649843-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.4,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.2762643-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.71,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9894604-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":14.94,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.7204777-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.37,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.4265725-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.02,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.1386699-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.77,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.8451647-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":15.91,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.5693854-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.42,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.2796316-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.3,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0328722-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.1,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.7051286-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.55,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.4126363-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.57,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.1355141-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.67,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.8485119-03:00","ComponenteID":"TMVDF","Componente":411,"Leitura1":16.27,"Leitura2":-1.0,"Leitura3":-1.0,"Leitura4":-1.0,"AlarmeMaxima":false,"AlarmeMinima":false}],"ID":"TMVDF","Prioridade":0,"Descricao":"Temperatura Motor Direito Frente","Componente":411,"Aferir":true,"DelayAmostragem":200,"Inicializado":true,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","-1.038"]],"UnidadeMedida":"ºC","Leituras":[16.27],"ValorMinimo":0.0,"ValorMaximo":276.68,"LimiteMaximo":100.0,"LimiteMinimo":0.0},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.0058369-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.48,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.0238819-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0358817-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.63,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0541656-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.37,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0357228-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.64,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.1021507-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.9,"Leitura2":3.28,"Leitura3":1698.0,"Leitura4":8.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0778405-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.67,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1386471-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.1,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1210746-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.62,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.154137-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.1,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.11,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1563819-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.62,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1580721-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.6,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.280096-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":204.7,"Leitura2":3.27,"Leitura3":266.0,"Leitura4":8.46,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.2229711-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.9,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.42,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2744342-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.0,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.2887621-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.29,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.303781-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":0.0,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.13,"AlarmeMaxima":false,"AlarmeMinima":true},{"Momento":"2024-05-13T07:37:52.2930942-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.9,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.43,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3558194-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.4,"Leitura2":3.27,"Leitura3":286.0,"Leitura4":8.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3257188-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.6,"Leitura2":3.28,"Leitura3":288.0,"Leitura4":8.58,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3832091-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":87.7,"Leitura2":3.27,"Leitura3":288.0,"Leitura4":8.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4036162-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":9.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4274842-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.4132669-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.1,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.34,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.408902-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4594605-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.9,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.43,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4856078-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.2,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.5310514-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.95,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.4720881-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.05,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.4983137-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.23,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5400782-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.0,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5666359-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.61,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5367582-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.7,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.573536-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.3,"Leitura2":3.27,"Leitura3":1686.0,"Leitura4":8.31,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5809188-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6199272-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.44,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6108441-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.66,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6450883-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.9,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":64.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.658865-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.7,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6740443-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.0,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6862636-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.1,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":64.01,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.7703255-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.0,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.42,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7978701-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.2,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.51,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.8083304-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.9,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7803458-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":82.3,"Leitura2":3.28,"Leitura3":268.0,"Leitura4":8.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8423043-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.27,"Leitura3":282.0,"Leitura4":8.45,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8138953-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.28,"Leitura3":266.0,"Leitura4":20.47,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8301285-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.0,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.07,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.845497-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.6,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.66,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.9094135-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.4,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.79,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.9195608-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.7,"Leitura2":3.28,"Leitura3":286.0,"Leitura4":8.59,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9464654-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.7,"Leitura2":3.27,"Leitura3":288.0,"Leitura4":8.03,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9198896-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.3,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.56,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.9546705-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.4,"Leitura2":3.28,"Leitura3":278.0,"Leitura4":8.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9681638-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.8,"Leitura2":3.27,"Leitura3":278.0,"Leitura4":8.71,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9626331-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.2,"Leitura2":3.27,"Leitura3":276.0,"Leitura4":8.05,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0318719-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":86.4,"Leitura2":3.28,"Leitura3":282.0,"Leitura4":8.38,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.0042835-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":84.1,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.41,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.0665168-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":83.8,"Leitura2":3.28,"Leitura3":276.0,"Leitura4":8.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:37.0222956-03:00","ComponenteID":"AB3V","Componente":322,"Leitura1":85.8,"Leitura2":3.27,"Leitura3":1662.0,"Leitura4":8.58,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB3V","Prioridade":10,"Descricao":"Corrente no Barramento 3V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x44"],["CI","219"]],"UnidadeMedida":"A","Leituras":[85.8,3.27,1662.0,8.58],"ValorMinimo":-3225.7,"ValorMaximo":204.7,"LimiteMaximo":3.2,"LimiteMinimo":2.8},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.018836-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.025883-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0478792-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0561658-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0587228-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.1251496-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0858476-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1536482-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1250745-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.1671342-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1583813-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1730741-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":101.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.2554793-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.2169713-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2401105-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.252221-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.2694417-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:52.2895883-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3278163-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":8.19,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3227191-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.1,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3695368-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.3797512-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4123222-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.3864179-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.404902-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4464316-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4606063-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.451051-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.4660894-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.4863148-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5270838-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5426368-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5347574-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.5475392-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5729196-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.5869248-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6078445-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6280881-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:13.6647253-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.6422773-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6982713-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":42.0,"Leitura2":8.19,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.721571-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.06,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7718691-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":8.19,"Leitura3":210.0,"Leitura4":163.8,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7374564-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7623458-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.4,"Leitura2":5.05,"Leitura3":198.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.7693102-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.7958948-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8021282-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8354999-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":212.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8734127-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.858561-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.8634599-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.8998909-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.9,"Leitura2":5.06,"Leitura3":212.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.8976694-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.14,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9401624-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.6,"Leitura2":5.05,"Leitura3":-65026.0,"Leitura4":4.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9296339-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":0.12,"Leitura3":210.0,"Leitura4":4.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.953872-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9632972-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.8,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.984518-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.7,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.9932959-03:00","ComponenteID":"AB5V","Componente":322,"Leitura1":41.5,"Leitura2":5.05,"Leitura3":210.0,"Leitura4":4.17,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB5V","Prioridade":10,"Descricao":"Corrente no Barramento 5V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x41"],["CI","219"]],"UnidadeMedida":"A","Leituras":[41.5,5.05,210.0,4.17],"ValorMinimo":-3251.3,"ValorMaximo":102.3,"LimiteMaximo":5.2,"LimiteMinimo":4.8},{"LogGrafico":[{"Momento":"2024-05-13T07:37:34.0028344-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.0,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:35.0098848-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.6,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.34,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:36.0338804-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.38,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.0401665-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":14.8,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:38.0307252-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":14.0,"Leitura2":7.24,"Leitura3":102.0,"Leitura4":1.29,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:39.0891502-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.04,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:40.0648421-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:41.1346455-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.25,"Leitura3":86.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:42.1060753-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.8,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:43.1301361-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.6,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.23,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:44.1323839-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.1,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.52,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:45.1550766-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.4,"Leitura2":7.25,"Leitura3":98.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:47.2930954-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.6,"Leitura2":8.19,"Leitura3":88.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:48.255972-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.09,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:49.2878377-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.6,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.08,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.3027612-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.5,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:51.3300616-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.1,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:52.310334-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.4,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:53.3807079-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.25,"Leitura3":98.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:54.3487178-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.3970151-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.3,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.33,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:56.4298659-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.3,"Leitura2":7.25,"Leitura3":-2.0,"Leitura4":1.07,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:57.4513209-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:58.4142994-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.16,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:59.4559112-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.2,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:00.4738527-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:01.4886063-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.35,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.5560525-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.6,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:03.5085938-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.5003124-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:05.5531924-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":13.0,"Leitura2":7.24,"Leitura3":96.0,"Leitura4":1.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:06.5796348-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":144.82,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:07.5437565-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.5,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:08.576537-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.6,"Leitura2":7.25,"Leitura3":92.0,"Leitura4":1.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.5989209-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.08,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:10.6239255-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.2,"Leitura2":7.23,"Leitura3":76.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:11.6128448-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:12.6570873-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:14.6608644-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.5,"Leitura2":7.24,"Leitura3":76.0,"Leitura4":1.27,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.670788-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.25,"Leitura3":82.0,"Leitura4":1.24,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:17.6790845-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.24,"Leitura3":88.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:18.7571556-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.22,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7838677-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.0,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":145.06,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7953049-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":234.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.767345-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.7,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.26,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.8235613-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8098937-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.1,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8261297-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.7,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.21,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8394986-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.1,"Leitura2":7.25,"Leitura3":88.0,"Leitura4":1.11,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8764118-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.7,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.31,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8625598-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.2,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.12,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9104593-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.7,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.18,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9018932-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.33,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:30.9206697-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.9,"Leitura2":7.24,"Leitura3":86.0,"Leitura4":1.12,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9551642-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":10.8,"Leitura2":7.24,"Leitura3":92.0,"Leitura4":1.19,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9596311-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.3,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.3,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.0198718-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.5,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.36,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:35.0012833-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.0,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.15,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:36.0535142-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":11.4,"Leitura2":7.24,"Leitura3":82.0,"Leitura4":1.25,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:37.0192967-03:00","ComponenteID":"AB7V2","Componente":322,"Leitura1":12.2,"Leitura2":7.24,"Leitura3":78.0,"Leitura4":1.2,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"AB7V2","Prioridade":10,"Descricao":"Corrente no Barramento 7,2V","Componente":322,"Aferir":true,"DelayAmostragem":500,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x40"],["CI","219"]],"UnidadeMedida":"A","Leituras":[12.2,7.24,78.0,1.2],"ValorMinimo":-2584.1,"ValorMaximo":102.3,"LimiteMaximo":7.4,"LimiteMinimo":7.0},{"LogGrafico":[],"ID":"AB12V","Prioridade":10,"Descricao":"Corrente no Barramento 12V","Componente":322,"Aferir":false,"DelayAmostragem":500,"Inicializado":false,"Testando":false,"Funcoes":[27],"Parametros":[["Endereço I2C","0x45"],["CI","226"]],"UnidadeMedida":"A","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":12.5,"LimiteMinimo":11.5},{"LogGrafico":[],"ID":"TBAT","Prioridade":5,"Descricao":"Temperatura da bateria","Componente":411,"Aferir":false,"DelayAmostragem":500,"Inicializado":false,"Testando":false,"Funcoes":[12],"Parametros":[["V offset","0.0000"]],"UnidadeMedida":"ºC","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":55.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"SUESQ","Prioridade":2,"Descricao":"Sensor Ultrassom Esquerdo","Componente":531,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31],"Parametros":[],"UnidadeMedida":"cm","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":0.0,"LimiteMinimo":15.0},{"LogGrafico":[],"ID":"SUDIR","Prioridade":2,"Descricao":"Sensor Ultrassom Direito","Componente":531,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31],"Parametros":[],"UnidadeMedida":"cm","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":0.0,"LimiteMinimo":15.0},{"LogGrafico":[{"Momento":"2024-05-13T07:35:32.948976-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.54,"Leitura2":-370.0,"Leitura3":5978.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:33.9648211-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1363.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:34.9809907-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.33,"Leitura2":-347.0,"Leitura3":5963.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:36.5231706-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.87,"Leitura2":-298.0,"Leitura3":5953.0,"Leitura4":-1395.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:37.0383135-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.31,"Leitura2":-345.0,"Leitura3":5968.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:42.0695235-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.45,"Leitura2":-360.0,"Leitura3":5966.0,"Leitura4":-1466.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:47.1729328-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5978.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:48.220548-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.28,"Leitura2":-342.0,"Leitura3":5963.0,"Leitura4":-1437.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:51.2381321-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.01,"Leitura2":-313.0,"Leitura3":5951.0,"Leitura4":-1388.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:51.780932-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.9,"Leitura2":-301.0,"Leitura3":5943.0,"Leitura4":-1343.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:52.26774-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.8,"Leitura2":-291.0,"Leitura3":5948.0,"Leitura4":-1352.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:52.7921943-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.19,"Leitura2":-332.0,"Leitura3":5966.0,"Leitura4":-1408.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:35:58.372312-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.59,"Leitura2":-375.0,"Leitura3":5973.0,"Leitura4":-1473.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:00.416498-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5973.0,"Leitura4":-1462.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:02.9090239-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.59,"Leitura2":-375.0,"Leitura3":5978.0,"Leitura4":-1468.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:03.4221253-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.95,"Leitura2":-306.0,"Leitura3":5941.0,"Leitura4":-1380.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:08.9758798-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.96,"Leitura2":-308.0,"Leitura3":5958.0,"Leitura4":-1388.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:10.9641693-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.97,"Leitura2":-308.0,"Leitura3":5946.0,"Leitura4":-1386.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:16.018039-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.01,"Leitura2":-313.0,"Leitura3":5961.0,"Leitura4":-1397.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:19.5406003-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.43,"Leitura2":-357.0,"Leitura3":5963.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:29.9492055-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.22,"Leitura2":-335.0,"Leitura3":5953.0,"Leitura4":-1406.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:30.9131791-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.23,"Leitura2":-337.0,"Leitura3":5971.0,"Leitura4":-1431.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:33.459947-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.41,"Leitura2":-355.0,"Leitura3":5966.0,"Leitura4":-1428.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:37.4556095-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.18,"Leitura2":-332.0,"Leitura3":5976.0,"Leitura4":-1426.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:42.1102113-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.27,"Leitura2":-340.0,"Leitura3":5958.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:44.1287455-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.28,"Leitura2":-342.0,"Leitura3":5966.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:36:59.1971747-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5971.0,"Leitura4":-1448.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:00.2130967-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.86,"Leitura2":-298.0,"Leitura3":5956.0,"Leitura4":-1368.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:00.752561-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5956.0,"Leitura4":-1377.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:09.2598008-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5973.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:22.7222937-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.0,"Leitura2":-311.0,"Leitura3":5941.0,"Leitura4":-1380.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:26.740689-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.85,"Leitura2":-296.0,"Leitura3":5938.0,"Leitura4":-1335.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:27.2558052-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.76,"Leitura2":-286.0,"Leitura3":5941.0,"Leitura4":-1352.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:28.2738853-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.19,"Leitura2":-332.0,"Leitura3":5956.0,"Leitura4":-1426.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:33.4513353-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.88,"Leitura2":-301.0,"Leitura3":5973.0,"Leitura4":-1383.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:37.9767226-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.47,"Leitura2":-362.0,"Leitura3":5966.0,"Leitura4":-1460.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:50.7062377-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.26,"Leitura2":-340.0,"Leitura3":5966.0,"Leitura4":-1446.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:37:55.2441296-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.42,"Leitura2":-357.0,"Leitura3":5971.0,"Leitura4":-1451.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:02.7566374-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5973.0,"Leitura4":-1455.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:04.2717241-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.8,"Leitura2":-291.0,"Leitura3":5946.0,"Leitura4":-1360.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.2957944-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.7,"Leitura2":-281.0,"Leitura3":5951.0,"Leitura4":-1363.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:09.8119205-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5963.0,"Leitura4":-1417.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:16.6563659-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.29,"Leitura2":-342.0,"Leitura3":5958.0,"Leitura4":-1420.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:19.7112842-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.31,"Leitura2":-345.0,"Leitura3":5958.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.231996-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.38,"Leitura2":-352.0,"Leitura3":5968.0,"Leitura4":-1457.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:20.7720274-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.92,"Leitura2":-303.0,"Leitura3":5946.0,"Leitura4":-1386.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:21.7643459-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.05,"Leitura2":-318.0,"Leitura3":5961.0,"Leitura4":-1435.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.3128731-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.77,"Leitura2":-288.0,"Leitura3":5956.0,"Leitura4":-1323.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:22.855964-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1346.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:23.8108954-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.32,"Leitura2":-345.0,"Leitura3":5951.0,"Leitura4":-1446.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:24.8271293-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5958.0,"Leitura4":-1408.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:25.8415022-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.7,"Leitura2":-281.0,"Leitura3":5963.0,"Leitura4":-1355.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:26.8824122-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.75,"Leitura2":-286.0,"Leitura3":5948.0,"Leitura4":-1337.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:27.8965613-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.37,"Leitura2":-352.0,"Leitura3":5971.0,"Leitura4":-1462.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:28.9124592-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.94,"Leitura2":-306.0,"Leitura3":5963.0,"Leitura4":-1366.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:29.9038909-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.99,"Leitura2":-311.0,"Leitura3":5946.0,"Leitura4":-1391.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:31.9521632-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.06,"Leitura2":-318.0,"Leitura3":5951.0,"Leitura4":-1422.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:32.9466329-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.95,"Leitura2":-306.0,"Leitura3":5946.0,"Leitura4":-1343.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:33.9548733-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":93.45,"Leitura2":-360.0,"Leitura3":5978.0,"Leitura4":-1466.0,"AlarmeMaxima":true,"AlarmeMinima":false},{"Momento":"2024-05-13T07:38:34.9672837-03:00","ComponenteID":"SMAG","Componente":855,"Leitura1":92.81,"Leitura2":-293.0,"Leitura3":5961.0,"Leitura4":-1375.0,"AlarmeMaxima":true,"AlarmeMinima":false}],"ID":"SMAG","Prioridade":15,"Descricao":"Sensor Magnetômetro","Componente":855,"Aferir":true,"DelayAmostragem":1,"Inicializado":true,"Testando":false,"Funcoes":[27],"Parametros":[],"UnidadeMedida":"º","Leituras":[92.81,-293.0,5961.0,-1375.0],"ValorMinimo":0.0,"ValorMaximo":360.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"SNR_F","Prioridade":20,"Descricao":"Sensor Sonar Frontal","Componente":532,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[30,31,39,40],"Parametros":[["Angulo X Acrescentar","5"],["Angulo Y Acrescentar","30"]],"UnidadeMedida":"cm/º","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":9999.0,"LimiteMinimo":40.0}],"Sinaleiros":[{"ID":"LEDMN","Descricao":"Sinaleiro indicação de modo Manual ativo","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":1,"QtdPiscadas":0,"TempoMs":0,"PausaMs":0}},{"ID":"LEDAT","Descricao":"Sinaleiro indicação de modo Automático ativo","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":0,"QtdPiscadas":0,"TempoMs":0,"PausaMs":0}},{"ID":"LEDOP","Descricao":"Sinaleiro indicação do status da operação ativa","Componente":445,"Funcoes":[38],"Comportamento":{"statusLED":1,"QtdPiscadas":0,"TempoMs":0,"PausaMs":0}}],"CameraID_Caminho":"USB\\VID_0C45&PID_6366&MI_00\\6&183AF011&1&0000","CameraID_SoloE":"Sem video","CameraID_SoloD":"Sem video"}
\ No newline at end of file
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.Forms.frmKinect.resources b/AgroBase/AgroBase/obj/Debug/AgroBase.Forms.frmKinect.resources
new file mode 100644
index 000000000..6c05a9776
Binary files /dev/null and b/AgroBase/AgroBase/obj/Debug/AgroBase.Forms.frmKinect.resources differ
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.AssemblyReference.cache b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.AssemblyReference.cache
index d736991b5..8d7f51c53 100644
Binary files a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.AssemblyReference.cache and b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.AssemblyReference.cache differ
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.CoreCompileInputs.cache b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.CoreCompileInputs.cache
index 64677a1e5..23f2d23ac 100644
--- a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.CoreCompileInputs.cache
+++ b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-8e2d0b7a37f6d69cae4c2fdfb49e5efe7022e4017728fe2df6b21acde94e1f59
+95c797dbe9373c4dcf5956870d3069604dc75d1e01e8901cbe99102cd73c9f40
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.FileListAbsolute.txt b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.FileListAbsolute.txt
index e189df042..7b4d0762d 100644
--- a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.FileListAbsolute.txt
+++ b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.FileListAbsolute.txt
@@ -441,4 +441,7 @@ C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\Python\Models\deeplabv3pl
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.exe.config
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.exe
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.pdb
-C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.CopyComplete
+C:\ZendionINC\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.Forms.frmKinect.resources
+C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\Microsoft.Kinect.dll
+C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\Microsoft.Kinect.xml
+C:\ZendionINC\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.Up2Date
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.GenerateResource.cache b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.GenerateResource.cache
index c776205d4..42830690a 100644
Binary files a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.GenerateResource.cache and b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.GenerateResource.cache differ
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.Up2Date b/AgroBase/AgroBase/obj/Debug/AgroBase.csproj.Up2Date
new file mode 100644
index 000000000..e69de29bb
diff --git a/AgroBase/AgroBase/obj/Debug/AgroBase.pdb b/AgroBase/AgroBase/obj/Debug/AgroBase.pdb
index ec4491d21..d8b718ced 100644
Binary files a/AgroBase/AgroBase/obj/Debug/AgroBase.pdb and b/AgroBase/AgroBase/obj/Debug/AgroBase.pdb differ
diff --git a/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index 31289b2d2..d588532f4 100644
Binary files a/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 358e3d1e5..094de8ca2 100644
Binary files a/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/AgroBase/AgroBase/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/Firmware/Direcional/as5600/as5600.ino b/Firmware/Direcional/as5600/as5600.ino
new file mode 100644
index 000000000..e4652846d
--- /dev/null
+++ b/Firmware/Direcional/as5600/as5600.ino
@@ -0,0 +1,58 @@
+#include
+
+#define AS5600_ADDRESS 0x36 // Endereço I2C do AS5600
+int pino = 34;
+int _Angulo_Offset = 0;
+
+void setup() {
+ Serial.begin(115200);
+ pinMode(pino, INPUT);
+ Wire.begin();
+}
+
+void loop() {
+ int16_t angle = 0; //readAS5600Angle();
+ double angle2 = AferirPosicao();
+ Serial.print("Ângulo I2C: ");
+ Serial.print(angle);
+ Serial.print(", Ângulo PWM: ");
+ Serial.println(angle2);
+
+ delay(1000); // Espera 1 segundo antes de fazer a próxima leitura
+}
+
+int16_t readAS5600Angle() {
+ Wire.beginTransmission(AS5600_ADDRESS); // Inicia comunicação com o sensor
+ Wire.write(0x0E); // Endereço do registro que contém o valor do ângulo
+ Wire.endTransmission(false); // Termina a transmissão
+
+ // Inicia a transmissão para leitura de dados
+ Wire.requestFrom(AS5600_ADDRESS, 2); // Lê 2 bytes (16 bits) do registro de ângulo
+
+ // Espera até que os dados estejam disponíveis
+ while (Wire.available() < 2) {
+ delay(1);
+ }
+
+ // Lê os dados
+ uint16_t rawData = Wire.read();
+ rawData = rawData << 8 | Wire.read(); // Junta os bytes para formar um inteiro
+
+ // Converte o valor para um ângulo em graus
+ float angle = rawData * 360.0 / 4096.0;
+
+ return angle;
+}
+
+double AferirPosicao() {
+ // Lê o valor analógico do pino conectado à saída analógica do AS5600
+ int sensorValue = analogRead(pino);
+ // Converte a leitura para ângulo (0V a 3.3V corresponde a 0 a 360 graus)
+ double _angulo = (sensorValue / 4095.0) * 360.0;
+ // Ajusta o ângulo com o offset
+ double angulo_com_offset = _angulo - _Angulo_Offset; // Considerando que o offset pode ser positivo ou negativo
+ // Normaliza o ângulo para o intervalo de -180 a 180 graus
+ while (angulo_com_offset > 180) angulo_com_offset -= 360;
+ while (angulo_com_offset < -180) angulo_com_offset += 360;
+ return angulo_com_offset;
+}
diff --git a/Python/kinect_v1.py b/Python/kinect_v1.py
new file mode 100644
index 000000000..a5df98370
--- /dev/null
+++ b/Python/kinect_v1.py
@@ -0,0 +1,29 @@
+import pygame
+from pykinect import nui
+
+# Inicialize o pygame
+pygame.init()
+
+# Crie uma janela
+screen = pygame.display.set_mode((640, 480), pygame.HWSURFACE | pygame.DOUBLEBUF, 32)
+
+# Inicialize o Kinect
+kinect = nui.Runtime()
+
+# Loop principal
+while True:
+ # Verifique se há eventos de saída
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ kinect.close()
+ pygame.quit()
+ quit()
+
+ # Obtenha uma imagem da câmera RGB
+ video = kinect.video_stream.get_next_frame()
+ if video:
+ frame_surface = pygame.image.frombuffer(video.image.bits, (video.image.width, video.image.height), "RGB").convert()
+ screen.blit(frame_surface, (0, 0))
+
+ # Atualize a tela
+ pygame.display.update()