Log - Semester 2
Week 1: (21st June - 27th June)
- Courses resumed this week
- Fixed the crashing problem and set my Raspberry Pi to collect data for about 3 weeks
- Made several code improvements
- Got GPIO output working, got a LED from Ulrich to test it was working
- Continued working on my Mid-Year Semester Report
Week 2: (28th June - 3rd August)
- Made several code improvements
- Continued working on my Mid-Year report
- Started working on my Mid-Year seminar
- Worked on a circular array data structure
- Met with Ulrich and discussed the project
- Spent the first part of the week preparing for my mid-year seminar
- Gave my mid-year seminar at the city campus (7th)
- Continued work on the mid-year report
- Made slight improvements to the program
- Started running an improved stable version of my program to gather data about Ulrich's house, this data will be sample data when I'm improving the decision-making algorithm
Week 4: (11th August - 17th August)
- Submitted my mid-year report (11th)
- Made some more minor code improvements
- Started to develop the intelligent decision-making algorithm, worked on handling errors when system data is unavailable
Week 5: (18th August - 24th August)
- Met at Vector to discuss my mid-year report, there were a few points that Vector wanted to modify slightly
- Had a brief catch up with Ulrich after the meeting, he gave me advice on what part of the program I should develop next
- Begun modifying my mid-year report
- Continued working on the decision making program
- Implemented a Java class that stores queried system data for each day - known as DayData.java
- Implemented a Java class that holds system data information about many days, this contains many DayData instances
Week 6: (25th August - 31st August)
- Met with Ulrich to discuss my work on the project and my modifications on my mid-year report, Ulrich was pleased with my progress and advised me on what to develop next
- Continued working on the decision making program
- Implemented a Java class that stores rule information, also implemented a new API-using method that produces an instance of this class
- Implemented a Java class that stores condition information about rules, multiple condition instances are stored inside a rule instance
- Continued to develop the decision making program
- Developed a rule set Java class which holds many different rule sets
- Developed a state machine Java class which will be used to simulate a system, this class needs a lot of work
- Met with Ulrich to discuss project progress
- Ulrich and I found that there is insufficient information to do state machine simulation, we defined more simple decision criteria
Mid-Semester Break Week 2: (8th September - 14th September)
- Improved some existing code - the class that holds recent sets of data
- Implemented new decision criteria
- Set the Pi to run the program again with the new decision criteria
- Discovered some bugs in the program while it was running on the Pi, fixed the bugs and set it to run the program again
Week 7: (15th September - 21st September)
- Found bugs in my implementation of the decision criteria, I fixed these up and let the program run more
Week 8: (22nd September - 28th September)
- Met with Ulrich and looked at the results from the new decision criteria, we found it wasn't working as we should so we modified it
- I implemented the changes and let the program run more, it now also logs more information for debugging
- Daylight savings occurred
Week 9: (29th September - 5th October)
- I discovered my code won't handle daylight savings correctly
- Begun to fix the daylight savings problem
- Begun to develop a php script to update program parameters
- Altered my program to read and process the configuration from the php-generated config files
- Improved the clarity of decision code
- Tidied my existing parameter loading code
- Changed the decision-logic code to take multiple loads into account, loads decided on based on priority
- Improved the printing/logging of load information that occurs when decisions are made
- Improved the clarity of how the discretionary load information is stored in memory
Week 11: (13th October - 19th October)
- Cleaned up some unused classes
- Overhauled DayData and DataRecord classes to make them more flexible with gaps in data
- Altered the format of CSV logging files
- Further worked on code to adjust log files for daylight savings
- Implemented new GPIO functions for dealing with different loads
- Worked on Javadoc documenting
- Met with Ulrich at his house and tested my program on the device that was set up to switch loads. After a few modifications it worked correctly, however there was a problem with the hardware setup that Ulrich needed to fix
- Worked on the slides for my final seminar
- Worked on the final report
Week 12: (20th October - 26th October)
- Continued to prepare for the final seminar
- Met with Ulrich again and tested my program on the device, it successfully turned on a load
- Gave my final seminar at the city campus (22nd), this included giving a successful live demo of the device in action
- Submitted my slides to Vector for approval, I will upload these slides to this website later
- Worked on the final report
Study/Exam Week 1: (27th October - 2nd November)
- Finished working on the final report
- Successfully submitted the final report to Ulrich and Mano (28th)
- Submitted the final report to Vector for approval, I will upload the report to this website later
Study/Exam Week 2: (3rd November - 9th November)
- Vector approved both the final report and the seminar slides, I have uploaded them to this website
- Project is fully complete