Monday, August 7, 2017

Another day, another library


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.

// TODO:

  • 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
// DONE
  • 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.

No comments:

Post a Comment