Page 1 of 1

Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
Någon som vet om/hur man kan styra TellSticken från Java (utan att exekvera externa program)? Kanske kan man skriva direkt till enheten via /dev/ och vanlig fil-IO?

Tack på förhand!

Re: Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Inte så jättemycket ännu men lite hjälp kanske du kan få av våra sensors-exempel:
http://developer.telldus.com/browser/examples/java

Re: Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by gein
JNA är utmärkt för detta. Ladda hem JNA och kolla hur det fungerar. Sedan tittar du på Telldus C-API och översätter till JNA. Superenkelt faktiskt.

Re: Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
micke.prag wrote:Inte så jättemycket ännu men lite hjälp kanske du kan få av våra sensors-exempel:
http://developer.telldus.com/browser/examples/java
Oj, intressant. Visste inte att man kunde lyfta in C-bibliotek på det sättet. Förresten, lite reklam för min andra tråd Micke: http://www.telldus.se/forum/viewtopic.php?f=8&t=1653. Vet inte om det jag säger där stämmer, men tycker att CMake borde hitta biblioteket (kom att tänka på det när jag såg att ni i Java-koden också skriver .so.2).
gein wrote:JNA är utmärkt för detta. Ladda hem JNA och kolla hur det fungerar. Sedan tittar du på Telldus C-API och översätter till JNA. Superenkelt faktiskt.
Tack för tipset! Jag löste det med JNI (Java Native Interface), vilket väl är ungefär samma sak. Jag byggde en .so som jag laddar in i Java med System.loadLibrary() och sedan kan jag med hjälp av native-metoder i Java anropa min .so som i sin tur anropar libtelldus-core.so.2 :)

Re: Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by gein
JNA är bara så betydligt mycket smidigare än JNI eftersom du slipper skriva klisterkoden (.so-filen) mellan ditt program och telldus lib.

Re: Styra TellStick i Java?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
Ja, så är det nog. Dock är det inte smidigare nu när jag redan skrivit det med JNI :)