Pc'n hemma

Java-applikation i Pc'n

Varje gång stampen uppdaterar sin display, ungefär fyra gånger per minut, skickas den aktuella temperaturen till pc´n via serieporten. En java-applikation fångar upp det som kommer via serieporten fyra gånger i timmen. Mätvärdet skickas vidare till webbservern för att visa aktuell temperatur i webb och wapp-tjänsten. Varje heltimme sparas det aktuella mätvärdet dessutom i en lokal Access-databas på pc´n.

Klockan 23 varje kväll beräknar Java-applikationen dagens max, medel och minitemperatur och lagrar dem i en speciell tabell i databasen. Anledningen till att de inte räknas fram då de behövs, utan finns lagrade separat, är att förenkla och snabba upp hanteringen av dessa värden. Innan beräkningen av min, medel och max görs en kontroll vilket datum den senaste  posten i tabellen hade, för att beräkna även tidigare dagars, om datorn av någon anledning var avstängd tidigare.  De erhållna värdena skickas även till en speciell tabell i databsen på webbservern.

Grafisk kurva över en månads min, medel och max-temperaturer

En grafisk kurva över en vald månads temperaturer kan presenteras med hjälp av en Java-applikation på hem-PCn. Applikationen byggdes ur perspektivet "learning by doing". Eftersom jag är självlärd i programspråket Java ville jag testa att rita kurvor med hjälp av data hämtat ur en databas, och viktigare, att bygga en objektorienterad applikation där varje hämtat mätvärde bildade objekt i klassen "Maetning" med attributen minitemp, maxitemp, dag och så vidare. För att lättare kunna hålla ordningen på alla mät-objekten, och lätt kunna iterera över dem, stoppas alla objekten in i en array, också den i klassen Maetning.

En hel del arbete återstår innan det grafiska användargränssnittet är riktigt snyggt, men det var inte det som var huvudpoängen med applikationen.

Konvertering Accessdatabas på hemdatorn till MySql på Wille via Internet

Två databaser, en lokalt hemma och en på jobbet

Från början byggdes systemet för att användas lokalt, där överföringen skedde från Basic Stamp till en Access-databas. Då systemet efter drygt ett år byggdes ut för att även vara åtkomligt från Internet, såg jag ingen anledning att ändra på det, utan valde att bygga en Java-applikation som plockar posterna ur Accessdatabasen och överför dem i tur och ordning till en MySql-databas på datorn Wille, placerad på jobbet. Ur säkerhets och backup- synpunkt är det dessutom en fördel att ha två skilda databaser.

En Java-applikation där jag utnyttjar objekorienteringens fördelar, sköter överföringen av de nytillkomna posterna i Access-databasen till MySql-databasen. (Jag tror att det fortfarande byggs många system i Java där objektorienteringens fördelar inte utnyttjas, utan de byggs som om de var byggda i ett språk som inte är objektorienterat!)

Kommunikationen mellan maskinerna sker via Internet, i hemmet var det från början via en vanlig uppringd uppkoppling. Applikationen börjar med att kontrollera datumet på den sista posten i MySql-databasen, och överför därefter de nya posterna från Access-databsen till MySql-databasen.

Applikationen utnyttjar två olika ODBC-kopplingar, en mot vardera databasen. Praktiskt är det arrangerat på så sätt att två olika instanser i klassen "Databaskoppling" skapas, en för vardera ODBC- kopplingen.

Via den ena instansen plockas en databas-post ur Access-datbasen. Posten läggs omedelbart till i MySql-databasen via den andra instansen. Detta upprepas för alla nya poster som skall läggas till.

Utskrifter till Systemfönstret

Applikationen gör vissa utskrifter till bildskärmen. Dessa byggdes från början in i systemet för att underlätta eventuell debugging, och skulle plockas bort från det färdiga programmet. Det visade sig att användaren behövde någon slags feedback på "att något händer" när applikationen arbeter, därför återinfördes en del av dem.

Dessutom visade det sig att med hjälp av logg-funktionen i editorn Ultra-Edit, som jag använde vid utvecklingen av Java-applikationerna, "automatgenererades" ett slags interaktionsdiagram.
Tillbaka

Skicka meddelande till BoKrister
Logga in
Senast ändrad: 2009-06-02.