Intelligent House Control System

Størrelse: px
Starte visningen fra side:

Download "Intelligent House Control System"

Transkript

1 OOPJ-E-1 F2003 Side 1 af 38 Intelligent House Control System udført af Kim Damgaard Indholdsfortegnelse Intelligent House Control System... 1 Indholdsfortegnelse... 1 Indledning... 2 Problemformulering... 2 Vision (formålet med programmet)... 2 Inception-fasen... 2 Krav til systemet (hvordan programmet skal virke)... 2 Definition af system grænse... 3 Primære aktører... 3 Primære aktørers mål... 3 Definer Use Cases... 4 Go - No go?... 5 Elaboration-fasen... 5 Testovervejelser... 8 Hvordan opgaven tænkes løst... 8 Domain Model... 8 Detaljeret design Beskrivelse af hvordan programmet virker Lever programmet op til forventningerne Bilag Bilag 1: SystemTester.java Bilag 2: Output ved kørsel af klassen SystemTester Bilag 3: Kildetekst til selve programmet Bilag 4: Klassediagram... 38

2 OOPJ-E-1 F2003 Side 2 af 38 Indledning Dette projekt er udarbejdet ved anvendelse af den proces, der officielt benævnes Unified Process (UP). UP kombinerer "best practices", iterativ- og risikodreven udvikling og anvendes ofte ved udvikling af objekt-orienterede systemer. UP består af fire faser, men grundet denne opgaves tidsmæssige begrænsninger når vi kun at arbejde i de to første, nemlig Inception-fasen og Elaboration-fasen. Endvidere er det iterative forløb ikke afspejlet i denne rapport og det vil kun være en lille delmængde af det endelige system, som kan nå at blive implementeret. Intelligent House Control System benævnes herefter som IHCS. Problemformulering Langt de fleste huse i dag indeholder ingen intelligent styring. Deres ejere må således leve med større risiko for skader ved indbrud, strømsvigt, gasudslip, brand- og vandskader osv. De går også glip af besparelser i udgifterne til bl.a. varme og lys, som en intelligent styring beviseligt medfører. Endvidere er der ikke mulighed for at fjernstyre/overvåge husets funktioner f.eks. via internettet. Vision (formålet med programmet) Intelligent House Control System er et bud på, hvordan styringen af fremtidens bolig skal fungere. Med dette system installeret kan husejeren styre husets funktioner efter sine behov. Systemet fødes med oplysninger i henhold til de fysiske forhold så som rum-fordeling, sensorer, tænd/sluk kontakter, lukke/åbne mekanismer. Endvidere angives ønskede temperaturer, tidsintervaller, koder/fingeraftryk for adgangskontrol, hvilke funktioner der skal kunne fjernstyres etc. Herefter slår systemet eksempelvis alarm ved indbrud, lukker for vandet ved opståede utætheder, lukker for gassen i tilfælde af udslip, tænder for lyset i indkørsel og entre når man kommer hjem om aftenen. Mulighederne er mange. Ændringer i systemets opsætning kan simuleres grafisk. Via Internet kan man logge sig på husets styresystem og f.eks. følge med i hvad der foregår i huset, tænde for varmen, kontrollere om vinduer er lukket og hvis ikke lukke dem (kræver selvfølgelig motor). Inception-fasen I denne fase undersøges det om, der skal investeres i en mere dybdegående analyse af problem-domænet. Med andre ord: Skal vi efter denne fase starte på Elaboration-fasen? Endvidere er det vigtigt at få afklaret om projektets interessenter er enige om visionen for projektet. Krav til systemet (hvordan programmet skal virke) Man kan med fordel kategorisere kravene efter FURPS+ modellen, for bl.a. at minimere risikoen for at glemme krav til systemet. For at finde samt dokumentere de funktionelle krav (F'et i FURPS+) benyttes Use-Case modellen, hvor ideen er at fokusere på hvorledes brugeren/aktøren, ved at bruge systemet, kan få sine mål opfyldt. Fremgangsmåden er at vælge system-grænse, identificere primære aktører; identificere primære aktørers mål og slutteligt definere Use Cases, der opfylder aktørernes mål.

3 OOPJ-E-1 F2003 Side 3 af 38 Definition af system grænse Systemet består af selve applikationen samt hardwaren og kan tilgås vha. et lokalt brugerinterface eller via Internettet. Uden for system grænsen er aktører samt en eventuel alarm-central. Primære aktører Følgende primære aktører er identificeret: Husejeren (systemadministrator) Personer med adgang til huset Bevægelse (beboere, gæster, rengøringspersonale, indbrudstyv, husdyr etc.) Tiden Temperaturen (ude og inde) Lys/mørke Gas, røg, vand og strøm Overvågningsproces Primære aktørers mål Aktør Husejeren (systemadministrator) Personer med adgang til huset Bevægelse Tiden Temperaturen (ude og inde) Lys/mørke Gas, røg, vand og strøm Overvågningsproces Mål Minimere risiko for skader. Minimere udgifterne til bl.a. varme og lys. Fjernstyre/overvåge husets funktioner f.eks. via internettet. Øge komforten. Sætte systemet op i henhold til de fysiske forhold så som rum-fordeling, vinduer, døre, sensorer, tænd/sluk kontakter, lukke/åbne mekanismer. Indtaste temperaturer, tidsintervaller. Angive personoplysninger så som adgangskoder/fingeraftryk, mobil.nr., -adresser. Angive hvilke funktioner der skal kunne fjernstyres etc. Simulere ændringer i systemets opsætning grafisk. Start systemet. Sætte alarm til/slå alarm fra. Tænde for lys. Give alarm. Regulere rum- og varmtvandstemperaturer. Forhindre/tillade adgang for givne personer i angivne tidsrum. Slukke for lyset efter en periode uden bevægelse. Regulere fremløbstemperatur i varmesystemet. Undgå at tænde for lys ved bevægelse, hvis der i forvejen er lyst nok. Give alarm. Slukke for gas elller vand. Genstarte system-processer, der er gået ned. Meddele systemadministrator vedr. system-fejl.

4 OOPJ-E-1 F2003 Side 4 af 38 Definer Use Cases En Use Case ifbm. kravanalyse for en software applikation bør, som en tommelfingerregel, omhandle forretningsprocesser på et niveau defineret som følger: En handling (som respons på en forretningsbegivenhed) udført af én person på ét sted på én gang, der tilfører målbar værdi til virksomheden og efterlader data på et konsistent stade. Ved at gennemgå listen over de primære aktørers mål og med ovenstående definition in mente, har jeg på nuværende tidspunkt identificeret følgende Use Cases: UC1: UC2: UC3: UC4: UC5: UC6: UC7: UC8: UC9: UC10: UC11: UC12: UC13: UC14: UC15: UC16: UC17: UC18: UC19: UC20: UC21: UC22: UC23: UC24: UC25: UC26: UC27: UC28: UC29: UC30: UC31: Angive/vedligeholde personoplysninger så som adgangskode/fingeraftryk, mobil.nr., -adresse og billede. Angive roller, tidsintervaller og tilknytte disse til personer. Angive oplysninger om hus så som adresse, plantegning og tilknyttede personer. Angive rum. Angive udvendige vinduer og døre. Angive oplysninger om alarm-system. Angive bevægelses-sensor. Angive lys-sensor. Angive strømsvigt-føler. Angive gaslugt-sensor. Angive røgalarmer. Angive vandmåler. Angive temperatur-følere. Angive tænd/sluk kontakter og om disse kan fjernstyres. Angive lukke/åbne mekanismer og om disse kan fjernstyres. Angive ønskede temperaturer. Angive oplysninger om varmesystemet. Angive varmestyringsperioder. Simulere ændringer i systemets opsætning. Sætte alarm til. Slå alarm fra. Tænde for lys. Slukke for lys. Give alarm. Regulere rum-temperatur. Regulere varmtvandstemperatur. Slukke for gas. Slukke for vand. Start systemet. Genstarte system-processer, der er gået ned. Meddele systemadministrator vedr. system-fejl. Uden for denne rapport er disse Use Cases beskrevet i "Brief Format". Ligeledes uden for rapporten udarbejdes på dette tidspunkt i projektet et Use Case Context diagram for at tilvejebringe et overblik over systemet. Det er vigtigt at notere sig, at ovenstående liste, i nuværende fase, ikke er udtømmende. Endvidere vil de funktionelle krav, som vores Use Cases skal være med til at afdække, næsten med sikkerhed, blive udsat for ændringer. Ændringer undervejs i projektforløbet skal ikke opfattes som et problem, men nærmere som en drivkraft i den igangværende proces (UP).

5 OOPJ-E-1 F2003 Side 5 af 38 Ved fortsat at benytte FURPS+ modellen, skal de ikke-funktionelle krav nu findes. Endvidere skal næste iteration planlægges ved at "ranke" kravene. Disse ting udelades dog også i besvarelsen af denne opgave. Go - No go? Det vurderes at projektet kan gennemføres samt at der vil være et stigende og profitabelt marked for systemer af denne type. Det besluttes at gå videre til Elaboration-fasen. Elaboration-fasen Højest rankede Use Cases beskrives nu i "Fully Dressed" format (her vises kun Basic Flows). Disse bør i virkelighedens verden understøttes/ledsages af hurtigt udarbejdede skærmbillede layouts. UC1: Angive/vedligeholde personoplysninger så som adgangskode/fingeraftryk, mobil.nr., adresse og billede. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om personer, der relaterer sig til IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om person er registeret i systemet. Trigger: Husejeren ønsker at tilknytte personer til IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrer personoplysninger". 2. Systemet søger efter allerede registrede personer. 3. Systemet lister de oprettede personer. 4. Husejeren markerer den person, hvor oplysningerne skal opdateres. 5. Husejeren opdaterer relevante felter. 6. Husejeren trykker på "Gem". 7. Systemet gemmer personoplysningerne. UC3: Angive oplysninger om hus så som adresse, plantegning og tilknyttede personer. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om sit hus, der skal styres af IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om huset er registeret i systemet. Trigger: Husejeren ønsker at styre sit hus vha. IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrere husoplysninger". 2. Systemet søger efter husoplysninger. 3. Systemet konstaterer at der ikke findes oplysninger. 4. Husejeren udfylder felterne. 5. Husejeren trykker på "Gem". 6. Systemet gemmer oplysningerne.

6 OOPJ-E-1 F2003 Side 6 af 38 UC4: Angive rum. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om rummene i huset, der skal styres af IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om rum er registeret i systemet. Trigger: Husejeren ønsker at styre sit hus vha. IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrere rum". 2. Systemet søger efter rum. 3. Systemet konstaterer at der ikke findes oplysninger. 4. Husejeren udfylder felterne. 5. Husejeren trykker på "Gem". 6. Systemet gemmer oplysningerne. UC5: Angive udvendige vinduer og døre. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om vinduer og døre i huset, der skal styres af IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om udvendige vinduer og døre er registeret i systemet. Trigger: Husejeren ønsker at styre sit hus vha. IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrere vinduer og døre". 2. Systemet præsenterer rummene og husejeren udvælger et. 3. Husejeren tilføjer de nødvendige vinduer/døre (mulige typer er foruddefineret i systemet). 4. Husejeren trykker på "Gem". 5. Systemet gemmer oplysningerne. UC7 og 8: Angive bevægelses-sensor, lys-sensor. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om bevægelses- og lys-sensorer i huset, der skal styres af IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om bevægelses- og lys-sensor er registeret i systemet. Trigger: Husejeren ønsker at styre sit hus vha. IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrere bevægelses- og lys-sensorer". 2. Systemet præsenterer rummene og husejeren udvælger et. 3. Husejeren tilføjer bevægelses- og/eller lys-sensor. 4. Husejeren trykker på "Gem". 5. Systemet gemmer oplysningerne.

7 OOPJ-E-1 F2003 Side 7 af 38 UC14: Angive tænd/sluk kontakter og om disse kan fjernstyres (er simplificeret til "Angiv lampe"). Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at registrere oplysninger om lamper i huset, der skal styres af IHCS. Preconditions: Husejeren er logget på systemet. Success Guarantee (Postconditions): Oplysninger om lampe er registeret i systemet. Trigger: Husejeren ønsker at styre sit hus vha. IHCS. Basic Flow: 1. Husejeren starter skærmbilledet "Registrere lamper". 2. Systemet præsenterer rummene og husejeren udvælger et. 3. Husejeren tilføjer lampe. 4. Husejeren trykker på "Gem". 5. Systemet gemmer oplysningerne. UC19: Simulere ændringer i systemets opsætning. Primary Actor: Husejeren. Stakeholders and Interests: Husejeren: Ønsker at simulere opsætningen af IHCS. Preconditions: IHCS er sat op og startet. Husejeren er logget på systemet. Success Guarantee (Postconditions): Husejeren har fået et overblik over hvorledes huset fungerer med den nuværende opsætning af IHCS. Trigger: Husejeren ønsker at afgøre om opsætningen af IHCS er optimal. Basic Flow: 1. Husejeren vælger hus, der skal simuleres. 2. Husejeren starter skærmbilledet "Simuler IHCS opsætning". 3. Systemet præsenterer rum, sensorer, lamper samt instruktioner. 4. Husejeren følger instruktionerne, herunder bevæge cursoren hen over de grønne bevægelses-følere for at simulere bevægelse, for at sikre sig at opsætningen af IHCS er optimal. 5. Husejeren lukker vinduet. UC22: Tænde for lys (er tilsvarende UC14 simplificeret). Primary Actor: Bevægelse. Stakeholders and Interests: Husejeren samt øvrige personer med adgang til huset: Ønsker at øge komforten. Preconditions: IHCS er sat op og startet. Bevægelses- og lys-sensorerer er monteret. Lamper er tilsluttet. Success Guarantee (Postconditions): Lyset tændes som ønsket. Trigger: Bevægelses-sensor aktiveres. Basic Flow: 1. En bevægelses-sensor aktiveres og denne sender signal til IHCS. 2. I systemet sættes sensoren i "Bevægelse registreret" mode. 3. Sensoren notificerer registrerede bevægelses-lyttere at bevægelse forekom (bevægelses-lyttere svarer i denne Use Case kun til et rum, men andre objekter så som alarm etc. vil komme til). 4. Rummet finder lamper, der skal tændes ved bevægelse (hvis det ikke er for lyst). 5. Lyset tændes. UC23 er ikke implementeret rigtigt. Funktionen er kun implementeret i simuleringen, hvor tændte lamper slukkes efter 5 sekunder.

8 OOPJ-E-1 F2003 Side 8 af 38 Herefter skal der nu udarbejdes aktivitetsdiagrammer, der er OOAD s flowcharts, som viser aktiviteternes hændelsesforløb og billedeliggører vores Use Cases. Disse vises heller ikke i denne rapport. Testovervejelser Afprøvning af programmet er inspireret af testmetoden "test-first programming", der anvendes i Extreme Programming (XP). Og da hver iteration i UP i princippet indeholder en "mini V-model", har de gode gamle test-dyder fra V-modellen, der jo også indgyder til at teste fra starten, selvfølgelig også været en kilde til inspiration. Fremgangsmåden ved testmetoden "test-first programming" er først at skrive lidt testkode, dernæst lidt kode der skal testes. Når koden er succesfuldt testet gentages forløbet. Ovenstående er gennemført vha. klassen SystemTester.java som kan ses i Bilag 1. Outputtet af testen kan ses i Bilag 2. Hvordan opgaven tænkes løst Før det egentlige designarbejde påbegyndes, er det formålstjenstligt at få afklaret input og output system events relateret til "Basic Flow" scenariet i den Use Case, der arbejdes med. Det letter overgangen fra analysearbejdet til designarbejdet. Hertil anvendes et System Sekvens diagram, som konkretiserer operationerne, der relaterer sig til Basic Flow scenariet. Senere i design-forløbet laves "rigtige" sekvensdiagrammer, hvor det vil fremgå hvilke objekter i systemet, der får ansvaret for at udføre operationerne. Domain Model Designarbejdet påbegyndes ved at udarbejde en Domain Model. Da vi jo arbejder i henhold til UP er det vigtigt ikke at kaste sig ud i og lave en komplet model på nuværende stadie. I efterfølgende iterationer udbygges modellen til også at afspejle disse. Domain modellen repræsenterer konceptuelle klasser (ting, begreber fra den virkelige verden) og ikke software klasser. Et eksempel på en software klasse kan f.eks. være en interface klasse til en database. For at finde de konceptuelle klasser i problem-domænet er Use Cases gennemgået for navneord og ydermere er der anvendt en "Conceptual Class Category List". Kandidater, der kan repræsenteres vha. simple datatyper som f.eks. int, er ikke konceptuelle klasser, men nærmere attributter. Andre kandidater som eksempelvis mobil.nr. og adresse der repræsenteres vha. en lidt mere kompleks datatype nemlig String, betragtes stadig som attributter. Flg. liste repræsenterer de konceptuelle klasser, der relaterer sig til iterationerne gennemløbet indtil nu: Hus Lampe Person Rum Bevægelses-sensor Dør Lys-sensor Vindue Alarm Varmesystem

9 OOPJ-E-1 F2003 Side 9 af 38 Herefter skal vi, uden at anvende ret meget tid, identificere associationer mellem de konceptuelle klasser. Hertil anvendes en "Common Associations List": Category A is physical part of B* A is logical part of B* A is physically contained in/on B* A is logically contained in B* A is a description for B A is a line item of a transaction or report B A is known/logged/recorded/reported/captured in B* A is a member of B A is an organizational subunit of B A uses or manages B A communicates with B A is related to a transaction B A is a transaction related to another transaction B A is next to B A is owned by B A is an event related to B Candidates Rum - Hus Dør - Rum Vindue - Rum Varmesystem - Hus Alarm - Hus Bevægelses-sensor - Rum Lys-sensor - Rum Lampe - Rum Person - Hus Kategorier markeret med * er af speciel vigtighed i Domain Model henseende.

10 OOPJ-E-1 F2003 Side 10 af 38 Slutteligt er attributter identificeret for de enkelte klasser i Domain modellen, der herefter, på nuværende tidspunkt, ser således ud: Figur 1: Domain Model Det er nærliggende at lave i hvert fald to nye generelle (abstrakte) klasser: Aabning som Doer og Vindue kunne nedarve fra og Sensor som BevaegelsesSensor og LysSensor kunne nedarve fra. Detaljeret design Efter alle de forudgående undersøgelser føler jeg mig godt rustet til det mere detaljerede designarbejde og kaster mig over udarbejdelse af klassediagram og sekvensdiagrammer, hvor kun klassediagrammet (se Bilag 4) er medtaget i denne rapport. Beskrivelse af hvordan programmet virker Ved distribution af programmet leveres et eksempel på en plantegning samt en eksekverbar jar-fil (indeholder både class- og java-filer) og startes eksempelvis fra kommandolinien ved at skrive: java -jar IHCS.jar

11 OOPJ-E-1 F2003 Side 11 af 38 Filen IHCS.jar er gjort eksekverbar ved at lægge en manifest-fil med i jar-filen. I manifestfilen står der hvilken klasse (miracon.ihcs.systemtester) som indeholder main()-metoden. Jeg har valgt at placere klasserne i forskellige pakker således at klasser med beslægtet funktionalitet er placeret i samme pakke. Pakkehierarkiet er som følger: miracon.ihcs miracon.ihcs.dbpackage miracon.ihcs.huspackage miracon.ihcs.installationerpackage miracon.ihcs.personpackage miracon.ihcs.uipackage (SystemTester) (TestDb og Sequences) (Hus, Rum, Aabning, Hoveddoer, Vindue etc.) (VarmeSystem, Alarm, Sensor, Lampe etc.) (Person) (SimulerApplet, SimulerFrame, LukVindue etc.) Ovenstående er også afbildet på klassediagrammet (se Bilag 4). I kildeteksten (se Bilag 3) for programmet er der undervejs kommentarer med henvisninger til de ovenfor beskrevne Use Cases. På den måde anskueliggøres det hvor i koden de funktionelle krav implementeres. Når programmet startes slettes eventuelt eksisterende filer, skabt vha. Java's mekanisme kaldet serialisering, indeholdende opsætningen af IHCS. Dette vil selvfølgelig ikke ske i den endelige version af programmet. Herefter instantieres testdatabasen (se kommentarer i SystemTester.java og TestDb.java for flere detaljer) således, at vi nemt kan gemme ændringer i opsætningen af IHCS. Samtidig instantieres klassen Sequences, der benyttes ved tildeling af et unikt personid til hver person, der oprettes i systemet. Det unikke personid hentes vha. metoden getnextpersonid() som er placeret i klassen TestDb. Herefter oprettes testpersoner. Disse smides i en Vector som gemmes i filen personer.ser. Bemærk at der anvendes forskellige konstruktører. Konsruktøren i klassen Person er overloaded (parameterlisterne er forskellige). Bemærk også at data i klassen Person er indkapslede (beskyttede). Det er opnået ved at erklære variablerne private og herefter oprette såkaldte get- og set-metoder. Opstår der fejl skrives fejlmeddelelse til standard output, hvilket vil sige det vindue hvorfra programmet blev startet. Ligeledes i dette vindue vises nu de oprettede testpersoner således, at den liste kan sammenlignes med en senere liste, der vises efter sletning af en person; oprettelse af en ny og endelig opdatering af en eksisterende. Herefter fødes systemet med oplysninger om huset, der skal styres af IHCS. Også huset lægges i en Vector (på sigt skal systemet måske kunne styre flere huse), der senere gemmes i filen huse.ser. Også i klassen Hus er data indkapslede. Som det også fremgår af klassediagrammet er der en "har-relation" mellem Hus og Rum: Et Hus har 1 til * (flere) Rum. Denne relation betegnes også som en "Composite Aggregation"; derfor den fyldte "diamant" i den ene ende af relationen. Relationen er implementeret vha. Vectoren vrum i klassen Hus, der så også er blevet tildelt ansvaret for at addere, fjerne og oplyse om rum. Dette er implementeret ved oprettelse af metoderne addrum, removerum og getrum. Netop addrum anvendes nu til at oprette rum og knytte dem til huset. Metoden removerum testes også. Dernæst oprettes vinduer, døre, bevægelses- og lys-sensorer samt lamper. Ansvaret for dette er tildelt til klassen Rum, der har en "har-relation" til disse objekter. Vinduerne og dørene, der er specialiseringer af den abstrakte klasse Aabning, adderes vha. metoden addaabning. Udover denne metode har Rum også metoderne removeaabning og getaabninger. Bevægelses-sensorer adderes med metoden addbevaegelsessensor. I den metode instantieres BevaegelsesSensor med bla. en reference til rummet som parameter.

12 OOPJ-E-1 F2003 Side 12 af 38 Rummet sender altså en reference til sig selv og det i sin egenskab som "bevægelses-lytter". Dette er et tydeligt eksempel på polymorfi (mere om det senere). Rummet er i stand til at opføre sig som en "bevægelses-lytter", da klassen implementer interfacet BevaegelsesListener. Bevægelses-sensoren gør så det i sin konstruktør, at den registrerer lytteren ved at kalde metoden addbevaegelseslistener. Lys-sensorer adderes vha. metoden addlyssensor og lamper adderes vha. metoden addlampe. Ved oprettelsen af en lampe kan det bestemmes om den skal tænde ved bevægelse eller ej. Dette kan selvfølgelig ændres senere hvis husejeren måtte ønske det. Så er vi ved at være ved vejs ende mht. opsætningen af IHCS i nuværende version. Vi mangler bare at tilknytte alle personer til huset. Det sker ved at kalde metoden addperson på det objekt (Hus) som variablen vhus1 peger på. Udover addperson indeholder Hus også metoderne removeperson og getpersoner. Metoden removeperson testes ved at lade som at en person fraflytter. Endeligt gemmes, som også nævnt tidligere, Vectoren indeholdende Hus(e) med alle relaterede objekter i filen huse.ser. Hvad objektet Hus faktisk indeholder vises til sidst ved at udskrive objektet. Huset's tostring metode, der er nedarvet fra Object men her tilsidesat, kaldes implicit. Nu da systemets opsætning er klar/ændret kan UC19 og 22 implementeres/testes. Med muligheden for at køre simuleringen via Internettet i baghovedet, blev dette til at starte med forsøgt vha. klassen SimulerApplet, der nedarver fra Applet. Men jeg kom hurtigt ud i nogle sikkerhedsmæssige problemer. Se følgende output fra Java-konsol vinduet i Internet Explorer: com.ms.security.securityexceptionex[miracon/ihcs/uipackage/simulerapplet.jbinit]: cannot access file huse.ser at com/ms/security/permissions/fileiopermission.check... Appletten kunne ikke initialiseres. Kontakt venligst leverandøren af IHCS og oplys nedenstående fejl: com.ms.security.securityexceptionex[miracon/ihcs/uipackage/simulerapplet.jbinit]: cannot access file huse.ser... Dette blev forsøgt omgået ved at generere html-fil inkl. parametre til appletten dynamisk, men det viste sig hurtigt ikke at være en farbar vej. Jeg valgte herefter at bruge en Frame (klassen SimulerFrame) og ved nærmere eftertanke synes jeg det er ok, at simuleringen ikke kan køre via Internettet. Under testen af appletten benyttedes muligheden for automatisk at starte brugerens standardbrowser med html-filen som argument. SimulerFrame instantieres med Vectoren vhuse som parameter; størrelsen sættes og vinduet gøres synligt på skærmen. JDeveloper generer kode således at brugeren kan lukke vinduet ved at aktivere menupunktet File, Exit. Men jeg har tilføjet muligheden for at lukke vinduet ved at trykke på på krydset i øverste højre hjørne eller taste Alt-F4 (Windows). Implementeret ved flg. linie: this.addwindowlistener(new LukVindue()); Klassen LukVindue er i stand til at opføre sig som WindowListener, ikke ved at implementere interfacet, men ved at nedarve fra WindowAdapter, der implementerer interfacet. På den måde behøver vi kun at tilsidesætte den metode vi har brug for (windowclosing) frem for at skulle implementere alle, af interfacet, krævede metoder. Herefter sættes Framen (implements MouseMotionListener) til at lytte efter musebevægelser. Musebevægelserne anvendes til at simulere bevægelse i huset.

13 OOPJ-E-1 F2003 Side 13 af 38 For at kunne simulere både når det er mørkt og når det er lyst startes en tråd under initialiseringen af Framen. Tråden sørger for at der skiftes mellem lys og mørke hvert halve minut og startes vha. flg. linie: new Thread(new SkiftMoerkeLys(vRum, this)).start(); Klassen SkiftMoerkeLys kan køre i en tråd da den implementerer interfacet java.lang.runnable. Bemærk at Framen overfører en reference til sig selv således at SkiftMoerkeLys kan gentegne Framen. Selve skiftet mellem mørkt og lyst sker ved at manipulere med værdien for variablen antalluxligenu i alle instanser af LysSensor. Efter initialiseringen kaldes paint()-metoden automatisk og hus samt installationer tegnes (bemærk at de forskellige installationer har ansvaret for at tegne sig selv): Figur 2: Simuler IHCS opsætning (2 lamper tændt) Sensorer og rektanglet, der repræsenterer dem, gemmes i en Hashtable, der efterfølgende gennemløbes i metoden mousemoved. Til sidst i paint()-metoden startes en tråd, der sørger for at slukke lamper, der har været tændt i 5 sekunder. Det sker vha. flg. linie: new Thread(new SlukLamper(vRum, 5000, this)).start(); Klassen SlukLamper implementerer interfacet Runnable og kalder metoden settaendt med parameteren false på de instanser af Lampe, hvor gettaendttid() er større end 5 sekunder.

14 OOPJ-E-1 F2003 Side 14 af 38 Når brugeren simulerer bevægelse ved at bevæge musecursoren kaldes metoden mousemoved. Ovennævnte Hashtable gennemløbes ved at bruge en Enumeration (opremsning). Er musecursoren placeret indenfor et rektangel, der repræsenterer en sensor, og er dette en bevægelses-sensor, kaldes metoden setbevaegelse med parameteren true på instansen af bevægelses-sensoren. Det medfører kald af metoden notificerbevaegelseforekom(), som også er placeret i BevaegelsesSensor. Et event af typen BevaegelsesEvent oprettes med en reference til bevægelses-sensoren selv, således at vi altid kan se hvilket objekt der initierede eventet. Og så er vi tilbage til det med polymorfien. Nu sendes BevaegelsesEvent'et nemlig til de registrerede "bevægelses-lyttere" som i teorien kan være objekter af alle typer blot de implementerer interfacet BevaegelsesListener. Event'et sendes vha. flg. linie: ((BevaegelsesListener)regBevaegelsesLyttere.elementAt(i)).bevaegelseForekom(be); Klassen Rum opfylder sin pligt og implererer den krævede metode bevaegelseforekom. Her findes de lamper, der skal tændes ved bevægelse (hvis det ikke er for lyst). Skal lampen tændes kaldes metoden settaendt med parameteren true på instansen af den pågældende lampe. Det medfører kald af metoden settaendttid således, at vi kan holde styr på de lamper, der skal slukkes efter 5 sekunder. Slutteligt kaldes repaint() således, at vinduet afspejler objekternes tilstand. Lever programmet op til forventningerne Jeg synes at man med rimelighed kan sige, at de funktionelle krav, som der er arbejdet med indtil nu, er/kan blive opfyldt. Endvidere føler jeg mig overbevist om at systemet, når alle iterationer er gennemført, kan leve op til visionen for programmet.

15 OOPJ-E-1 F2003 Side 15 af 38 Bilag Bilag 1: SystemTester.java package miracon.ihcs; import miracon.ihcs.dbpackage.*; import miracon.ihcs.huspackage.*; import miracon.ihcs.personpackage.*; import miracon.ihcs.uipackage.*; import java.awt.*; import java.io.*; import java.util.*; public class SystemTester public static void main(string[] args) // Oplysninger omkring systemets opsætning gemmes i filer. // Ved start op denne test ønskes det at starte fra scratch. // Filer indeholdende serialiserede objekter slettes. File workdir = new File("."); // Opret et array af filer. File[] fil = workdir.listfiles(); // Gennemløb array. for (int i = 0; i < fil.length; i++) if (fil[i].isfile() && fil[i].getname().tolowercase().endswith(".ser")) fil[i].delete(); // Instantier testdatabasen. TestDb kan kun instantieres en gang (Singleton). // Metoden getinstance er static (klassemetode), hvorfor den kan kaldes selvom // der endnu ikke findes en instans af TestDb. TestDb db = TestDb.getInstance(); // UC1, punkt 1: Husejeren starter skærmbilledet "Registrer personoplysninger" (ikke // implementeret). // Hent testpersoner (UC1, punkt 2: Systemet søger efter allerede registrede personer). Vector vpersoner = new Vector(); try vpersoner = (Vector) db.hent("personer.ser"); catch (Exception exhent) // Testpersoner kunne ikke findes. Opret testpersoner. vpersoner.addelement(new Person(db.getNextPersonId(), "Kim Damgaard", " ", "kd.jpg", 1234)); vpersoner.addelement(new Person(db.getNextPersonId(), "Janette Damgaard", " ", "jd.jpg", 2345)); vpersoner.addelement(new Person(db.getNextPersonId(), "Marc Damgaard", " ", "md.jpg", "md_finger.jpg")); // Gem testpersoner. try db.gem(vpersoner,"personer.ser"); catch (Exception exgem) System.out.println("Systemfejl. Personer kan ikke gemmes. Kontakt venligst "+ "leverandøren af IHCS og oplys nedenstående fejl:"); exgem.printstacktrace(); // Vis testpersoner (UC1, punkt 3: Systemet lister de oprettede personer). System.out.println("\nOprettede personer:\n"+ " "); for (int i = 0; i < vpersoner.size(); i++) System.out.println((Person)vPersoner.elementAt(i)); // Slet testperson og opret en ny vpersoner.removeelementat(1); vpersoner.addelement(new Person(db.getNextPersonId(), "Simone Damgaard", null, "sd.jpg", "sd_finger.jpg")); // Opdater personid 1 (UC1, punkt 4: Husejeren markerer den person, hvor oplysningerne // skal opdateres.) for (int i = 0; i < vpersoner.size(); i++) if (((Person)vPersoner.elementAt(i)).getPersonId() == 1) // UC1, punkt 5: Husejeren opdaterer relevante felter.

16 OOPJ-E-1 F2003 Side 16 af 38 // UC1, punkt 6: Husejeren trykker på "Gem". // UC1, punkt 7: Systemet gemmer personoplysningerne. // Gem og hent testpersoner. try db.gem(vpersoner,"personer.ser"); vpersoner = (Vector) db.hent("personer.ser"); // Vis testpersoner igen. System.out.println("Personer efter sletning af en, oprettelse af en ny og opdat. af en "+ "eksist.:\n"+ " "); for (int i = 0; i < vpersoner.size(); i++) System.out.println((Person)vPersoner.elementAt(i)); catch (Exception ex) System.out.println("Person-oplysninger kunne ikke gemmes/hentes. Kontakt venligst "+ "leverandøren af IHCS og oplys nedenstående fejl:"); ex.printstacktrace(); // UC3, punkt 1: Husejeren starter skærmbilledet "Registrere husoplysninger" (ikke // implementeret). // Hent husoplysninger (UC3, punkt 2: Systemet søger efter husoplysninger). // Til at starte med opererer vi kun med et hus. På sigt skal systemet kunne styre flere // huse/bygninger; derfor bruges en Vector. Vector vhuse = new Vector(); Vector vrum = new Vector(); try vhuse = (Vector) db.hent("huse.ser"); catch (Exception exhent) // Husoplysninger kunne ikke findes (UC3, punkt 3: Systemet konstaterer at der ikke // findes oplysninger). // Opret hus (UC3, punkt 4: Husejeren udfylder felterne). Hus vhus1 = new Hus("Valbo Alle","16","2665","Vallensbæk Strand","plantegning.gif"); // UC4, punkt 1: Husejeren starter skærmbilledet "Registrere rum" (ikke implementeret). // UC4, punkt 2: Systemet søger efter rum. if (vhus1.getrum().size() == 0) // UC4, punkt 3: Systemet konstaterer at der ikke findes oplysninger. // Opret rum i huset (UC4, punkt 4: Husejeren udfylder felterne). vhus1.addrum("bryggers",330,10,160,182); vhus1.addrum("gang",330,192,(3*160),91); vhus1.addrum("køkken",170,10,160,182); vhus1.addrum("spisestue",10,10,160,182); vhus1.addrum("stue",10,192,320,(182+91)); vhus1.addrum("kontor",330,(192+91),160,182); vhus1.addrum("børneværelse1",( ),(192+91),160,182); vhus1.addrum("børneværelse2",( *2),(192+91),160,182); vhus1.addrum("soveværelse",650,10,160,182); vhus1.addrum("badeværelse1",490,10,160,91); vhus1.addrum("badeværelse2",490,101,160,91); vhus1.addrum("badeværelse3",10,10,100,100); // Vi prøver også lige at fjerne et rum (Badeværelse3). vrum = vhus1.getrum(); for (int i = 0; i < vrum.size(); i++) if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Badeværelse3")) vhus1.removerum((rum)vrum.elementat(i)); // UC5, punkt 1: Husejeren starter skærmbilledet "Registrere vinduer og døre" (ikke // implementeret). // UC7 og 8, punkt 1: Husejeren starter skærmbilledet "Registrere bevægelses- og // lys-sensorer" (ikke implementeret). // UC14, punkt 1: Husejeren starter skærmbilledet "Registrere lamper" (ikke // implementeret). for (int i = 0; i < vrum.size(); i++) // UC5, 7, 8 og 14, punkt 2: Systemet præsenterer rummene og husejeren udvælger et. if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Bryggers")) // UC5, punkt 3: Husejeren tilføjer de nødvendige vinduer/døre (mulige typer er // foruddefineret i systemet). ((Rum)vRum.elementAt(i)).addAabning("Bryggersdør"); // UC7 og 8, punkt 3: Husejeren tilføjer bevægelses- og/eller lys-sensor. // Sensoren registrerer rummet som lytter, hvilket kan lade sig gøre da Rum // implementerer interfacet BevaegelsesListener. På "objekt-sprog" kan man sige at // rummet "ACTS AS A" BevaegelsesListener. ((Rum)vRum.elementAt(i)).addBevaegelsesSensor(10000);

17 OOPJ-E-1 F2003 Side 17 af 38 ((Rum)vRum.elementAt(i)).addLysSensor(8000); // UC14, punkt 3: Husejeren tilføjer lampe. ((Rum)vRum.elementAt(i)).addLampe(true); if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Gang")) ((Rum)vRum.elementAt(i)).addAabning("Hoveddør"); ((Rum)vRum.elementAt(i)).addBevaegelsesSensor(8000); ((Rum)vRum.elementAt(i)).addLysSensor(9000); ((Rum)vRum.elementAt(i)).addLampe(true); ((Rum)vRum.elementAt(i)).addLampe(true); ((Rum)vRum.elementAt(i)).addLampe(false); if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Spisestue") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Stue")) ((Rum)vRum.elementAt(i)).addAabning("Terrassedør"); if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Køkken") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Spisestue") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Stue") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Kontor") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Børneværelse1") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Børneværelse2") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Soveværelse") ((Rum)vRum.elementAt(i)).getBetegnelse().equals("Badeværelse1")) ((Rum)vRum.elementAt(i)).addAabning("Vindue"); ((Rum)vRum.elementAt(i)).addLampe(false); if (((Rum)vRum.elementAt(i)).getBetegnelse().equals("Soveværelse")) ((Rum)vRum.elementAt(i)).addAabning("Tagvindue"); // Tilknyt alle personer til hus. for (int i = 0; i < vpersoner.size(); i++) vhus1.addperson((person)vpersoner.elementat(i)); // En person fraflytter. vhus1.removeperson((person)vpersoner.elementat(vpersoner.size()-1)); // UC3, 4 og 5, punkt 5 samt UC7, 8 og 14, punkt 4: Husejeren trykker på "Gem". // UC3, 4 og 5, punkt 6 samt UC7, 8 og 14, punkt 5: Systemet gemmer oplysningerne. // Gem hus inkl. tilknyttede objekter. vhuse.addelement(vhus1); try db.gem(vhuse,"huse.ser"); catch (Exception exgem) System.out.println("Hus-oplysninger kunne ikke gemmes. Kontakt venligst leverandøren "+ "af IHCS og oplys nedenstående fejl:"); exgem.printstacktrace(); // Vis hus inkl. tilknyttede objekter. for (int i = 0; i < vhuse.size(); i++) System.out.println((Hus)vHuse.elementAt(i)); // Forsøg på implementering af UC19 vha. en Applet. Blev opgivet pga. omstændigheder omtalt // i rapporten. // Html-fil med applet-tag genereres dynamisk. try PrintWriter hg = new PrintWriter(new FileWriter("simuler.html")); hg.println("<html><head><title>ihcs</title></head><body><h2>simuler IHCS opsætning</h2>"); hg.println("<br><applet CODE=\"miracon.ihcs.UiPackage.SimulerApplet\" CODEBASE=\".\" "+ "ARCHIVE=\"IHCS.jar\" HEIGHT=\"600\" WIDTH=\"820\" ALIGN=\"bottom\">"); hg.println("<param name=\"phuse\" value=\"huse.ser\">"); hg.println("denne browser understøtter ikke Applets.</APPLET></BODY></HTML>"); hg.close(); catch (IOException ex) System.out.println("Kan ikke generere html-fil. Kontakt venligst leverandøren af IHCS "+ "og oplys nedenstående fejl:"); ex.printstacktrace(); // Start brugerens standardbrowser. Virker kun i Windows. // Kilde: try String command = "rundll32 url.dll,fileprotocolhandler simuler.html"; Runtime.getRuntime().exec(command);

18 OOPJ-E-1 F2003 Side 18 af 38 catch (java.io.ioexception e) System.out.println("Kan ikke starte browser. Vær opmærksom på at dette kun virker i "+ "Windows."); e.printstacktrace(); // UC19, punkt 1: Husejeren vælger hus, der skal simuleres. // UC19, punkt 2: Husejeren starter skærmbilledet "Simuler IHCS opsætning". SimulerFrame vindue = new SimulerFrame(vHuse); vindue.setsize(new Dimension(830,600)); vindue.setvisible(true); // end main // end class SystemTester

19 OOPJ-E-1 F2003 Side 19 af 38 Bilag 2: Output ved kørsel af klassen SystemTester Oprettede personer: Person id : 1 Navn : Kim Damgaard Mobilnr. : Billede : kd.jpg Adg.kode : 1234 Fingeraftryk: null Person id : 2 Navn : Janette Damgaard Mobilnr. : Billede : jd.jpg Adg.kode : 2345 Fingeraftryk: null Person id : 3 Navn : Marc Damgaard Mobilnr. : Billede : md.jpg Adg.kode : 0 Fingeraftryk: md_finger.jpg Personer efter sletning af en, oprettelse af en ny og opdat. af en eksist.: Person id : 1 Navn : Kim Damgaard Mobilnr. : Billede : kd.jpg Adg.kode : 1234 Fingeraftryk: null Person id : 3 Navn : Marc Damgaard Mobilnr. : Billede : md.jpg Adg.kode : 0 Fingeraftryk: md_finger.jpg Person id : 4 Navn : Simone Damgaard Mobilnr. : null Billede : sd.jpg Adg.kode : 0 Fingeraftryk: sd_finger.jpg Husoplysninger: Adresse : Valbo Alle Vallensbæk Strand Plantegning : plantegning.gif Rum : Bryggers Udvendige åbninger: Bryggersdør Lamper: Lampe tændes ved bevægelse Gang Udvendige åbninger: Hoveddør Lamper: Lampe tændes ved bevægelse, Lampe tændes ved bevægelse, Lampe tændes ikke ved bevægelse Køkken Udvendige åbninger: Vindue Lamper: Lampe tændes ikke ved bevægelse Spisestue Udvendige åbninger: Terrassedør, Vindue Lamper: Lampe tændes ikke ved bevægelse Stue Udvendige åbninger: Terrassedør, Vindue Lamper: Lampe tændes ikke ved bevægelse

20 OOPJ-E-1 F2003 Side 20 af 38 Kontor Udvendige åbninger: Vindue Lamper: Lampe tændes ikke ved bevægelse Børneværelse1 Udvendige åbninger: Vindue Lamper: Lampe tændes ikke ved bevægelse Børneværelse2 Udvendige åbninger: Vindue Lamper: Lampe tændes ikke ved bevægelse Soveværelse Udvendige åbninger: Vindue, Tagvindue Lamper: Lampe tændes ikke ved bevægelse Badeværelse1 Udvendige åbninger: Vindue Lamper: Lampe tændes ikke ved bevægelse Badeværelse2 Udvendige åbninger: Ingen Lamper: Ingen Brugere : Person id : 1 Navn : Kim Damgaard Mobilnr. : Billede : kd.jpg Adg.kode : 1234 Fingeraftryk: null Person id : 3 Navn : Marc Damgaard Mobilnr. : Billede : md.jpg Adg.kode : 0 Fingeraftryk: md_finger.jpg

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

Læs mere

Planlægningssystem til autoværksted.

Planlægningssystem til autoværksted. Side 1 af 49 Planlægningssystem til autoværksted. udført af Henning Svensson Kim Damgaard Indholdsfortegnelse Planlægningssystem til autoværksted... 1 Indholdsfortegnelse... 1 Beskrivelse af autoværkstedet...

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Indhold. Side 2 af 26

Indhold. Side 2 af 26 Tema Design Design, Programmering og test af Adressebog Fra d. 17 april til 20 april 2012 Vejledere: Gunhild Marie Andersen Kis Boisen Hansen Gruppe B Deltagere Side 1 af 26 Indhold Indledning.... 3 Kodestandard...

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

Objektorienterede metoder

Objektorienterede metoder Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags

Læs mere

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let Løsningsforslag til Camp Let Case Beskrivelse: Camp Let Firmaet Camp Let har til formål at udleje forskellige typer transportable ferieboliger. Det drejer sig i øjeblikket om campingbusser, campingvogne,

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010 Opsætning af Trio Web Vers 2.0 feb. 2010 Indholdsfortegnelse Opsætning af Trio Web... 3 Generel opsætning af Trio Web... 3 Databaseopsætning... 3 DB... 3 Aar... 4 Login... 4 Internet... 4 Port... 4 Registreringsnøgle...

Læs mere

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav. Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet

Læs mere

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret design med arv og polymorfi: Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret

Læs mere

4 Basal Objekt-orienteret Programmering I.

4 Basal Objekt-orienteret Programmering I. 4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Obligatorisk opgave i objektorienteret analyse og design

Obligatorisk opgave i objektorienteret analyse og design Obligatorisk SD-opgave s. Obligatorisk opgave i objektorienteret analyse og design Løs følgende, som en indviduel opgave. I må gerne samarbejde i grupper, men alle har ansvar for at udfærdige sin egen

Læs mere

Software Design (SWD) Spørgsmål 1

Software Design (SWD) Spørgsmål 1 Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Activity Milestone Artifact Spørgsmål

Læs mere

Matador. Hvert hus koster: 2000 Et hotel koster: 2000 + 4 huse Pantsætningsværdien er 2000 kr.

Matador. Hvert hus koster: 2000 Et hotel koster: 2000 + 4 huse Pantsætningsværdien er 2000 kr. Matador Problembeskrivelse Matador består af en spilleplade med 40 felter, biler (som udgør spillebrikker), to terninger, huse, hoteller, lykkekort, pengesedler og skødekort. Hvert felt har et nummer og

Læs mere

Digital post Snitflader Bilag A2 - REST Register Version 6.3

Digital post Snitflader Bilag A2 - REST Register Version 6.3 Digital post Snitflader Bilag A2 - REST Register Version 6.3 1 Indholdsfortegnelse A2.1 INTRODUKTION 4 A2.1.1 HENVISNINGER 4 A2.2 OVERSIGT OVER FUNKTIONSOMRÅDE 5 A2.2.1 OPRET / HENT OPLYSNINGER OM SLUTBRUGER

Læs mere

Installation af Oracle 10g Release 2 database

Installation af Oracle 10g Release 2 database Installation af Oracle 10g Release 2 database Oracle 10g database indeholder databasesoftware, enterprise manager, SQL*Plus m.m., HTML DB (i dag kendt som Application Express) og tilhørende HTTP Server

Læs mere

Servlets, Tomcat & BlueJ

Servlets, Tomcat & BlueJ Servlets, Tomcat & BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 05.october 2007 Hvad er Servlets: For at forstå det, må vi først få styr på to begreber, nemlig statiske og dynamiske hjemmesider

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Version 8 Outlookintegration

Version 8 Outlookintegration Version 8 Outlookintegration - Synkroniser din C&B Kalender med Outlook Med C&B Outlook-integration kan du få synkroniseret dine aftaler, så din C&B Kalender matcher din Outlook-kalender og omvendt. Integrationen

Læs mere

Vejledning Flex-Control:

Vejledning Flex-Control: Vejledning Flex-Control: Når du kommer hjem med din startpakke eller dine løse komponenter, så er du nu klar til at komme i gang. 1. Start med at pakke alle komponenter ud. 2. Fjern nu det lille stykke

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Oversigts billedet: Statistik siden:

Oversigts billedet: Statistik siden: 1 Tilslutning: Tilslut et nætværks kabel (medfølger ikke) fra serverens ethernet port til din router. Forbind derefter bus kablet til styringen, brun ledning til kl. 29, hvid ledning til kl. 30 Forbind

Læs mere

BAAN IVc. Brugervejledning til BAAN Data Navigator

BAAN IVc. Brugervejledning til BAAN Data Navigator BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.

Læs mere

INTELLIGENT BOLIGSTYRING

INTELLIGENT BOLIGSTYRING Energihuset INTELLIGENT BOLIGSTYRING Introduktion Om energihuset Opgaver og udfordringer Links og Efterbehandling Introduktion I dag kan man godt få systemer der kan styre el, vand, varme eller ventilation

Læs mere

Housekeeper manual Bridgekeeper 1 - IHC Januar 2009

Housekeeper manual Bridgekeeper 1 - IHC Januar 2009 Housekeeper manual Bridgekeeper 1 - IHC Januar 2009 Side 1 af 11 Bridgekeeper 1 (IHC) Bridgekeeper 1 danner bro mellem IHC og Z-wave. Modulet kan erstatte en IHC controller eller fungere parallelt med

Læs mere

LK IHC Control. Komfort og sikkerhed i hjemmet. Du kan få yderligere oplysninger om LK IHC Control hos din lokale el-installatør eller på www.lk.dk.

LK IHC Control. Komfort og sikkerhed i hjemmet. Du kan få yderligere oplysninger om LK IHC Control hos din lokale el-installatør eller på www.lk.dk. LK IHC Control Komfort og sikkerhed i hjemmet Du kan få yderligere oplysninger om LK IHC Control hos din lokale el-installatør eller på www.lk.dk. Lauritz Knudsen A/S Industriparken 32 2750 Ballerup Telefon

Læs mere

1. Indledning... 1. 2. Installation... 2. 2.1 Mac OS X... 2. 2.2 Windows... 10. 3. Arkivering... 11. 3.1 Mac OS X... 11. 3.2 Windows...

1. Indledning... 1. 2. Installation... 2. 2.1 Mac OS X... 2. 2.2 Windows... 10. 3. Arkivering... 11. 3.1 Mac OS X... 11. 3.2 Windows... Manual til HTTrack 1. Indledning... 1 2. Installation... 2 2.1 Mac OS X... 2 2.2 Windows... 10 3. Arkivering... 11 3.1 Mac OS X... 11 3.2 Windows... 17 4. Visning af arkiveret materiale... 18 4.1 Mac OS

Læs mere

Gode praksisser og arkitekturer i Android-programmering. Android - praksisser og arkitekturer Copyright Lund & Bendsen A/S

Gode praksisser og arkitekturer i Android-programmering. Android - praksisser og arkitekturer Copyright Lund & Bendsen A/S Gode praksisser og arkitekturer i Android-programmering 1 Om oplægsholderen Jacob Nordfalk nordfalk@lundogbendsen.dk Instruktør for Lund&Bendsen Ekstern lektor på IHK Underviser i Java SE, Java EE, Webserverprogrammering,

Læs mere

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0 QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100 SecVision - Quick Manual v1.0 1. System Login 1.1. Bruger Login ID: admin Password: 00000 1.2. Indstilling af dato/tid og harddisk

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

Læs mere

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen Nets Denmark A/S Lautrupbjerg 10 P.O. 500 DK 2750 Ballerup T +45 44 68 44 68 F +45 44 86 09 30 www.nets.eu Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Læs mere

Kvik start opsætning af kamera det første du skal gøre:

Kvik start opsætning af kamera det første du skal gøre: Kom godt i gang Tillykke med købet af Valtronics Trådløst IP kamera. Denne quickmanual kan bruges til alle Valtronics IP kameraer. Kameraet giver mulighed for at fjenovervåge steder via sin mobiltelefon

Læs mere

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0 GIS indlæsning af kreditorer og betalingsform Brugervejledning 1.0 Indhold 1 Indledning... 5 2 Opsætning af GIS grænseflade til kreditor indlæsning... 5 2.1 Oprettelse af en datastrøm... 7 2.2 Filsystem...

Læs mere

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA UML-Light (Note: UML-Light T33, ver. 2004) Finn Overgaard Hansen, IHA Programmering PRG + Semesterprojekter PRJ+PRJ2 Version: 20--2004 Indhold Første del: Introduktion til UML-Light og UML Klasser og objekter

Læs mere

LW313 Sweex Wireless 300N Adapter USB

LW313 Sweex Wireless 300N Adapter USB LW313 Sweex Wireless 300N Adapter USB Bemærk venligst! Udsæt ikke Sweex Wireless 300N Adapter USB for ekstreme temperaturer. Placér ikke adapteren i direkte sollys eller i nærheden af radiatorer eller

Læs mere

Kursus i EkspresLøn. De syv menupunkter, vi skal bruge i dette kursus, er markeret med rød ring. Tryk..virksomheder i øverste højre hjørne.

Kursus i EkspresLøn. De syv menupunkter, vi skal bruge i dette kursus, er markeret med rød ring. Tryk..virksomheder i øverste højre hjørne. Kursus i EkspresLøn EkspresLøn startes ved at dobbelt-klikke på EkspresLøn-ikonet på skrivebordet:, eller vælge Start Programmer EkspresLøn. Når programmet startes første gang fremkommer dette vindue:

Læs mere

Manual til Elegant DK190

Manual til Elegant DK190 Manual til Elegant DK190 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Forside... 8 Bagside... 9 Tag alarmen i brug... 10 Programering af alarmen...

Læs mere

Grundlæggende OOA - OOD

Grundlæggende OOA - OOD Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst

Læs mere

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk Administrator v1.0 QUICK GUIDE Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk INTRODUKTION TIL REKVI-KONTOR Ideen med Rekvi-Kontor systemet udsprang

Læs mere

Rapport generator til Microsoft C5

Rapport generator til Microsoft C5 Generelt Rapportgeneratoren til C5 kan benyttes sammen med alle versioner af C5 og kræver INGEN tillægsmoduler eller tilkøb af C5. Den kører på: C5 version 1.5x, 1.6x, 2.x, 3.x, 4.x, 2008, 2010 og 2012.

Læs mere

educasoft - en professionel samarbejdspartner med speciale i uddannelse!

educasoft - en professionel samarbejdspartner med speciale i uddannelse! Velkommen til educasoft's hjemmeside educasoft - en professionel samarbejdspartner med speciale i uddannelse! Professionelle undervisere Undervisning i virksomheden Undervisning dag/aften eller week-end

Læs mere

Administrator - installation og brug i Windows

Administrator - installation og brug i Windows 1 Administrator - installation og brug i Windows Grundforfattet af Allan, OZ1DIS, redigeret/udgivet af Palle, OZ6YM Det her beskrevne er IKKE noget nyt, og har været gældende siden Windows NT og version

Læs mere

Installation af Bilinfo på Windows

Installation af Bilinfo på Windows Installation af Bilinfo på Windows Eksempler i denne vejledning er taget fra Windows 7 og Internet Explorer 8 Download det nødvendige program. Gå ind på www.bilinfo.dk/download Klik på download ud for:

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

Guide til opdatering af Parrot CK3100 LCD, 3200LS Color, 3200LS+ og MK6100 med en Parrot Dongle

Guide til opdatering af Parrot CK3100 LCD, 3200LS Color, 3200LS+ og MK6100 med en Parrot Dongle Hvis man bruger en Bluetooth dongle fra Parrot (Parrot Dongle), så skal man følge nedenstående guide. Guiden er baseret med opdateringssoftware, version 3.4.1.0, til Microsoft Windows XP. For at kunne

Læs mere

Projekt i Programmering C Menu til hjemmeside.

Projekt i Programmering C Menu til hjemmeside. Projekt i Programmering C Menu til hjemmeside. 10-12-2004 Holstebro HTX Bent Arnoldsen Synopsis. Projektet her er en menu til hjemmesider, som er lavet så den er let at tilrette, når man tilføjer eller

Læs mere

Daglig brug af JitBesked 2.0

Daglig brug af JitBesked 2.0 Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15 smart-house Web-Server Manual CARLO GAVAZZI AS, PB 215, NO-3901 Porsgrunn Telefon: 35 93 08 00 Telefax: 35 93 08 01 Internet: http://www.carlogavazzi.no E-Mail: gavazzi@carlogavazzi.no 1 of 15 Indholdsfortegnelse

Læs mere

Vejledning: Dataoverflytning. Overfør tabeloplysninger fra Navision Stat til Excel

Vejledning: Dataoverflytning. Overfør tabeloplysninger fra Navision Stat til Excel Vejledning: Dataoverflytning Overfør tabeloplysninger fra Navision Stat til Excel Indledning Mange brugere har efterspurgt en kreditoroversigt, hvor adresse-oplysningerne fremgår. Fra kreditorstamkortet

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere

Reguleringssystem EnergyLogic Touchline Wave

Reguleringssystem EnergyLogic Touchline Wave Reguleringssystem EnergyLogic Touchline Wave BRUGERMANUAL TIL iphone APP ØKOENERGI- OG SANITETSSYSTEMER Roth A/S Centervej 5 3600 Frederikssund Telefon: +45 47380121 Fax: +45 47380242 E-Mail: service@roth-nordic.dk

Læs mere

ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone

ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone Side 1 af 18 ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone Side 2 af 18 Indholdsfortegnelse ereolen.dk... 1 1. Første gang du vil anvende ereolen.dk... 3 1.1 Opret

Læs mere

Booking+ Brugervejledning

Booking+ Brugervejledning Booking+ Brugervejledning Booking+ er et webbaseret, brugervenligt lokaleadministrations- og mødebookingsystem, der kan håndtere lokalereservationer fra forskellige lejere og brugere af fælles mødelokaler,

Læs mere

Kom godt igang med Indbo programmet fra PetriSoft Kort om Indbo: Indbo Free

Kom godt igang med Indbo programmet fra PetriSoft Kort om Indbo: Indbo Free Kom godt igang med Indbo programmet fra PetriSoft Kort om Indbo: Indbo er et Windows 98/NT/2000/Me/Xp/Vista/Win7/Win8 program, der kan holde rede på hjemmets, firmaets, foreningens eller skolens inventar

Læs mere

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har

Læs mere

Spiked Reality. Kvikguide til oprettelse af tilbud, nyheder og begivenheder. Version 2.0, september 2013

Spiked Reality. Kvikguide til oprettelse af tilbud, nyheder og begivenheder. Version 2.0, september 2013 Spiked Reality Kvikguide til oprettelse af tilbud, nyheder og begivenheder Version 2.0, september 2013 Indholdsfortegnelse Indledning... 3 Mine oplysninger... 3 Online Administration... 3 Dit log ind...

Læs mere

Mamut Stellar efaktura

Mamut Stellar efaktura Mamut Stellar efaktura Med Mamut Stellar e-faktura er det muligt at afsende og modtage e-fakturaer fra det offentlige og private virksomheder med GLN nummer (tidligere EAN-lokationsummer) via OIOSI eller

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5 Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:

Læs mere

Brugermanual til. Internetbestillingen. Version 1.0

Brugermanual til. Internetbestillingen. Version 1.0 Brugermanual til Internetbestillingen Version 1.0 Hvordan fungerer Internetbestillingen? Internetbestillingen installerer to komponenter i klubben. Dels et nyt instillingsprogram, som er en del af Eagle,

Læs mere

Kort om CoinDB (Mønt- og seddelsamling):

Kort om CoinDB (Mønt- og seddelsamling): Kom godt i gang med CoinDB programmet fra PetriSoft (Holder styr på din Mønt- seddel- eller frimærkesamling) Kort om CoinDB (Mønt- og seddelsamling): CoinDB er et Windows program, der anvendes af mønt-

Læs mere

EasyIQ Opdatering 5.2.3 -> 5.4.0

EasyIQ Opdatering 5.2.3 -> 5.4.0 EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...

Læs mere

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt). Indholdsfortegnelse Introduktion... 2 Udlæsning af opslagsfil til scanneren... 3 Installation af scanneren... 4 Indlæsning af datafil i scanneren... 6 Brug af scanneren... 7 Sådan scanner du... 7 Tømning

