Dollartecken framför "variabel"

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Dollartecken framför "variabel"

Inlägg av thepirateboy »

Jag sitter och tittar på koden till en liten webserver (Atmega1281 och ENC28J60).

Exempel på hur det ser ut finns på http://tennet.no-ip.info:84/temperature.htm

Koden för denna sida verkar vara denna

Kod: Markera allt

prog_char temperature_htm[]	= \
"<html><head> $CSS <title>Atmega1281 Web Server - TEMPERATURE</title></head>\
<body>\
<hr color=\"FF8932\"> \
<div id=\"blocTOP\"> \
<a href=\"index.htm\">home</a> | \
<a href=\"temperature.htm\">temperature</a> | \
<a href=\"ntp.htm\">ntp</a>  \
</div> \
<div id=\"blocLEFT\"> \
<p> \
<a href=\"index.htm\" class=\"vertical\">home</a> \
<a href=\"temperature.htm\" class=\"vertical\">temperature</a>  \
<a href=\"ntp.htm\" class=\"vertical\">ntp</a>  \
</p> \
</div> \
<div id=\"blocCENTRE\"> \
Temperature is read with a TC74 connected by I2C.<br><br> \
<b>Temperature in my attic: $TEMPERATURE °C </b> \
</div> \
</body> \
</html> \
";
I koden finns TEMPERATURE med ett dollartecken framför. Min gissning är förstås att detta byts ut mot någon variabel. Jag hittar dock ingen mer TEMPERATURE skrivet med stora bokstäver men däremot en funktion Temperature

Kod: Markera allt

char *Temperature(void)
{
	sprintf(buf," %+d ",temperature);
	return buf;
}
Jag kan bara C och när jag söker på dollartecken på Google får jag upp en massa om PHP. Kan någon förklara hur det funkar?
Användarvisningsbild
AndLi
Inlägg: 18118
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

i php kommer $TEMPERATURE ersättas med det värde $TEMPERATURE har. (detta kommer altså ske på webserversidan)

Men det låter ju lite märkligt att de skulle ha stoppat in php stöd i atmega1281... Får det plats?

Du har ingen funktion som tuggar igenom koden efter $?

Finns all kod på nätet någonstanns?
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Det är inte mycket man kan få ut av det här lilla urdragen, men funktionen längst ner skriver ju in aktuell temperatur i "buf" och slutresultatet blir då " +22 ".

Sedan lär väl "buf" ersätta "$TEMPERATURE" någon annanstans i koden, men inte i något du har med här. En teknisk benämning på det hela är substitution om det hjälper dig.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Oki, tänkte om det var nåt lurt med att det inte var skriftlägeskänsligt och TEMPERATURE anropar Temperature. I värsta fall får jag göra nåt exempel själv och kolla hur det funkar.

Koden baseras på Adam Dunkels uIP, men den verkar vara ändrad en del.

webserver.c ligger under apps/webserver

Gjorde en ny sökning och hittade TEMPERATURE på ett till ställe längre ner, hmm
Senast redigerad av thepirateboy 8 februari 2008, 17:57:04, redigerad totalt 1 gång.
Användarvisningsbild
AndLi
Inlägg: 18118
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

rad 464/465 tycker jag verkar rätt klar vad den gör :D
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Puh, vilken kod, man blir alldeles yr :) :)

Den letar alltså efter dollartecken i html-koden och kollar sedan vad som står efter dollartecknet. Om det är TEMPERATUR så byter man ut det mot det verkliga värdet på temperaturen.

Blev det ungefär rätt?
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg av Jeppsson »

Jag har också haft samma frågor och hittade dessa filmerna på Microchips Webseminar som förklarar det ganska bra.

Detta är i och försig för en PIC men det är skrivet i C.

Du kan säkert hitta en och annan gobit som du kan ha nytta av :)

TCP/IP Networking Part 1: Web-Based Status Monitoring

TCP/IP Networking Part 2: Web-Based Control

TCP/IP Networking Part 3: Advanced Web-Based Control
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Intressanta filmer! Har alltid undrat hur man får in variabler i HTML-kod på ett smidigt sätt...
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Undrar var servern ligger som filmerna är på. Laddade ner i > 5MB/s, och det är nog inte så vanligt från t.ex. USA.
Skriv svar