-
Featured User: kurt
Open-source hardware project hosting is my passion. I spend most of my free time building neat gadgets or planning what I'll build next. I love building things, and I want to make Open Hardware Hub a place that inspires others to build, ...
-
Updates 2013 February 18
It's been a while, hasn't it? Well, that's ok because we've got a lot of updates to talk about. Most of these have been effective on the site fora couple weeks now. A few may or may not be active when this article gets posted, but they'll certainly be applied in the ...
Remote Video Display
By: itake
This project allows a user to remotely control a video player on an eBox. It features the ability to:
Play
Stop
Next
video files and you can upload files to the remote eBox via ethernet for playing. The files loop through a list of filenames and plays them all. You can remotely control multiple devices through a media controller application written in Windows Forms C#.net.
Technology used:
Windows CE 6.0
C#.net
TCP/IP Sockets
eBox
Windows Forms
Visual Studio 2005
Download project description w/o images
Download project description w/ images
Files
- VideoServer.zip - Video Server Source Code + Binaries
- RemoteMediaDispalyControl.zip - Remote Media Display Control Source + Binaries
Bill of Materials
Qty | Part # | Description | Schematic ID | Source | |
---|---|---|---|---|---|
1 | eBox-3300/3310 | Runs Windows CE 6.0 | Source | ||
1 | Analog Monitor | Used to display the video for the eBox-3300/3310 | Source |
Download BOM w/o images
Download BOM w/ images
Steps
2. Run the media server application
Move the Media Server application to the eBox via a USB flash drive and run the program.
This will start up the server application used for displaying the videos and managing the file uploads.
How this works is:
//File Server Side//
Opens a port on the eBox for accepting files. It expects a TCP/IP packet with this format:
[------4 bytes-----][-------X-bytes-----][--Y-bytes--]
[ file name length ][ encoded file name ][ file data ]
Data is sent in buffer of 1024 bytes. Each time a file is sent, it overwrites the existing file. It writes it to the /Temp/ directory.
After it receives a file, it appends the file name to a data.txt file which is used to manage the queue of movies.
//Command Server Side//
This operates by accepting TCP/IP connection on a different port. The format is:
[-----4 bytes----][-----X-bytes-----]
[ command length ][ encoded command ]
The first 4 bytes determine the number of characters the command is and the bytes after that are the actual command.
Commands are:
"get"
This retrieves the list of video files in the queue in the order that the files will be played for displaying on the client screen. The client, after issuing this cmd, will need to expect more data back.
"play-{filename}"
This tells the eBox to start playing a specified file name. The eBox will jump to that filename in the queue and start playing it. No response is returned from the server after this command.
"stop"
This stops the current video from playing. No response is returned from the server after this command.
"next"
This stops the current video and starts playing the next video in the queue. This command does not return any additional information to the client.
*Notes*
File I/O is extremely slow on the eBox . Large files take an extremely long time to transfer and write to the hard drive. So you may need to verify on the eBox that a file has completely transferred before sending additional commands.
3. Run the client application
The client application loads a hard coded list of IP address that the user can select an eBox from.
Once an IP has been selected, the client will try to connect to the client using the "get" command discussed in step 2.
The client will receive packet by packet file name by file name in the order that they are to be played from the server and it puts this list in the queue list box on the display.
This list can be re-arranged and sent back to the server. Because the data.txt file is stored with the other media files, when a new arrangement of videos is sent to the server, the client uses the send file protocol to overwrite the existing list with the new one.
The play, stop, and next commands use the protocols described above to accomplish their tasks.
The status window at the bottom informs the user what is going on in the background.
Download steps w/o images
Download steps w/ images
Revisions
2 -
1 - Initial project release Added photo of eBox
blog comments powered by Disqus
Back