Hidden Camera App. Realtidsprogrammering EDA040. Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)



Relevanta dokument
Realtid. eda040project2010 MANUAL. - Christoffer Olsson. - Daniel Lehtonen

Åtkomst och användarhandledning

Projektrapport EDA095

Projekt i Nätverksprogrammering. MegaNet Handledare: Pierre Nugues

Referensmanual. De olika lägena. Idle. Movie. Synchronous. Asynchronous

Piff och Puffs Chatsystem

FÖRBEREDANDE INSTÄLLNINGAR INFÖR SKYPE MÖTE SAMORDNAD VÅRD- OCH OMSORGSPLANERING

Manual Nedladdningsbara klienten NLK

EDA095 Nätverksprogrammering

Din manual NOKIA TME-3

Milesight Motion Detection V1.0

Användarhandbok OE/OSSpeaker V.10.3

Intraoral kamera. Installations- och användarmanual

Upsättning av Shoutcast-sändning

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Innehåll. Förändringar i v5.2

MANUAL NETALERT FÖR IPHONE VERSION 1.0

Kontakt: Mikael Forsman Användarmanual för VIDAR 4.0

IT-arbetsplats med distansåtkomst

1 Översikt. 1.1 Koncept 1 (19) Tomas Rook Dokument typ Rev. Manual

Handbok Simond. Peter H. Grasch

HexaFlip. Kravspecifikation

19. Skriva ut statistik

Freeway WEB bussadapter. Installations- och bruksanvisning

Linuxadministration I 1DV417 - Laboration 4 Nätverk, DHCP, säkerhetskopiering, processhantering, Samba och NFS

MANUAL NETALERT FÖR ANDROID VERSION 3.3

Laboration 2: Ett kommunikationssystem

Här kan du välja befintligt upplägg eller skapa ett nytt. Klicka på edit uppe till höger för att redigera och/eller skapat nytt.

CAMZWEXT3 version 2 CCTV Säkerhetssystem med ljud och rörelse detektor samt videoaktivering.

Projektarbete 2: Interaktiv prototyp

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

EXPLORE 7 HD

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Stefan Nilsson

NEO Speech. Trygghetstelefon. Användarmanual (SE)

Webbkamera från

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Konfigurationsmanual FlexTime 1.2

Microsoft Windows 8 Grunder

Byta lösenord på en Ingate Firewall 1180/1190/SIParator 18/19. Lisa Hallingström Paul Donald Bogdan Musat Adnan Khalid

Produktbild och funktionsknappar

TOPAZ PHD. Användarmanual

Nu lanserar Kentima version 6.4 av Ethiris VMS

Manual för version V2

Datainsamling över Internet

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

AB M&E Ohlssons Klockgjuteri

RAPPORT: ATT UPPLEVA EN UTSTÄLLNING HELT I LJUD. FÖR UTSTÄLLNINGEN VÄRDEFULLT. BAKGRUND..s 2 METOD...s 2 RESULTAT...s 3 9 ANALYS AV WORKSHOP...

Funktioner. Parametrar

Installation av. Vitec Online

Svensk version. Inledning. Innehåll. Specifikationer BT100. Extra specifikationer BT100 S W E E X. C O M. BT110 - Sweex Bluetooth Class I Adapter USB

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Ver Guide. Nätverk

Bruksanvisning KABA MAS AUDITCON KABA MAS HAMILTON Modell 100, 200, 400, 50 och 52

Mirasys VMS 7.3. Workstation användarvägledning

Lathund. Konfigurera Teknisk Förvaltning - Systeminställningar Teknisk Förvaltning INFORMATION FRÅN VITEC

Skriv in sökvägen sam.sll.se

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

KOMMUNALT AKTIVITETSMEDLEMSBIDRAG

Inspektion Användarmanuel

Innehåll 1. Om ScandLarm Air Ladda ner App Starta kontrollpanel Konfigurera App till kontrollpanelen

INSTALLATION AV VITEC MÄKLARSYSTEM. Studentversion

Att installera och använda nmap

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Objektorienterad programmering D2

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Lättlästa instruktioner för ipad ios8

.00 E00. Innehåll: Kablage allmänt. Tillägg för drift Radiostyrning Igångkörning Programmering Vinschradio Elschema Felsökning

FLEXILAGER Ett hjälpmedel för anpassad lagerhantering. Original -version

Nätverksprogrammering, EDA095

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

WAGO IO System Service Seminar. Diagnostik

Den golfspelande roboten

Mini Dome-kamera för nätverk

Hämta appar. Hämta appar innehåller information om vilka P&G-appar du behöver och hur du ställer in dem rätt.

Får jag be om ordet!

Tentauppgift OOP1 våren 2002

LED för närvaro 0 gul; 2-1 grön Montage instruktion MV LED för fläkt hast. 0 gul; grön EYB 256 MV Miljödeklaration MD 94.

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Manual för Webbkartan

Användarhandledning. Procapita Vård och Omsorg Konvertering av worddokument till PDF/A

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Att använda Java SE JDK 6

Editering, Kompilering och Exekvering av Javaprogram

IT-lösningar. Guide, Kalenderkoppling för Outlookanvändare. Kalenderkoppling. Synkronisera Outlookkalender och Marvin i Telia Centrex 1 (7)

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Novell Filr 1.2 skrivbordsprogram för Mac snabbstart

IT för personligt arbete F2

Programvara. A faire Modul 1 utgång Till/Från Elektriska/mekaniska egenskaper: se produktens användarhandbok

Tentamen EDA698 Realtidssystem (Helsingborg)

Rumshantering i Resebyra -modulen

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Lära känna skrivbordet

Redovisning av inlämningsuppgifter

Administration av landstingsstatistik. Statistiktjänsten

Va lkommen till Delfis statistikportal

Transkript:

Hidden Camera App Realtidsprogrammering EDA040 Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)

Manual och programbeskrivning 1. Manual 1.1 Kamerauppkoppling 1.2 Starta servrarna 1.3 Starta klienterna 1.4 Användargränssnitt 2. Programbeskrivning 2.1 Server 2.2 Klient

1 Manual: 1.1 Kamerauppkoppling: För att kunna använda programmet behövs det först och främst finnas två anslutningar till kamerorna som skall köras. För att skapa dessa anslutningar skrivs följande i konsolen: >> telnet argus X Trying 130.235.34.186... Connected to argus X.student.lth.se. Escape character is '^]'. 4.30 Linux 2.4.31 on a cris (10:50:10) >> axis 00408c7cbb58 login: rt >> Password: >> [rt@axis 00408c7cbb58 /var/tmp]3208$ /etc/cameraproxy 7878 CameraProxy running on port 7878 and 7879. Där lösenordet är sigge. Starta sedan ytterligare en konsol och skriv likadant fast telneta till argus Y (där Y!= X och 1 <= Y <= 14, helst 2) istället.

1.2 Starta servrarna: Starta kameraserver 1 genom att skriva följande i konsolen: java jar CamServer1.jar& och kameraserver 2 genom att skriva: java jar CamServer2.jar& Ovanstående kommandon kräver att man står i samma katalog som de nämnda filerna ligger i. Servrarna är inställda på att automatiskt ansluta till kamerorna argus 1 och argus 2 på port 7878. Om man vill ansluta till några andra kameror anger man adressen och porten som parameter till ovan nämnda kommandon. 1.3 Starta klienterna: När servrarna är startade ska klienten startas. Detta görs genom att i konsollen ge kommandot: java jar CamClient.jar& Även här är det viktigt att man står i den katalog där jar-filen finns. När detta sker visas ett användargränssnitt på skärmen.

1.4 Användargränssnitt: Gränssnittet består av följande komponenter: Två rutor som visar bilderna från kamerorna Ett synkfält som visar grönt när bildvisningen sker synkroniserat och rött när den är osynkroniserad Två fält som visar fördröjning för respektive kamera En knapp med rubriken Set idle mode, som säger till kamerorna att skicka bilder var femte sekund Figur 1: Bild av användargränssnittet med synkronisering Snabb bildvisning sker när rörelse har detekterats av en kamera och innebär att kamerorna skickar bilder oftare, närmare bestämt ungefär 11-12 bilder i sekunden. I vanligt läge skickas bilderna enbart var femte sekund. För att bildvisningen skall ske synkroniserat får fördröjningen hos kamerorna skilja med maximalt 27 millisekunder. Överstiger fördröjningsskillnaden detta värde tio

