Page 1 of 2

TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Labbar lite med Tellstick DUO:n i .NET, har inte pysslat med ert API tidigare.
Har inga problem med att tända och släcka från min applikation, men jag får inte inkommande signaler att fungera.
Det fungerar bra i TelldusCenter (det känner av inkommande signal).
Om jag tolkat rätt så är det TelldusNETWrapper.EventCallbackFunction som skall användas för att ta hantera inkommande signaler(?)

Det här med delegates är lite nytt för mig, så jag tänkte kolla om någon har lite tips på hur man kan använda det.
Nedanstående har jag försökt med i Windows Forms, men det fungerar inte (=funktionen anropas ej vid inkommande signal). ID-numren stämmer med min uppsättning.

Code: Select all

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        TelldusNETWrapper.EventCallbackFunction ecf;
        public Form1()
        {
            InitializeComponent();
            ecf = new TelldusNETWrapper.EventCallbackFunction(EventCallbackFunction);
        }
        public int EventCallbackFunction(int deviceId, int method, string data, int callbackId, Object obj)
        {
            if (deviceId == 4 && method == TelldusNETWrapper.TELLSTICK_TURNON)
            {
                TelldusNETWrapper.tdTurnOn(2);
            }

            return 0;
        }
    }
}
Är det helt uppåt väggarna?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Löste det själv. Klantigt fel.
Man måste givetvis skapa ett objekt av TelldusWrappern. Är lite ringrostig i C#.
Nya koden för den intresserade:

Code: Select all

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            TelldusNETWrapper t = new TelldusNETWrapper();
            t.tdRegisterDeviceEvent(EventCallbackFunction, null);
        }
        public int EventCallbackFunction(int deviceId, int method, string data, int callbackId, Object obj)
        {
            if (deviceId == 4 && method == TelldusNETWrapper.TELLSTICK_TURNON)
            {
                TelldusNETWrapper.tdTurnOn(2);
            }

            return 0;
        }
    }
}

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Nästa utmaning;
Applikationen kraschar varje gång, med "[ApplikationsNamn] has stopped working" och inget felmeddelande av värde.
Plockade ner koden för wrappern för att undersöka och huvudapplikationen kraschar när Wrapper-koden lämnar denna funktion:

Code: Select all

private unsafe void eventFunction()
Min applikation tar alltså emot eventet och returnerar, sedan kraschar min applikation?

Anropar jag på fel sätt?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by MartinV
Om du kommenterar bort:

Code: Select all

TelldusNETWrapper.tdTurnOn(2);
...och bara kör en Console.WriteLine, fungerar det då?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Hej, tack för tipset. Det hjälpte dock inte. Får ändå krasch.
Samma sak om jag kör det i en Console app.

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by MartinV
Kan inte se något direkt knasigt, annat än att jag inte ser något anrop till tdInit().
Jag använder en wrapper som inte ser exakt ut som den du använder så jag är iofs inte 100...

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Okej, en äldre version av TelldusNETWrapper eller något du kodat själv?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by MartinV
Jag har utgått från TelldusNETWrappern när jag gjorde min wrapper, så de är till stor del lika, men den wrapper jag snickrat på är anpassad för att kunna köras under Linux (Mono).

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
Provade även att lägga över endast exe-filen på servern, då dör programmet utan felmeddelande, så det verkar inte vara maskinrelaterat.
Vilken .NET-version kör ni när ni använder wrappern?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by MartinV
3.5

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Vi har hittat ett fel i vår wrapper i just den callbacken. Vi kommer fixa det till nästa version men om du vill kan du få testa den i förväg?
Du behöver med andra ord inte felsöka vidare för felet är på vår sida.

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
micke.prag wrote:Vi har hittat ett fel i vår wrapper i just den callbacken. Vi kommer fixa det till nästa version men om du vill kan du få testa den i förväg?
Du behöver med andra ord inte felsöka vidare för felet är på vår sida.
Jag testar jättegärna i förväg om det finns möjlighet!

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by ducken
När tror ni en "förvägsversion" kan finnas framme?

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by stefan.persson
Vi testar den för fullt, och hoppas på senare idag!

Re: TelldusNETWrapper.EventCallbackFunction

Posted: Fri Mar 17, 2023 9:45 am
by braincandy
Vore mycket intresserad av att få testa den nya versionen jag med.