This could be a huge topic, but now quickly some practical questions / wishes:
Most of the IoDrvBase library is hidden using {attribute 'conditionalshow'}, and that's very much reasonable. However, it is uncomfortable in my case, where I don't have the source library, therefore I can't see inherited items while coding, or debugging.
Typical invisible items are:
-m_info
-m_hInterface
-m_pConnector
-m_wModuleType
-m_dwInstance
But then there are all those _counter variables, and who knows, what else
So I ended up (temporarly) adding my own member variables as pointers to these elements like:
_wModuleType : REFERENCE TO UINT REF= m_wModuleType;
Or...
_pwModuleType : POINTER TO UINT := ADR(m_wModuleType);
I know, it is can be unsafe, especially with the rederences, but I never use them from the code, only to see these items in the debugger.
Is there a proper way to do this?
Maybe could use something like {attribute 'conditionalshow' := 'Library_Developer'} in IpDrvBase?
Or?
I might be totally wrong, but I have the impression that these variables are not just for debugging, but have importance in the behavior of IO manager as well? Is it something about detecting if a driver implements a specific call, and actually took action?
If it is so, would be great to highlight their importance, maybe describe them together with the expected return values of the IoDrv* calls
If they have no such importance, might be better to remove them from the template...
I'd be more than happy to do these updates, if I receive a short answer, and permission to modify the tickets...