Server Rack Power Control

Størrelse: px
Starte visningen fra side:

Download "Server Rack Power Control"

Transkript

1 Datafagtekniker DA-9H051 Hovedforløb 9 26/8/2005 Server Rack Power Control Rune H. Duus Morten J. Junker Brian Rasmussen

2 Indholdsfortegnelse FORORD...4 OPGAVEFORMULERING...5 TIDSPLAN...8 SYSTEMBESKRIVELSE...10 SYSTEMDIAGRAM...11 LISTE OVER KODEORD...12 MINIKIT...13 PROGRAMMERING...14 C programmet...14 HARDWARE...16 Hardware gennemgang...17 Måling af volt Måling af ampere Præcisions-ensretter...18 Kredsløbets virkemåde Sumkoblingen...20 Kredsløbsdiagram Udregningen for sumkokblingen Relædriver / Relæer...22 LTS15-N...23 Transformator...23 RACKCONTROL SERVER...25 GUIDE...25 DOKUMENTATION...31 RACKCONTROL CLIENT...40 GUIDE...40 DOKUMENTATION...43 DATABASESERVER...51 DATABASEOPBYGNING...51 WEBSERVER / FIREWALL...53 SERVEROPSÆTNING...53 Opsætning af operativsystem...53 Systemkrav Installation Opsætning af DHCP...54 Opsætning af Apache...55 Opsætning af Samba...56 Opsætning af firewall...57 Valg af services...58 HJEMMESIDE...59 Teknologierne bag...59 XHTML PHP SQL Hjemmesiden...60 Funktioner og opbygning Udtrækning af data Visning af data Side 2 af 132

3 KONKLUSION...64 DAGBOG...65 LITTERATURLISTE...69 BILAG...70 C PROGRAMMERING...70 Kildekode...70 Diagram...76 RACKCONTROL-SERVER...81 Diagram - Tråd: Gui...81 Faneblad: Main Faneblad: Status Faneblad: Setup Diagram - Tråd: Connection...84 Kildekode...87 Diagram - Tråd: Connection Tråd: Gui Tråd: RackControl-Server RACKCONTROL-CLIENT DIAGRAM Diagram - Tråd: Main Diagram - Tråd: Connection Diagram - Tråd: Serial Kildekode Tråd: Connection Tråd: Gui Tråd: Klient Tråd: Serial MYSQL DATABASEOPSÆTNING FIREWALLSCRIPT DHCPD KONFIGURATIONSFIL HJEMMESIDE RUTEDIAGRAM HJEMMESIDE KILDEKODE Hovedsiden Graf-siden Side 3 af 132

4 Forord Projektet Server Rack Power Control går ud på at måle strøm, spænding og udregne effekt på nogle rack-servere. Disse servere skal kunne slukkes og tændes via relæer. Relæstyring og målinger foretages af et stykke hardware og opsamles på en klientmaskine. Dataene sendes videre til en central server bag firewall, via WAN. Fra serveren skal data indsættes i en SQL-database og kunne vises på en hjemmeside via et serverscript. Rapporten forudsætter kendskab svarende til H9 på Datafagteknikeruddannelsen. Side 4 af 132

5 Opgaveformulering Systemkrav Der skal opbygges et netværksbaseret system til remote kontrol og monitering af forsyningen til server og / eller netværksudstyr monteret i et rack. Systemet skal via et mikrocontroller baseret interface overvåge og styre følgende: Tænde og slukke for forsyningen til 3 servere Måle strøm og spænding til de tilkoblede servere På LCD et til mikrocontrolleren skal der vises strømforbrug og spænding til de 3 servere samt status for forsyningerne (tændt/slukket). Strøm og spænding skal måles passende hurtigt. Via en serielforbindelse skal den målte strøm og spænding sendes til en pc er der skal fungere som lokalt lager og forbindelse til WAN (RackControlClient). RackControlClient skal kommunikere med en server (RackControlServer) via WAN. Alle brugere skal kunne få adgang til status fra RackControlClient ved hjælp af en aktiv hjemmeside, hvor følgende skal vises: Kommunikationsstatus Målte strømme og spændinger Status for forsyningerne (tændt/slukket) RackControlServer skal: Overvåge kommunikationen fra RackControlClient Overvåge strøm- og spændingsmålinger Logge status af målte strømme og spændinger og kommunikation i en database Præsentere status og logninger i en grafiskbrugerflade Kunne sende tænd og sluk signal til RackControlClient Modtagne målte data skal gemmes i databasen sammen med tidspunkt for målingen og en identifikation af RackControlClient der målte data Beregne effekten ud fra målte strøm og spænding Tidspunkt for modtagelse af data fra RackControlClient skal gemmes i en separat logtabel i databasen Tidspunkt for oprettelse/afbrydelse af forbindelse til RackControlClient sammen med identifikation af RackControlclient skal gemmes i en separat logtabel i databasen Tidspunkt for start/stop af RackControlServer skal gemmes i en separat logtabel i databasen Side 5 af 132

6 Microcontrolleren: RackControlClient: Tidspunkt for oprettelse/afbrydelse af forbindelse mellem controller og RackControlClient skal gemmes i en separat logtabel i databasen I grafisk brugerflade skal der vises status for relæerne I grafisk brugerflade skal der vises målte strømme og spænding I grafisk brugerflade skal der vises den beregnede effekt I grafisk brugerflade skal der vises kommunikationsstatus for alle tilsluttede RackControlCliens I grafisk brugerflade skal der mulighed for at se loggede driftstatus I grafisk brugerflade skal man kunne tænde/slukke for relæerne Der skal kunne logges flere brugere på af gangen. Status for relæerne (tændt/slukket) skal vises på displayet Målte strøm og spænding skal vises på displayet Seriel kommunikation baseret på RS232 eller RS422/RS485 mellem microcontroller og RackControlClient Som minimum skal der benyttes paritets check til sikring af korrekt kommunikation mellem microcontroller og RackControlClient Der skal bruges en TCP/IP baseret socket forbindelse mellem RackControlClient og RackControlServer Data modtaget fra controller samt tidspunkt skal logges i en fil Data afsendt fra RackControlClient til RackControlServer samt tidspunkt skal logges i en fil Data modtaget fra RackControlServer skal logges Forbindelse oprettet/afbrudt mellem controller og RackControlClient skal logges Forbindelse oprettet/afbrudt mellem RackControlClient og RackControlServer Hardwarekrav: Mikrocontroller med LCD skal være tilsluttet Strømsensor skal være tilsluttet Spændingssensor skal være tilsluttet 3 relæer skal være tilsluttet Strøm og spænding skal måles så de opdateres minimum hvert 30. sekund Status for relæerne skal opdateres minimum hvert 30. sekund og når de tændes / slukkes Tidsstempling af målte data: Målte data og statuser skal tidsstemples af enten controlleren eller RackControlClient. Side 6 af 132

7 Webserver: Skal kunne afvikle scripts som giver adgang til gemte data i den valgte SQL database Brugeren skal for et valgt tidsinterval kunne vælge at se 1. status for relæerne 2. målte strøm 3. målte spænding 4. beregnede effekt Firewall: Firewallen skal have vha. port forwarding sikre, at webserver og RackControlServer kan tilgås fra WAN Databasen: Databasen skal være SQL-baseret Operativsystem: Der skal anvendes Windows XP/2000 eller Linux Programmeringssprog (mikrocontroller): Der skal anvendes C Programmeringssprog (RackControlServer/RackControlClient): Der skal anvendes et objektorienteret programmeringssprog Følgende sensorer skal benyttes: 3 stk. 230V relæer, Finder series SPCO 10A 12V Strømsensor Spændingssensor 230/6V AC transformer Side 7 af 132

8 Tidsplan Uge 1 Mandag Tirsdag Onsdag Torsdag Fredag Installation af servere Opsætning og gennemgang af servere. Gennemlæsning af datablade på nye komponenter Brainstorming på projektet Afslutning og opgave fordelling Påbegyndelse af programmering Uge 2 Mandag Tirsdag Onsdag Torsdag Fredag Programmering - Java/PHP og hardwarefremstilling Programmering - Java/PHP og hardwarefremstilling Programmering - Java/PHP og hardwaredokumentation Programmering - Minikit Programmering - Minikit Uge 3 Mandag Tirsdag Onsdag Torsdag Fredag Programmering - Java/Kit og hardware Programmering - Java/Kit Programmering - Java/Kit og hardware Programmering - Java/Kit Komplet test af opsætningen Side 8 af 132

9 Uge 4 Mandag Tirsdag Onsdag Torsdag Fredag Projekt skrivning Projekt skrivning og oprydning Projekt skrivning Projekt skrivning Projekt afslutning Side 9 af 132

10 Systembeskrivelse Webklient WAN Minikit RackControl-Client RS232 Måling LTS15-NP Relæer 230Vac Firewall / Webserver LAN RackControl-Server Ovn MySql-Servere Minikittet laver målinger af strøm, spænding og beregner effekten, på det forbrug som vores ovn, i vores opstilling bruger. Minikittet sender volt og ampere videre ud på en seriel (RS232) forbindelse, som vores Java klient fanger via dens com-port. Det hele vises grafisk på vores klient, som derfra sender det videre til vores serverdel, som lagrer det i SQL-database-serveren. Så har vi hjemmesiden, hvor man kan se loggen over hvad der er sket på minikittet, hvor stor forbruget har været og status på relæerne. Det læser den direkte fra SQL-databasen. De forskellige programmeringssprog vi har brugt i vores projekt: Kittet har vi skrevet i C, og derefter lavet det om til assemblerkode med CodeVision AVR. RackControl-Serveren er programmeret i Java med JBuilder RackControl-Clienten er programmeret i Java med JBuilder Hjemmesiden er skrevet i XHTML og scriptet I PHP, som læser fra databasen via SQL. Se næste side for større diagram. Side 10 af 132

11 Systemdiagram Firewall / Webserver RackControl-Server MySql-Servere Webklient LAN WAN RackControl-Client RS232 Minikit Relæer Ovn Måling LTS15-NP 230Vac Side 11 af 132

12 Liste over kodeord Linux-server: Linux-logon Brugernavn: root Password: FuldAfDild Samba-logon: Brugernavn: web Password: sovs MySQL database-server: Windows-logon: Brugernavn: administrator Password: metrosexuel Database-logon: Brugernavn: ko Password: muh RackControl-server: Windows-logon: Brugernavn: administrator Password: desperat RackControl-client: Windows-logon: Brugernavn: administrator Password: spidskandidat Side 12 af 132

