Je tente de créer une page Web qui permettra à un utilisateur de capturer des images à partir d'une caméra connectée au serveur à l'aide d'ASP.NET. La caméra est un olympus et le code côté serveur a accès à tous les appels synchrones qui se trouvent dans le sdk de la caméra.
Le problème se pose lorsque j'essaie de capturer une image. Le fonctionnement du SDK consiste à dire à l'appareil photo de prendre l'image, puis d'ajouter un écouteur à un événement déclenché par la caméra pour commencer à télécharger l'image depuis la caméra une fois la capture de l'image terminée. .
L'événement n'est jamais déclenché, je ne peux donc pas télécharger l'image de l'appareil photo.
Le code qui lie l'écouteur à une fonction et indique à la caméra de prendre la photo se trouve dans le code côté serveur d'un bouton.
Essentiellement je me demande comment on pourrait avoir un écouteur d'événement pour quelque chose qui change sur le serveur, comme l'état de la caméra qui est attachée.Confusion d'événement côté serveur avec ASP.NET
Répondre
Je m'attendrais à ce que vous ayez des problèmes avec ceci. Par exemple, je parie que la caméra suppose qu'elle est utilisée par une seule application de bureau à la fois. L'appeler à partir d'une application Web est assez différent, car chaque requête peut provenir d'un utilisateur différent et ne pas être en rapport avec ce qui se passe déjà avec la caméra.
Je vous recommande de communiquer avec l'appareil photo via un service Windows. Le service communiquerait avec l'application Web via un service WCF hébergé dans le service Windows. Il dirait à la caméra de prendre l'image, et s'attacherait à l'événement. Lorsque l'événement se déclenche, il télécharge l'image de la caméra et la renvoie à l'appelant du service Web.
Le service WCF devrait probablement s'assurer qu'un seul utilisateur utilise la caméra à la fois. Si la caméra est déjà utilisée, elle doit rejeter l'appel.
Les captures d'événements côté serveur peuvent être un peu compliquées. Cela fait un moment que je l'ai fait, donc j'écris complètement de ma mémoire brouillée ...
La connexion à un événement côté serveur à partir d'une classe de page introduit un problème avec le cycle de vie de la classe. Une fois la page livrée, l'instance de la classe n'est plus dans la portée de sorte que tout gestionnaire d'événements que vous avez affecté à la caméra n'est plus dans la portée non plus. Nous avons utilisé deux mécanismes différents pour gérer cela.
A) Attribuez une méthode statique au gestionnaire d'événements. Une méthode statique n'est pas liée à une instance spécifique d'une classe et persistera même si l'instance de la page n'est plus dans la portée. B12) Affecter une méthode dans la classe GLOBAL pour capturer l'événement sur l'événement _Start d'application (ou de session). Cela maintient également le gestionnaire d'événements en dehors de la portée de la classe de page. Dans les deux cas, vos gestionnaires d'événements devront définir un indicateur qui peut être lu globalement pour indiquer que l'image est prête et que votre page devra interroger une page (ou un gestionnaire) ou rafraîchir pour trouver l'image. est prêt.
Vous aurez également besoin de regarder la portée de l'instanciation de la classe API de la caméra. Si la classe est instanciée en tant que membre de la classe de la page, elle tombe de la surface de la terre dès que la page est terminée et que l'événement ne sera pas levé. La classe de caméra devra être statique, globale ou engendrée par un autre thread indépendant.
J'espère que mes ramplings brumeux aident. Bonne chance.
- 1. Commentaires côté serveur dans asp.net (côté HTML)
- 2. pagination côté serveur avec jQgrid
- 3. ASP.NET request lifecycle confusion
- 4. Visibilité de ListBox côté serveur avec C# et ASP.NET
- 5. Impossible d'avoir deux formulaires avec runat côté serveur dans ASP.net?
- 6. ASP.NET avec jQueryUI: l'événement côté serveur ne se déclenche pas
- 7. asp.net côté serveur viewstate sans sessions
- 8. Gestion des exceptions ASP.Net Ajax côté serveur
- 9. L'équivalent ASP.NET du côté serveur inclut
- 10. Contrôle du serveur Asp.net même traitement de l'événement côté serveur/côté client
- 11. ValidationSummary avec côté client et validation côté serveur
- 12. fonction côté serveur avec le paramètre
- 13. Pagination côté serveur avec DevExpress sans XPO
- 14. Détecter Silverlight côté serveur
- 15. Événements côté serveur JavaScript
- 16. Côté serveur inclure HTML externe?
- 17. Implémentation autocomplète côté serveur
- 18. ASP.NET, OpenID et enregistrement confusion
- 19. .NET Remoting côté serveur
- 20. validation côté serveur
- 21. deserialise json côté serveur
- 22. Validation complète côté serveur
- 23. Côté client et serveur
- 24. traitement côté serveur ASP.NET MVC de résultats de recherche Google
- 25. Excel comme le contrôle côté serveur pour ASP.NET
- 26. Asp.Net options d'implémentation côté serveur pour le site Ajax
- 27. Balise d'entrée Html avec chaîne de ressources côté serveur
- 28. Appel d'une méthode côté serveur ASP.NET via jQuery
- 29. Comment charger une image côté serveur dans ASP.NET?
- 30. Vérifier si Javascript est activé côté serveur ASP.NET
Liez-vous le gestionnaire d'événements en publication? Sinon, l'événement ne se déclenchera pas pour votre gestionnaire. –
Cela pourrait être le problème, je lie effectivement l'événement sur le chargement de la page plutôt que sur la publication, je vais donner un coup de feu. –