non non les volets
affichage/barre d'outils/volets/code
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Effectivement on voit aussi sous Explorateur de projet
déroule l'arborescence de l'assemblage OpenNI.Net et dit moi ce que tu vois
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
bon finalement j'ai vu qu'il faut certainement mettre des guillemets en WD15 :
avec la syntaxe <Nom de l'objet> est "<Nom de la classe>".
En WD16 on peut ne plus mettre les guillemets :
donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 monscriptNode est un "OpenNI.ScriptNode" dynamique moncontexte est un "OpenNI.Context" dynamique monDepthgenerator est un "OpenNI.DepthGenerator" dynamique moncontexte = OpenNI.Context.CreateFromXmlFile("Data/SamplesConfig.xml",monscriptNode) monDepthgenerator = moncontexte:FindExistingNode(OpenNI.NodeType.Depth)
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
tout a fait JP, il y a toutes les classes d'OpenNi, alors pourquoi windev ne reconnait pas le code que tu m'as donné? remarque que j'ai fais un vulgere copier coller, peut etre il fait aller chercher les classes a utiliser depuis cet explorateur, ?
JP si jamais j'ai du m'absenter de mon poste, en ce moment je te reponds en utilisant une connexion 3G parce que je suis dehors
ahhhh c'est génial JP merci beaucoup vraiment tu m'as sauver la mise, reste jute unr question et apres je vais pouvoir voler par mes propres ails: comme tu as vu dans le code du sample fournit avec le SDK "sampleread.net" le programme affiche dans une fenetre terminal dos (fenetre de fond noir) les valeurs depth du point mileux d'image recoltée par le capteur, je n'pas le code en face de moi mais c la ligne ou il y a le printf(....Xref/2,Yref/2) , comment dupliquer ces information sous windev (je ne pense pas avec la fonction "info" parce que cette fonction me sort une simple fenetre pour chaque nouvelle valeur du printf?
tu utilises la fonction trace qui est une fenêtre à fond jaune qui sert au debug
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
j'ai encore eu l'erreur sur les deux dernières lignes
erreur : "OpenNi" inconnu ou inaccessible .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 moncontexte = OpenNI.Context.CreateFromXmlFile("Data/SamplesConfig.xml",monscriptNode) monDepthgenerator = moncontexte:FindExistingNode(OpenNI.NodeType.Depth)
jke suis désolé JP je t'ai trop dérangé là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 moncontexte = "OpenNI.Context"::CreateFromXmlFile("Data/SamplesConfig.xml",monscriptNode) monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth)
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Ah oui là ca marche mais par contre je ne pige rien, parce que avec les "::" ou le ":" et une fois on doit mettre les "" et d'autres pas. j'avoue que je vais morflé ce soir.
peux-tu stp juste me faire la traduction du code sampleread.net en entier comme ça j'aurais un code qui marche et par la suite je me base dessus pour avancer, vraiment tu me sauve comme ça.
merci d'avance
les " " c'est quand tu utilises des classes dotnet.
les :
Appeler un membre appartenant à un objet différent de l'objet en cours
<Nom Objet> : <Nom Membre>
Appeler un membre de classe générale
<Nom de la classe> :: <Nom Membre>
et maintenant à toi te te débrouiller je suis plus là
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
JP jute une dernière question stp, est ce que tu sais ou je dois mettre le dossier Data qui contient le fichier XML?
à la compilation de l'application il me dit qu'il y a une erreur dans la ligne :
moncontexte = "OpenNI.Context"::CreateFromXmlFile("Data/SamplesConfig.xml",monscriptNode)
j'ai essayé de mettre le dossier partout meme dans le dossier racine de windev (d'ailleur meme le fichier OpenNI.net.dll parce que windev m'a sorti avant une autre erreur mais le fait de mettre ce fichier dans le dossier racine de windev ca résolu l'erreur)
merci
Merci infiniment JP, c'est trop gentil de ta part mon grand, bonne soirée
Bonjour,
Mauvaise nouvelle
j'ai l'impression que l'on ne va pas pouvoir utiliser dotnet . Mais comme je ne suis pas expert en dotnet il y a peut être espoir. Voici le problème :
Finalement je suis arrivé à ce code pour le début du simpleRead :
Quand j'exécute ce code j'ai une exception mais pas d'infos sur l'exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 monscriptNode est un "OpenNI.ScriptNode" dynamique moncontexte est un "OpenNI.Context" dynamique monDepthgenerator est un "OpenNI.DepthGenerator" dynamique // la config est mise dans "mes documents" ConfigExemple est une chaîne = ComplèteRep(SysRep(srMesDocuments))+"SamplesConfig.xml" QUAND EXCEPTION DANS moncontexte = "OpenNI.Context"::CreateFromXmlFile(ConfigExemple,monscriptNode) monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth) FAIRE Erreur(ExceptionInfo()) FIN
Si je met un fichier de config qui n'existe pas toujours pas d'infos sur l'exception. Par contre si je fais cela :
j'ai si je met un mauvais nom pour le fichier de config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part moncontexte = "OpenNI.Context"::CreateFromXmlFile(ConfigExemple,null)
et avec le bon nom :OpenNI.StatusException: File not found!
ce qui semble normal puisque je n'ai pas de capteur.OpenNI.GeneralException: One or more of the following nodes could not be enumerated:<\n><\n>Device: PrimeSense/SensorV2/5.0.2.3: The device is not connected!
alors les questions :
1 - Si je met le paramètre à null ne vais-je pas avoir plus tard un plantage du programme ?
2 -Le problème quand je passe le paramètre monscriptNode (au lieu de null) n'est-t-il pas dû à cette limitation de windev avec dotnet :
monScriptNode est une classe . Son passage en paramètre est-il vu comme un pointeur ?Le passage de paramètres de type pointeur entre le WLangage et .NET n'est pas géré.
Ami calmant, J.P ;-)
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
bon sinon pour en revenir au c :
il faut que tu définisses une ou plusieurs fonctions d'interface avec windev qui seront exportées dans une dll. Pour cela il faut que tu compiles ton programme C en dll. Si tu nous fournis les paramètres à passer et le type de valeur retournée par les fonctions on pourra peut être t'aider. En espérant qu'il n'y ai pas de paramètres de type compliqué.
Ami calmant, J.P ;-)
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Bonjour JP,
j'ai passé toute la nuit à lire l'autre code du sample c à d SampleViewer.net, danbs celui là ils n'utilise pas la configuration par un fichier XML, est ce que tu pense que c'est possible de contourner ce problème on faisant une configuration directement dans le code?
Pour ton code j'ai eu toujours le même problème, mais quand je remerts les deux lignes :
MonContext = ... et MonDepthGenerator = ...je reçois le message d'erreur :
Erreur à la ligne 83 du traitement Déclarations globales de FEN_Fenêtre1.
La ligne 83 :
[code]
Moncontext = "OpenNI.Context"::CreateFromXMLFile("Data/SamplesConfig.xml",MonscriptNode)
c à d qu'il y a eu exception
JP je pense que ça marché!!!!
en tout cas avec ce code , je remarque que le capteur s'allume mais par contre il me donne des valeurs null, probablement j'ai mal convertis ces deux lignes C#:
voici ce que j'ai rajouté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MapOutputMode mapMode = depth.MapOutputMode; DepthMetaData depthMD = new DepthMetaData();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 MaValeur est un réel monscriptNode est un "OpenNI.ScriptNode" dynamique moncontexte est un "OpenNI.Context" dynamique monDepthgenerator est un "OpenNI.DepthGenerator" dynamique gpclMonmapMode est un "OpenNI.MapOutputMode" dynamique gpclMondepthMD est un "OpenNI.DepthMetaData" dynamique // la config est mise dans "mes documents" ConfigExemple est une chaîne = ComplèteRep(SysRep(srMesDocuments))+"SamplesConfig.xml" QUAND EXCEPTION DANS moncontexte = "OpenNI.Context"::CreateFromXmlFile(ConfigExemple,Null) monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth) FAIRE Erreur(ExceptionInfo()) FIN //monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth) gpclMonmapMode = monDepthgenerator:MapOutputMode BOUCLE (100) gpclMondepthMD = new DepthMetaData() moncontexte.WaitOneUpdateAll(monDepthgenerator) MaValeur = gpclMondepthMD.FPS Trace (MaValeur) FIN
Avec le programme C, je suis parti du Sample NiViewer et je récupères les valeurs depth des 100 première lignes de l'image Depth.
Je palace le capteur en face du sol par exemple (parfaitement en face, de telle manière que tous les pixels de l'image depth ont la même valeur de profondeur par rapport au capteur) et au moment que je mets un objet dans le champ de vision du capteur (en approchant l'objet par le coté de la ligne 0 de l'image) je dois définir l’existence de l'objet, sa taille (longeurMax, largeurMax, et hautewurMax) et sa position X,Y et Z par rapport au capteur (coordonnées du capteur sont (0,0,0) ).
Donc les paramètres que je dois fournir à l'application windev sont que des valeurs réelles.
si tu as mis en commentaire
ça va pas être terrible pour la suite
Code : Sélectionner tout - Visualiser dans une fenêtre à part //monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth)
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
tu as raison mais je ne pense pas que c ça, vu que avec ce cade:
j'ai l'affichage de la fenêtre Trace mais les valeurs de FrameID sont à 0 , par contre le laser IR du capteur s'allume ce qui veut dire qu'il y a communication mais je pense que le problème vient de cette ligne " gpclMondepthMD = new DepthMetaData()" peut être je n'ai pas bien traduit le code C# . est ce que tu pense aussi que de celà vient le problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 MaValeur est un réel monscriptNode est un "OpenNI.ScriptNode" dynamique moncontexte est un "OpenNI.Context" dynamique monDepthgenerator est un "OpenNI.DepthGenerator" dynamique gpclMonmapMode est un "OpenNI.MapOutputMode" dynamique gpclMondepthMD est un "OpenNI.DepthGenerator" dynamique // la config est mise dans "mes documents" ConfigExemple est une chaîne = ComplèteRep(SysRep(srMesDocuments))+"SamplesConfig.xml" QUAND EXCEPTION DANS moncontexte = "OpenNI.Context"::CreateFromXmlFile(ConfigExemple,Null) monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth) FAIRE Erreur(ExceptionInfo()) FIN moncontexte = "OpenNI.Context"::CreateFromXmlFile(ConfigExemple,Null) monDepthgenerator = moncontexte:FindExistingNode("OpenNI.NodeType".Depth) gpclMonmapMode = monDepthgenerator:MapOutputMode i est un entier i = 0 BOUCLE i ++ Trace(i) gpclMondepthMD = new DepthMetaData() moncontexte.WaitOneUpdateAll(monDepthgenerator) MaValeur = gpclMondepthMD.FrameID Trace (MaValeur) SI i > 100 ALORS SORTIR FIN
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager