Page 2 of 2

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Det var ju väldigt trevligt om detta har löst sig. Vi har börjat experimentera med libftdi för att se om det kunde varit en lösning.

Posted: Fri Mar 17, 2023 9:45 am
by mickevi
Hejsan. Jag får samma problem med min batch 8 i ubuntu, dsv "An error occurred when communication with TellStick". Jag har fått sucess någon enstaka gång när jag kört ett kommando, men aldrig 2 gånger i rad.

jag har version 2.02 av tdcore och kernel 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:02:15 UTC 2009 x86_64 GNU/Linux


Finns det någon lösning på detta problem?

Posted: Fri Mar 17, 2023 9:45 am
by strixx
Exakt samma problem här.

Har Ubuntu 9.10, kärna 2.6.31-20.

Löste direkt genom att ange deviceNode = "/dev/ttyUSB0" istället för deviceNode = "/dev/tellstick" i första raden i tellstick.conf

Detta problem skrivs om i en annan tråd så det hänger nog ihop.

Posted: Fri Mar 17, 2023 9:45 am
by dagb
strixx wrote:Exakt samma problem här.

Har Ubuntu 9.10, kärna 2.6.31-20.

Löste direkt genom att ange deviceNode = "/dev/ttyUSB0" istället för deviceNode = "/dev/tellstick" i första raden i tellstick.conf

Detta problem skrivs om i en annan tråd så det hänger nog ihop.

OK. Dette løser problemet for meg også, i alle fall intil problemet med udev er løst.

Nå funker tdtool, men jeg får fortsatt tidvis en melding:
"Turning off device 2, Stue - An error occurred when communication with TellStick"

Kjører tdtool 2.0.2 som root. Sticken er batch 9. OS er Ubuntu 9.10 med 2.6.31-16-generic.

Re: TellStick not found

Posted: Fri Mar 17, 2023 9:45 am
by persan
Verkar vara timing i koden mottagar loopen gjorde följande lilla hack i " ConnectionListener_unix.cpp" sedan verkar det fungera. Det det jag gjorde var är bara ett snabb hack men det pekar på synkroniserings problem,
---------------------------------------------------------
static timespec req = {0,100*1000};
static timespec rem = {0,0};
void ConnectionListener::run(){
struct timeval tv = { 0, 0 };

//Timeout for select

SOCKET_T serverSocket;
struct sockaddr_un name;
socklen_t len;
serverSocket = socket(PF_LOCAL, SOCK_STREAM, 0);
if (serverSocket < 0) {
return;
}
name.sun_family = AF_LOCAL;
memset(name.sun_path, '\0', sizeof(name.sun_path));
strncpy(name.sun_path, d->name.c_str(), sizeof(name.sun_path));
unlink(name.sun_path);
int size = SUN_LEN(&name);
bind(serverSocket, (struct sockaddr *)&name, size);
listen(serverSocket, 5);

//Change permissions to allow everyone
chmod(d->name.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
len = sizeof(struct sockaddr_un);

fd_set infds;
FD_ZERO(&infds);
FD_SET(serverSocket, &infds);

while(d->running) {
tv.tv_sec = 5;

int response = select(serverSocket+1, &infds, NULL, NULL, &tv);
nanosleep(&req,&rem);
if (response == 0) {
FD_SET(serverSocket, &infds);
nanosleep(&req,&rem);
continue;
} else if (response < 0 ) {
continue;
nanosleep(&req,&rem);
}
//Make sure it is a new connection
if (!FD_ISSET(serverSocket, &infds)) {
continue;
nanosleep(&req,&rem);
}
SOCKET_T clientSocket = accept(serverSocket, NULL, NULL);

ConnectionListenerEventData *data = new ConnectionListenerEventData();
data->socket = new TelldusCore::Socket(clientSocket);
nanosleep(&req,&rem);
d->waitEvent->signal(data);

}
close(serverSocket);
}
---------------------------------------------------------
Kör Fedora 15 på en fyrkärning maskin.
Har inte giort vidare analys.
/P

Re: TellStick not found

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag