Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. eBox 2300 Surveillance Video System Computer Network Programming Author: Carlos Daboin Instructor: Janusz Zalewski Florida Gulf Coast University Fall 200
  2. 2. Introduction The eBox 2300 is a thin client “sometimes called a lean client, is a low-cost, centrally- managed computer devoid of CD-ROM players, diskette drives, and expansion slots”. Also, “a thin client accesses programs and data from a server instead of storing them locally, and the software that performs the majority of its operations reside on a server rather than the local computer” (Kathy Chung). The eBox 2300 is the device that I’m using to develop an application that makes the eBox 2300 accessible to clients/user in a LAN or WAN. The application that I’m working for the computer network project is a client/server application develop on C#, and the application’s function is to transmit and receive video using sockets an ports. The Server application main use is to stream live video capture from an USB camera connected to eBox 2300 over a network. The server application runs under the Windows CE 6.0 operating system, this OS is design and customize base on the needs of the server streaming application. The OS and server application will be develop on more powerful and faster computer .Then, a Windows 6.0 CE image and the C# server application will be deployed on the eBox 2300. The Client application main use is to receive the streaming video from eBox2300 and display on the computer that runs this application. The client application will be deployed on Windows PC’s, because the .net framework needed to run the C# client application. After, client application was deployed the user will be able to connect to the server application running on the eBox 2300 and see the live video streamed from the remote location. The eBox 2300 is been for my computer networks project as video surveillance web camera that streams video over a network, then remote client running a client application is able to receive the media transmission. This project can be expanded by adding phidgets to increase eBox 2300 interaction the real environment events, for example, adding a sensor that detects movement, and servo motor the makes the camera point to the source of movements.
  3. 3. Problem Definition The problems trying to develop video streaming application over a network using a thin client are base on three mayor issues. The first and most important issue is to develop and operating system capable to run software applications, to communicate with external devices, and to transmit data over a network. The operating system have to be designed and test in a more powerful computer, then the OS has to be customized base on the video stream application, so when deployed will make the eBox 2300 a capable device to run a video server application, to sent stream video over a network, and the most import communicate with an USB device, camera. OS Image Deployment Media Master PC/Develop OS Image eBox 2300/Thin Client Second, develop an application that runs and executes under the deployed eBox 2300 Operating System. The application has to interact and communicate with the USB camera. Then, stream the USB camera video feed over a network to users/clients in the same LAN or WAN. eBox 2300 OS Application
  4. 4. Third, develop an application that will receive the video stream over the network. The application has to indentify that the streamed video comes from the eBox 2300, and has to display the video on a friendly graphic interface for user connected to the same LAN or WAN. Application GUI
  5. 5. Prospective solution The prospective solution is going to cover possible alternatives to solve the three mayor problems mentioned in the problem statement. The processes to transform an eBox 2300 into a camera sever that streams video over a network are the following: Deploy an Operating System: Windows Embedded CE 6.0 Image on device, eBox 2300. This look the best option, because the eBox includes a starter kit that gives the basics of how to deploy and develop Windows Embedded CE 6.0 operating system on an eBox, no matter what model it is. The steps needed to develop the Windows CE 6.0 image (Windows PCs): 1. Install Visual Studio 2005; the express edition supports Windows CE tools, and SDK. VS 2005 is free at; http://www.microsoft.com/express/2005/ (Microsoft). The IDE is the platform to develop and deploy the Operating System. 2. Download and run the VS 2005 executable installation file. 3. Windows Embedded CE 6.0 Platform Builder. The 120 days trial version of Windows Embedded CE 6.0 is available at; http://www.microsoft.com/windowsembedded/en-us/ downloads/default.mspx (Microsoft). 4. VS2005 must already be installed onto the develop station. 5. Also, you can Insert the Jumpstart CD to install the platform builder, then run the auto executable, if the installer does not run automatically. 6. Make sure X86 CPU support is selected during installation.
  6. 6. 7. Install the Board-Support-Package, To install this BSP, simply double click on the ICOP_Vortex86_60B_BSP.MSI file located in the BSP directory on the jumpstart CD 8. Install VS2005 CoreCon Component, CoreCon is used to establish link between CE 6.0 device and VS2005 development station. The file is included in the Jump Start CD, in the “CoreCon” folder. To install this component, double click on CoreCon_x86_VS2005.MSI file in the Jump Start CD’s “CoreCon” directory. 9. Install Windows Embedded CE 6.0 SDK, From VS2005 IDE, select Project | Add New SDK… to bring up the SDK Property Pages screen 10. Enter eBox2300_WinCE600_SDK as the name for the SDK 11. Fill in the company name and company website information 12. On the left side of SDK Property Page, click on Install and enter MSI folder path and MSI file name on the right side. Use the default path, and enter eBox2300_WinCE600_SDK.msi as the file name.
  7. 7. 13. On the left side of SDK Property Page, click on Development Languages and select both Native and Managed development support. 14. Click on the Apply and then OK button to complete the Add New SDK process. For detailed instructions on how to set Windows Embedded CE 6.0 Development Tools, Windows Embedded CE 6.0 SDK, please refer to this link, http://www.embeddedpc.net/ download/doc/eBox2300_CE60_JumpStart_Rev3.5.pdf (Phung, Samuel.) After deployment, Windows Embedded CE 6.0 image should look very close to the picture below.
  8. 8. Using a very small operating system that can be completely boot from an USB flash drive or Compact Flash card can work as a base for software applications and communicate with external devices. Linux has a very small version of Linux (Puppy Linux) that can be booted from a 250MB USB key or a 250MB compact flash card. How to create a USB Puppy Linux: • 128MB or larger USB Stick • PC with a CD reader/burner The process: Puppy Linux contains its own Universal Installer so installation is fairly straightforward. 1. Download Puppy Linux. http://www.puppylinux.org/downloads (PuppyLinux.org) 2. Burn the ISO to a CD. 3. Start your computer via Puppy Linux CD. 4. Once Puppy has loaded, from the Taskbar, Click: Start-> Setup-> Puppy universal installer
  9. 9. 5. Follow the onscreen instructions which will walk you through the Puppy USB installation process 6. When finished with the Puppy USB install, reboot your PC and go into system BIOS to change your boot order to boot from the USB device. 7. Save your settings and reboot your PC. After boot up, Puppy Linux should look very close to the picture below.
  10. 10. Deploy a software application: The software application is strictly related to the operating system, so the programming language used for development will be determinate after an OS is selected. Java is a better choice to work under a Linux environment, and C# or VB is the best choice to work Windows CE 6.0, because the .Net framework. Therefore, the programming language needs to communicate with media devices; Java can use the JMF, Java Media Framework. C# and VB can communicate with media devices using the .net frame work. After choosing the programming language, create and client/server application that will stream video from the eBox 2300 and then a client application running on computers connected to the network. Finally, the client application will have a GUI, graphic user interface, which display the video streamed over the network, and will interact with the remote computer’s user.
  11. 11. Case Study Solution Implementation: The project development starts by connecting the eBox 2300 and the Windows PC that deploys the embedded CE 6.0 image and the C #application, on the same network. Then, Ethernet cables will be the physical media that connects the eBox2300, and PC to the network, because the eBox 2300and PC have network ports. Therefore, there is path between the eBox 2300 and PC for data communication over a network. Windows Embedded CE 6.0 is the operating system that the eBox 2300 runs, and the OS is design it and customize it using Visual Studio 2005. The OS will have all media drivers, and networking utilities to be able to communicate with the network and the USB camera, also the .net framework to help the C# application and the USB drivers work together. As soon as the OS is completed the image has to be deployed over the network until it reaches the eBox 2300. Therefore, the eBox 2300 hardware becomes a thin computer able to talk to a network and USB devices. OS Image Configuration and Deployment OS Configuration 1. Open Visual Studio 2005; select new project. 2. Select Platform Builder for CE 6.0, then OS Design (OS_2300). 3. In the BSP (Board Support Packages), select ICOP_Vortex86_60B: x86
  12. 12. 4. In the design templates selection step, select Thin Client. 5. Design template, select Windows Thin Client.
  13. 13. 6. In the applications & media selection step, select .NET, Windows Media Audio/MP3, and Windows Media Video/MEPEG-4 Video. 7. In the networking & communications step, select Local Area Network, and Wide Area Network. The OS design wizard will finish after this step. Catalog Items View Tap (Enhancing the OS Design) 8. Select Microsoft USB camera driver for future use with server application. 9. Select ConMan_ 86 files components for communication and application deployment. 10. Select MJPEG Decompression Filter for compressed media.
  14. 14. 11. Expand Third Party catalog folder, and select Vortex86_Audio and Vortex86_Display, to enable eBox 2300 media interfaces.
  15. 15. OS Deployment 1. From VS2005 IDE, select Build | Configuration Manager. From the Active solution configuration selection options, select ICOP_Vortex86_60B x86 Release 2. From VS2005 IDE, select Project | OSeBoxCamServer (Your OS Name) Properties 3. Click to expand Configuration Properties tree on the left side of the screen. 4. Click to high-light Build Options, a list of Build Options with check boxes will be shown on the right side of the screen. 5. Select Enable eboot space in memory (IMGEBOOT=1). This option adds support for Ethernet debugging by bundling the Ethernet boot loader in the image. 6. Select Enable ship build (WINCESHIP=1).This option will enable a retail build and suppress debug messages. 7. Disable KITL – Make sure the Enable KITL (no IMGNOKITL=1) check box is NOT selected.
  16. 16. 8. Click to high-light Environment on the left side of screen. 9. Enter new variable name and set associated value for the following environment variables. IMGRAM128 = 1 supports hardware with 128MB of RAM. PRJ_BOOTDEVICE_ATAPI = 1 designates booting from ATAPI device PRJ_ENABLE_FSREGHIVE = 1 enables Hive-based registry function. PRJ_ENABLE_FSMOUNTASROOT = 1 enables external file to mount as root
  17. 17. 10. From the VS2005 IDE, select Build | Build Solution to build OS image from the OS Design project. 11. From VS2005 IDE, select Target | Connectivity Options, Target Devise t set to eBox2300_WinCE600_SDKx86 Device. Download and Transport set to Ethernet. Debugger set to KdStub.
  18. 18. 12. Turn on power and boot up eBox-2300 with the provided Windows CE SDK boot image. It will boot to DOS and provide the menu selections. Select 4. 13. After eBox-2300 boots-up and sends a boot-me request, the Ethernet Download Settings dialog screen, select device ID listed in the Active target devices list box. 14. From VS2005 IDE select Target | Attach Device. 15. After the image download process is completed, eBox-2300 will load the Windows CE image. I’m still working on Operating System enhancement and configuration; I will make updates in future reports or final report. Using the same IDE, the C# client/server application is develop. The application simulates a TCP communication between two hosts, one of which is a server (eBox 2300), the other one being a client (remote PC). The two hosts have IP addresses and a common port number. The server application running on the eBox 2300 uses a “socket (the base object with which to communicate), and then it is bound to a specific endpoint, a mix between an IP address and the port number on which to listen with the "Bind" member” (Hare, March). Moreover, the server application will receive the video data capture from the USB camera, and then become a stream interface between the eBox 2300 and the remote PC.
  19. 19. Application Deployment From eBox 2300(with CE 6.0 image created in the earlier steps running): 1. Click on Start | Run from CE 6.0 desktop with the cmd command to open a console command window. 2. Type IpConfig to view the eBox’s assigned IP-address 3. Double click on My Device and open the Windows folder. 4. Double click on ConmanClient2.exe follow by double click on cMaccept.exe to launch Corecon connection service. From VS2005 IDE 5. Set the target device to “eBox2300_WinCE600_SDK x86 Device” 6. Select Tools | Options 7. Click to expand the “Device Tools” folder and select the “Devices” sub-folder. 8. Select eBox2300_WinCE600_SDK from the list of available platform in the Show devices for platform combo text box.
  20. 20. 9. Click on the Properties button to bring up eBox2300_WinCE600 x86 Device Properties setting screen 10. Click on the Configure button to bring up Configure TCP/IP Transport 11. Select Use specific IP address and enter eBox-2300’s IP address
  21. 21. 12. select Tools | Connect to device 13. Select eBox2300_WinCE600_SDK from the list of available devices, and click on the Connect button. 14. Select Debug | Start Debugging to bring up the Deploy eBox2300_Demo screen.
  22. 22. 15. Select eBox2300_WinCE600_SDK and click Deploy Server Application Development Stages: 1. Simple C# form to test deployment and event handling over CE environment. 2. Develop server socket application to ensure communication between client and server application. 3. Develop API class or module to communicate USB camera and server application. 4. Enhance previous socket application to stream video over a network. The development of server application is on step 2, socket application, and still under configuration and testing. After the application completely tested and debugged, then it will be included in the project. The client C# application needs to create a socket and connect to the remote host, eBox 2300, to receive the streamed video over the network. Then, this application will display a graphic user interface on the remote PC that start and stop the connection to the server application. Finally the GUI is the interface with the remote PC’s that display the video coming from USB camera connected to the eBox 2300.
  23. 23. Client Application Development Stages: 1. Develop C# client socket application to ensure communication between client PC and eBox 2300 server application 2. Enhance previous socket application to display the video stream coming from the server application in the eBox 2300. The development of server application is on step 1, socket application, and still under configuration and testing. After the application completely tested and debugged, then it will be included in the project.
  24. 24. Video Surveillance Components The video server system will be implemented using the following hardware: • An eBox 2300, thin client. • Windows PC that deploy the Operating System, and the client/server software application. • Logitech USB camera. • Ethernet cables to connections to the network. The video server system will be implemented using the following software: • Visual Studio 2005 to design operating system, and the development of client/server software application. • The Operating system that will deploy on eBox 2300 is Window Embedded CE 6.0. • The programming language to use C# for client and server applications • Framework dot Net. • Microsoft USB driver to connect OS/C# to USB camera.
  25. 25. Project Data Flow: Conclusion
  26. 26. • The project will make the eBox 2300 a thin client to be accessible from remote users. The communication between the eBox 2300 and the remote user is over TCP/IP networks infrastructures. • The project will demonstrate the use of a network to communicate with remote devices, in this case an USB camera attach to eBox 2300. • The project demonstrates the use of top level applications, like a C# client/server application, to send and receive data over a network, to communicate with an USB device, and to create user interfaces to interact with remote device. • The project might be the starting point of many remote applications that can be combined with remote video display for future network systems developments.
  27. 27. References [1] "Windows Embedded Developer Center." Microsoft Windows Embedded Developer Center. 10 Sept. 2008. 10 Sept. 2008 <http://msdn.microsoft.com/en-us/embedded/default.aspx>. [2] "Puppy Linux." Downloads | Puppy Linux. 12 Sept. 2008. Puppylinux.org. 12 Sept. 2008 <http://www.puppylinux.org/downloads>. [3] "Visual Studio Express Editions." Visual Studio Express Editions. 2008. 12 Sept. 2008 <http://www.microsoft.com/express/2005/>. [4] Hare, March. "Client-server application in C#, using the TCP/IP network protocol." C# Home. 29 Dec. 2004. 23 Sept. 2008 <http://www.csharp- home.com/index/tiki-read_article.php?articleid=85>. [5] Phung, Samuel. "Http://www.embeddedpc.net/download/doc/eBox2300_CE60_JumpStart_Rev 3.5.pdf." EBox-2300 Windows Embedded CE 6.0 Jump Start Guide. 2005. ICOP Technology Inc. 10 Sept. 2008 <http://www.embeddedpc.net/download/doc/ebox2300_ce60_jumpstart_rev3 .5.pdf>. [6] Chung, Kathy. "Thin Client." What is a thin client? 23 Mar. 2006. 8 Sept. 2008 <http://searchnetworking.techtarget.com/sdefinition/0,,sid7_gci213135, 00.html#>.