diff --git a/Sources/ConsoleApp/App.config b/Sources/ConsoleApp/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/Sources/ConsoleApp/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sources/ConsoleApp/ConsoleApp.csproj b/Sources/ConsoleApp/ConsoleApp.csproj
new file mode 100644
index 0000000..e0bb9e2
--- /dev/null
+++ b/Sources/ConsoleApp/ConsoleApp.csproj
@@ -0,0 +1,67 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {27D9C879-52BB-4BD7-B08D-63A534AC6D7E}
+ Exe
+ ConsoleApp
+ ConsoleApp
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\packages\Microsoft.Kinect.2.0.1410.19000\lib\net45\Microsoft.Kinect.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {2496dfb1-eb55-47a1-a780-211e079b289d}
+ LibMyGesturesBank
+
+
+ {0751c83e-7845-4e5f-a5d3-e11aba393aca}
+ Lib
+
+
+
+
\ No newline at end of file
diff --git a/Sources/ConsoleApp/Program.cs b/Sources/ConsoleApp/Program.cs
new file mode 100644
index 0000000..dc436f5
--- /dev/null
+++ b/Sources/ConsoleApp/Program.cs
@@ -0,0 +1,54 @@
+using Lib;
+using LibMyGesturesBank;
+using Microsoft.Kinect;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace ConsoleApp
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ KinectManager kinectManager = new KinectManager();
+ if (!kinectManager.StartSensor())
+ {
+ Console.WriteLine("Kinect n'est pas connecté ou non reconnu.");
+ return;
+ }
+
+ // Créez les instances de vos postures
+ PostureHandUp handUpPosture = new PostureHandUp();
+ PostureHandsOnHead handsOnHeadPosture = new PostureHandsOnHead();
+
+ // Abonnez-vous aux événements de reconnaissance de posture
+ handUpPosture.GestureRecognized += (sender, e) =>
+ {
+ Console.WriteLine("Posture Hand Up reconnue !");
+ };
+
+ handsOnHeadPosture.GestureRecognized += (sender, e) =>
+ {
+ Console.WriteLine("Posture Hands On Head reconnue !");
+ };
+
+ // Boucle pour tester les postures
+ while (true)
+ {
+ Body body = kinectManager.GetNextBody(); // Méthode fictive pour obtenir les données du corps
+ if (body != null)
+ {
+ handUpPosture.TestGesture(body);
+ handsOnHeadPosture.TestGesture(body);
+ }
+
+ Thread.Sleep(50); // Une petite pause pour ne pas surcharger le CPU
+ }
+ }
+
+ }
+}
diff --git a/Sources/ConsoleApp/Properties/AssemblyInfo.cs b/Sources/ConsoleApp/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d40f227
--- /dev/null
+++ b/Sources/ConsoleApp/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Les informations générales relatives à un assembly dépendent de
+// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("ConsoleApp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ConsoleApp")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
+// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
+[assembly: Guid("27d9c879-52bb-4bd7-b08d-63a534ac6d7e")]
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+// Version principale
+// Version secondaire
+// Numéro de build
+// Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Sources/ConsoleApp/packages.config b/Sources/ConsoleApp/packages.config
new file mode 100644
index 0000000..f7f19c3
--- /dev/null
+++ b/Sources/ConsoleApp/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Sources/KinectSolution.sln b/Sources/KinectSolution.sln
index 26c77a6..9911da0 100644
--- a/Sources/KinectSolution.sln
+++ b/Sources/KinectSolution.sln
@@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib\Lib.csproj", "{0
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMyGesturesBank", "LibMyGesturesBank\LibMyGesturesBank.csproj", "{2496DFB1-EB55-47A1-A780-211E079B289D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp", "ConsoleApp\ConsoleApp.csproj", "{27D9C879-52BB-4BD7-B08D-63A534AC6D7E}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,6 +29,10 @@ Global
{2496DFB1-EB55-47A1-A780-211E079B289D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2496DFB1-EB55-47A1-A780-211E079B289D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2496DFB1-EB55-47A1-A780-211E079B289D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {27D9C879-52BB-4BD7-B08D-63A534AC6D7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {27D9C879-52BB-4BD7-B08D-63A534AC6D7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {27D9C879-52BB-4BD7-B08D-63A534AC6D7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {27D9C879-52BB-4BD7-B08D-63A534AC6D7E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Sources/Lib/KinectManager.cs b/Sources/Lib/KinectManager.cs
index bf9ce2b..9977b36 100644
--- a/Sources/Lib/KinectManager.cs
+++ b/Sources/Lib/KinectManager.cs
@@ -7,6 +7,10 @@ namespace Lib
public class KinectManager : INotifyPropertyChanged
{
private KinectSensor sensor;
+
+ private BodyFrameReader bodyFrameReader;
+ private Body[] bodies = null;
+
public KinectSensor Sensor {
get {
return sensor;
@@ -27,18 +31,65 @@ namespace Lib
public KinectManager()
{
sensor = KinectSensor.GetDefault();
+ if (sensor != null)
+ {
+ bodyFrameReader = sensor.BodyFrameSource.OpenReader();
+ bodyFrameReader.FrameArrived += BodyFrameReader_FrameArrived;
+ }
+ }
+
+ private void BodyFrameReader_FrameArrived(object sender, BodyFrameArrivedEventArgs e)
+ {
+ using (var frame = e.FrameReference.AcquireFrame())
+ {
+ if (frame != null)
+ {
+ if (bodies == null)
+ {
+ bodies = new Body[frame.BodyCount];
+ }
+
+ frame.GetAndRefreshBodyData(bodies);
+ }
+ }
}
- public void StartSensor()
+
+ public Body GetNextBody()
+ {
+ if (bodies == null) return null;
+
+ foreach (var body in bodies)
+ {
+ if (body.IsTracked)
+ {
+ return body;
+ }
+ }
+
+ return null;
+ }
+
+ public bool StartSensor()
{
if (sensor != null) {
sensor.Open();
+ return true;
+ }
+ else
+ {
+ return false;
}
}
- public void StopSensor()
+ public bool StopSensor()
{
if (sensor != null)
{
sensor.Close();
+ return true;
+ }
+ else
+ {
+ return false;
}
}
public bool Status