Hej,
Jag har byggt en applikation som använder Telldus API:et (som ni kanske vet vid det här laget på grund av en och annan fråga tidigare ). Jag har en temperatursensor och ett antal dimrar och switchar konfigurerade, och jag använder en Tellstick Duo. I API:et har jag registrerat två callback-funktioner, en för DeviceEvents och en för SensorEvents. Jag loggar data från dessa anrop till en databas (temperaturvärde och när switchar ändras).
Allt detta funkar bra under ett par dagar, men sedan slutar plötsligt events att anlända till mina callbackfunktioner. Inga felmeddelanden skrivs ut, telldusd är igång som vanligt och jag ser att nya värden kommer in till telldusd genom att tdtool får dem. Detta gäller både sensorcallback och devicecallback.
Har ni någon idé om vad som skulle kunna vara fel här? Hur anropas callbackfunktionerna från er sida, är det en och samma tråd som anropar varje gång eller skapas en ny tråd för varje callback som ska köras? Jag har mutexskyddat sparningen till databas i callbackfunktionerna och är tämligen säker på att det inte kan bli deadlock där på grund av min kod. Men å andra sidan har jag haft fel förr (http://www.telldus.se/forum/viewtopic.p ... cfd163c097)...
Tack på förhand!
Callbacks slutar triggas utan felmeddelande?
Moderator: Telldus
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Callbacks slutar triggas utan felmeddelande?
Det skapas en tråd för varje callback. Dock är varje callback mutexskyddad så innan tråden kommer "tillbaka" kan inte en ny callback (av samma typ) skickas ut.
Om telldusd fungerar som den ska (eftersom tdtool kan hämta datan) så bör felet finnas antingen mellan telldusd och telldus-core (som körs i din proccess) eller så körs inte själva callbacken.
Om du kompilerar koden själv kanske du kan stoppa in lite loggar och se var det slutar att fungera?
Om telldusd fungerar som den ska (eftersom tdtool kan hämta datan) så bör felet finnas antingen mellan telldusd och telldus-core (som körs i din proccess) eller så körs inte själva callbacken.
Om du kompilerar koden själv kanske du kan stoppa in lite loggar och se var det slutar att fungera?
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies