Closed bullfinch3000 closed 10 years ago
Enligt rapport från Ragnhild kraschar programmet efter att man valt någon knapp i modalboxen och återgått till ritläget. Krasch sker endast när man använder eyetracking och inte annars. I brist på egen eyetracker får jag vänta till imorgon för att kunna felsöka problemet.
Fint! Men designerläget i Visual Studio fungerar inte längre. Det kommer bli svårt att arbeta utan stöd för auto-genereringen av partial klasser. Går det att lösa?
"The designer could not be shown for this file because none of the classes within it can be designed. The designer inspected the following classes in the file: EyePaintingForm --- The base class 'EyePaint.GazeAwareForm' could not be loaded. Ensure the assembly has been referenced and that all projects have been built."
Har du samma problem även efter rebuild?
Ja, men med felmeddelandet
Unable to load DLL 'Tobii.EyeX.Client.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
vilket är märkligt, eftersom det går bra att bygga och starta applikationen, dvs. DLL:en hamnar där den ska. Post-build eller pre-build gör ingen skillnad.
Fungerar designläget för dig?
"Ser uppdelningen och refaktoriseringen till en GazeAwareForm vettig ut? Kan du se några problem eller konstigheter?"
Se till att initialisering av EyeX motorn ligger i onLoad eventet för forms, istället för i konstruktorn. Kommer inte ihåg exakt men det var någonting i Tobii manualen om att man måste koppla upp sin klientapplikation med EyeX servern varje gång man återupptar en form, och utifall att dialogerna tar över programmet kanske controller-form:en tappar sin koppling till EyeX servern, i vilket fall det skulle kunna krascha när en dialog stängs. Bara en tanke.
Nej jag får också DLL-problemet. Försöker felsöka nu men blir inte riktigt klok på det.
Jag testar att flytta initialiseringskoden till onload, så får vi se i testerna imorgon.
@carlthome @ragnhildkarlsson @erickl har någon av er möjlighet att hjälpa till med felsökning och hårdvarutestning? Jag får inte min eye tracker att fungera...
Efter en del ominstallationer och omstarter har jag nu fått min eye tracker att funka.
Problemet med att applikationen kraschar efter att modalboxen stängs verkar bero på anropet BeginInvoke(a)
i metoden HandleInteractionQuery
. Den anropas från modalbox-instansen efter att formuläret stängs och säger ifrån eftersom det inte finns någon UI-tråd att koppla dess action till.
Om @carlthome eller någon annan har en metod för att undvika detta får ni gärna hojta till.
Det var en enkel lösning i slutändan. En if-sats som kollade om formulär-instansen hade en aktiv handle var allt som krävdes.
Nu är denna branch hårdvarutestad och verifierad. Om ni tillåter skulle jag gärna merga in den nu.
Förlåt förseningen här kommer tumme upp! :)
Jag har implementerat en grundläggande dialog som en ny Windows Form. Den lägger sig som en modalbox ovanpå ritprogrammet och ber om bekräftelse från användaren innan programmet får fortsätta.
Frågor: @carlthome Ser uppdelningen och refaktoriseringen till en GazeAwareForm vettig ut? Kan du se några problem eller konstigheter? @ragnhildkarlsson Skulle du kunna hårdvarutesta dialogen och se om det funkar med en eyetracker?