Put standard modules imports before other imports
[SaveMySugar/python3-savemysugar.git] / README.md
1 SaveMySugar
2 ===========
3
4 SaveMySugar is an experiment about transmitting and receiving messages for free
5 using phone call rings to encode Morse code.
6
7 The name SaveMySugar is a pun on the price per bit of SMSs (Short Message
8 Service) which is quite high, and the distress signal Save Our Soul (SOS) used
9 in Morse communications.
10
11 See [http://savemysugar.ao2.it](http://savemysugar.ao2.it) for further details.
12
13 Tutorial
14 --------
15
16 The "measure" pass in 1. and 2. assumes that there are two serial modems
17 attached to the same host connected to two independent phone lines, so that
18 a single program can control both the transmitter and the receiver device.
19
20 A possible setup is to have two cell phones providing serial ports over which
21 the programs can send AT commands and receive RING notifications.
22
23 1. Measure the call setup time using `src/measure_call_setup_time.py` and take
24    note of `Min call setup time` and `Max call setup time`.
25
26 2. Measure the distance between rings in the same call using
27    `src/measure_ring_distance.py` and take note of `Min ring distance` and
28    `Max ring distance`.
29
30 3. Adjust the parameters in `src/savemysugar/CallDistanceTransceiver.py` using
31    the values measured before, possibly approximating the minima by defect and
32    the maxima by excess.
33
34 4. Transmit and/or receive a message using `src/transmit.py` or `src/receive.py`
35
36 The sender and the receiver must use the same parameters.
37
38 In a future version it should be possible to pass the parameters as command line
39 arguments to `transmit.py` and `receive.py`, but for now these values have to be
40 hardcoded.
41
42 Dependencies
43 ------------
44
45 The only dependencies are:
46
47 * python3
48 * python3-serial
49
50 Authors
51 -------
52
53 From an idea by Corrado Rubera.
54 Written by Antonio Ospite <ao2@ao2.it>.