Changes from version 0.2
- Added a property package example.
- Added a CAPE-OPEN Unit viewer/runner example.
- Remove the virtual attribute from Set_simulationContext (TBasePMC).
- Removed all variables called Empty and substituted with the Delphi
function Unassigned.
- Added a ValidatePort method to the TCapeUnitPort class so that a port
can validate itself. Updated the TCapeUnitDef.Validate method
accordingly.
- Changed method name Terminate to PMCTerminate.
- Changed the index for TCapeCollection from 0-based to 1-based.
- CapeUnitPort: Changed property connectedObject to StreamObject which
maps to the FWorkingStreamObject.
- Removed AutoObj from unit names, since just about all the classes in
this project derives from TAutoObject.
- Modified exception handling in TCapeUnitDef.DoCalc to check whether
exception was generated inside unit.
- Added reporting to SimpleHX example.
- Added an intermediate variable FWorkingStreamObject which either
contains a duplicate of the connected inlet stream or just point to the
connectedObject reference for other port directions. This is to prevent
calculation of properties using inlet streams, which is undesirable.
- PMEVersion.pas can be used to determine which PME is calling a CO
component.
- Added GetPhaseIds method to TCapeUnitPort.
- Added CompIds as property to TCapeUnitPort.
- Merged the functionality of TCapeOpenComponentRegistryEntries and
TCapeOpenComponentRegister with TAutoObjectFactory so that all registry
entries are now handled by one object, TCapeOpenObjectFactory.
- Added compiler warnings close to the Get/SetComponentMolarFlows methods
to warn against incorrect results when called in Aspen Plus 2006.
- Updated work-around for known issue about Aspen Plus and
Get/SetMolarFlows.
- Added check for FInitialized in TBasePMC.InitNew method to prevent
double initialization from Aspen Plus, which first calls Initialize, then
InitNew (on Unit components).
- Also moved setting of FInitialized from TCapeUnitDef.PMCInitialize to
TBasePMC.DoInitialize for proper encapsulation.
- Due to restructuring of the initialization from 0.2 it is now required
to call inherited in the derived class.
- Fixed exception that gets generated when accessing a property from a
port when running inside Aspen Plus (fix 1).
- Fixed property ComponentIDs of the CapeUnitPort class to return
component names (fix 2).
- Set interface references saved in Set_SimulationContext to nil in
TBasePMC.Terminate.
- Moved FParams variable and ICapeUtilities methods to TBasePMC where it
logically belong. This will break compatibility with CapeUnit models created
with version 0.1 & 0.2.
- Moved IPersist.GetClassID method to PMCMain. The classID can be
retrieved by a call to self.Factory.ClassID.
- Changed WizardInterface Statusbar.SimplePanel to true. This fixes the
disappearing text in the status bar.
Changes from version 0.1
- Combined code that was duplicated in both branches of 0.9.3 and 1.0.0
(Param, Port and Collections).
- Introduced compiler switches (CAPEOPEN093 and CAPEOPEN100) to switch
between version specific code (i.e. to change a unit from ver. 0.9.3 to
1.0.0, just change the define at the top of the file from CAPEOPEN093 to
CAPEOPEN100 and build project).
- Derived separate PortCollection and ParamCollection classes to avoid
ugly type casting in code.
- Added properties and methods to read/write common stream properties such
as T, P, composition, flows etc. directly from a port.
- Deleted support for Aspen Plus specific extensions.
- Added Dimensions unit with some predefined units of measure that can be
assigned to a CapeParameter.
- On termination of class, calls child.ObjRelease on child objects in
place of object.Free to allow interface reference counting to determine the
lifetime of an object. This is to accommodate clients that release
interfaces in undefined order.
- Added CapeOpenRegister unit to contain functionality for registration of
PMC registry information. Removing this functionality from the project file
allows one to add more than one component to the same project.
- TUnitParam.Get_value now casts the return result to the appropriate
variant type (varDouble, varInteger etc).
- Introduced abstract methods CallDefaultvalue and CallValidate in
TCapeParameterSpecAutoObj. This allows TUnitParam.Validate and
TUnitParam.Reset to operate on the common base class of Spec classes.
- Added optional RestrictToList parameter to Params.AddOptionParam to tell
a PME to only accept predefined options.
- Added flag RequireConnection to Port so that the user can specify an
optional port that does not have to be connected to a stream object in order
to be valid.
- Fixed empty TBasePMC.Get_Name method.
- Changed Wizard GUI to enable one to create more than one CAPE-OPEN unit
operation in a project.
- Wizard now generates _TLB.pas unit by calling tlibimp as an external
process.
- Added experimental CapeArray parameter type.