gånger i rad börjar bilderna skickas osynkroniserat. Om bildvisningen sker osynkroniserat kommer bilderna att visas upp så fort de anländer till klientprogrammet. 2 Programbeskrivning: Programmet består utav två paket. Ett på serversidan (HiddenCam) och ett på klientsidan (CamVoyeur). På serversidan finns det som hanterar kamerorna och skapar anslutningar till klientsidan. I serverpaketet finns följande klasser: Klientpaketet Serverpaketet Server:

Cammy Ett interface för att kunna starta flera servrar. CamServer Kameraservern för den ena kameran. CameraServer implementerar Cammy. I denna klass finns main-metoden som antingen ansluter till kameran argus-1 på port 7878 eller till den kamera man specificerat vid start av programmet. CamServer2 Samma som CamServer fast den ansluter som standard till argus-2. ImageSender Denna tråd skickar bilder över en Socket till klientprogrammet. Bilderna hämtas från kameran och skickas med korrekt intervall. CommandHandler En tråd som läser av de Event som skapas från följande två klasser. Klassen ändrar hastigheten på skickandet av bilder hos ImageSender och skriver även på en Socket när rörelse har detekterats. SocketCommands Detta är en tråd som lyssnar efter kommandon på en Socket. De kommandon som tas emot är att kameran ska skicka bilder oftare eller mer sällan. Denna tråd märker också av om klientprogrammet har avslutats. När ett kommando har hittats skapas ett Event som CommandHandler tar hand om. Motion Denna tråd läser av om kameran detekterar någon rörelse. När rörelse har detekterats skapas ett MotionDetectedEvent som CommandHandler läser MotionDetectedEvent

Skapas av Motion när rörelse har detekterats. DisconnectEvent Skapas av SocketCommands när klientprogrammet avslutats. StartMovieModeEvent Skapas av SocketCommands när klienten via en Socket talat om att kameran ska skicka bilder snabbare StopMovieModeEvent Skapas av SocketCommands när användaren tryckt på knappen Set Idle Mode När en CamServer startas skapas två ServerSockets som väntar på att en klient ska ansluta. När anslutningen har upprättats startas en ImageSender och en CommandHandler. Efter detta väntar servern tills klienten har avslutat och väntar därefter på ny anslutning från en klient.

Klient: CamClient Den klass som startar klientprogrammet. Här skapas ett CameraGUI och Sockets för att skicka och ta emot kommandon och för att ta emot bilder. Buffy En tråd som tar emot de bilder som skickas från en kamera. Av varje bild skapas ett Img-objekt och detta objekt läggs in i ImageContainer. I vår lösning finns två Buffy-trådar, en för varje kamera. Img Innehåller information om en bildruta, exempelvis vilken tid den är tagen, när den togs emot av klienten samt själva bilddatan. ImageContainer Detta objekt är en buffert av alla bilder som ska visas upp i

användargränssnittet. När en bild läggs till placeras den i ordning efter vilken tid den togs. När sedan gränssnittet ska visa bilden beräknas hur lång tid det ska dröja mellan de olika bilderna. I programmet finns bara en ImageContainer som är gemensam för de båda Buffy-trådarna. SocketListener Denna tråd lyssnar på en Socket efter kommandon som skickas från en server. CameraGUI Användargränssnittet körs som en tråd och hämtar bilder från ImageContainer så fort det finns en bild tillgänglig. IdleModeEvent Skapas av CameraGUI när användaren trycker på knappen Set Idle Mode. MotionDetectedEvent Skapas av SocketListener när någon kamera har detekterat rörelse. SystemExitEvent Skapas av CameraGUI när det avslutas för att CamClient ska kunna stänga alla Sockets. CameraClient skapas och körs. När det sker så skapas en ImageContainer som har plats för alla bilder som kamerorna skickar. CameraGUI skapas och visar bilderna, huruvida bildvisningen sker synkroniserat eller ej samt vilken fördröjning respektive kamera har. Sockets skapas och ansluter till de båda servrarna. Två Buffy-trådar skapas och startas. En SocketListener per server skapas. Efter detta väntar CamClient på Events från de olika trådarna.