13 Minikit Det stykke hardware der styrer og måler det hele er et minikit, lavet på uddannelsens H5. Kittet består egentlig ikke af særlige mange funktioner, udover 4 porte A, B, C og D 4 knapper Et display Et relæ En terminalblock 2 serielporte 8 lysdioder Den blå terminalblock bruges i forbindelse med relæet. Displayet kan fremvise op til 20x4 tegn. Hver port har 8 kanaler der individuelt kan programmeres til om de skal stå som input eller output (via et Data Direction Register i processoren) og hver port har i forvejen noget den styrer, ud over en dil-port: Port A kan bruges som en 8 kanals analog-digital konverter med 10 bits opløsning Port B kan bruges i forbindelse med lysdioderne Port C kan bruges til displayet Port D kan bruges til det påmonterede relæ og den lille buzzer Serielportene kan man ikke undvære, for det er med dem vi får lagt programmet ned i minikittet. Det er dog kun den ene der skal bruges programmering, den anden bruges til kommunikation. En Atmel AT90S8535 RISC processor med 8KB programmerbar flashhukommelse er hjernen bag minikittet. Processoren kører på en hastighed op til 8 MHz og har 32x8 registre og mulighed for tæller/counter. Side 13 af 132

14 Programmering Programmet vi bruger til at compile vores C-program er CodeVision AVR. Programmet er et IDE (Integrated Development Environment) lavet specielt til Atmels AVR-familie af mikrocontrollere. Programmeringen sker via et serielt kabel og med programmet PonyProg2000. Det serielle kabel skal sættes til det yderste serielstik (længst væk fra den blå terminalblock) på minikittet. C programmet Kildekoden er allerede så velkommenteret at jeg kun vil trække de vigtigste dele ud. Interrupts Målingen med ADC (analog-digital converter) og UART (Universal Asynchronous Receiver Transmitter) modtagning sker via interrupts, hvilket vil sige at processoren stopper det den er i gang med og bruger tid på at udføre en anden del kode. Interrupts bruger generelt ofte ved asynkrone begivenheder, som f.eks. vores UART. Brugte vi ikke interrupts ville vores minikit stå og hænge når den venter på seriel data og imens ville vi ikke kunne udføre noget. De vigtigste funktioner getchar() er en funktion der returnerer nyeste tegn fra modtage-bufferen, som bliver fyldt op efterhånden som minikittet modtager seriel data. Hver gang man læser et tegn ud peger den på næste tegn i bufferen og sletter den foregående. Er der ikke flere tegn i bufferen returneres et 0. Dette bruges når man vil hente det nyeste tegn i bufferen. Senere i koden køres en while-løkke, der henter et tegn ud ad gangen, indtil funktionen returnerer et 0. load() er en funktion der ikke laver andet end at blinke lidt med lysdioderne, så man kan tjekke at de virker, og skrive en velkomstskærm på displayet. relayoff() er en funktion der slukker alle relæer. relayon() er en funktion der tænder alle relæer. relay1(), relay2() og relay3() er funktioner til at tænde eller slukke henholdsvis relæ 1, 2 og 3 enkeltvist, afhængig deres nuværende status. relayall() er en funktion der bruger relayon() og relayoff() til at tænde og slukke alle relæer, afhængig af deres nuværende status. Side 14 af 132

15 Når programmets main-funktion startes initialiseres variabler, portene (ABCD) og processorens indbyggede funktioner (ADC og UART) programmet begynder en uendelig løkke der 1. henter målinger af volt og ampere ind 2. udregner dem og watt 3. henter nyeste tegn fra UART-bufferen ind 4. tjekker om det sendte tal er 1, 2, 3, 4 eller 5, og tænder/slukker relæer herefter 5. skriver volt, ampere og watt ud på LCD 6. skriver status for de tre relæer ud på LCD 7. skriver status for volt, ampere, watt og de tre relæer ud på seriel port til RackControl-Client hver fjerde gang den uendelige løkke gennemløbes (ca. hvert andet sekund) 8. laver et delay på ½ sekund 9. rydder øverste linje på LCD På grund af at vi bruger den gamle processor AT90S8535 (modsat den nyere ATmega8535) har vi ikke mulighed for at bruge paritetscheck på den serielle kommunikation. Kildekode og diagram over programmet er vedlagt som bilag. Side 15 af 132

16 Projekt Server Rack Power Control Hardware Datablade over brugte komponenter er vedlagt på CD-ROM Side 16 af 132

17 Hardware gennemgang Følg med i denne tekst ved at kigge på billedet på forrige side. Forskellige komponenter i vores opstilling: Vores hjemmelavede minikit fra H5 Transformator Relædriver Relæer Præcisionsensretter til måling af volt Præcisionsensretter til måling af ampere Måling af volt Komponenter der skal I brug for at måle volt Transformatoren Præcisionsensretter (V) Minikit Vi har af sikkerhedsmæssige grunde monteret en transformator, der konverterer fra 230Vac~ til 6Vac~, vi er derfor nødt til på vores minikit at lave en udregning, så vi måler de egentlige 230V og 50 Hz, som vi får ud af en stikkontakt i Danmark. De 6Vac~ og 50 Hz, som kommer ud af transformatoren, sendes ind i præcisionsensretteren (V), der konverterer vores AC spænding til en DC spænding, som vores minikit er i stand til at måle på. Men før vores DC spænding bliver smidt ind på vores minikit skal det igennem en spændingsdeling, da vores minikits indgange maksimalt kan holde til 5V, og præcisionsensretteren smider cirka 6,6V ud. Efter vores spændingsdeling har vi nu cirka 3,3 VDC, og det smider vi ind på port A pin0, minikittet læser en spænding som et tal mellem via dens analog/digital konverter. Når vi læser på de rene 3,3V viser minikittet omkring 186. For at kalibrere minikittet ganger vi med 230/186, som ca. giver 1,24. Herefter kan volten vises i 230 volt skalaen. Måling af ampere Komponenter der skal bruges for at vi kan måle ampere LTS15-NP (den blå på billedet) Sumkobling Præcisionsensretter (A) Side 17 af 132

18 Projekt Server Rack Power Control Den komponent som måler ampere i vores opstilling er LTS15-NP, den skal have en forsyningsspænding på 5V for at fungere, det får den ved hjælp af en ekstern strømforsyning. Måden den måler ampere på er ved at vi har splittet en ledning og kørt den ene leder gennem det hul der er i midten, hvorved den kan måle strømmen der trækkes igennem ledningen. Vi står nu med et problem, LTS en smider en konstant DC spænding på 2.5V og når en strøm trækkes, sender den en AC spænding på alt fra 0-x antal mv, afhængig af hvor meget udstyret trækker. Her kommer sumkoblingen ind i billedet. Sumkoblingen udligner DC spændingen med en minus spænding på 2.5V og AC spændingen forstærkes 10 gange for at det er nemmere at måle. Her er et eksempel: hvis LTS en smider en AC spænding på 200mV og vi ganger den med 10 får vi en 2V AC spænding, som vi kan smide ind i vores præcisionsensretter (A), som konverterer AC spændingen til en DC spænding, for at vi kan måle det med vores minikit. Og det fungerer på selv samme måde som med målingen af volt. Her et regnestykke for hvordan det eksempelvis kunne se ud. En ovn er tændt, den trækker for eksempel ca. 4 ampere, hvilket vi kan måle ved hjælp af en amperetang. Tallet vi læser ind fra analog/digial-konverteren er ca. 84. Tallet divideres med målte ampere og proportionen på ca. 21 findes. Præcisions-ensretter På næste side er vist et diagram over en helbølge præcisions-ensretter, som vi har lavet til vores opstilling. Den kan ensrette indgangsspændingen målt i brøkdele af mv op til adskillige volt med en nøjagtighed kun bestemt at modstandende. Side 18 af 132

19 Side 19 af 132

20 Kredsløbets virkemåde A1 arbejder sammen med D1 som en halvbølge-ensretter, hvis udgangssignal tilføres den ene af de to indgange i additionskoblingen, som udføres af A2. Additionskoblingens anden indgang får tilført indgangssignalet. Kredsløbets virkemåde som fremgår af billedet til højre, forklares nemmest ved at følge signalvejen for først den negative og derefter den positive halvperiode af U1. Ved negativt indgangssignal er udgangen af A1 clampet af D1 til Uo1 = UD1 0,7 V. Herved spærres D2, således at forbindelsen til R/2-indgangen i additionskoblingen er afbrudt. Eneste signal til A2 er derfor indgangsspændingens negative halvperiodespænding på R-indgangen. U0 er derfor en positiv gengivelse af U1 s negative halvperiode. Ved positiv indgangsspænding er A1 en almindelig inverterende forstærker med forstærkningen 1 (D2 ligger indenfor modkoblingenssløjfen og påvirker derfor ikke forstærkningen). A1 s udgangssignal U2, som nu er negativ halvperiodespænding, føres til additionskoblingens R/2-indgang, mens indgangsspændingens positive halvperiode føres til R- indgangen. Resultatet af additionen bliver en positiv halvperiode på udgangen. Vi husker at den negative indgangsperiode også gav en positiv udgangsspænding. Indgangssignalet er altså blevet dobbeltensrettet. Monteres kondensatoren C, udglattes U0 til en DC-spænding, hvis værdi er lig med indgangssignalets dobbeltensrettede middelværdi. Tidskonstanten R * C skal være den største periodetid. For at nå frem til et velfungerende ensretterkredsløb, må man stille visse krav til de anvendte operationsforstærkere og modstande. I vores præcisions-ensretter har vi brugt modstande, som kan svinge op til 5%, hvilket faktisk er meget i sådan en opsætning. Vi ville personligt anbefale 1% eller mindre for at opnå en større nøjagtighed. Sumkoblingen Der er en grund til vi har lavet en sumkobling, og det er ganske simpelt fordi vores LTS-15- NP smider 2.5 V ud på des output ben hele tiden, og for at kunne måle det lille AC signal der kommer ud (eks mV) når f.eks. en ovn trækker strøm skal de 2.5 V udlignes og AC signalet forstærkes for at det er nemmere at måle for os, alt dette gør vi med dette lille og meget simple stykke hardware. Side 20 af 132

