Changes for version 2.3633_01 - 2019-07-05

  • added the test platform I2C address map listing (closes #103)
  • EEPROM: add the new RPi::EEPROM::AT24C32 distribution for EEPROM access (closes #104), and tests pull the EEPROM object from a $pi object (closes #105)
  • implemented IPC::Shareable so we can read and write object and other various information (pins, test info etc) between separate processes and objects (closes #107)
  • updated RPi::Pin (and subsequently register_pin()) with the ability to store a comment/description with each pin. This will allow all objects across all processes to identify which pin is being used for what purpose (closes #108)
  • added new metadata() in Core, returns a copy of the meta data stored within the shared memory space
  • added clean_shared() in Core, (with binary 'pi-erase-metadata'). Used to wipe out the shared metadata in the event of power loss while Pi is running
  • added pimetadata and pi-erase-metadata scripts
  • cleanup() no longer tries to set pin_mode(). pin_mode() gets its data from mode_alt() which has values of 0-7, so if we're higher than mode 3, everything fails, because pin_mode() accepts only values 0-3. We just glean the mode from the 'alt' status instead
  • added checksum(), generates a random 32-byte hexidecimal string
  • added uuid(), returns the generated string set as the Pi object's UUID in the new() method
  • added dump_object(), simply dumps the object out using Data::Dumper
  • shared memory now stores the checksum of each Pi object created on the system (specifically used for cleanup identification)
  • if multiple Pi objects are being used simultaneously on the same system, we now keep track of pins, and only the pins associated with a specific object are reset back to default status; all other Pi object's pins are left registered and in tact (closes #118)
  • added new t/multi directory with a manual test setup for testing multi processes, and pin cleanups
  • completely re-wrote all signal handlers to properly house all objects within a class variable for cleanup() use
  • added dump_metadata(), uses Data::Dumper to dump the contents of the meta data within the shared memory storage
  • added installed script information to FAQ (closes #114)
  • created RPi::WiringPi::Util, and put all methods not related to Pi hardware functionality within. This includes metadata functionality etc. Also moved a bunch of methods from Core into here (closes #120)
  • added signal_handlers() and dump_signal_handlers() to Util. (closes #121)
  • added further subs to t/RPiTest
  • in t/RPiTest library, changed all exports to have an "rpi_" prefix, made it so that all subs are exported by default (as opposed to using @EXPORT_OK), and rewrote all test files to do base meta/pin checks on all files

Documentation

FAQ and Tutorial for RPi::WiringPi

Modules

Perl interface to Raspberry Pi's board, GPIO, LCDs and other various items
Core methods for RPi::WiringPi Raspberry Pi interface
Utility methods outside of Pi hardware functionality