-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Better console display, time remaining stats, increase/decrease QR co…
…de version, disable timeout, licence and readme.
- Loading branch information
Showing
8 changed files
with
1,008 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,3 +3,4 @@ | |
/test/ | ||
/nbproject/private/ | ||
*~ | ||
receivedtux.png |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
Eye-Fi | ||
=== | ||
|
||
What is it? | ||
--- | ||
Eye-Fi is a secure file transfer software directed for anonymously sharing data across notebooks. It doesn't use no intermediary media, no physical connection between the computers or a computer network, no radio communication (Wi-Fi, Bluetooth), or any other conventional mean. The only things needed is a notebook with a webcam. | ||
|
||
How it works? | ||
--- | ||
|
||
The concept is very simple, two notebooks are placed facing each other, each one recording the screen of the other. One is labeled "Server" and it has the file, answering requests on demand, the other is the "Client" and it is responsible to setup the connection parameters, request chunks of data, and handling any connection problem. | ||
|
||
![](https://raw.github.com/anderson-/eye-fi/master/src/eyefi/slogo128.png) | ||
|
||
The data transfer is made by swapping QR codes, encoded with chunks of the original file. For encoding an QR code two parameters are needed: Version and error correction level (ECL). Higher versions encode more data, but are harder to read. Higher ECL encode less data, but the message can be reconstructed if a portion of the QR code is not visible. | ||
|
||
The process of sending a file over screen-webcam is described as follows: | ||
|
||
![](https://raw.github.com/anderson-/eye-fi/master/doc/CommunicationProtocol.png) | ||
|
||
|
||
Features | ||
--- | ||
|
||
- Tested on Windows and Linux | ||
- Auto scan for best QR code version and error correction level | ||
- Auto reduce/increase QR code version during transfer | ||
- Real time transfer statistics | ||
- MD5Sum check for file integrity | ||
- Simulate file transfer locally | ||
- Simulate webcam interference | ||
- Open source: GPLv3 | ||
|
||
| **Pros** | **Cons** | | ||
|:-----------------------:|:-----------:| | ||
|Secure |Awkward setup| | ||
|Awesome and fun? |Slow | | ||
|
||
**2014 - Anderson de Oliveira Antunes** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
@startuml | ||
|
||
skinparam shadowing false | ||
|
||
skinparam sequence { | ||
ArrowColor Black | ||
ActorBorderColor Black | ||
LifeLineBorderColor Black | ||
LifeLineBackgroundColor White | ||
|
||
ParticipantBorderColor Black | ||
ParticipantBackgroundColor White | ||
ParticipantFontColor Black | ||
|
||
ActorBackgroundColor White | ||
ActorFontColor Black | ||
} | ||
|
||
title The Communication Protocol | ||
|
||
actor cuser as "Receiver" | ||
participant client as "Client\nNotebook" | ||
participant server as "Server\nNotebook" | ||
actor suser as "Sender" | ||
|
||
cuser -> client : Select "Receive file" | ||
activate client | ||
client ->x server : Request random QR code version 0 | ||
... | ||
suser -> server : Select "Send file" | ||
activate server | ||
==== Benchmark == | ||
client -> client: benchmark(...); | ||
activate client #GreenYellow | ||
group Version loop X [0 ... 39] | ||
group ECL loop Y [0 ... 3] | ||
alt | ||
client -> server : Request random QR code version <b>X</b> ECL <b>Y</b> | ||
server --> client : Send random QR code version <b>X</b> ECL <b>Y</b> | ||
else QR code too dense to identify | ||
client -> server : Request random QR code version <b>X</b> ECL <b>Y</b> | ||
server -->x client : Send random QR code version <b>X</b> ECL <b>Y</b> | ||
deactivate client | ||
end | ||
end | ||
end | ||
==== Transfer == | ||
client -> client: receiveFile(...); | ||
activate client #LightSeaGreen | ||
group Checksum error loop | ||
group Chunk request loop Z [0 ... (Filesize / QRCodeDataLength)] | ||
alt | ||
client -> server : Request file chunk <b>Z</b> version <b>V</b> | ||
server --> client : Send file chunk <b>Z</b> version <b>V</b> | ||
else QR code read exception | ||
client -> server : Request file chunk <b>Z</b> version <b>(V-1)</b> | ||
server --> client : Send file chunk <b>Z</b> version <b>(V-1)</b> | ||
end | ||
end | ||
|
||
client -> client: requestChecksum(...); | ||
activate client #OrangeRed | ||
client -> server : Request file checksum | ||
server --> client : Send file checksum | ||
deactivate client | ||
deactivate client | ||
end | ||
==== End == | ||
client --> cuser : File delivered | ||
... | ||
suser -> server: Close application | ||
deactivate server | ||
cuser -> client: Close application | ||
deactivate client |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.