21 Projekt Server Rack Power Control Billedet nedenunder viser vores sumkobling Kredsløbsdiagram Side 21 af 132

22 Projekt Server Rack Power Control Udregningen for sumkokblingen Relædriver / Relæer Komponenter der skal bruges, for at vi kan styre relæerne i vores opstilling er minikittet, relædriveren og så selvfølgelig vores relæer. Relæstyringen virker ved at vi via vores port B pin0, pin1og pin2 sender 5V over i vores relæ-driver hvis den er on og selvfølgelig 0V hvis den er off. Når relæ-driveren får 5V, giver den stel til relæerne så de slår over og der er forbindelse til 230V. Diagram over relæ-kredsløb: Side 22 af 132

23 Projekt Server Rack Power Control LTS15-N Dette er vores LTS, som vi bruger for at kunne måle ampere i vores opstilling. LTS en virker på følgende måde: Den skal have en forsyningsspænding på 5V for at fungere, det får den ved hjælp af en ekstern strømforsyning. Måden den måler ampere på er ved at vi har splittet en ledning og kørt den ene leder gennem det hul der er i midten hvorved den kan måle strømmen der trækkes igennem ledningen når man f.eks. tænder en ovn. Transformator Vi har i vores hardware også en transformator som konverterer fra 230Vac til 6Vac af sikkerhedsmæssige grunde. Hvordan virker en transformator En transformator består af to spoler (en primær og en sekundær), som er viklet omkring hinanden på en kerne af metal. Multiplikationsfaktoren afhænger af antallet af omdrejninger på de to spoler. Hvis begge spoler har det samme antal omdrejninger, bliver indgangsstrømmen og -spændingen den samme som udgangsstrømmen og -spændingen. Hvis den sekundære spole har 100 gange flere omdrejninger end den primære, forøger transformatoren i princippet spændingen 100 gange. Side 23 af 132

24 En transformator er et stykke hardware, som kan øge eller mindske spænding, hvilket gøres ved at øge eller mindske den tilsvarende elektriske strøm. Dette kan bedst forklares ved at kigge på effekten i det elektriske system. Effekten er givet ved spænding x strømstyrke Transformatorens ind- og udgangseffekt skal være den samme. Eneste forskel er, at transformatoren omdanner én spænding/strøm kombination til en anden spænding/strøm kombination med samme effekt. Et eksempel: 1 Volt x 6 Ampere = 6 Watt Dette er det samme som 6 Volt x 1 Ampere = 6 Watt Transformatoren kan omdanne 1 Volt til 6 Volt (forstørret med en faktor på 6), hvis den tilsvarende strøm omdannes fra 6 til 1 Ampere (forstørret med en faktor på 1/6). Side 24 af 132

25 RackControl Server Guide Programmet er meget simpelt bygget op med et let og flot design. Programmet har tre faneblade, hvor man under hvert faneblad kan forskellige ting. Fanebladet setup Under fanebladet setup har man muligheder for at vælge hvilken port serveren skal lytte på, og hvilket password klienten skal bruge for at kunne logge på serveren. Password Port Side 25 af 132

26 Set Når man har udfyldt felterne password og port kan man trykke på Set, for at få programmet til at bruge de nye værdier, man har indtastet. Save Programmet er lavet så man kan gemme de informationer, man udfylder i felterne password og port med. Filen kommer til at ligge på c:\ med navnet serversetup.cfg (stien virker kun i Windows) Side 26 af 132

27 Load Hvis man vil bruge tidligere gemte informationer, kan man trykke på knappen Load. Knappen henter gemte informationer fra førnævnte fil ind og sætte kodeords- og portværdierne. Clear Hvis man er så uheldig at have indtastet forkert i et af de to felter, kan man trykke på knappen clear, og felterne vil blive sat med standardværdierne. Side 27 af 132

28 Fanebladet status I fanebladet status kan man se hvilke informationer minikittet sender, samt hvordan og hvorledes relæerne står. On / Off knapperne (funtion virker ikke) På serversiden kan man via knapperne tænde og slukke for relæerne på minikittet. Grøn farve angiver tændt status og rød slukket. Side 28 af 132

29 Fanebladet main Under main kan man starte og stoppe serveren, samt se informationer om hvem der er tilsluttet serveren m.m. Start Lige så snart man trykker på start, venter serveren på at klienterne logger på, samtidig opretter den en forbindelse til MySQl serveren. Stop (funktion virker ikke) For at få serveren til at stoppe med at vente på klienter, trykkes stop Side 29 af 132

30 Clear Hvis man synes det ser uoverskueligt ud med alle de informationer, der bliver fyldt ind i raportvinduet, kan man med et tryk på clear få vinduet gjort blankt. Side 30 af 132

