-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog
282 lines (223 loc) · 15.1 KB
/
changelog
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
READ ME:
**********************************************************************************
This is the change log, here is the format
#change number <the change made> "file name" SHORT reason why change was made
Note: You need to mark each change with a comment that has THAT PARTICULAR
CHANGE NUMBER.
Add line numbers.
**All chnages that change the flow, logic, and/or function of the code base must
be repoerted.
**********************************************************************************
#1 <Added DummySunSensor to preBoomDeploy> "flightLogic/missionModes/preBoomDeploy.py"
Lines 8-9 & 92-95
Testing is kind of the worst if we're relying on having to turn the lights
off and on in the lab so adding this in makes testing more streamlined and repeatable.
THIS MUST BE REMOVED BEFORE PUSHING TO MASTER
#2 <Rearranged getDriverData> "flightLogic/getDriverData.py"
Throughtout
Moved variables up in code so that they are assigned before being called
#3 <Added try catch statement to the pi camera in boomDeploy> "flightLogic/missionModes/boomDeploy.py"
Lines 36-39
We added a try catch statement so that the flight logic would move past preBoomDeploy into postBoomDeploy
#4 <Added try catch statement to python.interrupt> "TXISR/pythonInterrupt.py"
Lines 20-24, 30-54
The try catch was added to make the system continue past preBoomDeploy
#5 <Added code to index the data file> "TXISR/prepareFiles.py"
Lines 18, 72-137
Added a new argument to the function prepare data that corresponds to the
line to start at, -1 starts the function from the last transmission.
Used the function linechache.getline() to allow the data from the data file
to be indexed.
#6 <Updated filepaths to work for new install process> Throughtout
Hard coded all file paths to go to /home/pi/TXISRData or /home/pi/flightLogicData
#7 <Debugging TXServiceCode> "TXISR/TXServiceCode/TXServiceCode.c"
Lines 19-20, 206-241, 357-375
19-20 Fixed file paths
206-241 Added variable char chl to temporarily store the value of the lower
byte for the hex data so it can be used to find the end of a line.
Split the loops pulling the timestamp and data into different loops so
they would stopp tripping over each other as much.
357-375 Changed 0-9 from their ascii decimal values to their character
representation to remove confusion.
#8 <Changed startFromBeginning to boolean> "TXISR/prepareFiles.py flightLogic/missionModes/postBoomDeploy.py"
Changed startFromBeginning to boolean to decrease margin of error
#9 <Started writing the index to txWindows.txt> "TXISR/packetProcessing.py"
Line 180
We needed to know what line to write to so when it gets sent up with all of
the transmission data it gets saved to do the windows file.
#10 <Added haslib.md5 to hmac> "TXISR/packetProcessing" "GroundStation/transmissionHandling.py"
Packet processing lines 17, 74, 96
transmissionHandling lines 4, 93
In python 3.8 they made it a requirement for hmac to have three parameters
so a thid parameter was added to run the kind of encryption that was already
being run before
#11 <Added indexing command> "TXISR/prepareFiles.py TXISR/packetProcessing.py GroundStation/transmissionHandling.py"
Prepare files lines 77-78
Packet processing lines 62-67
transmissionHandling lines 43-44, 77-83
Added 34 bytes to the tx window packet that corresponds to the line number
to be indexed to. In transmissionHandling a new int34tohex function was
also added.
#12 <Added logic for the running transmission c code> "flightLogic/missionModes/postBoomDeploy", "flightLogic/mainFlightlogic.py"
mainFlightlogic: Lines 39-40, postBoomDeploy: Line 20, 24, 76, 79
#13 <Added the ability to skip staright to postBoomDeploy>
"TXISR/packetProcessing.py" Lines: 21, 156-162, 253-254
Added two bytes to the command packet so that there's an option to skip
to post boom deploy.
"GroundStation/transmissionHandling.py" Lines: 56, 62
Creates the extra two bytes to skip to postBoomDeploy.
"flightLogic/missionModes/preBoomDeploy.py" Lines: 57-59, 164-170
Added a function to cancel all tasks and end the function so that the
program can skip to postBoomDeploy.
"flightLogic/missionModes/antennaDeploy.py" Lines: 40, 43-44, 56-57, 63-64, 113-119
Added a function to cancel all tasks and end the function so that the
program can skip to postBoomDeploy.
"flightLogic/missionModes/boomDeploy.py" Lines: 32, 36-37, 43-44, 61-67
Added a function to cancel all tasks and end the function so that the
program can skip to postBoomDeploy.
"flightLogic/mainFlightlogic.py" Lines: 16, 76-78, 106-108
Added if statements that set lastMode to 4 to skip to post boom deploy
#14 <Allowed all mission modes to transmit>
"flightLogic/missionModes/antennaDeploy.py" Lines: 14, 16, 31, 41, 74-104, 121-156
Copied the code from postBoomDeploy into a function called transmit and
also copied the function readNextTransferWindow in to make sure it would work.
"flightLogic/missionModes/preBoomDeploy.py" Lines: 54, 172-240
Copied the code from postBoomDeploy into a function called transmit and
also copied the function readNextTransferWindow in to make sure it would work.
"flightLogic/missionModes/boomDeploy.py" Lines: 33, 69-136
Copied the code from postBoomDeploy into a function called transmit and
also copied the function readNextTransferWindow in to make sure it would work.
#15 <Removing startFromBeginning from the code>
"TXISR/packetProcessing.py" Through out
Removed the startFromBeginning variable from the txWindows packet because
the index already can do that.
#16 <Fixing the readNextTransferWindow loop>
"flightLogic/missionModes/all
There was a dumb list that was being initialized as a 0 and after 2
hours of looking we finally found it and changed it, ugh
#17 <Changing how the c code gets called>
"flightLogic/missionModes/all"
Changed it from opening using popen to opening with os.system as well
as adding a list with file paths so that the c code can be opened from root.
#18 <Created new class Transmitting> "flightLogic/transmitting.py"
Lines: 0-90
To avoid redundant code the Transmitting class was created in the file
transmitting.py. The run function from postBoomDeploy was copied as
transmit and the readNextTransferWindow was copied in with a small
change to how it received the txWindows filepath.
#19 <Called the functions from Transmitting in each mission mode>
"flightLogic/mainFlightlogic.py" Lines: 51, 63-66
To minimize the number of times that a Transmitting object is created,
a transmitObject is created in mainFlightlogic and then passed to
each mission mode.
"flightLogic/missionModes/antennaDeploy.py" Lines: 17, 27, 37-38
"flightLogic/missionModes/preBoomDeploy.py" Lines: 25, 41, 50-51
"flightLogic/missionModes/boomDeploy.py" Lines: 12, 19, 29-30
"flightLogic/missionModes/postBoomDeploy.py" Lines: 12-13, 18, 28, 30, 35
All traces of the redundant transmission code were removed and two async
tasks were created to call the transmit and readNextTransferWindow functions
#20 <Created setNewTXWindow.c> "setNewTXWindow.c"
Created a program that quickly and easily sets up a new window
#21 <Created transmition Queue> "TXISR/transmitionQueue.py"
Created a new program that turns txWindows.txt into a min queue.
#22 <Implementing transmition Queue>
"TXISR/packetProcessing.py" Lines: 222-225
Replaced the writing code with a line that prepares a window packet and
then uses transmition queue to add it to the queue.
"flightLogic/missionModes/transmitting.py" Lines: 42-50
Implemented the transmition queue. First it pops off all old timestamps.
Then it tracks time till next window by reading the timestamp of the
next available element. 20 seconds before the window is open the entire
line is pulled and processed as normal.
#23 <Added AX25 packet> "TXISR/packetProcessing.py" Lines: 30-61, 119-122
Gave packet processing the ability to process an AX25 packet and
immediately spit it back out.
#24 <Updated TXServiceCode to skip lines and deal with \n>
"TXISR/TXServiceCode/TXServiceCode.c" Lines 235-253, 417
Changed the program to return -1 if it's a bad character and then to skip
the entire line rather than just the single character. Additionally added
a break statement to allow it to better handle new line characters.
#25 <Made packetProcessing a class> "TXISR/packetProcessing.py" Throughout
Took the collection of functions and put them into a class so that we could
keep some of the variables across all of the functions.
#25 <Added skip to packetProcessing> "TXISR/packetPRocessing.py" Lines 322-332
Adjusted packetProcessing so that if it receives skip to post boom, it will
change the boot records to 4. The skip function checks this to see if the
boot records are at 4. This has been implemented into each mission mode
as a test on when to cancel all tasks and end the mission mode.
#26 <Added txWindow checking to fileProtection>
"protectionProticol.fileProtection.py" Lines 115-172
To ensure that no bad windows get sent this was written to identify
and remove bad windows.
"TXISR/transmissionQueue.py" Lines 14, 28, 47, 64
Implementing the window protection.
#27 <Changed pic IDs for the commpression of the picture>
"Drivers/camera/Camera.py" Line 71
HQ pictures now get compressed with IDs 100 - 255. They are still saved the same way.
Example: picture 0, LQ ID is 0, HQ ID is 100
#28 <Created windowProtection in fileProtection>
"protectionProticol/fileProtection.py" Line 115
This deletes everything in txWindows.txt that is not a valid transmission window
#29 <Eddited Window Protection so that valid windows were not deleted>
"protectionProticol/fileProtection.py" line 197
isnumeric does not accept anything that is not digit 0-9. Negatives are not accepted
#30 <Added a function in packetProcessing.py that deletes picture files>
"TXISR/packetProcessing.py" line 378
This function should delete all picture directories and their subsequent subdirs.
The other functions for the data and enabling beacons have not been added yet
#31 <Added more commands to packetProcessing.py>
"TXISR/packetProcessing.py" lines 233 - 265
These functions read the correct bits to execute commands on the flat sat. Not all of the functions that are called have been completed.
#32 <Added a function in packetProcessing.py that deletes data files>
"TXISR/packetProcessing.py" line 391
This function should delete all data files from flightLogicData.
The other functions for the data and enabling beacons have not been added yet
#33 <Fixed cammera driver>
"Drivers/camera/Camera.py" lines 24,26,36,52
I added try except statements to the code so if the camera driver is not present the code can still run normally
Test:
1: I ran flight logic normally, I first sent a command for a picture, it successfuly took a picture. Then I had it run though boom deploy it successfuly
ran.
2: I unplug the cammera from the pi and ran the 1st test again. It ran though successfuly however no pictures were tacken.
#34 <AX25>
We removed the AX25 packets as they are not working and we don't know the format well. Commmits 5b2eac480e32e348967c667cce341b2e1cd35506 and 1b3bd53c448b186c75b7a45b08511823e55fad43 on codeBase
#35 Removed a lot of code that was not being used. See commits f0fb7596adfaf03cf39776c59ac4b82d42f12173, ceee274edca21cd15de2a477d98367d5cc899599, 1992053ec596cf38a6cf4bb9fbe0ce6f33bb291e,
379d664f6cae99fd6d21cad810f5baebf24f2fc5, c18935fb696c9ce662276cf5d31634794f775df8, f5a89ab665980945bda8fc230904cc3400435913, 1b5445292c40dd17363e413b09becea9a481f704
and 5b51fd6164d6cc65018e59c911bdfeabfe053d9e on the codeBase branch.
#36 <getDriverData.py>
Added timestamp variable in exception on line 99 of getDriverData.py
#37 <Transmitting.py>
prepare time was changed from 20 to 40 seconds
#37 <all mission modes>
The transmission process was changed to call its async function in the __init__, insted of having all the mission modes call the async functions of the transmissions. This change
was made beacuse the transistion between mission modes would cause transmission failure. Commit: 5b1516c4a9dbbf452bf594904864d9c94840e409
#38 <Shutting Down Attitude data collection after 30 min>
Due to limited data storage and due to limited transmission time we are only going to collect data for 30 minutes everday. Commit: e92d4d6be407bb0898e864be181497bc345a6361
#39 <fixing wait time across code base, and fixing attena door driver>
We are getting ready for finial config Commit: 6f523bb69f9639599d81df15c97a23a955f5b897
#40 Update antenna door driver to decimal values
We thought the antenna door i2c read would return a hex value representing the door status,
but it returned a decimal value. We updated the code to take the decimal value and perform a bitwise
operation with a bitmask of 00001111, which is a decimal 15. The driver has been tested with an undeployed
antenna and works, but still needs to be tested with a deployed antenna.
#41 Update Transceiver config driver to fix audio beacon.
The audio beacon on and off commands did not have enough zero's - that's why they weren't working. The proper format is "ES+W22080000XXXX",
where you replace the 'XXXX' with the time period between audio beacons, encoded in HEX. Set the time period to '0000' to disable the audio beacon.
#42 removed the sleep after the backup antenna deploy.
The wait was orgianly added because it was thought that the system would need that time to insure that the antenna would deploy, however the back up driver already has
the wait built in
#43 deployAntennaMain
The first changed that was added was if all the antenna doors return closed then the system will use algrothim 1, which is safer. However if the doors return anything
else then it runs algrothim 2.
The second change made is that it will check the door status, it does this to make sure that it has a current value for the doors
#44 Attitude and TTNC data collection
It was observed that when the OBC (pi) boots it takes more time then expected to update its system time from the cronodot so data collection was delayed by 60 seconds
as to give more time for the system clock to update.
#45 A PWM ramp was added to the boom deployer
The ramp was add so that we don't trip a short cuirct state on the EPS
#46 deployAntennaMain
A state was added to the deploy Antenna Main so that if the antenna is already deployed it will not deploy.
#47 changing boot ability
Removed an elif statement in main flight logic so it wont ever boot into boom deploy, causing it to attempt to deploy the boom twice in a row
The code has been tested and aproved, 08/10/21
-Shawn Jones