Læs mere

Forms Composer. Document Producer 1. Document Producer

Forms Composer. Document Producer 1. Document Producer 1 I Lexmark TM, version 3.1, kombineres softwaren til udformning af e-formularer med et serverprogram for e-formularer. Du kan nu oprette dine egne formularer og kombinere dem med scripts og på den måde

Læs mere

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING KOMMANDOOVERSIGT TIL BRUG PÅ WINDOWS COMPUTERE MED JAWS INTRODUKTION: Brailliant displays har indbygget BlueTooth og USB. BlueTooth anvendes til at forbinde

Læs mere

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER MANUAL TIL OptitecRS CIPHERLAB 8000 - SCANNER INDHOLDSFORTEGNELSE 1 SAMLING OG TILKOBLING AF SCANNER... 1 1.1 STRØM TIL SCANNER... 2 1.2 TILKOBLING TIL COMPUTER... 2 1.2.1 Tilkobling med Seriel Stik...

Læs mere

2) OVERVEJE hvordan dine træningsdata skal overføres til dagbogen.

2) OVERVEJE hvordan dine træningsdata skal overføres til dagbogen. Kære løber, Denne vejledning har til formål at hjælpe dig hele vejen igennem vores tilmeldingsprocedure. Det kan være en god idé, at printe denne vejledning ud og have liggende ved siden af computeren,