31 Dokumentation Vores lille serverprogram består af tre forskellige tråde: Gui, connection og RackControlserver. Tråd: Gui Tråden gui er den tråd, hvor alt det grafiske design er. Alt efter hvad brugeren vælger at gøre i programmet, vil der blive udført forskellige funktioner. Det første af koden beskriver, hvilke grafiske ting vi har taget i brug. public class gui extends JFrame { JPanel contentpane; JLabel statusbar = new JLabel(); JTabbedPane jtabbedpane1 = new JTabbedPane(); JPanel jpanel1 = new JPanel(); JPanel jpanel2 = new JPanel(); JPanel jpanel3 = new JPanel(); JPanel jpanel4 = new JPanel(); JPanel jpanel5 = new JPanel(); JPasswordField passwordfield = new JPasswordField(); JLabel jlabel1 = new JLabel(); JTextField portnrfield = new JTextField(); JLabel jlabel2 = new JLabel(); JButton setbutton = new JButton(); JButton clearbutton = new JButton(); JScrollPane jscrollpane1 = new JScrollPane(); JTextArea reportarea = new JTextArea(); JList clientlist = new JList(); JButton startbutton = new JButton(); JButton stopbutton = new JButton(); JButton clear = new JButton(); JLabel jlabel3 = new JLabel(); JLabel jlabel4 = new JLabel(); JLabel jlabel5 = new JLabel(); JPanel relaystatus2 = new JPanel(); JPanel relaystatus3 = new JPanel(); JPanel relaystatus1 = new JPanel(); JList jlist1 = new JList(); JLabel jlabel6 = new JLabel(); JLabel jlabel7 = new JLabel(); JLabel jlabel8 = new JLabel(); JLabel jlabel9 = new JLabel(); JLabel voltage = new JLabel(); JLabel current = new JLabel(); JLabel effect = new JLabel(); JButton onoff3 = new JButton(); JButton onoff1 = new JButton(); JButton onoff2 = new JButton(); Side 31 af 132

32 Da vi har en klasse der skal køre samtidig med, har vi gjort at connection skal fungere som en tråd. //Creating a thread named server Thread server; //Passing a variable from one thread to another ServerSocket RackControlServer; Når man har oprettet en tråd, kan man få de to klasser til at skrive til de samme variabler osv. //Passing variables to the connection thread connection listen = new connection(reportarea, portnrfield, clientlist, passwordfield, RackControlServer, current, voltage, effect, relaystatus1, relaystatus2, relaystatus3, onoff1,onoff2,onoff3); Vi tildeler onoff-knapperne en fast standardværdi. //The onoff buttons are set to 0 as default int onoffknap1, onoffknap2, onoffknap3 = 0; Hvis brugeren trykker på clear, vil felterne blive sat tilbage til deres standardværdi. //When you press the clearbutton passwordfield and portnrfield will be //set to default values public void clearbutton_actionperformed(actionevent e) { passwordfield.settext("hest"); portnrfield.settext("6060"); Når brugeren vælger at gemme sine indstillinger, vil de indtastede informationer blive gemt i en fil på c:\ under navnet serversetup.cfg. Derefter bliver der reporteret i reportarea om det lykkedes at gemme eller ej. //When pressing the savebutton the values from public void savebutton_actionperformed(actionevent e) { FileWriter file = null; try { file = file = new FileWriter("c:\\serversetup.cfg"); catch (IOException ex) { reportarea.append("could not write to file\n"); PrintWriter write = new PrintWriter(file); write.println(passwordfield.gettext() + "," + portnrfield.gettext()); write.close(); reportarea.append("file successfully saved\n"); Gør reportarea blank, hvis brugeren trykker på clear under fanebladet main. public void clear_actionperformed(actionevent e) { reportarea.settext(""); Side 32 af 132

33 Lige så snart at man trykker på start, startes tråden server, på den måde bliver klassen connection sat i gang. I statuslinjen bliver der skrevet, om serveren er online eller ej, samt hvilken IP-adresse serveren har. public void startbutton_actionperformed(actionevent e) { server = new Thread(listen); server.start(); //Starting thread connection InetAddress hostip = null; try { hostip = java.net.inetaddress.getlocalhost(); statusbar.settext("status: ONLINE " + hostip.gethostaddress() + " " + portnrfield.gettext() + " " + "No clients"); catch (UnknownHostException ex) { reportarea.append("could not get IP address\n"); Stopknap-funktionen stopper tråden server og skriver i statuslinjen, at serveren er offline. public void stopbutton_actionperformed(actionevent e) { reportarea.append("server is offline\n"); // RackControlServer.close(); server.stop(); InetAddress hostip = null; try { hostip = java.net.inetaddress.getlocalhost(); statusbar.settext("status: OFFLINE " + hostip.gethostaddress() + " " + portnrfield.gettext() + " " + "No clients"); catch (UnknownHostException ex) { reportarea.append("could not get IP address\n"); Side 33 af 132

34 Når man vælger at hente sine tidligere gemte indstillinger, hentes alt ind fra den gemte fil, og splittes op i små stykker og sættes ind i et array. Når arrayet er blevet oprettet, udfyldes de to felter med de hentede informationer. Hvis det lykkes/mislykkes får brugeren det at vide i raportvinduet. public void loadbutton_actionperformed(actionevent e) { String temp; String temppass; int tempport; FileReader fil = null; try { fil = new FileReader("c:\\serversetup.cfg"); catch (FileNotFoundException ex) { reportarea.append("could not load file\n"); BufferedReader read = new BufferedReader(fil); try { String linie = read.readline(); String[] strenge = linie.split(","); temppass = strenge[0]; tempport = Integer.parseInt(strenge[1]); String tempport2 = Integer.toString(tempport); passwordfield.settext(temppass); portnrfield.settext(tempport2); reportarea.append("file successfully loaded\n"); catch (IOException ex1) { reportarea.append("could not read from file\n"); Side 34 af 132

35 Der taget højde for hvordan relæerne står og alt efter om relæerne er slået til eller fra, vil der skiftes mellem rød (slukket) og grøn (tændt). public void onoff1_actionperformed(actionevent e) { if (onoffknap1 == 0) { onoffknap1 = 1; relaystatus1.setbackground(color.green); onoff1.settext("turn OFF"); else { onoffknap1 = 0; relaystatus1.setbackground(color.red); onoff1.settext("turn ON"); public void onoff2_actionperformed(actionevent e) { if (onoffknap2 == 0) { onoffknap2 = 1; relaystatus2.setbackground(color.green); onoff2.settext("turn OFF"); else { onoffknap2 = 0; relaystatus2.setbackground(color.red); onoff2.settext("turn ON"); public void onoff3_actionperformed(actionevent e) { if (onoffknap3 == 0) { onoffknap3 = 1; relaystatus3.setbackground(color.green); onoff3.settext("turn OFF"); else { onoffknap3 = 0; relaystatus3.setbackground(color.red); onoff3.settext("turn ON"); Side 35 af 132

36 Tråd: Connection Constructoren har samme navn som klassen, og den kaldes hver gang et objekt startes. Klasserne kan arve egenskaber fra andre klasser, hvilket er hvad der sker herunder. public connection(jtextarea report, JTextField port, JList list, JPasswordField pass, ServerSocket RackControl, JLabel cur, JLabel eff, JLabel vol, JPanel relaysta1, JPanel relaysta2, JPanel relaysta3, JButton on1, JButton on2, JButton on3) { onoff1 = on1; onoff2 = on2; onoff3 = on3; relaystatus1 = relaysta1; relaystatus2 = relaysta2; relaystatus3 = relaysta3; current = cur; voltage = vol; effect = eff; RackControlServer = RackControl; passwordfield = pass; reportarea = report; portnrfield = port; clientlist = list; Variablerne oprettes, så vi kan udfylde dem med de værdier der modtages fra klienten. public void run() { String tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; boolean connected = false; boolean start = true; int portnr = Integer.parseInt(portnrfield.getText()); Side 36 af 132

37 Forbindelse oprettes til MySQL-serveren. try { Class.forName("com.mysql.jdbc.Driver"); Connection forb = DriverManager.getConnection( "jdbc:mysql:// /rackcontrol?user=ko&password=muh"); Statement stmt = forb.createstatement(); Starter serveren via de informationer brugeren har indtastet, og der bliver noteret i databaseloggen, om serveren kunne starte eller ej. try { ServerSocket RackControlServer = new ServerSocket(portnr); reportarea.append("server is online\n"); String sqlserverstart = "INSERT INTO log (tid, eventid, VALUES (UNIX_TIMESTAMP(), '1', '1')"; stmt.executeupdate(sqlserverstart); clientid) Serveren står nu og venter på at klienterne logger på. Før klienterne kan logge på serveren, sikres at klienterne sender det rigtige kodeord. Hvis dette ikke er tilfældet, vil forbindelsen blive lukket. while (true) { try { Socket forbindelse = RackControlServer.accept(); out = new PrintWriter(forbindelse. getoutputstream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(forbindelse. getinputstream())); String anmodning = in.readline(); if (anmodning.equals(passwordfield.gettext())) { reportarea.append("a client is connected\n"); String sqlclientconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '3', '1')"; stmt.executeupdate(sqlclientconnect); out.println("password accepted, you are now connected"); else { out.println("wrong password, connection closed"); reportarea.append("wrong password from client\n"); String sqlclientdisconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '4', '1')"; stmt.executeupdate(sqlclientdisconnect); forbindelse.close(); Side 37 af 132

38 Når brugeren først har sendt det rigtige password, står serveren og modtager alle de infoer, klienten har modtaget fra minikittet. Informationerne splittes op i et array. while (true) { String data = in.readline(); String[] split = (data.split(",")); tmp1 = split[0]; //amp tmp2 = split[1]; //watt tmp6 = split[2]; //voltage tmp3 = split[3]; //relay1 tmp4 = split[4]; //relay2 tmp5 = split[5]; //relay3 tmp7 = split[6]; //serial connection current.settext(tmp2); voltage.settext(tmp6); effect.settext(tmp1); Javaklienten sender en besked til serveren, om der er oprettet serielforbindelse til minikittet. Javaserveren undersøger via reglerne, hvad der skal noteres i databaseloggen. if (start) { if (tmp7.equals("0")) { // Serial afbrudt String sqlkitdisconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '6', '1')"; stmt.executeupdate(sqlkitdisconnect); connected = false; else if (tmp7.equals("1")) { // Serial tilsluttet String sqlkitconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '5', '1')"; stmt.executeupdate(sqlkitconnect); connected = true; start = false; else { if ((tmp7.equals("0")) && (connected)) { // Serial afbrudt String sqlkitdisconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '6', '1')"; stmt.executeupdate(sqlkitdisconnect); connected = false; else if ((tmp7.equals("1")) && (!connected)) { // Serial tilsluttet String sqlkitconnect = "INSERT INTO log (tid, eventid, clientid) VALUES (UNIX_TIMESTAMP(), '5', '1')"; stmt.executeupdate(sqlkitconnect); connected = true; Side 38 af 132

39 Der undersøges om relæerne er tændt eller slukket, og alt efter hvordan de forskellige relæer står, vil de enten være grønne (tændt) eller røde (slukket) if (tmp3.equals("0")) { relaystatus1.setbackground(color.red); onoff1.settext("turn ON"); else { relaystatus1.setbackground(color.green); onoff1.settext("turn OFF"); if (tmp4.equals("0")) { relaystatus2.setbackground(color.red); onoff2.settext("turn ON"); else { relaystatus2.setbackground(color.green); onoff2.settext("turn OFF"); if (tmp5.equals("0")) { relaystatus3.setbackground(color.red); onoff3.settext("turn ON"); else { relaystatus3.setbackground(color.green); onoff3.settext("turn OFF"); Vi skriver modtaget data ind i vores databaseserver, til senere visning på hjemmesiden. Tråd: RackControlServer String sql1 = "INSERT INTO relae (tid, clientid, r1, r2, r3) VALUES (UNIX_TIMESTAMP(), '1', '" + tmp3 + "', '" + tmp4 + "', '" + tmp5 + "')"; String sql2 = "INSERT INTO aflaesning (tid, clientid, volt, amp, watt) VALUES (UNIX_TIMESTAMP(), '1', '" + tmp1 + "', '" + tmp2 + "', '" + tmp6 + "')"; reportarea.append(tmp1 + "V " + tmp2 + "A " + tmp6 + "W R1: " + tmp3 + " R2: " + tmp4 + " R3: " + tmp5 + "\n"); try { stmt.executeupdate(sql1); stmt.executeupdate(sql2); Dette er hovedtråden, da den gør at ens program vil starte. catch (SQLException s) { System.out.println("Fejl: " + s.getmessage()); Kildekoden til RackControl-Server er vedlagt som bilag. Side 39 af 132

40 RackControl Client Guide Der er udarbejdet et meget simpelt klientprogram, med få, men alligevel gode, faciliteter. Klienten er lavet i et smukt og ligetil design, så selv uerfarne edbbrugere burde kunne overskue situationen. OBS: Før man kan køre vores program skal man først og fremmest være sikker på at JAVA Runtime Environment (JRE) er installeret. Programmet kan hentes på Efter programmet er installeret skal man sikre sig at seriel kommunikation via java virker. På den medfølgende CD-ROM under mappen Java ligger der to filer, som skal bruges. Filen win32com.dll skal kopieres ind under c:\programmer\java\jre1.5.0_04\bin\ (standard installationsplacering) Filen comm.jar skal kopieres ind under c:\programmer\java\jre1.5.0_04\lib\ (standard installationsplacering) Side 40 af 132

41 Indtastning af IP For at få forbindelse til serveren, udfyldes serverens IP-adresse og port. I programmet står den server-ip og port, som vi i gruppen bruger, skrevet som standart. Brug af password For at logge på serveren, skal det rigtige kodeord indtastes i passwordfeltet. Side 41 af 132

42 Tilslutning til server Når IP, portnummer og kodeord er indtastet trykkes på connect, for at oprettet forbindelse til serveren. Start serielforbindelsen Vil man læse data fra serielforbindelsen, trykkes på connect under serial. Hvis minikittet er tændt, vil man kunne se de forskellige målinger, og se om de forskellige relæer er tændt (grøn) eller slukket (rød). Side 42 af 132

43 Dokumentation Klienten består af fire tråde: Serial, connection, klient og gui. Gui Tråden gui indeholder alt det grafiske design, og alt efter hvad brugeren af programmet vælger at trykke på, vil gui sørge for at bestemte tråde eller kommandoer bliver startet eller udført. Gui har brug for at kunne udveksle data med tråden connection, så derfor opretter vi en tråd kaldet server. Thread server; connection listen = new connection(ipnrfield, portnrfield, statusbar, passwordfield, currentstatus, voltagestatus, effectstatus); For at kunne tjekke om serialknap og connectknap senere bliver aktiveret, gives de en bestemt startværdi. int serialknap = 0, connectknap = 0; Hvis brugeren vælger at trykke på connect, for at skabe forbindelse til serveren, vil gui starte tråden connection, hvorefter den vil omdøbe knappen fra connect til disconnect. public void jbutton1_actionperformed(actionevent e) { if (connectknap == 0) { server = new Thread(listen); server.start(); connectknap = 1; statusbar.settext("connecting to server"); connectbutton.settext("disconnect"); else { connectknap = 0; statusbar.settext("disconnected from server"); connectbutton.settext("connect"); server.stop(); Side 43 af 132

44 Da vi i vores logfil, skal kunne skrive tidspunkt for hver gang en ting sker, har vi lavet en funktion der hedder getdate(). I funktionen undersøger vi om time, minut og sekund er mindre end 10, hvis dette er tilfældet indsætter vi et 0 foran for at få en ensartet formatering af tidsangivelsen. public String getdate() { int time = new Date().getHours(); int minut = new Date().getMinutes(); int sekund = new Date().getSeconds(); String Time = Integer.toString(time); String Minut = Integer.toString(minut); String Sekund = Integer.toString(sekund); if (time < 10) { Time = "0" + Integer.toString(time); if (minut < 10) { Minut = "0" + Integer.toString(minut); if (sekund < 10) { Sekund = "0" + Integer.toString(sekund); String Dato = "[" + Time + ":" + Minut + ":" + Sekund + "] "; return Dato; Trykker brugeren på serialbutton, vil knappens navn blive ændret til disconnect. Tråden serial bliver startet så der oprettes forbindelse til minikittet. Hvis det lykkes vil det blive noteret i loggen. public void serialbutton_actionperformed(actionevent e) { try { BufferedWriter writelog = new BufferedWriter(new FileWriter( "c:\\klientlog.txt", true)); writelog.write(getdate() + " Connected to kit\n "); writelog.close(); catch (IOException ex) { serial.init(voltagestatus, currentstatus, effectstatus, relaystatus1, relaystatus2, relaystatus3, listen); if (serialknap == 0) { serialknap = 1; statusbar.settext("connected to kit"); serialbutton.settext("disconnect"); listen.serialconnectionon(); else { serialknap = 0; statusbar.settext("disconnected from kit"); serialbutton.settext("connect"); listen.serialconnectionoff(); Side 44 af 132

45 Tråd: Klient Tråden klient laver ikke det helt store udover at starte gui. Tråd: Connection Connection-tråden har en vigtig del i programmet, da den skal sørge for at brugeren kan forbinde til den valgte server. Når man arbejder med flere tråde er det nødvendigt at trådene udveksler de vigtige informationer indbyrdes. Dette klares med constructoren. JTextField ipnrfield; JTextField portnrfield; JLabel statusbar; JPasswordField passwordfield; JLabel currentstatus; JLabel voltagestatus; JLabel effectstatus; String tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7 = "0"; public connection(jtextfield ip, JTextField port, JLabel status, JPasswordField pass, JLabel current, JLabel voltage, JLabel effect) { passwordfield = pass; statusbar = status; ipnrfield = ip; portnrfield = port; voltagestatus = voltage; currentstatus = current; effectstatus = effect; Side 45 af 132

46 Det info brugeren har udfyldt i de tre felter fra gui tråden, hentes over og puttes i variabler. Via variablerne oprettes en socketforbindelse, og der vil blive skrevet i loggen, om der er oprettet forbindelse eller ej. public void run() { // Making portnr a integer int portnr = Integer.parseInt(portnrfield.getText()); String server = ipnrfield.gettext(); Socket clientserver = null; PrintWriter out = null; BufferedReader in = null; //Trying to connect to server if success it will be logged try { clientserver = new Socket(server, portnr); BufferedWriter writelog = new BufferedWriter(new FileWriter( "c:\\klientlog.txt", true)); writelog.write(getdate() + " Connected to server\n "); writelog.close(); catch (UnknownHostException ex) { //If the client can't connect to server it will be logged catch (IOException ex) { statusbar.settext("could not connect"); try { BufferedWriter writelog = new BufferedWriter(new FileWriter( "c:\\klientlog.txt", true)); writelog.write(getdate() + " Could not connect to server\n"); writelog.close(); catch (IOException log1) { Side 46 af 132

47 For at forbinde og kommunikere med serveren sker følgende: 1. Forbindelse forsøges oprettes 2. Kode sendes 3. Svar på kode modtages 4. Data sendes til server hvert 30. sekund try { out = new PrintWriter(clientserver.getOutputStream(), true); catch (IOException ex1) { statusbar.settext("could not transmit"); //Let the client receive data from server try { in = new BufferedReader(new InputStreamReader( clientserver.getinputstream())); catch (IOException ex2) { statusbar.settext("could not receive message"); //Sending password to server out.println(passwordfield.gettext()); try{ //Receive an answer from the server statusbar.settext(in.readline); catch (IOException ex3){ //Sending serialdata to the server while (true) { out.println(tmp1 + "," + tmp2 + "," + tmp6 + "," + tmp3 + "," + tmp4 + "," + tmp5 + "," + tmp7); try { Thread.sleep(30000); catch (InterruptedException ex4) { Funktionen settmp bruges fra serial-tråden, og førger for at tråden connection kender data modtaget fra minikittet. //Let connection know serial's variables with serialdata void settmp(string tmpa, String tmpb, String tmpc, String tmpd, String tmpe, String tmpf) { tmp1 = tmpa; tmp2 = tmpb; tmp3 = tmpc; tmp4 = tmpd; tmp5 = tmpe; tmp6 = tmpf; public void serialconnectionon() { tmp7 = "1"; public void serialconnectionoff() { tmp7 = "0"; Side 47 af 132

48 Tråd: Serial Serial er en klasse der fungerer som en tråd. Tråden bruges til at læse ind fra den serielle forbindelse. En masse variabler til brug i tråden initialiseres. public class serial implements Runnable, SerialPortEventListener { static CommPortIdentifier portid; static Enumeration portlist; InputStream inputstream; SerialPort serialport; Thread readthread; static connection listen; String tmp1; String tmp2; String tmp3; String tmp4; String tmp5; //Let the serial thread know some of gui's things static JLabel currentstatus; static JLabel voltagestatus; static JLabel effectstatus; static JPanel relaystatus1; static JPanel relaystatus2; static JPanel relaystatus3; Da vi laver en serielforbindelse til vores minikit, er det vigtigt at JAVA ved hvilken port vi bruger til at kommunikere med. Udover dette lader vi også tråden serial kende til nogle af tråden gui s forskellige variabler ved hjælp af constructoren. public static void init(jlabel current, JLabel voltage, JLabel effect, JPanel relay1, JPanel relay2, JPanel relay3, connection templisten){ voltagestatus = voltage; currentstatus = current; effectstatus = effect; relaystatus1 = relay1; relaystatus2 = relay2; relaystatus3 = relay3; listen = templisten; portlist = CommPortIdentifier.getPortIdentifiers(); //Finding computer ports.. com1, com2 and so on while (portlist.hasmoreelements()) { portid = (CommPortIdentifier) portlist.nextelement(); if (portid.getporttype() == CommPortIdentifier.PORT_SERIAL) { if (portid.getname().equals("com2")) { // if (portid.getname().equals("/dev/term/a")) { serial reader = new serial(); Side 48 af 132

49 Inden serielforbindelse til minikittet oprettes er det vigtigt at definere serielforbindelsens parametre. //Settings for the serialconnection public serial() { try { serialport = (SerialPort) portid.open("simplereadapp", 2000); catch (PortInUseException e) { e.printstacktrace(); try { inputstream = serialport.getinputstream(); catch (IOException e) { e.printstacktrace(); try { serialport.addeventlistener(this); catch (TooManyListenersException e) { e.printstacktrace(); serialport.notifyondataavailable(true); try { serialport.setserialportparams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); catch (UnsupportedCommOperationException e) { e.printstacktrace(); readthread = new Thread(this); readthread.start(); try { jbinit(); catch (Exception ex) { ex.printstacktrace(); Lige så snart at minikittet sender dets informationer, deles informationerne op i bidder og laves om til et array. Hvis minikittet ikke sender, vil der blive skrevet en fejlmeddelelse i loggen. //Collect data from the kit and put it into variables public void serialevent(serialportevent event) { switch (event.geteventtype()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readbuffer = new byte[14]; Side 49 af 132

50 //Cut the data up in pieces try { while (inputstream.available() > 0) { int numbytes = inputstream.read(readbuffer); String received = (new String(readBuffer)); String[] split = (received.split(",")); tmp1 = split[0]; //volt tmp2 = split[1]; //amp tmp3 = split[2]; //relay1 tmp4 = split[3]; //relay2 tmp5 = split[4]; //relay3 currentstatus.settext(tmp1); voltagestatus.settext(tmp2); //String tmp6 = Integer.toString(Integer.parseInt(currentstatus.getText()) * Integer.parseInt(voltagestatus.getText()) / 1000); float tmp6 = Integer.parseInt(tmp1) * Float.parseFloat(tmp2); String eff = Integer.toString((int) tmp6); listen.settmp(tmp1, tmp2, tmp3, tmp4, tmp5, eff); effectstatus.settext(eff); if (tmp3.equals("0")) { relaystatus1.setbackground(color.red); else { relaystatus1.setbackground(color.green); if (tmp4.equals("0")) { relaystatus2.setbackground(color.red); else { relaystatus2.setbackground(color.green); if (tmp5.equals("0")) { relaystatus3.setbackground(color.red); else { relaystatus3.setbackground(color.green); catch (IOException e) { break; try { BufferedWriter writelog = new BufferedWriter(new FileWriter( "c:\\klientlog.txt", true)); writelog.write(getdate() +"Could not connected to kit\n"); writelog.close(); catch (IOException ex) { Kildekoden til RackControl-Client er vedlagt som bilag. Side 50 af 132

51 Databaseserver På databaseserveren har vi installeret en standard Windows 2000 Server som operativsystem, for at få lidt variation. Der er ikke ændret noget ud over at Windows indbyggede webserver IIS er slået fra, da vi ikke behøver nogen webserver på denne maskine. MySQL alpha er blevet installeret som en del af FoxServ pakken, en pakke med web- og databaseserver og PHP som er nem at installere. Det er dog kun MySQL der er slået til som service og derfor det eneste der starter når Windows starter. Databaseopbygning Vores database er bygget enkelt op. Ens for alle tabellerne er at de alle indeholder et automatisk inkrementerende id-felt. Alle tidsfelterne angives som UNIX timestamp (antal sekunder siden 1/1 1970), da de er nemme at regne med senere på hjemmesiden. Tabellen aflaesning bruges til at gemme dataene fra aflæsningen af volt, ampere og watt. Desuden gemmes tiden og hvilken klient dataene er fra. Alle felterne er heltal undtaget ampere-feltet, da det bliver for upræcist uden kommatal. Tabellen relae er til aflæsning af relæernes status. Foruden det gemmes også klientens id og tidspunkt for aflæsning. Side 51 af 132

52 Tabellen clients er til klienterne. Hver klient får et id-nummer og et navn, så deres id er kan bruges i de andre tabeller som referencer. Tabellen events er til de forskellige fejl- og statusbeskeder som skal sættes ind hver gang der sker noget vigtigt i vores system. Id-feltet bruges igen som reference i andre tabeller. De to andre felter er den korte beskrivelse af fejltype og den længere beskrivelse til brug på hjemmesiden. Tabellen log bruges til at gemme statusbeskeder. Clientid og eventid refererer til idfelterne i henholdsvis clients og events. En SQL-dump over tabellerne, inklusiv en standardklient og 6 foruddefinerede events, er vedlagt som bilag. Side 52 af 132

53 Webserver / Firewall Serveropsætning I gruppen har vi sat en central server op til at køre som firewall, dhcp, web og samba. Opsætning af operativsystem Vi har valgt RedHat v9.0, da det er et meget stabilt operativsystem, som ikke kræver særlig mange resurser af den valgte maskine man vælger at installere produktet på. Det gode ved denne linux distribution er at det er et gratis produkt samt open source. At et produkt er open source, betyder at man selv kan tilrette / tilføje i selve kildekoden til operativsystemet og derved optimere systemet eller foretage ændringer efter behov. Systemkrav Grafisk brugerflade 400Mhz Pentium processor eller bedre Mindst 475MB diskplads, dog over 5GB hvis alt skal installeres 128MB RAM (192MB RAM anbefales) Tekstbaseret brugerflade 200Mhz Pentium processor eller bedre Mindst 475MB diskplads, dog over 5GB hvis alt skal installeres 64MB RAM (192MB RAM anbefales) Installation Under installation af RedHat har vi gjort følgende: 1. Installeret RedHat med engelsk sprog 2. Valgt dansk tastatur 3. Installeret RedHat som server (ingen grafisk brugerflade) 4. Tildelt systemet 6GB plads mountet som / 5. Tildelt systemet 1024MB swap 6. Fravalgt firewall (vi laver selv et firewallscript) 7. Valgt at installere dhcpd, og php-mysql modul Side 53 af 132

54 Opsætning af DHCP For at få vores RedHat maskine til at virke som DHCP server, skal onfigurationsfilen dhcpd.conf i /etc/ oprettes. Her gennemgås et par vigtige linjer i filen. En af de vigtige ting som man ofte glemmer, og den derfor ikke vil starte, er hvilken måde man vil have services til at opdatere DNS på. Der er to måder at gøre det på, ad-hoc som frarådes da den er for gammel og så interim. Vi har selvfølgelig valgt interim. ddns-update-style interim; Herefter angives hvilket netværk opsætningen gælder for, vi har desuden angivet to klienter som skal have faste IP-adresser. Det er nemlig vigtigt at vores RackControl-Server og database-server får de samme IP-adresser hver gang, af hensyn til RackControl- Server. host database { hardware ethernet 00:0c:6E:31:10:24; fixed-address ; host rackserver { hardware ethernet 00:0C:6E:31:11:39; fixed-address Konfigurationsfilen er nu redigeret færdig, nu mangles blot at oprette filen dhcpd.leases i /var/lib/dhcp/, der er en database over hvilke IP-adresser DHCP-serveren har tildelt maskinerne touch /var/liv/dhcp/dhcpd.leases Og så kan servicen startes service dhcpd start Side 54 af 132

55 Opsætning af Apache I projektoplæg står at vi skal have en maskine til at fungere som webserver, hvilket vi har valgt vores Linuxmaskine til. For at få RedHat til at fungere som webserver, er der nogle ting man lige skal have tilrettet. I /etc/ ligger der en fil der hedder hosts, filen har vi tilrettet til følgende: firewall.gruppe2 localhost firewall.gruppe firewall.gruppe2 Herefter skal vi til at tilrette httpd.conf, som ligger i mappen /etc/httpd/conf/. Følgende tilføjes: AddDefaultCharset iso Linjen tilføjes for at være sikker på at der kan vises danske og vesteuropæiske tegn. Næste linje angiver webserverens navn: ServerName firewall.gruppe2 Derefter sættes navnet på selve serveren til firewall: Services startes: hostname firewall service httpd start Side 55 af 132

56 Opsætning af Samba Da vi ikke orker at sidde fysisk ved serveren for at redigere hjemmesiden, har vi valgt at gøre brug af Samba. Samba er et stykke open source software, der på Linux blandt andet kan fungere som filog printdeling for Windows-klienter. For at få adgang til serveren via samba, skal man oprette en sambabruger, og det gøres ved at oprette brugeren lokalt på maskinen useradd web og derefter gøre ham til sambabruger: smbadduser web:web eller smbpasswd a web Når kommandoen er udført, får man besked på at angive password til den oprettede bruger. Brugeren web på vores server skal have adgang til mappen html, som ligger i /var/www/. For at det kan lade sig gøre, er der to ting der skal gøres, at give brugeren rettigheder til den ønskede mappe chown web:web /var/www/html og tilføje nogle linjer i smd.conf, som ligger i /etc/samba/, så brugeren starter i den pågældende mappe [web] user = web write list = web path = /var/www/html NetBIOS-navnet defineres, så Windowsklienter kan logge på via det Servicen startes netbiosname = firewall service smb start Side 56 af 132

57 Opsætning af firewall For at kunne bestemme hvilke ting der skal kunne kommunikere gennem serveren, har vi lavet et firewallscript kaldet brandmur, som gør brug af iptables. Iptables er en overbygning til Linux-kernens netfilter infrastruktur, der gør at man med iptables-modulet kan sætte et filter op præcist som vil. Via forudspecificerede kæder som INPUT og OUTPUT kan man bestemme hvilke slags pakker man vil acceptere eller afvise. Vores firewall sørger for at udvalgte TCP- og UDP-porte åbnes, så folk kan tilgå vores hjemmeside via port 80 og RackControl-Client kan tilgå RackControl-Server via port Alle forbindelser fra det interne net bliver accepteret. Scriptet skal gøres eksekverbart og startes chmod 777 brandmur (filen har vi lagt i /home/)./brandmur Nu mangler vi blot at sørge for at scriptet bliver eksekveret hver gang serveren startes. Følgende køres mens man står i mappen /etc/rc.d/rc3.d/ ln s /home/brandmur S09firewall Tallet 09 angiver rækkefølgen som scripts på serveren bliver startet ved opstart. Her gælder det om at få den startet efter iptables-modulet (som hedder S08iptables), men før netværksmodulet (som hedder S10network). Derved sikrer man at der i teorien ikke kan nå at være et åbent og sårbart system. Firewallscriptet er vedlagt som bilag. Side 57 af 132

58 Valg af services Når serveren starter op, er det vigtigt at sikre at serveren starter de services, man har brug for. Den nemmeste måde man kan gøre dette på er at skrive setup, hvorefter man under System services markerer de services man vil starte op med maskinen. Ud over de services, der allerede er valgt som standard, har vi valgt DHCP (dhcpd), Samba (smbd) samt webserveren Apache (httpd). Side 58 af 132

59 Hjemmeside Teknologierne bag XHTML For at præsentere de indsamlede data skal de vises på en hjemmeside og vi har i gruppen valgt at benytte XHTML 1.0 Transitional kode. XHTML er en reformulering af HTML 4.0 i XML 1.0 sproget. XHTML-, HTML- og XMLstandarderne bliver beskrevet, vedligeholdt og udviklet af World Wide Web Consortium (W3C), De vigtigste forskelle (set fra webmasterens øjne) mellem f.eks. HTML 4.0 og XHTML 1.0 er: Valideret XHTML kode er basalt set XML, og kan derfor køres på mange enheder, f.eks. håndholdte enheder og mobiltelefoner, der ikke har plads eller behov for en egentlig webbrowser (som Microsofts Internet Explorer eller Mozillas Firefox) I XHTML kan indhold og design adskilles, skal man kun bruge en række data skal man altså ikke downloade og senere si en masse unødvendig designkode fra Fordi XHTML bygger på XML kan man inkludere anden slags XML kode, f.eks. skalerbar XML-vektorgrafik (SVG) eller MathML, et matematisk XML-sprog Alle XHTML-tags skrives med små bogstaver XHTML-tags der ikke har en afsluttede tag skal afsluttes med en skråstreg før > tegnet. <p></p> skal altså stadig se sådan ud, mens <br>, der ikke har en </br>, skal hedde <br /> PHP Da vores side skal være dynamisk og kunne kommunikere med en SQL-database er vi nødt til at bruge et scriptsprog som for eksempel ASP eller PHP. Vi har valgt at bruge PHP på en Apache webserver, da begge dele er åbne, gratis og kan køre på en Linuxserver. PHP er et meget populært scriptingsprog. Det er open source og dets syntaks minder meget om C, Java, og Perl. Ud over at kunne bruges til mange andre ting, så er PHP specielt velegnet til hjemmesider, hvor det kan gøre dem dynamiske og nærmest selvopdaterende. For at få PHP til at kommunikere med en MySQL-database har vi under vores serverinstallation installeret et PHP-MySQL-modul til vores webserver. SQL Da kravet i projektoplægget var en SQL-baseret database og vi har en MySQL-databaseserver, bruger vi PHP s MySQL-modul, til at kommunikere med. MySQL er et multitrådet og multitbruger SQL databasesystem. Side 59 af 132

60 Hjemmesiden Hjemmeside er bygget op til at være så overskuelig som muligt. Man skal ikke igennem alle mulige sider for at foretage en søgning, og man kan altid øverst på siden se ens valgte tidsinterval, klient og log. Siden er også let at benytte. Man vælger blot et fra- og til-tidspunkt, hvilken klient man vil bruge og hvilken log der skal hentes data ud fra. Herefter vil man få præsenteret dataene i omvendt kronologisk rækkefølge, altså nyeste data øverst. Funktioner og opbygning For at genbruge en del kode er der konstrueret nogle funktioner. Det gør at vi kun behøver at foretage ændringer ét sted i koden, i stedet for hvert sted vi skulle have placeret koden. Det gør desuden koden meget mere overskuelig. Funktion: GetClient ($ClientId) Henter og returnerer klientens navn fra ud fra et klient-id. Funktionen bruges ved visning af data i tabellerne. Funktion: GetEvent ($EventId) Henter en beskrivelse af eventen og vises når brugeren har valgt fejlsøgningsloggen. Side 60 af 132

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

Netværk & elektronik

Netværk & elektronik Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars

Læs mere

GSM SMS Modem MODEL: SA RTU-1 V1.01

GSM SMS Modem MODEL: SA RTU-1 V1.01 GSM SMS Modem MODEL: SA RTU1 V1.01 Brugervejledning Indgange: Der er fire indgange på modulet. De kan programmeres som normale indgange. De kan programmeres som tæller. Udgange: Der er en udgang på modulet

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

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

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

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

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

Hurtig Start Guide 1

Hurtig Start Guide 1 Hurtig Start Guide 1 Kamera Tilslutnings Diagram Telefon Tablet OBS: I den indledende opsætning, tilslut kameraet til routeren med Ethernet kablet, følg derefter de næste trin 2 1. Installer Reolink APP

Læs mere

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning 1. Lokalt installeret afleveringsprogram til stedprøver... 2 2. Systemkrav... 3 3. Netværksopsætning... 4 4. Installation

Læs mere

Quickguide. Dansk quickguide til Nexus IP opsætning

Quickguide. Dansk quickguide til Nexus IP opsætning Quickguide Dansk quickguide til Nexus IP opsætning Contents NVR guide... 3 1.0 Optageren:... 3 1.1 Tilslutning... 3 1.2 Installation af harddisk:... 3 2.0 Først gang din optager bliver startet:... 4 3.0

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Installation af MySQL server på PC

Installation af MySQL server på PC Installation af MySQL server på PC (Udgave 0.02 2013-Oktober-06 @ 22:30 Chris Bagge, Mindre rettelser) Dette er en kort beskrivelse af hvordan man får installeret en MySQL server på en PC med Windows 7.

Læs mere

Updater KINO. Opsætning og installation

Updater KINO. Opsætning og installation Updater KINO Opsætning og installation Indholdsfortegnelse Kort updater... 3 Beskrivelse... 3 Hovedkomponenter i updateren... 4 Specifikationer:... 4 Tilslutninger... 5 Spænding til Updateren (CN12 og

Læs mere

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem DRFLive - dynamisk visning af resultater fra DRF Stævnesystem Resumé: Beskrivelse af program (DRFLive) til dynamisk visning af resulter fra DRF Stævnesystem Forfatter: Claus Hulstrøm Dato: 15. januar 2010

Læs mere

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter...

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter... CS 47 Syntax Side 2 Indholdsfortegnelse 1 Introduktion...4 1.1 Funktioner...4 1.2 Forsyning...4 1.3 PSTN support...5 1.4 GSM support...5 1.5 SMS support...5 1.6 Indgange...5 1.7 Udgange...5 1.8 Password...5

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

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde SPIDER Quick guide DATO: August 2017 FORHANDLER: WASYS A/S Langebjergvænget 18 4000 Roskilde +45 7221 7979 Indhold Om SPIDER... 3 Funktioner ved SPIDER... 3 Spændingsforsyning... 3 Installation og fysiske

Læs mere

I denne øvelse vil du få vist hvordan opsætningen af netværket foregår. Målet er at du selv kan konfigurere en IP adresse på din lokal maskine.

I denne øvelse vil du få vist hvordan opsætningen af netværket foregår. Målet er at du selv kan konfigurere en IP adresse på din lokal maskine. I denne øvelse vil du få vist hvordan opsætningen af netværket foregår. Målet er at du selv kan konfigurere en IP adresse på din lokal maskine. Opsætningen her er speciel for dette lokalnetværk, der kan

Læs mere

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007 JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal

Læs mere

SSSystems.local. Netværk. Sikkerhed. Webserver

SSSystems.local. Netværk. Sikkerhed. Webserver SSSystems.local Netværk Vi har valgt at bygge vores netværk på en måde der sikre at trafik fra DMZ en ikke kan komme ned til vores LAN. Både ved hjælp af firewall regler og NAT. Men for at sikre at vi

Læs mere

IP Modul report / Netværks software manual 1.0 Funktions beskrivelse:

IP Modul  report / Netværks software manual 1.0 Funktions beskrivelse: IP Modul E-mail report / Netværks software manual 1.0 Funktions beskrivelse: IP modulet anvendes til generering af e-mail alarm fra Fronti alarm-centraler samt fjernstyring af Fronti alarm-centraler via

Læs mere

Wahlberg Surtitle Display

Wahlberg Surtitle Display Wahlberg Surtitle Display (Copyright by WAHLBERG ApS) Bruger manual Software version - 1.88 Produktindhold: Strømkabel USB to RS232 Converter. Undertekst lysavis 2,8 Meter lang / 0,3 Meter høj. Wahlberg

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning

Læs mere

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017) FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017) Page 1 of 12 Indhold 1 Adgang til FleeDa... 3 1.1 HW og SW forudsætninger... 3 1.2

Læs mere

Smargo Smartreader+ (version 9.9.2008)

Smargo Smartreader+ (version 9.9.2008) Smargo Smartreader+ (version 9.9.2008) Med Smargo Smartreader plus er det muligt at tilføje yderlige en kortlæser til din Dreambox eller aflæse kortet på en PC-linux server. Nedenfor gives vejledning i

Læs mere

SimPal-T4. GSM Stikkontakt Bestillings nummer Vejledning Manual version 2.0

SimPal-T4. GSM Stikkontakt Bestillings nummer Vejledning Manual version 2.0 Side 1 af 14 SimPal-T4 GSM Stikkontakt Bestillings nummer 6000.0165 Vejledning Manual version 2.0 Side 2 af 14 Indhold 1. Funktioner og Specifikationer... 3 1.1 Funktioner... 3 1.2 Specifikationer... 3

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Kom godt i gang med. Icotera fiberboks. med indbygget router

Kom godt i gang med. Icotera fiberboks. med indbygget router Kom godt i gang med Icotera fiberboks med indbygget router Tillykke med din nye fiberboks Inden du får glæde af fiberbredbåndet, skal du have tilsluttet computer, TV og telefon til fiberboksen. Med denne

Læs mere

FireBUS PARKERINGSVENTILATION

FireBUS PARKERINGSVENTILATION FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne

Læs mere

Opsætning af ASUS Router

Opsætning af ASUS Router Opsætning af ASUS Router I dette dokument vil vi forsøge at guide dig igennem opsætning af din nye ASUS router, trin for trin. Pak først routeren ud af æsken og stil den et centralt sted i lejligheden

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

QUICKVEJLEDNING til Piccolo Light

QUICKVEJLEDNING til Piccolo Light QUICKVEJLEDNING til Piccolo Light Montering 1. Piccolo Light kan installeres uden brug af kommunikation via GSM, men installeres et SIM-kort i enheden, vil man bl.a. kunne få alarmer som sms og email.

Læs mere

Netværks opsætning af IP modulet:

Netværks opsætning af IP modulet: Netværks opsætning af IP modulet: Installer vcomsetup til ip modul.exe fra den modtagne Mini CD. Efter installation start VCOM programmet Sørg for at enheden er tilsluttet netværket og vælg Search Registrer

Læs mere

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12 Installation og Drift Aplanner for Windows Systemer Version 8.15.12 Aplanner for Windows løsninger Anbefalet driftsopsætning Cloud løsning med database hos PlanAHead Alle brugere, der administrer vagtplaner

Læs mere

Grundopsætning af Piccolo på server og terminal og brug af Check-In

Grundopsætning af Piccolo på server og terminal og brug af Check-In Grundopsætning af Piccolo på server og terminal og brug af Check-In Til sidst i dette dokument er der en række mulige fejlscenarier og deres løsninger. Installation på velkomstterminal: Sæt værdi i registry

Læs mere

3. Menuen Start -> Programs -> OpenVPN åbnes, og "My Certificate Wizard" vælges:

3. Menuen Start -> Programs -> OpenVPN åbnes, og My Certificate Wizard vælges: Opsætning af VPN forbindelse til DRC En VPN forbindelse gør det muligt for en hjemmecomputer, eller en bærbar computer, at få adgang til DRCs interne lokalnet fra en vilkårlig internetforbindelse. Forudsætninger

Læs mere

Kom godt i gang med. Icotera fiberboks. med indbygget router. 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev04.indd 1

Kom godt i gang med. Icotera fiberboks. med indbygget router. 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev04.indd 1 Kom godt i gang med Icotera fiberboks med indbygget router 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev04.indd 1 02-11-2011 10:03:07 Tillykke med din nye fiberboks Inden du får glæde af fiberbredbåndet,

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

Åbning af porte og UPnP

Åbning af porte og UPnP Åbning af porte og UPnP Denne guide har til formål at hjælpe dig med at åbne for porte i din router og/eller aktivere UPnP. Det kan være nødvendigt at åbne porte i ens router hvis man for eksempel anvender

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony)

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Generelt Mobil Reception er et værktøj som bruges til at overvåge medarbejdere, kø er og meget andet samt styre dit omstillingsanlæg

Læs mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

TimePlan version 6.0 - Installationsvejledning

TimePlan version 6.0 - Installationsvejledning TimePlan version 6.0 - Installationsvejledning For opgradering af tidligere TimePlan versioner anvendes opdateringsprogrammet: TimePlan 6 Wizard.exe. Programmet kan afvikles på dansk eller engelsk. Opdateringsprogrammet

Læs mere

MANUAL. Præsentation af Temperaturloggerdata. Version 2.0

MANUAL. Præsentation af Temperaturloggerdata. Version 2.0 MANUAL Præsentation af Temperaturloggerdata Version 2.0 Indholdsfortegnelse FORORD...3 INTRODUKTION...3 KRAV OG FORUDSÆTNINGER...3 INSTALLATION...4 OPSÆTNING...8 PROGRAMOVERBLIK...10 PROGRAMKØRSEL...11

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

Læs mere

Dr.Sherlock INSTALLATION. 1.0 Diagram TEMPERATUR - OVERVÅGNING

Dr.Sherlock INSTALLATION. 1.0 Diagram TEMPERATUR - OVERVÅGNING Dr.Sherlock TEMPERATUR - OVERVÅGNING 1.0 Diagram INSTALLATION Kabel til følere skal være type FLEX YSY-JZ eller lignende. Det må gerne være en multileder med fælles skærm. Det er også muligt at køre med

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

MSI pakke til distribution af AutoPilot komponenter.

MSI pakke til distribution af AutoPilot komponenter. MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,

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

KOM GODT I GANG MED DIN ICOTERA FIBERBOKS MED INDBYGGET ROUTER

KOM GODT I GANG MED DIN ICOTERA FIBERBOKS MED INDBYGGET ROUTER KOM GODT I GANG MED DIN ICOTERA FIBERBOKS MED INDBYGGET ROUTER TILLYKKE MED DIN NYE FIBERBOKS Inden du får glæde af fiberbredbåndet, skal du have tilsluttet computer, TV og telefon til fiberboksen. Med

Læs mere

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE vp.online 2011 01-10-2011 Indholdsfortegnelse 1 PROBLEMER MED AT SE VP.ONLINE... 3 2 BROWSER KONFIGURATION... 6 3 SKRIVEADGANG TIL DREV... 7 4 SESSION TIMEOUT

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Gateway MP til Modbus RTU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af UK24MOD. Interface MP / Modbus RTU

Gateway MP til Modbus RTU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af UK24MOD. Interface MP / Modbus RTU Gateway MP til Modbus RU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af. Interface MP / Modbus RU ilslutning af MP / MF(2) motorer og BF-opLine motorer til Modbus RU Op til 8 motorer og

Læs mere

Nexus IP Quickguide. Til alle Nexus VW og FW modeller

Nexus IP Quickguide. Til alle Nexus VW og FW modeller Nexus IP Quickguide Til alle Nexus VW og FW modeller Indhold 1.0 Første Opsætning... 3 1.1 FYSISK TILSLUTNING... 3 1.2 FIND KAMERAET... 3 1.3 LOG PÅ KAMERAET MED INTERNET EXPLORER 11... 4 2.0 Udvidet forklaring

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

4. Tilslut batteri backup i centralen til dens konnekter. I tilfældet af en alarm indtast Masterkoden (default 1234) for at afstille alarmen

4. Tilslut batteri backup i centralen til dens konnekter. I tilfældet af en alarm indtast Masterkoden (default 1234) for at afstille alarmen Installations punkter. 1. Monter centralen hvor man ønsker den placeret 2. Monter forsyningskablet 3. Tilslut Ethernet kablet og/eller SIM kortet til kommunikations modulet 4. Tilslut batteri backup i

Læs mere

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor. Simple kontakter Accelorometer Example sensors Lysfølsomme modstande RFID reader & tags Temperaturfølsomme modstande Flex Sensor Ultralyds afstandsmåler Piezo Pressure/vibration Piezo Sound/buzzer Peltier

Læs mere

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system SSI-9001 IP65 GSM fjern kontrol og alarm system Installations vejledning SSIHuset v/svane Electronic ApS Vejledning Kontakt Tænd/sluk 1 - Strømforsyning: Forbundet til egen 12V / 1.5A strømforsyning (*)

Læs mere

IBI/CTS opbygning af grafiske brugerflader på centrale anlæg...3 Stikordsregister...39

IBI/CTS opbygning af grafiske brugerflader på centrale anlæg...3 Stikordsregister...39 44164 INDHOLDSFORTEGNELSE IBI/CTS opbygning af grafiske brugerflader på centrale anlæg...3 Stikordsregister...39 2-39 Rekv. 7 Prod. 29-11-2005-14:07 Ordre 10723 EFU Indledning IHC Control Viewer giver

Læs mere

Kom godt igang med DS-101g+ Disk Station. (installations vejledning)

Kom godt igang med DS-101g+ Disk Station. (installations vejledning) Kom godt igang med DS-101g+ Disk Station (installations vejledning) Bemærk Venligst se Chapter 2 Get to Know the Hardware i den engelske User s Guide for detaljeret beskrivelse af knapperne samt LEDs funktioner.

Læs mere

Installation Aesiras 2009

Installation Aesiras 2009 Installation Aesiras 2009 Installationsvejledning Denne vejledning guider dig igennem installation af systemet. Hvis du kun har behov for økonomi- og handelsdelen, skal du kun anvende denne installationsvejledning.

Læs mere

NoteSync vejledning. Leba Innovation A/S

NoteSync vejledning. Leba Innovation A/S NoteSync vejledning Leba Innovation A/S Indholdsfortegnelse NoteSync... 3 USB Interface... 3 Opladning og sync af mere end 16 enheder... 3 Ventilation... 4 Forbinde enheden til strøm... 4 Skifte sikring...

Læs mere

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server Side 1 af 20 INSTALLATIONSGUIDE 1 1 FORORD 3 2 OPRET NODEN I NETGROUP PORTAL. 4 3 KLIENTSOFTWARE 5 3.1

Læs mere

WEA-Base Brugervejledning til vejetransmitter

WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 Indholdsfortegnelse 1. Tekniske data...

Læs mere

Hurtig Start Guide. Wireless NVR System Connection Reolink

Hurtig Start Guide. Wireless NVR System Connection Reolink Hurtig Start Guide Wireless NVR System Connection Reolink Kend din NVR 1. USB A. Tilslut WIFI Antenner 2. Strøm LED 3. HDD LED B. Tilslut NVR til monitor Tilslut NVR-enheden til HD TV/monitor via et VGA

Læs mere

Stokerbot 1.0. Bruger vejledning. Denne vejledning er stadig i et meget tidligt stadie, og mange ting er ikke forklaret grundigt nok.

Stokerbot 1.0. Bruger vejledning. Denne vejledning er stadig i et meget tidligt stadie, og mange ting er ikke forklaret grundigt nok. Stokerbot 1.0 Bruger vejledning Denne vejledning er stadig i et meget tidligt stadie, og mange ting er ikke forklaret grundigt nok. Har du spørgsmål der ikke er besvaret, bedes de oprettet i forumet så

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Installation af Elektronisk APV på flere PC er

Installation af Elektronisk APV på flere PC er Installation af Elektronisk APV på flere PC er Vejledning til installation af Elektronisk APV, når programmet skal installeres på flere PC er, der kobler sig op på en fælles server. 1 Installation af Elektronisk

Læs mere

BRUGERVEJLEDNING VIDEOKAMERA

BRUGERVEJLEDNING VIDEOKAMERA BRUGERVEJLEDNING VIDEOKAMERA Side 2 til nyt videokamera Introduktion Det nye videokamera er et IP-videokamera, der tilsluttes trådløst til din router. Videokameraet fungerer sådan, at du kan se videooptagelser

Læs mere

Kom godt i gang med. Icotera fiberboks. med indbygget router

Kom godt i gang med. Icotera fiberboks. med indbygget router Kom godt i gang med Icotera fiberboks med indbygget router Tillykke med din nye fiberboks Inden du får glæde af fiberbredbåndet, skal du have tilsluttet computer, TV og telefon til fiberboksen. Med denne

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

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14 EL-PAS -Cruise II ANDROID Diagnostic og Toolbox Instruktion LP www.lp.dk Lindgaard Pedersen A/S Side 1 / 14 Indhold Denne vejledning indeholder instruktion til brug af Cruise Android App, hentet fra Android

Læs mere

Bruger manual for SW 3.06

Bruger manual for SW 3.06 Ecco 101 VÆGTE & VEJESYSTEMER Power Tare Charge KG Max 200 Kg O T Bruger manual for SW 3.06 Nyskovvej 13 DK-6580 Vamdrup Tlf. +45 76 92 02 00 Fax +45 75 58 06 31 E-mail: scales@farmertronic.com www.farmertronic.com

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

VIGTIG information til alle kunder som kører backup over Internet via SSL - Kræver kundeaktion inden 17. april 2009!

VIGTIG information til alle kunder som kører backup over Internet via SSL - Kræver kundeaktion inden 17. april 2009! VIGTIG information til alle kunder som kører backup over Internet via SSL - Kræver kundeaktion inden 17. april 2009! Det er blevet tid til at opdatere certifikater på alle servere som afvikler backup over

Læs mere

AgroSoft A/S AgroSync

AgroSoft A/S AgroSync AgroSoft A/S AgroSync AgroSync er et AgroSoft A/S værktøj, der bliver brugt til filudveksling imellem WinSvin og PocketPigs. Fordele ved at bruge AgroSync: Brugeren bestemmer overførsels tidspunktet for

Læs mere

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet. Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke

Læs mere

KOM GODT I GANG MED TILGIN HG 2381

KOM GODT I GANG MED TILGIN HG 2381 KOM GODT I GANG MED TILGIN HG 2381 Tillykke med din nye router Du har valgt at tilslutte en router til din fiberboks. Det er en rigtig god idé! Routeren giver dig nemlig mulighed for at have mere end en

Læs mere

Svane Electronic Timer universal med 8 funktioner 1

Svane Electronic Timer universal med 8 funktioner 1 Svane Electronic Timer universal med 8 funktioner 1 Digital timer print modul 12V 2000.2231 Multi funktions timer med 8 funktioner, anvendelig i mange installationer, forsyning 12VDC drift. Printet har

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Ls venligst denne instruktions manual igennem inden brug af produktet Thank you for purchasing our product. This smart unit is not

Læs mere

LK IHC Visual. Installation, systemkrav og kommunikation. Traditionelt el-materiel. Intelligente systemer. Data og kommunikation.

LK IHC Visual. Installation, systemkrav og kommunikation. Traditionelt el-materiel. Intelligente systemer. Data og kommunikation. LK IHC Visual Installation, systemkrav og kommunikation Traditionelt el-materiel Intelligente systemer Data og kommunikation Belysning Indhold Sådan kommer du i gang... Installation af IHC Visual... Pc-systemkrav...

Læs mere

Video Projector Controller. Brugermanual

Video Projector Controller. Brugermanual Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK l Video Projector Controller Brugermanual WWW.WAHLBERG.DK TELEPHONE +45 86 18 14 20 CELL PHONE +45 40 52 20 88 EMAIL: mads@wahlberg.dk Feb

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Sådan installeres og teste WordPress på en lokal server

Sådan installeres og teste WordPress på en lokal server Sådan installeres og teste WordPress på en lokal server Det gratis WordPress blog værktøj er vokset gennem årene til et fuldgyldigt CMS-system content management system). WordPress har forenklet processen

Læs mere

Projekt rapport. for. Zigbee kommunikation

Projekt rapport. for. Zigbee kommunikation Projekt: Zigbee kommunikation Dato: 24-02-2010 Afleverings Dato: 04-06-2009 Titel: Projekt rapport for Zigbee kommunikation 6. semester projekt i WEM1 ved Ingeniørhøjskolen i Århus Gruppe 2: 06709 Sean

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

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

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning Generelt: ELCANIC A/S COUNTER Type CNT150 er en microprocessor baseret tæller. Specielt designet

Læs mere

GUIDE TIL CLOUD DRIVE

GUIDE TIL CLOUD DRIVE GUIDE TIL CLOUD DRIVE Dette er en guide du kan anvende til nemt at komme effektivt i gang med at anvende Cloud Drive Indholdsfortegnelse 1. Tilgængelige Cloud Drive klienter 2. Guide til Windows klienten

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere