I finished the declarations for all of the opcodes and even some of the simpler implementations yesterday. This was a LOT of cut and paste - 128 declarations in total. When I returned to it this morning I started in on the LOG opcode; simply append a timestamped single parameter to the log; in this case the parameter is actually an index into the stringtable, so it could be read back on the LCD screen also.
As I write yet ANOTHER library to represent the logging subsystem it strikes me that I'd much rather be finishing some of the chassis work while the weather is still nice. I have to complete the fabric enclosure around the mast, and the elevation feedback widget needs to get mounted. I also have 85% of the user control panel done, and probably 2-3 weeks to do it.
The other thought rattling around in my head is that without a working comms system, having the flexibility to upload sequence data is a little clunky. So I finish an in-RAM version of the logging library and check back with the to-do list... I think I'll need to change gears for the near-term software solution.
Write up something that manages the 4 byte structs for describing execution state. Library?Plain array? Library, I think.This is linked to schedule, code and the way it's loaded in memory as objects. Gotta finish that this weekend.
- copy the sun position schedule currently in a FLASH_ARRAY into some of the unused low bytes of internal EEPROM. I think it fits between the reg and MAP.
sift thru the current spreadsheet of opcodes and stuff all the blocking calls into one group so we can flag those in the sequence generator - in case we need to run those as 'exclusive'.
- I had an idea to wrap the stock LCD library so we can include references to a string_table for option-list type fields. Currently it's all numeric. Smells like scope creep.
- UPDATE: I forgot the August 31 deadline for autonomous operations. I've started a reverse calendar to count down the work items left. It's about 2 weeks of time left, and about 6 weeks of work
- sun sensor - sealing the top and mounting the base to the array.
- fabric enclosure completion (it's held on with bungee cords right now)
- user interface 'box' mounting and cable routing, mounting the panels and power switches
- power and comms cable from the batter box
array mounting and charg cabling platform, table, and mast build, linear actuator tests, azimuth feedback testing and characterization sensor build and testing 3D printing the feedback rack and gear for elevation 3D printing the feedback gear for the XL belt azimuth table 3D printing the sub-panels for the user interface box write up the keywords.txt and example for the XEEPROM library, and test it all out organize the reg[ ] array into config and run entries. Those entries that are only used during setup() don't have to be copied in memory. I should be able to save about 32 bytes of SRAM this way.