Læs mere

Quick Guide V8.0 - 1 -

Quick Guide V8.0 - 1 - Quick Guide V8.0-1 - Indholdsfortegnelse Generel information...3 Liveview...4 Optagelse af Videosekvenser...5 Afspilning af Videosekvenser...6 Menupanelet...7 Backup...11 Webcam...16 Trouble Shooting...21

Læs mere

14.1 Internationale programmer

14.1 Internationale programmer 14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at

Læs mere

Opsætning af MobilePBX med Kalenderdatabase

Opsætning af MobilePBX med Kalenderdatabase Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database

Læs mere

09/03 2009 Version 1.4 Side 1 af 37

09/03 2009 Version 1.4 Side 1 af 37 Login til DJAS Gå ind på adressen http://www.djas.dk I feltet Brugernavn skrives den e-mail adresse som brugeren er registeret med i systemet. I feltet Password skrives brugerens adgangskode. Ved at sætte

Læs mere

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9 Ver. 1.8 RDS Side: 1 af 27 Indhold: Inden du kan benytte RDS-løsningen, skal din PC være opdateret...2 Login på RDS-løsningen...3 Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1

Læs mere

Opsætning af internet gennem Bolignet-Aarhus

Opsætning af internet gennem Bolignet-Aarhus Opsætning af internet gennem Bolignet-Aarhus Denne vejledning er henvendt til brugere af computere, som benytter Windows XP som styresystem. Windows XP adskiller sig en del fra de øvrige styresystemer.

Læs mere

Oktober 2013 HLG/XIGA. Opstartsvejledning ATS Engros 1/12

Oktober 2013 HLG/XIGA. Opstartsvejledning ATS Engros 1/12 Oktober 2013 HLG/XIGA Opstartsvejledning ATS Engros 1/12 1. ATS Engros vejledning for aktører Formålet med dette dokument er at beskrive, hvordan du kommer i gang med at anvende ATS til test af certifikat

Læs mere

PBX Online Brugervejledning www.pbxonline.dk

PBX Online Brugervejledning www.pbxonline.dk PBX Online Brugervejledning www.pbxonline.dk Indledning PBX Online er dit personlige omstillingsanlæg som ikke kræver noget fysisk udstyr installeret i dit firma. Du styrer det hele via din web browser.

Læs mere

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 Delfi Connect Bruger vejledning INDHOLD 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 TOOLS...4 4. KOMMUNIKATIONS OPSÆTNING...5 5. GENEREL OPSÆTNING OG DATA KONFIGURATION...6 RECORD...8 BASAL

Læs mere

Manual til AVG Antivirus

Manual til AVG Antivirus Manual til AVG Antivirus Det anbefales, at alle brugere benytter sig af et antivirus-program. Formålet med programmet er at forhindre din computer i at blive smittet med virus. Virus-inficerede computere

Læs mere

Introduktion til Flash, fortsat

Introduktion til Flash, fortsat Introduktion til Flash, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net Dagens program Opsamling på sidste forelæsning. Vi vil beskæftige os med følgende emner i dagens forelæsning: Komponenter

Læs mere

Tlf. +45 7027 1699 Fax + 45 7027 1899

Tlf. +45 7027 1699 Fax + 45 7027 1899 Firmaordninger I firmaoversigten kan du holde styr på dit kundekartotek samt disses bookinger. Der kan desuden oprettes andre firmaer end dit eget. Herved kan der udbydes særlige ydelser på med egne arbejdstider.

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

Kursusarbejde 2 Grundlæggende Programmering

Kursusarbejde 2 Grundlæggende Programmering Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................

Læs mere

Trimble Access Service (Sync)

Trimble Access Service (Sync) Vejledning i opsætning af Trimble AccessSync Trimble har ved Dimensions November 2012 ændret deres forretningsmodel med hensyn til deres AccessSync funktionalitet. Tidligere har det krævet et særskilt

Læs mere

Denne vejledning er optimeret til Windows XP, men kan også bruges til de andre Windows styresystemer.

Denne vejledning er optimeret til Windows XP, men kan også bruges til de andre Windows styresystemer. Guiden min første backup Trin 2.1 Log på Når du har installeret din DATABOKS fjern-backup manager, vil dit log-ind vindue automatisk komme frem (Du kan få hjælp til at installere din DATABOKS fjern-backup

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Opdatering af Windows XP

Opdatering af Windows XP Opdatering af Windows XP For at sikre computeren mest muligt er det en god idé at opdatere sit styresystem jævnligt. Det anbefales, at man mindst en gang om ugen kontrollerer for opdateringer til sit styresystem,

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

C-MAP NT+/MAX søkort. Anvendelse af C-MAP NT+/MAX søkort

C-MAP NT+/MAX søkort. Anvendelse af C-MAP NT+/MAX søkort C-MAP NT+/MAX søkort C-MAP NT+ og Max søkort findes på mange forskellige medier (PCMCIA, på brikker som anvendes vha. af en boks og driver på USB porten, og/eller en CD-ROM som installeres på harddisken).

Læs mere

Brugermanual til. Internetbestillingen. Version 1.0

Brugermanual til. Internetbestillingen. Version 1.0 Brugermanual til Internetbestillingen Version 1.0 Hvordan fungerer Internetbestillingen? Internetbestillingen installerer to komponenter i klubben. Dels et nyt instillingsprogram, som er en del af Eagle,

Læs mere

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Velkomstmappe ectrl Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Indholdsfortegnelse HVAD ER ECTRL?... 3 SUPPORT... 3 INSTALLATIONSVEJLEDNING TIL ECTRL... 4 OPRETTELSE OG ADMINISTRATION

Læs mere