Implementera stöd för fler protokoll

Moderator: Telldus

micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Post by micke.prag »

Om du uppdaterar till senaste versionen i trunk så har konfigurationen ändrats lite. För en vanlig codeswitch nexa ser det ut så här:

Code: Select all

deviceNode = "/dev/ttyUSB0"
device {
  id = 1
  name = "Test"
  protocol = "arctech"
  model = "codeswitch"
  parameters {
    house = "A"
    unit = "3"
  }
}
X10 ser snarlik ut:

Code: Select all

deviceNode = "/dev/ttyUSB0"
device {
  id = 1
  name = "Test"
  controller = 1
  protocol = "x10"
  model = ""
  parameters {
    house = "A"
    unit = "1"
  }
}
Micke Prag
Software
Telldus Technologies
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

micke.prag wrote:rfcmd har inte stöd för X10. Det är ändast telldus-core tillsammans med tdtool som har det stödet. Tänk dock på att telldus-core ännu inte har släppts officiellt och api, konfigfiler och liknande kan ändras utan förvarning.

...

Bygger du för linux och sätter
USE_QT_SETTINGS_BACKEND OFF
kommer inte Qt att behövas, dock kommer CMake fortfarande att leta efter det. Istället behövs libconfuse för konfigurationen.
När jag kör inställningarna från svn (svn update), och kommandot debian/rules i teldus-core, så kommer jag inte förbi konfigureringen.

Code: Select all

/trunk/telldus-core$ debian/rules 
dh_testdir
# Add here commands to configure the package.
mkdir build
cd build && \
	cmake \
        -DBUILD_RFCMD=1 \
        -DBUILD_RFCMD_WITH_LIBFTDI=0 \
        -DBUILD_LIBTELLDUS-CORE=1 \
        -DBUILD_TDTOOL=1 \
        -DSUPPORT_TELLSTICK_DUO=0 \
        -DSUPPORT_USB=0 \
        -DUSE_QT_SETTINGS_BACKEND=0 \
        -DGENERATE_MAN=1 \
        -DCMAKE_INSTALL_PREFIX=/usr                 \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_CXX_FLAGS="-Wl,--as-needed" \
	      ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake-2.6/Modules/FindQt4.cmake:1421 (MESSAGE):
  Qt qmake not found!
Call Stack (most recent call first):
  driver/libtelldus-core/CMakeLists.txt:1 (FIND_PACKAGE)


-- Configuring done
make: *** [configure-stamp] Fel 1
Jag har installerat enligt:

Code: Select all

sudo aptitude install build-essentials libconfuse-dev help2man
Som jag ser det så är USE_QT_SETTINGS_BACKEND=0 vilket borde göra att inga QT-bibliotek behövs om libconfuse är installerat. Men trots det klagas det om att QT inte hittas och kompileringen avbryts.
Men med:

Code: Select all

sudo aptitude install libqt4-dev 
så fungerar det. Men jag får fortfarande fel om att Manager.h och MessageReceiver.h inte hittas i CMakeLists.txt

Var det något som fixades så att man slapp QT-biblioteken? Det går rätt trögt att lägga lägga till/installera dessa till min SLUG-2:a

(Håller på att kompilerar just nu)
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Post by micke.prag »

För tillfället kommer Qt alltid behövas, oavsett hur det konfigureras. Det kommer lösas så småningom.

Sen kan jag även rekommendera att inte kompilera trunk utan istället ta ett färdigt paket eller iallafall branches/2.0
Micke Prag
Software
Telldus Technologies
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

Tack, jag upptäckte att trunk inte gav så bra resultat (just nu) och att 2.0 fungerade lite bättre. :)

Jag måste bygga eget Debian-paket eftersom jag kör på Debian/Stabel och armel och inte i386 och amd64.

I vart fall, paketet för Lenny/armel håller på att byggas just nu, enligt
http://www.xs4all.nl/~carlo17//howto/debian.html

*tid går*

