-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.frank
106 lines (92 loc) · 5.82 KB
/
README.frank
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Weekly updates for Frank Hucek
# Week of 4/14 - 4/20
### Setup Scripts for field testing
- Camera machine is now ready for field testing.
- Finalized directory structures in some scripts
- Cleaned up file not found exceptions in client/server scripts
- if files exist, rewrite them.
- if files don't exist, make them.
~ 1.5 hrs
### Setup Job 0 for testing
- setup the job 0 directory for testing
- updated job manager's manifest and directory structure.
- fixed a few file not found exceptions in the job manager
* found issue in job manager where it rewrites image directories to within data directory
~ 30 mins
### Prepared poster for Showcase
- Met with group to discuss weekly progress
- Field testing planned for next week
- Put together and placed order for poster at KSL for Showcase
~ 2.5 hrs
# Week of 4/07 - 4/13
### Integrated job manager into server script
- Jobs are now invoked automatically when the server receives data
- The job is called on the new photo to generate a modified heatmap
- Cleaned up the server directory structure, so it shouldn't matter where the script is called.
- The job manager currently needs the directory to be set up a certain way with access to very certain files - this needs to be cleaned up
- TODO : cleanup job manager directory structure
~ 2 hrs of work
### Setup Script to auto connect to case wireless
- Headless rpi needs to connect to case wireless on startup
- wrote wpa_supplicant config which works to automatically connect rpi on boot to detected network CaseWireless.
- Involved learning case's complex WPA2-Enterprise security and writing 50 lines of configuration for wpa_supplicant.
- NOTE: could not supply the file in plain text on git because it has my Case ID and Password in it.
~ 1.5 hour of work
### Designed plans for website
- Met with group to discuss further integration
- Helped to layout backend design of website - I have a lot of experience with web frameworks
~ 1 hr of work
# Week of 3/25 - 4/06
### Finished RPI Pathfinder camera system service
- Finished python main scripts for deployment, capturing, and sending of photos to remote server
- Pictures are first captured, and then the contents of the captured directory is sent using my send file protocol.
- Maybe we should send a photo right after taking it?
- will require thinking about consistent network connection, etc.
### Set up RPI system for remote deployment
- Set up scripts for easy wifi configuration before being deployed in the field.
- Placed service scripts in proper locations for system.
### Met up with team for Heatmap module brainstorming
- Spent much of the week discussing implemented changes by other group members for the Heatmap modules.
- Researched concepts like chunking.
# Week of 3/24 - 3/30
### Set up RPI camera module for test photos
- This involved mounting the RPI camera setup on my wall and aiming it at a control grid I made with duct tape.
- In order to hold the camera in place, I ended up going to Thinkbox and 3D printing a mount for my specific camera model.
- Took a series of 10 photos, including 1 control photo, of a simple scene to test our algorithms on.
- NOTE: The 10 photos are included in the commit under the root project directory /jobs/0
### Optimized RPI client/server scripts
- Tested many cases and included proper exception handling so that server socket will not go down for strange reasons.
- Added message between client/server to specify job directory and filename of destined photo on server.
- Used detached signatures of the actual photo data for perfect data verification. Nothing will be written to the server unless it is from a known client.
- Created new GPG keys for clients. Job number will now be reflected on the Key's username itself.
Each valid client will have the username format of "pathfinder_cam_<job#>"
- The new pathfinder_cam_0 public key is included in the commit
### Files changed/added
- Contents of /jobs/0/
- rpi_camera_modules/
- client.py
- server.py
- pathfinder_cam_0_public.key
# Week of 3/16 - 3/23
### Generated Public/Private key pair for RPI
- This is necessary to secure the communication to and from the remote server
- Imported RPI public key on remote web server
### Completely re-wrote Client/Server scripts
- It is INCREDIBLY insecure to have a server socket listening on a port and write whatever it recieves to file
- Interfaces with GNUPG installed on both systems
- Client signs a message in socket connection to verify its identity.
- Server now verifies identity of client before writing photo data to file.
- Client/Server scripts are now ready to be run on each device, and photos sent from the client will be written to the server in a secure manner.
### Installed, configured, and updated additional packages on remote server and RPI
- Including GPG, node, graphql
# Week of 3/3 - 3/9
### Wrote Client/Server communication scripts
- RPI image services must snap photos then send each photo to the awaiting web server
- The web server must listen on a socket for incoming data.
- Once the web server accepts a connection, it will wait for the client to send an image over the connection. This image will be written to its appropriate place in our directory structure.
### Further refined pathfinder_camera_service
- The RPI system service now will include the python socket scripts
- NOTE: the remote server script will also be included in the modules folder of our directory structure on the server.
### Files changed/added
- Contents of rpi_camera_modules
* NOTE: rpi_camera_modules doesn't run on the server, but runs on the RPi, but the code is included here for the purposes of version control.