Extern data till jaLCDs

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
JimmyAndersson
Inlägg: 26415
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Extern data till jaLCDs

Inlägg av JimmyAndersson »

Hur gör man för att hämta innehållet i en fil (i detta fallet www.varion.se/temperatur/ute.txt) till LCD-programmet jaLCDs ?

I programmet står det såhär under "External data sources":

"External data sources can be files on your harddisks as well as files on a webserver (including php-scripts). They have to match the following scheme:
setvar name wert; setvar name2 wert2;...
One setvar-command per variable, being followed by the name of the variable and its value."


Sedan finns ett fält där man kan skriva in URL'en.


Jag testade att göra ett enkelt perl-script för att lagra temperaturen (från filen ute.txt) i en variabel kallad 'ute':

#!/usr/bin/perl
print "Content-type:text/html\n\n";
$filen="ute.txt";
open (DATA,"$filen") || &fel;
@alla_rader=<DATA>;
foreach $rad (@alla_rader)
{
print $rad;
setvar ute = $rad;
}
close(DATA);

sub fel
{
print "Nähepp.";
}


Detta sparade jag i samma katalog som filen ute.txt. Skrev in sökvägen till perlscriptet i URL-fältet i jaLCDs.

I jaLCDs fält för vad som ska synas i displayen skrev jag: $ute§. Sparade allt och körde konfigurationen.
Resultat: En tom display. (jaLCDs och displayen fungerar för övrigt.)
Att det är $ och § kring båda sidor om "ute" beror inte på att det är en sträng, utan att jaLCDs vill ha variablerna på det viset för att inte tolka det som en ren text och skriva ute i displayen. :)


Någon som vet hur man gör för att få det att fungera?
Tycker att jaLCDs är lite dåligt dokumenterat. Orsaken till att jag ändå vill använda det är för att jag tyckte det var lite onödigt att ha en PIC-krets vid datorn för att visa temperaturen, när jag ändå alltid har datorn igång.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Hur ser utskriften från ditt perl-skript ut?
Användarvisningsbild
JimmyAndersson
Inlägg: 26415
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

just nu ser den ut såhär:

19.625

Du kan testa att köra perl-scriptet:
www.varion.se/temperatur/read.pl

edit: Har gjort om scriptet sedan jag skrev inlägget.


Just for the record: Perl is fun! :)
Senast redigerad av JimmyAndersson 2 juli 2006, 00:05:48, redigerad totalt 1 gång.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Är det inte meningen att utskriften ska vara setvar ute 19.625; ?
Användarvisningsbild
JimmyAndersson
Inlägg: 26415
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

edit: Ändrade inlägget eftersom jag missförstod hur du menade. :)
Hm, jo du kan ha rätt. Ska testa.

Nähepp, det fungerade inte.

edit igen: Jo! Nu fungerar det!

Scriptet ser ut såhär:
(Variablerna $text och $semikolon var bara för att göra det enklare att ändra texten.)

Kod: Markera allt

#!/usr/bin/perl

print "Content-type:text/html\n\n";
$filen="ute.txt";
$text="setvar ute";
$semikolon=";";
open (DATA,"$filen") || &fel;
@alla_rader=<DATA>;
foreach $rad (@alla_rader)
{
	print "$text $rad$semikolon";
}
close(DATA);

sub fel
{
print "Tyvärr kunde inte <A HREF=\"$filen\">$filen</A> hämtas.";
}
I jaLCDs skriver man kort och gott: $ute§

Tyvärr får man ett tecken som ser ut som ett kolon. efter temperaturen. Vet inte varför. Plockar jag bort semikolonet i scriptet så fungerar det inte. Det är nog inget "riktigt" kolon eftersom varje punkt bara består av en pixel. Ett riktigt kolons punkter består av 4st pixlar vardera. Troligen skrivs det ut något tecken som inte är definierat i displayen. Nåja, det går att lösa.
Skriv svar