I'll probably be back with more questions soon... :) And here I am!
I have several things to ask. First, it is kind of awkward that I'm working with a "random" branch of xpcc, in that I don't know where to apply bugfixes (I found a few minor ones) so that they get back to my branch. Should I fork xpcc and create a new "working" branch from master, and merge in the stm32f103 support branch and then later the new commits from master, and publish the bug fixes on xpcc:master? (so if a new commit arrives to master, I can merge it back to my branch) Second, I noticed that on the I2cTransaction class, which is supposed to be a general abstract class of every transaction, there are "configureWriteRead", "configureWrite" and "configureRead", which doesn't make sense to me (they aren't even implemented). Also, of the 3 classes which implement these all have all 3 methods even when it doesn't make any sense (like "configureRead" on "I2cWriteTransaction"). Now, I figured I would write a transaction that would be register-oriented (first byte of data is register number, then read or write). On this transaction, the aforementioned methods should simply not exist, but that's currently impossible. Third, I wonder, why is "draw" a function pointer in "GraphicDisplay" and not a virtual function? I couldn't yet figure it out...