Det verkar som om det inte gick så bra över allt.

Code: Select all

$ sudo aptitude intall svn
// Hämta källkoden med subversion
$ sudo aptitude install build-essentials libconfuse-dev help2man
$ sudo aptitude install libqt4-dev 
$ sudo aptitude install fakeroot
$ cd telldus
$ svn update
// Borde göra en kopia, men men :)
$ cd branches/2.0
$ fakeroot debian/rules binary
...
CMake Error at tdtool/cmake_install.cmake:54 (FILE):
  file INSTALL cannot find file
  "/home/adminator/Linux/telldus/branches/2.0/build/tdtool/tdtool.1" to
  install.
Call Stack (most recent call first):
  cmake_install.cmake:38 (INCLUDE)


make[1]: *** [install] Fel 1
make[1]: Leaving directory `/home/adminator/Linux/telldus/branches/2.0/build'
make: *** [install] Fel 2
Kan inte hitta något annat felmeddelande. Skall gräva lite mer.
(En liten kommentar bara, Debian brukar inte vilja ha Debian-paketeringen i Upstream)
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Post by micke.prag »

Med "paket" menar jag källkodspaketen som du hittar här:
http://download.telldus.se/TellStick/So ... ldus-core/

Dessa innehåller heller inte debian-paketeringen.

Angående ditt fel så hittar den inte man-filen. Den finns som växel att ta bort i cmake. I din rules-fil kan du lägga till:
-DGENERATE_MAN=0
för att skippa man-filerna
Micke Prag
Software
Telldus Technologies
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

micke.prag wrote:Med "paket" menar jag källkodspaketen som du hittar här:
http://download.telldus.se/TellStick/So ... ldus-core/
Ok.
Men jag fortsatte med branches/2.0, eftersom det verkar vara lättare att komma fram till önskade debianpaket :)
Angående ditt fel så hittar den inte man-filen. Den finns som växel att ta bort i cmake. I din rules-fil kan du lägga till:
-DGENERATE_MAN=0
för att skippa man-filerna
Ok, jag tittade på skillnaden mellan CMakeLists.txt i tdtool (som inte genererade man-sida) och rfcmd (som genererade man-sidor).
Om jag tyder det rätt, så genererar tdtool ingen man-sida default-mässigt, men rdcmd gör det om inte det finns någon GENERATE_MAN (kolla vid ADD_CUSTOM_COMMAND i respektive fil). Så att lägga till -DGENERATE_MAN=1 fungerar även det, med fördelen att generera man-sidor.

Men detta är kanske redan i trunk (tyckte att det såg så ut).

Detta är vad jag gjorde för att få det att kompilera.

Code: Select all

diff rules rules.orig
41,42c41
<         -DGENERATE_MAN=1 \
<         -DCMAKE_INSTALL_PREFIX=/usr \
---
>         -DCMAKE_INSTALL_PREFIX=/usr                 \
Eventuellt att göra följande diff för att slippa ett felmeddelande om build redan existerar när paketet konfigureras. Men jag är inte säker på är en bra lösning. Kanske bättre att ta bort katalogen om paketet behöver konfigureras om?

Code: Select all

diff rules rules.orig
31c31
< 	mkdir -p build
---
> 	mkdir build

Code: Select all

fakeroot debian/rules binary
cd ..
dpkg -i *.deb
Dessa kommandon genererade paketen libtelldus-core2_2.0.1-1_armel.deb telldus-core_2.0.1-1_armel.deb och libtelldus-core-dev_2.0.1-1_armel.deb och installerade paketen.

Nu skall här konfigureras och testas!

Hmm.
Får ett felmeddelande när jag använder tdtool.

Code: Select all

sudo tdtool -l
/var/state/telldus-core.conf:1: ingen flagga 'deviceNode' finns
Number of devices: 7
1	köksradion	OFF
Men cp /dev/null /var/state/telldus-core.conf fixar det.

YEAH! Working great!
Post Reply